origen_testers 0.5.7 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/config/shared_commands.rb +6 -0
- data/config/version.rb +2 -2
- data/lib/commands/run.rb +44 -0
- data/lib/origen_testers.rb +19 -1
- data/lib/origen_testers/flow.rb +382 -0
- data/lib/origen_testers/generator.rb +32 -29
- data/lib/origen_testers/igxl_based_tester/base/ac_specsets.rb +79 -0
- data/lib/origen_testers/igxl_based_tester/base/dc_specsets.rb +98 -0
- data/lib/origen_testers/igxl_based_tester/base/edge.rb +60 -0
- data/lib/origen_testers/igxl_based_tester/base/edges.rb +24 -0
- data/lib/origen_testers/igxl_based_tester/base/edgeset.rb +39 -0
- data/lib/origen_testers/igxl_based_tester/base/edgesets.rb +97 -0
- data/lib/origen_testers/igxl_based_tester/base/flow.rb +390 -115
- data/lib/origen_testers/igxl_based_tester/base/flow_line.rb +4 -54
- data/lib/origen_testers/igxl_based_tester/base/generator.rb +257 -11
- data/lib/origen_testers/igxl_based_tester/base/level_io_se.rb +59 -0
- data/lib/origen_testers/igxl_based_tester/base/level_supply.rb +39 -0
- data/lib/origen_testers/igxl_based_tester/base/levels.rb +31 -0
- data/lib/origen_testers/igxl_based_tester/base/levelset.rb +109 -0
- data/lib/origen_testers/igxl_based_tester/base/pinmap.rb +93 -0
- data/lib/origen_testers/igxl_based_tester/base/test_instance.rb +33 -1
- data/lib/origen_testers/igxl_based_tester/base/timeset.rb +37 -0
- data/lib/origen_testers/igxl_based_tester/base/timesets.rb +47 -0
- data/lib/origen_testers/igxl_based_tester/j750/templates/flow.txt.erb +2 -2
- data/lib/origen_testers/igxl_based_tester/ultraflex/ac_specsets.rb +10 -0
- data/lib/origen_testers/igxl_based_tester/ultraflex/custom_test_instance.rb +4 -0
- data/lib/origen_testers/igxl_based_tester/ultraflex/dc_specsets.rb +10 -0
- data/lib/origen_testers/igxl_based_tester/ultraflex/edge.rb +9 -0
- data/lib/origen_testers/igxl_based_tester/ultraflex/edges.rb +9 -0
- data/lib/origen_testers/igxl_based_tester/ultraflex/edgeset.rb +9 -0
- data/lib/origen_testers/igxl_based_tester/ultraflex/edgesets.rb +10 -0
- data/lib/origen_testers/igxl_based_tester/ultraflex/flow.rb +137 -0
- data/lib/origen_testers/igxl_based_tester/ultraflex/level_io_se.rb +9 -0
- data/lib/origen_testers/igxl_based_tester/ultraflex/level_supply.rb +9 -0
- data/lib/origen_testers/igxl_based_tester/ultraflex/levels.rb +9 -0
- data/lib/origen_testers/igxl_based_tester/ultraflex/levelset.rb +10 -0
- data/lib/origen_testers/igxl_based_tester/ultraflex/pinmap.rb +10 -0
- data/lib/origen_testers/igxl_based_tester/ultraflex/templates/ac_specsets.txt.erb +58 -0
- data/lib/origen_testers/igxl_based_tester/ultraflex/templates/dc_specsets.txt.erb +58 -0
- data/lib/origen_testers/igxl_based_tester/ultraflex/templates/edgesets.txt.erb +95 -0
- data/lib/origen_testers/igxl_based_tester/ultraflex/templates/flow.txt.erb +2 -2
- data/lib/origen_testers/igxl_based_tester/ultraflex/templates/levelset.txt.erb +121 -0
- data/lib/origen_testers/igxl_based_tester/ultraflex/templates/pinmap.txt.erb +24 -0
- data/lib/origen_testers/igxl_based_tester/ultraflex/templates/timesets.txt.erb +137 -0
- data/lib/origen_testers/igxl_based_tester/ultraflex/test_instance.rb +4 -0
- data/lib/origen_testers/igxl_based_tester/ultraflex/timeset.rb +9 -0
- data/lib/origen_testers/igxl_based_tester/ultraflex/timesets.rb +10 -0
- data/lib/origen_testers/interface.rb +41 -6
- data/lib/origen_testers/no_interface.rb +7 -0
- data/lib/origen_testers/origen_ext/application/runner.rb +25 -0
- data/lib/origen_testers/origen_ext/generator.rb +37 -0
- data/lib/origen_testers/origen_ext/generator/flow.rb +70 -0
- data/lib/origen_testers/origen_ext/generator/resources.rb +21 -0
- data/lib/origen_testers/program_generators.rb +0 -1
- data/lib/origen_testers/smartest_based_tester/base/flow.rb +158 -134
- data/lib/origen_testers/smartest_based_tester/base/generator.rb +2 -3
- data/lib/origen_testers/smartest_based_tester/base/test_suite.rb +4 -0
- data/lib/origen_testers/smartest_based_tester/v93k/templates/template.flow.erb +5 -6
- data/lib/origen_testers/test/dut.rb +5 -0
- data/lib/origen_testers/test/j750_base_interface.rb +0 -3
- data/lib/origen_testers/test/ultraflex_interface.rb +230 -4
- data/lib/origen_testers/test/v93k_interface.rb +5 -23
- data/program/components/_temp.rb +6 -0
- data/program/flow_control.rb +190 -62
- data/program/prb1.rb +13 -50
- data/program/prb2.rb +0 -16
- data/program/test.rb +12 -3
- data/program/uflex_resources.rb +159 -0
- metadata +66 -16
- data/lib/origen_testers/doc.rb +0 -224
- data/lib/origen_testers/doc/generator.rb +0 -124
- data/lib/origen_testers/doc/generator/flow.rb +0 -69
- data/lib/origen_testers/doc/generator/flow_line.rb +0 -201
- data/lib/origen_testers/doc/generator/test.rb +0 -66
- data/lib/origen_testers/doc/generator/test_group.rb +0 -64
- data/lib/origen_testers/doc/generator/tests.rb +0 -45
- data/lib/origen_testers/doc/model.rb +0 -160
- data/lib/origen_testers/generator/flow_control_api.rb +0 -611
- data/lib/origen_testers/smartest_based_tester/base/flow_node.rb +0 -476
- data/lib/origen_testers/smartest_based_tester/v93k/flow_node.rb +0 -9
data/program/prb1.rb
CHANGED
|
@@ -101,10 +101,8 @@ Flow.create do
|
|
|
101
101
|
func :erase_all
|
|
102
102
|
end
|
|
103
103
|
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
func :erase_all
|
|
107
|
-
end
|
|
104
|
+
func :erase_all
|
|
105
|
+
func :erase_all
|
|
108
106
|
|
|
109
107
|
log 'Test if_passed'
|
|
110
108
|
func :erase_all, :id => 'erase_passed_1'
|
|
@@ -160,51 +158,6 @@ Flow.create do
|
|
|
160
158
|
func :margin_read1_all1
|
|
161
159
|
end
|
|
162
160
|
|
|
163
|
-
log 'Test if_all_passed'
|
|
164
|
-
func :erase_all, :id => 'erase_all_passed_1'
|
|
165
|
-
func :erase_all, :id => 'erase_all_passed_2'
|
|
166
|
-
|
|
167
|
-
func :margin_read1_all1, :if_all_passed => 'erase_all_passed_1'
|
|
168
|
-
if_all_passed 'erase_all_passed_2' do
|
|
169
|
-
func :margin_read1_all1
|
|
170
|
-
end
|
|
171
|
-
|
|
172
|
-
log 'Test unless_any_failed'
|
|
173
|
-
func :erase_all, :id => 'erase_all_passed_3'
|
|
174
|
-
func :erase_all, :id => 'erase_all_passed_4'
|
|
175
|
-
|
|
176
|
-
func :margin_read1_all1, :unless_any_failed => 'erase_all_passed_3'
|
|
177
|
-
unless_any_failed 'erase_all_passed_4' do
|
|
178
|
-
func :margin_read1_all1
|
|
179
|
-
end
|
|
180
|
-
|
|
181
|
-
log 'Test if_any_passed'
|
|
182
|
-
func :erase_all, :id => 'erase_any_passed_1'
|
|
183
|
-
func :erase_all, :id => 'erase_any_passed_2'
|
|
184
|
-
|
|
185
|
-
func :margin_read1_all1, :if_any_passed => 'erase_any_passed_1'
|
|
186
|
-
if_any_passed 'erase_any_passed_2' do
|
|
187
|
-
func :margin_read1_all1
|
|
188
|
-
end
|
|
189
|
-
|
|
190
|
-
log 'Test if_all_failed'
|
|
191
|
-
func :erase_all, :id => 'erase_all_failed_1'
|
|
192
|
-
func :erase_all, :id => 'erase_all_failed_2'
|
|
193
|
-
|
|
194
|
-
func :margin_read1_all1, :if_all_failed => 'erase_all_failed_1'
|
|
195
|
-
if_all_failed 'erase_all_failed_2' do
|
|
196
|
-
func :margin_read1_all1
|
|
197
|
-
end
|
|
198
|
-
|
|
199
|
-
log 'Test if_any_failed'
|
|
200
|
-
func :erase_all, :id => 'erase_any_failed_1'
|
|
201
|
-
func :erase_all, :id => 'erase_any_failed_2'
|
|
202
|
-
|
|
203
|
-
func :margin_read1_all1, :if_any_failed => 'erase_any_failed_1'
|
|
204
|
-
if_any_failed 'erase_any_failed_2' do
|
|
205
|
-
func :margin_read1_all1
|
|
206
|
-
end
|
|
207
|
-
|
|
208
161
|
log 'Verify that job context wraps import'
|
|
209
162
|
if_job :fr do
|
|
210
163
|
import 'erase'
|
|
@@ -222,5 +175,15 @@ Flow.create do
|
|
|
222
175
|
log 'Verify that MTO template works...'
|
|
223
176
|
mto_memory :mto_read1_all1
|
|
224
177
|
|
|
225
|
-
|
|
178
|
+
if tester.uflex?
|
|
179
|
+
log 'import statement'
|
|
180
|
+
import 'components/temp'
|
|
181
|
+
|
|
182
|
+
log 'direct call'
|
|
183
|
+
|
|
184
|
+
meas :bgap_voltage_meas, tnum: 1050, bin: 119, soft_bin: 2, hi_limit: 45
|
|
185
|
+
meas :bgap_voltage_meas1
|
|
186
|
+
end
|
|
187
|
+
|
|
188
|
+
pass 1, description: "Good die!", softbin: 1
|
|
226
189
|
end
|
data/program/prb2.rb
CHANGED
|
@@ -16,25 +16,9 @@ Flow.create do
|
|
|
16
16
|
func :erase_all, :duration => :dynamic
|
|
17
17
|
func :margin_read1_all1, :id => 'erased_successfully'
|
|
18
18
|
|
|
19
|
-
skip :if_all_passed => 'erased_successfully' do
|
|
20
|
-
import 'components/prb2_main'
|
|
21
|
-
end
|
|
22
|
-
|
|
23
19
|
if_enable 'extra_tests' do
|
|
24
20
|
import 'components/prb2_main'
|
|
25
21
|
end
|
|
26
22
|
|
|
27
23
|
func :margin_read1_all1
|
|
28
|
-
|
|
29
|
-
log '"Check OOF passcodes in both locations"'
|
|
30
|
-
func :pgm_vfy_oof_passcode_tst, tname: "TST_VFY_OOF_PASSCODE", tnum: 1300, continue: true, id: :oof_passcode1
|
|
31
|
-
func :pgm_vfy_oof_passcode_redcols_utst, tname: "UTST_VFY_OOF_PASSCODE_REDCOLS", tnum: 1300, continue: true, id: :oof_passcode2
|
|
32
|
-
nop
|
|
33
|
-
|
|
34
|
-
# Will create a better API when implementing this on V93K
|
|
35
|
-
if Origen.tester.is_a?(OrigenTesters::IGXLBasedTester::Base)
|
|
36
|
-
or_ids id1: :oof_passcode1, id2: :oof_passcode2, id: :OR, condition: :fail
|
|
37
|
-
func :testme, tname: "", if_failed: :OR
|
|
38
|
-
end
|
|
39
|
-
|
|
40
24
|
end
|
data/program/test.rb
CHANGED
|
@@ -13,8 +13,17 @@ Flow.create do
|
|
|
13
13
|
meas :read_pump, tnum: 1050, bin: 119, soft_bin: 2, lo_limit: 35
|
|
14
14
|
meas :read_pump, tnum: 1050, bin: 119, soft_bin: 2, hi_limit: 45
|
|
15
15
|
meas :read_pump, tnum: 1050, bin: 119, soft_bin: 2, hi_limit: 45, lo_limit: 35
|
|
16
|
-
meas :read_pump, tnum: 1050, bin: 119, soft_bin: 2, hi_limit: 45, lo_limit: 35
|
|
17
|
-
meas :read_pump, tnum: 1050, bin: 119, soft_bin: 2, hi_limit: 45, lo_limit: 35
|
|
18
|
-
meas :read_pump, tnum: 1050, bin: 119, soft_bin: 2, hi_limit: 45, lo_limit: 35,
|
|
16
|
+
meas :read_pump, tnum: 1050, bin: 119, soft_bin: 2, hi_limit: 45, lo_limit: 35
|
|
17
|
+
meas :read_pump, tnum: 1050, bin: 119, soft_bin: 2, hi_limit: 45.mV, lo_limit: 35.mV
|
|
18
|
+
meas :read_pump, tnum: 1050, bin: 119, soft_bin: 2, hi_limit: 45.mV, lo_limit: 35.mV, continue: true
|
|
19
|
+
meas :read_pump, tnum: 1050, bin: 119, soft_bin: 2, hi_limit: 2000, lo_limit: 0.01, continue: true
|
|
20
|
+
meas :read_pump, tnum: 1050, bin: 119, soft_bin: 2, hi_limit: "_some_spec", lo_limit: 0.01, continue: true
|
|
21
|
+
meas :read_pump, tnum: 1050, bin: 119, soft_bin: 2, hi_limit: [1, 2]
|
|
22
|
+
meas :read_pump, tnum: 1050, bin: 119, soft_bin: 2, lo_limit: [1.uA, 2.uA, 3.uA], hi_limit: [4.uA,5.uA], units: "A", defer_limits: true
|
|
19
23
|
|
|
24
|
+
if tester.uflex?
|
|
25
|
+
log "Test of ultraflex render API"
|
|
26
|
+
line = flow.ultraflex.use_limit
|
|
27
|
+
line.units = "Hz"
|
|
28
|
+
end
|
|
20
29
|
end
|
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
Resources.create do
|
|
2
|
+
|
|
3
|
+
pinmap :pinmap_test
|
|
4
|
+
|
|
5
|
+
timing_sheet_pins = [:tclk, :tdi, :tdo, :tms]
|
|
6
|
+
|
|
7
|
+
# Define some edge options so we can define some Edge objects
|
|
8
|
+
default_options = {
|
|
9
|
+
d_src: 'PAT', # source of the channel drive data (e.g. pattern, drive_hi, drive_lo, etc.)
|
|
10
|
+
d_fmt: 'NR', # drive data format (NR, RL, RH, etc.)
|
|
11
|
+
d0_edge: 'd1_edge', # time at which the input drive is turned on
|
|
12
|
+
d1_edge: 'clkre + 0.25 * cycle', # time of the initial data drive edge
|
|
13
|
+
d2_edge: '', # time of the return format data drive edge
|
|
14
|
+
d3_edge: '', # time at which the input drive is turned off
|
|
15
|
+
c_mode: 'Edge', # output compare mode
|
|
16
|
+
c1_edge: 'clkre + 0.75 * cycle', # time of the initial output compare edge
|
|
17
|
+
c2_edge: '', # time of the final output compare edge (window compare)
|
|
18
|
+
t_res: 'Machine', # timing resolution (possibly ATE-specific)
|
|
19
|
+
clk_per: '' # clock period equation - for use with MCG
|
|
20
|
+
}
|
|
21
|
+
clock_options = {
|
|
22
|
+
d_src: 'PAT', # source of the channel drive data (e.g. pattern, drive_hi, drive_lo, etc.)
|
|
23
|
+
d_fmt: 'RL', # drive data format (NR, RL, RH, etc.)
|
|
24
|
+
d0_edge: 'd1_edge', # time at which the input drive is turned on
|
|
25
|
+
d1_edge: 'clkre', # time of the initial data drive edge
|
|
26
|
+
d2_edge: 'clkre + 0.5 * cycle', # time of the return format data drive edge
|
|
27
|
+
d3_edge: '', # time at which the input drive is turned off
|
|
28
|
+
c_mode: 'Off', # output compare mode
|
|
29
|
+
c1_edge: '', # time of the initial output compare edge
|
|
30
|
+
c2_edge: '', # time of the final output compare edge (window compare)
|
|
31
|
+
t_res: 'Machine', # timing resolution (possibly ATE-specific)
|
|
32
|
+
clk_per: 'mcg_cycle' # clock period equation - for use with MCG
|
|
33
|
+
}
|
|
34
|
+
input_options = {
|
|
35
|
+
d_src: 'PAT', # source of the channel drive data (e.g. pattern, drive_hi, drive_lo, etc.)
|
|
36
|
+
d_fmt: 'NR', # drive data format (NR, RL, RH, etc.)
|
|
37
|
+
d0_edge: 'd1_edge', # time at which the input drive is turned on
|
|
38
|
+
d1_edge: 'clkre - jtag_su', # time of the initial data drive edge
|
|
39
|
+
d2_edge: '', # time of the return format data drive edge
|
|
40
|
+
d3_edge: '', # time at which the input drive is turned off
|
|
41
|
+
c_mode: 'Off', # output compare mode
|
|
42
|
+
c1_edge: '', # time of the initial output compare edge
|
|
43
|
+
c2_edge: '', # time of the final output compare edge (window compare)
|
|
44
|
+
t_res: 'Machine', # timing resolution (possibly ATE-specific)
|
|
45
|
+
clk_per: '' # clock period equation - for use with MCG
|
|
46
|
+
}
|
|
47
|
+
output_options = {
|
|
48
|
+
d_src: 'PAT', # source of the channel drive data (e.g. pattern, drive_hi, drive_lo, etc.)
|
|
49
|
+
d_fmt: 'NR', # drive data format (NR, RL, RH, etc.)
|
|
50
|
+
d0_edge: 'd1_edge', # time at which the input drive is turned on
|
|
51
|
+
d1_edge: 'clkre', # time of the initial data drive edge
|
|
52
|
+
d2_edge: '', # time of the return format data drive edge
|
|
53
|
+
d3_edge: '', # time at which the input drive is turned off
|
|
54
|
+
c_mode: 'Edge', # output compare mode
|
|
55
|
+
c1_edge: 'clkre + jtag_ov', # time of the initial output compare edge
|
|
56
|
+
c2_edge: '', # time of the final output compare edge (window compare)
|
|
57
|
+
t_res: 'Machine', # timing resolution (possibly ATE-specific)
|
|
58
|
+
clk_per: '' # clock period equation - for use with MCG
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
# Define the Edge objects that you want to use later to construct edgesets/timesets
|
|
62
|
+
# * the interface puts these in 'edge_collection'
|
|
63
|
+
# FORMAT: edge <timing category>, <pin_name/type>, <edge options>
|
|
64
|
+
edge :default, :default, default_options
|
|
65
|
+
edge :clock, :clk, clock_options
|
|
66
|
+
edge :input, :default, input_options
|
|
67
|
+
edge :output, :default, output_options
|
|
68
|
+
|
|
69
|
+
# Assign edges to the pins for edgeset sheet ':func'
|
|
70
|
+
# * assign all pins some default timing for starters...
|
|
71
|
+
# * importing edgesets will automatically populate ac_specset variables contained within the equations
|
|
72
|
+
# FORMAT: edgeset <edgeset sheet name>, edgeset: <edgeset>, pin: <pin_name>, edge: <edge_object>, es_sheet_pins: <array of pins>, spec_sheet: <AC specsheet name>
|
|
73
|
+
edgeset :func, edgeset: :default, pin: :tclk, edge: edge_collection.edges[:default][:default], spec_sheet: :func, es_sheet_pins: timing_sheet_pins
|
|
74
|
+
edgeset :func, edgeset: :default, pin: :tms, edge: edge_collection.edges[:default][:default], spec_sheet: :func
|
|
75
|
+
edgeset :func, edgeset: :default, pin: :tdi, edge: edge_collection.edges[:default][:default], spec_sheet: :func
|
|
76
|
+
edgeset :func, edgeset: :default, pin: :tdo, edge: edge_collection.edges[:default][:default], spec_sheet: :func
|
|
77
|
+
# * now assign pins some more meaningful timing for JTAG operation...
|
|
78
|
+
edgeset :func, edgeset: :es_jtag, pin: :tclk, edge: edge_collection.edges[:clock][:clk], spec_sheet: :func, es_sheet_pins: timing_sheet_pins
|
|
79
|
+
edgeset :func, edgeset: :es_jtag, pin: :tms, edge: edge_collection.edges[:input][:default], spec_sheet: :func
|
|
80
|
+
edgeset :func, edgeset: :es_jtag, pin: :tdi, edge: edge_collection.edges[:input][:default], spec_sheet: :func
|
|
81
|
+
edgeset :func, edgeset: :es_jtag, pin: :tdo, edge: edge_collection.edges[:output][:default], spec_sheet: :func
|
|
82
|
+
|
|
83
|
+
# Assign edges to the pins for timeset sheet ':func'
|
|
84
|
+
# * first a :default timeset
|
|
85
|
+
# FORMAT: timeset <timset sheet name>, timeset: <timeset>, pin: <pin_name>, eset: <edgeset name>, ts_sheet_pins: <array of pins>
|
|
86
|
+
timeset :func, timeset: :default, pin: :tclk, eset: :default, ts_sheet_pins: timing_sheet_pins
|
|
87
|
+
timeset :func, timeset: :default, pin: :tms, eset: :default
|
|
88
|
+
timeset :func, timeset: :default, pin: :tdi, eset: :default
|
|
89
|
+
timeset :func, timeset: :default, pin: :tdo, eset: :default
|
|
90
|
+
# * now a :jtag timeset
|
|
91
|
+
timeset :func, timeset: :jtag, pin: :tclk, eset: :es_jtag, ts_sheet_pins: timing_sheet_pins
|
|
92
|
+
timeset :func, timeset: :jtag, pin: :tms, eset: :es_jtag
|
|
93
|
+
timeset :func, timeset: :jtag, pin: :tdi, eset: :es_jtag
|
|
94
|
+
timeset :func, timeset: :jtag, pin: :tdo, eset: :es_jtag
|
|
95
|
+
|
|
96
|
+
# * now define a few more AC specs and values
|
|
97
|
+
ac_specset :func, 'cycle', specset: :func_100MHz, nom: { min: '9*ns', typ: '10*ns', max: '11*ns' }
|
|
98
|
+
ac_specset :func, 'cycle', specset: :func_125MHz, nom: { min: '7*ns', typ: '8*ns', max: '9*ns' }
|
|
99
|
+
ac_specset :func, 'new_var1', specset: :func_100MHz, nom: { min: '1*ns', typ: '2*ns', max: '3*ns' }
|
|
100
|
+
ac_specset :func, 'new_var2', specset: :func_125MHz, nom: { min: '4*ns', typ: '5*ns', max: '6*ns' }
|
|
101
|
+
|
|
102
|
+
level_sheet_pins = [:vdd1, :vdd2, :tclk, :tdi, :tdo, :tms]
|
|
103
|
+
|
|
104
|
+
# Define some level options so we can define some Level objects
|
|
105
|
+
pwr_options = {
|
|
106
|
+
vmain: 'vdd_main_val', # Main supply voltage
|
|
107
|
+
valt: 'vdd_alt_val', # Alternate supply voltage
|
|
108
|
+
ifold: 'fold_val', # Supply clamp current
|
|
109
|
+
delay: 'delay_val' # Supply power-up delay
|
|
110
|
+
}
|
|
111
|
+
se_pin_options1 = {
|
|
112
|
+
vil: 'pin_supply * 0.25', # Input drive low
|
|
113
|
+
vih: 'pin_supply * 0.75', # Input drive high
|
|
114
|
+
vol: 'pin_supply * 0.45', # Output compare low
|
|
115
|
+
voh: 'pin_supply * 0.55', # Output compare high
|
|
116
|
+
vcl: 'vclamp_low', # Voltage clamp low
|
|
117
|
+
vch: 'vclamp_low', # Voltage clamp high
|
|
118
|
+
vt: 'pin_supply * 0.50', # Termination voltage
|
|
119
|
+
voutlotyp: '0', #
|
|
120
|
+
vouthityp: '0', #
|
|
121
|
+
dmode: 'Largeswing-VT' # Driver mode (possibly ATE-specific)
|
|
122
|
+
}
|
|
123
|
+
se_pin_options2 = {
|
|
124
|
+
vil: 'pin_supply * 0.10', # Input drive low
|
|
125
|
+
vih: 'pin_supply * 0.90', # Input drive high
|
|
126
|
+
vol: 'pin_supply * 0.50', # Output compare low
|
|
127
|
+
voh: 'pin_supply * 0.50', # Output compare high
|
|
128
|
+
vcl: 'vclamp_low', # Voltage clamp low
|
|
129
|
+
vch: 'vclamp_low', # Voltage clamp high
|
|
130
|
+
vt: 'pin_supply * 0.50', # Termination voltage
|
|
131
|
+
voutlotyp: '0', #
|
|
132
|
+
vouthityp: '0', #
|
|
133
|
+
dmode: 'Largeswing-VT' # Driver mode (possibly ATE-specific)
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
# Define the Level objects that you want to use later to construct edgesets/timesets
|
|
137
|
+
# * the interface puts these in 'level_collection'
|
|
138
|
+
# FORMAT: level <level category>, <level options>
|
|
139
|
+
pwr_level :pwr, pwr_options
|
|
140
|
+
pin_level_se :pin_type1, se_pin_options1
|
|
141
|
+
pin_level_se :pin_type2, se_pin_options2
|
|
142
|
+
|
|
143
|
+
# Assign levels to the pins for levelset sheet ':func'
|
|
144
|
+
# * assign all pins some default levels for starters...
|
|
145
|
+
# * importing levelsets will automatically populate dc_specset variables contained within the equations
|
|
146
|
+
# FORMAT: levelset <levelset sheet name>, pin: <pin_name>, level: <level_object>, es_sheet_pins: <array of pins>, spec_sheet: <AC specsheet name>
|
|
147
|
+
levelset :func, pin: :vdd1, level: level_collection.pwr_group[:pwr], spec_sheet: :func, ls_sheet_pins: level_sheet_pins
|
|
148
|
+
levelset :func, pin: :vdd2, level: level_collection.pwr_group[:pwr], spec_sheet: :func
|
|
149
|
+
levelset :func, pin: :tclk, level: level_collection.pin_group[:pin_type1], spec_sheet: :func
|
|
150
|
+
levelset :func, pin: :tms, level: level_collection.pin_group[:pin_type2], spec_sheet: :func
|
|
151
|
+
levelset :func, pin: :tdi, level: level_collection.pin_group[:pin_type1], spec_sheet: :func
|
|
152
|
+
levelset :func, pin: :tdo, level: level_collection.pin_group[:pin_type2], spec_sheet: :func
|
|
153
|
+
|
|
154
|
+
# * now define a few more AC specs and values
|
|
155
|
+
dc_specset :func, 'vdd_main_val', specset: :power_down_levels, min: { min: '0.1*V' }, nom: { typ: '0.2*V' }, max: { max: '0.3*V' }
|
|
156
|
+
dc_specset :func, 'vdd_alt_val', specset: :power_down_levels, min: { min: '7*V' }, nom: { typ: '8*V' }, max: { max: '9*V' }
|
|
157
|
+
dc_specset :func, 'current1', specset: :power_up_levels, min: { min: '1*mA' }, nom: { typ: '2*mA' }, max: { max: '3*mA' }
|
|
158
|
+
dc_specset :func, 'voltage1', specset: :power_up_levels, min: { min: '4*mV' }, nom: { typ: '5*mV' }, max: { max: '6*mV' }
|
|
159
|
+
end
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: origen_testers
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.6.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Stephen McGinty
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2016-03-
|
|
11
|
+
date: 2016-03-23 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: origen
|
|
@@ -16,14 +16,14 @@ dependencies:
|
|
|
16
16
|
requirements:
|
|
17
17
|
- - ">="
|
|
18
18
|
- !ruby/object:Gem::Version
|
|
19
|
-
version: 0.
|
|
19
|
+
version: 0.7.0
|
|
20
20
|
type: :runtime
|
|
21
21
|
prerelease: false
|
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
|
23
23
|
requirements:
|
|
24
24
|
- - ">="
|
|
25
25
|
- !ruby/object:Gem::Version
|
|
26
|
-
version: 0.
|
|
26
|
+
version: 0.7.0
|
|
27
27
|
- !ruby/object:Gem::Dependency
|
|
28
28
|
name: require_all
|
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -38,6 +38,26 @@ dependencies:
|
|
|
38
38
|
- - "~>"
|
|
39
39
|
- !ruby/object:Gem::Version
|
|
40
40
|
version: '1'
|
|
41
|
+
- !ruby/object:Gem::Dependency
|
|
42
|
+
name: atp
|
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
|
44
|
+
requirements:
|
|
45
|
+
- - "~>"
|
|
46
|
+
- !ruby/object:Gem::Version
|
|
47
|
+
version: '0.4'
|
|
48
|
+
- - ">="
|
|
49
|
+
- !ruby/object:Gem::Version
|
|
50
|
+
version: 0.4.1
|
|
51
|
+
type: :runtime
|
|
52
|
+
prerelease: false
|
|
53
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
54
|
+
requirements:
|
|
55
|
+
- - "~>"
|
|
56
|
+
- !ruby/object:Gem::Version
|
|
57
|
+
version: '0.4'
|
|
58
|
+
- - ">="
|
|
59
|
+
- !ruby/object:Gem::Version
|
|
60
|
+
version: 0.4.1
|
|
41
61
|
- !ruby/object:Gem::Dependency
|
|
42
62
|
name: origen_arm_debug
|
|
43
63
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -108,30 +128,33 @@ files:
|
|
|
108
128
|
- config/users.rb
|
|
109
129
|
- config/version.rb
|
|
110
130
|
- lib/commands/build.rb
|
|
131
|
+
- lib/commands/run.rb
|
|
111
132
|
- lib/origen_testers.rb
|
|
112
133
|
- lib/origen_testers/api.rb
|
|
113
134
|
- lib/origen_testers/basic_test_setups.rb
|
|
114
135
|
- lib/origen_testers/callback_handlers.rb
|
|
115
136
|
- lib/origen_testers/command_based_tester.rb
|
|
116
|
-
- lib/origen_testers/
|
|
117
|
-
- lib/origen_testers/doc/generator.rb
|
|
118
|
-
- lib/origen_testers/doc/generator/flow.rb
|
|
119
|
-
- lib/origen_testers/doc/generator/flow_line.rb
|
|
120
|
-
- lib/origen_testers/doc/generator/test.rb
|
|
121
|
-
- lib/origen_testers/doc/generator/test_group.rb
|
|
122
|
-
- lib/origen_testers/doc/generator/tests.rb
|
|
123
|
-
- lib/origen_testers/doc/model.rb
|
|
137
|
+
- lib/origen_testers/flow.rb
|
|
124
138
|
- lib/origen_testers/generator.rb
|
|
125
|
-
- lib/origen_testers/generator/flow_control_api.rb
|
|
126
139
|
- lib/origen_testers/generator/identity_map.rb
|
|
127
140
|
- lib/origen_testers/generator/placeholder.rb
|
|
128
141
|
- lib/origen_testers/generator/test_numberer.rb
|
|
129
142
|
- lib/origen_testers/igxl_based_tester.rb
|
|
130
143
|
- lib/origen_testers/igxl_based_tester/base.rb
|
|
144
|
+
- lib/origen_testers/igxl_based_tester/base/ac_specsets.rb
|
|
131
145
|
- lib/origen_testers/igxl_based_tester/base/custom_test_instance.rb
|
|
146
|
+
- lib/origen_testers/igxl_based_tester/base/dc_specsets.rb
|
|
147
|
+
- lib/origen_testers/igxl_based_tester/base/edge.rb
|
|
148
|
+
- lib/origen_testers/igxl_based_tester/base/edges.rb
|
|
149
|
+
- lib/origen_testers/igxl_based_tester/base/edgeset.rb
|
|
150
|
+
- lib/origen_testers/igxl_based_tester/base/edgesets.rb
|
|
132
151
|
- lib/origen_testers/igxl_based_tester/base/flow.rb
|
|
133
152
|
- lib/origen_testers/igxl_based_tester/base/flow_line.rb
|
|
134
153
|
- lib/origen_testers/igxl_based_tester/base/generator.rb
|
|
154
|
+
- lib/origen_testers/igxl_based_tester/base/level_io_se.rb
|
|
155
|
+
- lib/origen_testers/igxl_based_tester/base/level_supply.rb
|
|
156
|
+
- lib/origen_testers/igxl_based_tester/base/levels.rb
|
|
157
|
+
- lib/origen_testers/igxl_based_tester/base/levelset.rb
|
|
135
158
|
- lib/origen_testers/igxl_based_tester/base/patgroup.rb
|
|
136
159
|
- lib/origen_testers/igxl_based_tester/base/patgroups.rb
|
|
137
160
|
- lib/origen_testers/igxl_based_tester/base/patset.rb
|
|
@@ -140,10 +163,13 @@ files:
|
|
|
140
163
|
- lib/origen_testers/igxl_based_tester/base/patsubr.rb
|
|
141
164
|
- lib/origen_testers/igxl_based_tester/base/patsubr_pattern.rb
|
|
142
165
|
- lib/origen_testers/igxl_based_tester/base/patsubrs.rb
|
|
166
|
+
- lib/origen_testers/igxl_based_tester/base/pinmap.rb
|
|
143
167
|
- lib/origen_testers/igxl_based_tester/base/test_instance.rb
|
|
144
168
|
- lib/origen_testers/igxl_based_tester/base/test_instance_group.rb
|
|
145
169
|
- lib/origen_testers/igxl_based_tester/base/test_instances.rb
|
|
146
170
|
- lib/origen_testers/igxl_based_tester/base/test_instances/custom_til.rb
|
|
171
|
+
- lib/origen_testers/igxl_based_tester/base/timeset.rb
|
|
172
|
+
- lib/origen_testers/igxl_based_tester/base/timesets.rb
|
|
147
173
|
- lib/origen_testers/igxl_based_tester/files.rb
|
|
148
174
|
- lib/origen_testers/igxl_based_tester/j750.rb
|
|
149
175
|
- lib/origen_testers/igxl_based_tester/j750/custom_test_instance.rb
|
|
@@ -198,11 +224,21 @@ files:
|
|
|
198
224
|
- lib/origen_testers/igxl_based_tester/parser/timeset.rb
|
|
199
225
|
- lib/origen_testers/igxl_based_tester/parser/timesets.rb
|
|
200
226
|
- lib/origen_testers/igxl_based_tester/ultraflex.rb
|
|
227
|
+
- lib/origen_testers/igxl_based_tester/ultraflex/ac_specsets.rb
|
|
201
228
|
- lib/origen_testers/igxl_based_tester/ultraflex/ate_hardware.rb
|
|
202
229
|
- lib/origen_testers/igxl_based_tester/ultraflex/custom_test_instance.rb
|
|
230
|
+
- lib/origen_testers/igxl_based_tester/ultraflex/dc_specsets.rb
|
|
231
|
+
- lib/origen_testers/igxl_based_tester/ultraflex/edge.rb
|
|
232
|
+
- lib/origen_testers/igxl_based_tester/ultraflex/edges.rb
|
|
233
|
+
- lib/origen_testers/igxl_based_tester/ultraflex/edgeset.rb
|
|
234
|
+
- lib/origen_testers/igxl_based_tester/ultraflex/edgesets.rb
|
|
203
235
|
- lib/origen_testers/igxl_based_tester/ultraflex/flow.rb
|
|
204
236
|
- lib/origen_testers/igxl_based_tester/ultraflex/flow_line.rb
|
|
205
237
|
- lib/origen_testers/igxl_based_tester/ultraflex/generator.rb
|
|
238
|
+
- lib/origen_testers/igxl_based_tester/ultraflex/level_io_se.rb
|
|
239
|
+
- lib/origen_testers/igxl_based_tester/ultraflex/level_supply.rb
|
|
240
|
+
- lib/origen_testers/igxl_based_tester/ultraflex/levels.rb
|
|
241
|
+
- lib/origen_testers/igxl_based_tester/ultraflex/levelset.rb
|
|
206
242
|
- lib/origen_testers/igxl_based_tester/ultraflex/patgroup.rb
|
|
207
243
|
- lib/origen_testers/igxl_based_tester/ultraflex/patgroups.rb
|
|
208
244
|
- lib/origen_testers/igxl_based_tester/ultraflex/patset.rb
|
|
@@ -211,15 +247,29 @@ files:
|
|
|
211
247
|
- lib/origen_testers/igxl_based_tester/ultraflex/patsubr.rb
|
|
212
248
|
- lib/origen_testers/igxl_based_tester/ultraflex/patsubr_pattern.rb
|
|
213
249
|
- lib/origen_testers/igxl_based_tester/ultraflex/patsubrs.rb
|
|
250
|
+
- lib/origen_testers/igxl_based_tester/ultraflex/pinmap.rb
|
|
251
|
+
- lib/origen_testers/igxl_based_tester/ultraflex/templates/ac_specsets.txt.erb
|
|
252
|
+
- lib/origen_testers/igxl_based_tester/ultraflex/templates/dc_specsets.txt.erb
|
|
253
|
+
- lib/origen_testers/igxl_based_tester/ultraflex/templates/edgesets.txt.erb
|
|
214
254
|
- lib/origen_testers/igxl_based_tester/ultraflex/templates/flow.txt.erb
|
|
215
255
|
- lib/origen_testers/igxl_based_tester/ultraflex/templates/instances.txt.erb
|
|
256
|
+
- lib/origen_testers/igxl_based_tester/ultraflex/templates/levelset.txt.erb
|
|
216
257
|
- lib/origen_testers/igxl_based_tester/ultraflex/templates/patgroups.txt.erb
|
|
217
258
|
- lib/origen_testers/igxl_based_tester/ultraflex/templates/patsets.txt.erb
|
|
218
259
|
- lib/origen_testers/igxl_based_tester/ultraflex/templates/patsubrs.txt.erb
|
|
260
|
+
- lib/origen_testers/igxl_based_tester/ultraflex/templates/pinmap.txt.erb
|
|
261
|
+
- lib/origen_testers/igxl_based_tester/ultraflex/templates/timesets.txt.erb
|
|
219
262
|
- lib/origen_testers/igxl_based_tester/ultraflex/test_instance.rb
|
|
220
263
|
- lib/origen_testers/igxl_based_tester/ultraflex/test_instance_group.rb
|
|
221
264
|
- lib/origen_testers/igxl_based_tester/ultraflex/test_instances.rb
|
|
265
|
+
- lib/origen_testers/igxl_based_tester/ultraflex/timeset.rb
|
|
266
|
+
- lib/origen_testers/igxl_based_tester/ultraflex/timesets.rb
|
|
222
267
|
- lib/origen_testers/interface.rb
|
|
268
|
+
- lib/origen_testers/no_interface.rb
|
|
269
|
+
- lib/origen_testers/origen_ext/application/runner.rb
|
|
270
|
+
- lib/origen_testers/origen_ext/generator.rb
|
|
271
|
+
- lib/origen_testers/origen_ext/generator/flow.rb
|
|
272
|
+
- lib/origen_testers/origen_ext/generator/resources.rb
|
|
223
273
|
- lib/origen_testers/origen_ext/pins/pin.rb
|
|
224
274
|
- lib/origen_testers/origen_ext/pins/pin_collection.rb
|
|
225
275
|
- lib/origen_testers/parser.rb
|
|
@@ -234,7 +284,6 @@ files:
|
|
|
234
284
|
- lib/origen_testers/smartest_based_tester.rb
|
|
235
285
|
- lib/origen_testers/smartest_based_tester/base.rb
|
|
236
286
|
- lib/origen_testers/smartest_based_tester/base/flow.rb
|
|
237
|
-
- lib/origen_testers/smartest_based_tester/base/flow_node.rb
|
|
238
287
|
- lib/origen_testers/smartest_based_tester/base/generator.rb
|
|
239
288
|
- lib/origen_testers/smartest_based_tester/base/pattern_compiler.rb
|
|
240
289
|
- lib/origen_testers/smartest_based_tester/base/pattern_master.rb
|
|
@@ -252,7 +301,6 @@ files:
|
|
|
252
301
|
- lib/origen_testers/smartest_based_tester/v93k/builder/flow.rb
|
|
253
302
|
- lib/origen_testers/smartest_based_tester/v93k/builder/pattern_master.rb
|
|
254
303
|
- lib/origen_testers/smartest_based_tester/v93k/flow.rb
|
|
255
|
-
- lib/origen_testers/smartest_based_tester/v93k/flow_node.rb
|
|
256
304
|
- lib/origen_testers/smartest_based_tester/v93k/generator.rb
|
|
257
305
|
- lib/origen_testers/smartest_based_tester/v93k/pattern_compiler.rb
|
|
258
306
|
- lib/origen_testers/smartest_based_tester/v93k/pattern_master.rb
|
|
@@ -301,12 +349,14 @@ files:
|
|
|
301
349
|
- program/_iv_resources.rb
|
|
302
350
|
- program/basic_interface.rb
|
|
303
351
|
- program/components/_prb2_main.rb
|
|
352
|
+
- program/components/_temp.rb
|
|
304
353
|
- program/custom_tests.rb
|
|
305
354
|
- program/flow_control.rb
|
|
306
355
|
- program/prb1.rb
|
|
307
356
|
- program/prb1_resources.rb
|
|
308
357
|
- program/prb2.rb
|
|
309
358
|
- program/test.rb
|
|
359
|
+
- program/uflex_resources.rb
|
|
310
360
|
- templates/example.txt.erb
|
|
311
361
|
- templates/j750/_vt_flow.txt.erb
|
|
312
362
|
- templates/j750/_vt_instances.txt.erb
|
|
@@ -335,7 +385,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
335
385
|
version: 1.8.11
|
|
336
386
|
requirements: []
|
|
337
387
|
rubyforge_project:
|
|
338
|
-
rubygems_version: 2.
|
|
388
|
+
rubygems_version: 2.6.2
|
|
339
389
|
signing_key:
|
|
340
390
|
specification_version: 4
|
|
341
391
|
summary: This plugin provides Origen tester models to drive ATE type testers like
|