Class: LinkDemo::TestProgram::Interface
- Inherits:
-
Object
- Object
- LinkDemo::TestProgram::Interface
- Includes:
- OrigenTesters::ProgramGenerators
- Defined in:
- lib/origen_doc_helpers_dev/interface.rb
Instance Method Summary collapse
- #add_flow_entry(test, options) ⇒ Object
- #apply_levels(test, options) ⇒ Object
- #func(name, options = {}) ⇒ Object
- #instance_name(name, options = {}) ⇒ Object
- #para(name, options = {}) ⇒ Object
- #pattern_name(name, options = {}) ⇒ Object
- #vdd_loop(options) ⇒ Object
Instance Method Details
#add_flow_entry(test, options) ⇒ Object
60 61 62 63 64 65 66 |
# File 'lib/origen_doc_helpers_dev/interface.rb', line 60 def add_flow_entry(test, ) = { number: [:bin] * 1000, soft_bin: [:bin] }.merge() flow.test test, end |
#apply_levels(test, options) ⇒ Object
55 56 57 58 |
# File 'lib/origen_doc_helpers_dev/interface.rb', line 55 def apply_levels(test, ) test.dc_category = 'spec' test.dc_selector = [:vdd] || :nom end |
#func(name, options = {}) ⇒ Object
24 25 26 27 28 29 30 31 32 33 34 35 |
# File 'lib/origen_doc_helpers_dev/interface.rb', line 24 def func(name, = {}) = { vdd: [:min, :max], type: :functional }.merge() vdd_loop() do || test = test_instances.functional(instance_name(name, ), ) test.pattern = pattern_name(name, ) apply_levels(test, ) add_flow_entry(test, ) end end |
#instance_name(name, options = {}) ⇒ Object
6 7 8 9 10 11 12 |
# File 'lib/origen_doc_helpers_dev/interface.rb', line 6 def instance_name(name, = {}) name = pattern_name(name) if [:vdd] || [:vdd] != :nom name += "_#{options[:vdd]}" end name end |
#para(name, options = {}) ⇒ Object
37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
# File 'lib/origen_doc_helpers_dev/interface.rb', line 37 def para(name, = {}) = { vdd: [:min, :max], type: :parametric }.merge() unless [:cz] vdd_loop() do || test = test_instances.ppmu(instance_name(name, ), ) test.pattern = pattern_name(name, ) test.lo_limit = [:lo] test.hi_limit = [:hi] test.force_cond = [:force] || 0 apply_levels(test, ) add_flow_entry(test, ) end end end |
#pattern_name(name, options = {}) ⇒ Object
14 15 16 |
# File 'lib/origen_doc_helpers_dev/interface.rb', line 14 def pattern_name(name, = {}) [:pattern] || name.to_s end |
#vdd_loop(options) ⇒ Object
18 19 20 21 22 |
# File 'lib/origen_doc_helpers_dev/interface.rb', line 18 def vdd_loop() [[:vdd]].flatten.each do |vdd| yield .merge(vdd: vdd) end end |