Class: OrigenTesters::Test::J750BaseInterface
- Inherits:
-
Object
- Object
- OrigenTesters::Test::J750BaseInterface
- Defined in:
- lib/origen_testers/test/j750_base_interface.rb
Direct Known Subclasses
Instance Method Summary collapse
- #block_loop(name, options) ⇒ Object
- #func(name, options = {}) ⇒ Object
-
#initialize(options = {}) ⇒ J750BaseInterface
constructor
Options passed to Flow.create and Library.create will be passed in here, use as desired to configure your interface.
- #log(msg) ⇒ Object
- #mto_memory(name, options = {}) ⇒ Object
- #nop(options = {}) ⇒ Object
-
#or_ids(options = {}) ⇒ Object
OR 2 IDS together into 1 flag.
- #para(name, options = {}) ⇒ Object (also: #meas)
- #por(options = {}) ⇒ Object
Constructor Details
#initialize(options = {}) ⇒ J750BaseInterface
Options passed to Flow.create and Library.create will be passed in here, use as desired to configure your interface
6 7 |
# File 'lib/origen_testers/test/j750_base_interface.rb', line 6 def initialize( = {}) end |
Instance Method Details
#block_loop(name, options) ⇒ Object
42 43 44 45 46 47 48 49 50 51 52 53 |
# File 'lib/origen_testers/test/j750_base_interface.rb', line 42 def block_loop(name, ) if [:by_block] test_instances.group do |group| group.name = name $dut.blocks.each_with_index do |block, i| yield block, i, group end end else yield end end |
#func(name, options = {}) ⇒ Object
13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
# File 'lib/origen_testers/test/j750_base_interface.rb', line 13 def func(name, = {}) = { duration: :static }.merge() block_loop(name, ) do |block, i, group| ins = test_instances.functional(name) ins.set_wait_flags(:a) if [:duration] == :dynamic ins.pin_levels = .delete(:pin_levels) if [:pin_levels] if group pname = "#{name}_b#{i}_pset" patsets.add(pname, [{ pattern: "#{name}_b#{i}.PAT" }, { pattern: 'nvm_global_subs.PAT', start_label: 'subr' }]) ins.pattern = pname flow.test(group, ) if i == 0 else pname = "#{name}_pset" patsets.add(pname, [{ pattern: "#{name}.PAT" }, { pattern: 'nvm_global_subs.PAT', start_label: 'subr' }]) ins.pattern = pname if [:cz_setup] flow.cz(ins, [:cz_setup], ) else flow.test(ins, ) end end end end |
#log(msg) ⇒ Object
9 10 11 |
# File 'lib/origen_testers/test/j750_base_interface.rb', line 9 def log(msg) flow.logprint(msg) end |
#mto_memory(name, options = {}) ⇒ Object
86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 |
# File 'lib/origen_testers/test/j750_base_interface.rb', line 86 def mto_memory(name, = {}) = { duration: :static }.merge() block_loop(name, ) do |block, i, group| ins = test_instances.mto_memory(name) ins.set_wait_flags(:a) if [:duration] == :dynamic ins.pin_levels = .delete(:pin_levels) if [:pin_levels] if group pname = "#{name}_b#{i}_pset" patsets.add(pname, [{ pattern: "#{name}_b#{i}.PAT" }, { pattern: 'nvm_global_subs.PAT', start_label: 'subr' }]) ins.pattern = pname flow.test(group, ) if i == 0 else pname = "#{name}_pset" patsets.add(pname, [{ pattern: "#{name}.PAT" }, { pattern: 'nvm_global_subs.PAT', start_label: 'subr' }]) ins.pattern = pname if [:cz_setup] flow.cz(ins, [:cz_setup], ) else flow.test(ins, ) end end end end |
#nop(options = {}) ⇒ Object
82 83 84 |
# File 'lib/origen_testers/test/j750_base_interface.rb', line 82 def nop( = {}) flow.nop end |
#or_ids(options = {}) ⇒ Object
OR 2 IDS together into 1 flag
78 79 80 |
# File 'lib/origen_testers/test/j750_base_interface.rb', line 78 def or_ids( = {}) flow.or_flags([:id1], [:id2], ) end |
#para(name, options = {}) ⇒ Object Also known as: meas
62 63 64 65 66 67 68 69 70 71 72 73 74 |
# File 'lib/origen_testers/test/j750_base_interface.rb', line 62 def para(name, = {}) = { high_voltage: false }.merge() if .delete(:high_voltage) ins = test_instances.bpmu(name) else ins = test_instances.ppmu(name) end ins.dc_category = 'NVM_PARA' flow.test(ins, ) patsets.add("#{name}_pset", pattern: "#{name}.PAT") end |
#por(options = {}) ⇒ Object
55 56 57 58 59 60 |
# File 'lib/origen_testers/test/j750_base_interface.rb', line 55 def por( = {}) = { instance_not_available: true }.merge() flow.test('por_ins', ) end |