origen_testers 0.52.15 → 0.53.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/version.rb +2 -2
- data/lib/commands/build.rb +2 -2
- data/lib/commands/convert.rb +1 -1
- data/lib/commands/run.rb +2 -2
- data/lib/origen_testers/api.rb +3 -0
- data/lib/origen_testers/atp/ast/node.rb +1 -2
- data/lib/origen_testers/atp/flow.rb +36 -24
- data/lib/origen_testers/atp/flow_api.rb +1 -0
- data/lib/origen_testers/atp/parser.rb +6 -4
- data/lib/origen_testers/atp/processor.rb +1 -0
- data/lib/origen_testers/atp/processors/on_pass_fail_remover.rb +1 -0
- data/lib/origen_testers/atp/processors/relationship.rb +2 -4
- data/lib/origen_testers/atp/runner.rb +1 -0
- data/lib/origen_testers/callback_handlers.rb +1 -0
- data/lib/origen_testers/charz/profile.rb +7 -7
- data/lib/origen_testers/charz/routines/search_routine.rb +1 -0
- data/lib/origen_testers/charz/session.rb +1 -1
- data/lib/origen_testers/charz.rb +14 -10
- data/lib/origen_testers/command_based_tester.rb +1 -2
- data/lib/origen_testers/decompiler/nodes.rb +1 -1
- data/lib/origen_testers/decompiler/pattern/enumerable_ext.rb +1 -1
- data/lib/origen_testers/decompiler/pattern/splitter.rb +0 -2
- data/lib/origen_testers/decompiler/pattern.rb +2 -1
- data/lib/origen_testers/flow.rb +2 -3
- data/lib/origen_testers/generator/identity_map.rb +1 -1
- data/lib/origen_testers/generator/test_numberer.rb +1 -3
- data/lib/origen_testers/generator.rb +4 -2
- data/lib/origen_testers/igxl_based_tester/base/ac_specsets.rb +1 -1
- data/lib/origen_testers/igxl_based_tester/base/custom_test_instance.rb +1 -1
- data/lib/origen_testers/igxl_based_tester/base/dc_specsets.rb +1 -1
- data/lib/origen_testers/igxl_based_tester/base/edgesets.rb +1 -1
- data/lib/origen_testers/igxl_based_tester/base/flow_line.rb +11 -17
- data/lib/origen_testers/igxl_based_tester/base/generator.rb +17 -2
- data/lib/origen_testers/igxl_based_tester/base/global_specs.rb +1 -1
- data/lib/origen_testers/igxl_based_tester/base/job.rb +16 -16
- data/lib/origen_testers/igxl_based_tester/base/level_io_se.rb +2 -2
- data/lib/origen_testers/igxl_based_tester/base/levelset.rb +2 -5
- data/lib/origen_testers/igxl_based_tester/base/patgroup.rb +1 -3
- data/lib/origen_testers/igxl_based_tester/base/patset.rb +0 -1
- data/lib/origen_testers/igxl_based_tester/base/patsubr.rb +0 -1
- data/lib/origen_testers/igxl_based_tester/base/test_instance.rb +13 -14
- data/lib/origen_testers/igxl_based_tester/base/test_instance_group.rb +2 -2
- data/lib/origen_testers/igxl_based_tester/base/timesets.rb +1 -1
- data/lib/origen_testers/igxl_based_tester/base/timesets_basic.rb +1 -1
- data/lib/origen_testers/igxl_based_tester/base.rb +16 -19
- data/lib/origen_testers/igxl_based_tester/decompiler/atp.rb +12 -20
- data/lib/origen_testers/igxl_based_tester/j750/flow_line.rb +1 -2
- data/lib/origen_testers/igxl_based_tester/j750/patset_pattern.rb +1 -2
- data/lib/origen_testers/igxl_based_tester/j750/patsubr_pattern.rb +1 -2
- data/lib/origen_testers/igxl_based_tester/j750/test_instance.rb +7 -8
- data/lib/origen_testers/igxl_based_tester/j750.rb +3 -2
- data/lib/origen_testers/igxl_based_tester/j750_hpt/test_instance.rb +5 -6
- data/lib/origen_testers/igxl_based_tester/j750_hpt.rb +1 -1
- data/lib/origen_testers/igxl_based_tester/parser/descriptions.rb +18 -20
- data/lib/origen_testers/igxl_based_tester/parser/test_instance.rb +2 -2
- data/lib/origen_testers/igxl_based_tester/parser.rb +12 -12
- data/lib/origen_testers/igxl_based_tester/ultraflex/ate_hardware.rb +55 -55
- data/lib/origen_testers/igxl_based_tester/ultraflex/flow_line.rb +1 -2
- data/lib/origen_testers/igxl_based_tester/ultraflex/patsubr_pattern.rb +1 -2
- data/lib/origen_testers/igxl_based_tester/ultraflex/test_instance.rb +9 -10
- data/lib/origen_testers/igxl_based_tester/ultraflex.rb +12 -14
- data/lib/origen_testers/igxl_based_tester.rb +1 -1
- data/lib/origen_testers/interface.rb +8 -8
- data/lib/origen_testers/labview_based_tester/pxie6570.rb +2 -0
- data/lib/origen_testers/labview_based_tester.rb +2 -2
- data/lib/origen_testers/origen_ext/pins/pin.rb +6 -5
- data/lib/origen_testers/origen_ext/pins/pin_collection.rb +6 -6
- data/lib/origen_testers/parser/searchable_array.rb +2 -2
- data/lib/origen_testers/parser/searchable_hash.rb +2 -2
- data/lib/origen_testers/parser.rb +1 -1
- data/lib/origen_testers/pattern_compilers/assembler.rb +3 -1
- data/lib/origen_testers/pattern_compilers/base.rb +5 -4
- data/lib/origen_testers/pattern_compilers/igxl_based.rb +9 -3
- data/lib/origen_testers/pattern_compilers/j750.rb +4 -3
- data/lib/origen_testers/pattern_compilers/ultraflex.rb +4 -3
- data/lib/origen_testers/pattern_compilers/v93k.rb +28 -31
- data/lib/origen_testers/pattern_compilers.rb +1 -0
- data/lib/origen_testers/program_generators.rb +6 -0
- data/lib/origen_testers/smartest_based_tester/base/flow.rb +29 -26
- data/lib/origen_testers/smartest_based_tester/base/generator.rb +2 -0
- data/lib/origen_testers/smartest_based_tester/base/limits_file.rb +2 -2
- data/lib/origen_testers/smartest_based_tester/base/pattern_master.rb +3 -3
- data/lib/origen_testers/smartest_based_tester/base/processors/extract_flow_vars.rb +1 -1
- data/lib/origen_testers/smartest_based_tester/base/test_method.rb +3 -0
- data/lib/origen_testers/smartest_based_tester/base/test_methods/dc_tml.rb +1 -1
- data/lib/origen_testers/smartest_based_tester/base/test_methods/limits.rb +1 -1
- data/lib/origen_testers/smartest_based_tester/base/variables_file.rb +1 -1
- data/lib/origen_testers/smartest_based_tester/base.rb +11 -13
- data/lib/origen_testers/smartest_based_tester/decompiler/avc.rb +5 -10
- data/lib/origen_testers/smartest_based_tester/decompiler/nodes.rb +1 -1
- data/lib/origen_testers/smartest_based_tester/decompiler.rb +1 -0
- data/lib/origen_testers/smartest_based_tester/smt8.rb +5 -6
- data/lib/origen_testers/smartest_based_tester/v93k/test_suite.rb +1 -2
- data/lib/origen_testers/smartest_based_tester/v93k.rb +1 -1
- data/lib/origen_testers/smartest_based_tester/v93k_smt8/shmoo_test.rb +3 -2
- data/lib/origen_testers/smartest_based_tester/v93k_smt8/test_suite.rb +5 -4
- data/lib/origen_testers/smartest_based_tester/v93k_smt8.rb +1 -1
- data/lib/origen_testers/stil_based_tester/base.rb +6 -7
- data/lib/origen_testers/test/custom_test_interface.rb +7 -7
- data/lib/origen_testers/test/dut.rb +23 -22
- data/lib/origen_testers/test/interface.rb +9 -7
- data/lib/origen_testers/test/nvm.rb +3 -3
- data/lib/origen_testers/timing/timeset.rb +0 -2
- data/lib/origen_testers/timing/timing_api.rb +2 -3
- data/lib/origen_testers/vector.rb +6 -5
- data/lib/origen_testers/vector_generator.rb +9 -3
- data/lib/origen_testers.rb +1 -1
- metadata +7 -23
|
@@ -107,10 +107,11 @@ module OrigenTesters
|
|
|
107
107
|
end
|
|
108
108
|
|
|
109
109
|
def execute(options = {})
|
|
110
|
-
options = {
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
110
|
+
options = {
|
|
111
|
+
define: false, # whether to define subr or call it
|
|
112
|
+
name: 'executefunc1',
|
|
113
|
+
onemodsub: false # whether to expects subr to be in single module
|
|
114
|
+
}.merge(options)
|
|
114
115
|
|
|
115
116
|
if options[:define]
|
|
116
117
|
# define subroutine
|
|
@@ -128,13 +129,14 @@ module OrigenTesters
|
|
|
128
129
|
|
|
129
130
|
# Match loop functionality
|
|
130
131
|
def match(options = {})
|
|
131
|
-
options = {
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
132
|
+
options = {
|
|
133
|
+
type: :match_pin, # whether to match DONE bit in register or match pin
|
|
134
|
+
# :match_done
|
|
135
|
+
# :match_2pins
|
|
136
|
+
delay_in_us: 5, # match loop delay
|
|
137
|
+
define: false, # whether to define subr or call it
|
|
138
|
+
subr_name: false # default use match type as subr name
|
|
139
|
+
}.merge(options)
|
|
138
140
|
|
|
139
141
|
subr_name = options[:subr_name] ? options[:subr_name] : options[:type].to_s
|
|
140
142
|
|
|
@@ -226,7 +228,7 @@ module OrigenTesters
|
|
|
226
228
|
|
|
227
229
|
def handshake(options = {})
|
|
228
230
|
options = {
|
|
229
|
-
define: false
|
|
231
|
+
define: false # whether to define subr or call it
|
|
230
232
|
}.merge(options)
|
|
231
233
|
|
|
232
234
|
if options[:define]
|
|
@@ -261,12 +263,13 @@ module OrigenTesters
|
|
|
261
263
|
alias_method :keep_alive, :keepalive
|
|
262
264
|
|
|
263
265
|
def digsrc_overlay(options = {})
|
|
264
|
-
options = {
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
266
|
+
options = {
|
|
267
|
+
define: false, # whether to define subr or call it
|
|
268
|
+
subr_name: false, # default use match type as subr name
|
|
269
|
+
digsrc_pins: @digsrc_pins, # defaults to what's defined in $dut
|
|
270
|
+
overlay_reg: nil, # defaults to testme32 register
|
|
271
|
+
overlay_cycle_num: 32 # Only needed if overlay_reg is NOT nil
|
|
272
|
+
}.merge(options)
|
|
270
273
|
if options[:define]
|
|
271
274
|
$tester.start_subroutine(options[:subr_name]) # Start subroutine
|
|
272
275
|
digsrc_pins = $tester.assign_digsrc_pins(options[:digsrc_pins])
|
|
@@ -301,8 +304,7 @@ module OrigenTesters
|
|
|
301
304
|
end
|
|
302
305
|
|
|
303
306
|
def memory_test(options = {})
|
|
304
|
-
options = {
|
|
305
|
-
}.merge(options)
|
|
307
|
+
options = {}.merge(options)
|
|
306
308
|
|
|
307
309
|
$tester.memory_test(inc_counter_x: true, gen_vector: true)
|
|
308
310
|
|
|
@@ -318,8 +320,7 @@ module OrigenTesters
|
|
|
318
320
|
end
|
|
319
321
|
|
|
320
322
|
def freq_count(options = {})
|
|
321
|
-
options = {
|
|
322
|
-
}.merge(options)
|
|
323
|
+
options = {}.merge(options)
|
|
323
324
|
|
|
324
325
|
$tester.freq_count($dut.pin(:tdo), readcode: 73)
|
|
325
326
|
end
|
|
@@ -667,7 +667,7 @@ module OrigenTesters
|
|
|
667
667
|
def ac_specset(sheet_name, expression, options = {})
|
|
668
668
|
options = {
|
|
669
669
|
specset: :default,
|
|
670
|
-
nom: { typ:
|
|
670
|
+
nom: { typ: nil }
|
|
671
671
|
}.merge(options)
|
|
672
672
|
|
|
673
673
|
ss = ac_specsets(sheet_name)
|
|
@@ -677,7 +677,7 @@ module OrigenTesters
|
|
|
677
677
|
# Collects AC Spec object(s) from the given expression and adds them to the given Specset
|
|
678
678
|
def collect_ac_specs(ssname, edge, options = {})
|
|
679
679
|
options = {
|
|
680
|
-
nom: { typ:
|
|
680
|
+
nom: { typ: nil }
|
|
681
681
|
}.merge(options)
|
|
682
682
|
|
|
683
683
|
# Create a Specsets object from the UFlex program generator API
|
|
@@ -698,8 +698,9 @@ module OrigenTesters
|
|
|
698
698
|
}.merge(options)
|
|
699
699
|
|
|
700
700
|
return unless expression.is_a? String
|
|
701
|
+
|
|
701
702
|
# collect all variable names within the expression
|
|
702
|
-
vars = expression.scan(/[a-zA-Z]
|
|
703
|
+
vars = expression.scan(/[a-zA-Z]\w+/).map(&:to_sym)
|
|
703
704
|
vars.each do |var|
|
|
704
705
|
next if var =~ /^(d0_edge|d1_edge|d2_edge|d3_edge|c1_edge|c2_edge)$/
|
|
705
706
|
# The substitutions below are used for backward compatibility
|
|
@@ -734,8 +735,8 @@ module OrigenTesters
|
|
|
734
735
|
vcl: -1, # Voltage clamp low
|
|
735
736
|
vch: 2.5, # Voltage clamp high
|
|
736
737
|
vt: 0.9, # Termination voltage
|
|
737
|
-
voutlotyp: 0,
|
|
738
|
-
vouthityp: 0,
|
|
738
|
+
voutlotyp: 0,
|
|
739
|
+
vouthityp: 0,
|
|
739
740
|
dmode: 'Largeswing-VT' # Driver mode
|
|
740
741
|
}.merge(options)
|
|
741
742
|
|
|
@@ -801,7 +802,8 @@ module OrigenTesters
|
|
|
801
802
|
}.merge(options)
|
|
802
803
|
|
|
803
804
|
return unless expression.is_a? String
|
|
804
|
-
|
|
805
|
+
|
|
806
|
+
vars = expression.scan(/[a-zA-Z]\w+/).map(&:to_sym)
|
|
805
807
|
vars.each do |var|
|
|
806
808
|
next if var =~ /^(nA|uA|mA|A|nV|uV|mV|V)$/i
|
|
807
809
|
|
|
@@ -844,7 +846,7 @@ module OrigenTesters
|
|
|
844
846
|
|
|
845
847
|
def reference(reference, options = {})
|
|
846
848
|
options = {
|
|
847
|
-
comment:
|
|
849
|
+
comment: nil
|
|
848
850
|
}.merge(options)
|
|
849
851
|
|
|
850
852
|
references('Refs').add(reference, options)
|
|
@@ -48,7 +48,7 @@ module OrigenTesters
|
|
|
48
48
|
|
|
49
49
|
class NVMSub < NVM
|
|
50
50
|
def redefine_data_reg
|
|
51
|
-
add_reg :data,
|
|
51
|
+
add_reg :data, 0x40, 16, d: { pos: 0, bits: 16 }
|
|
52
52
|
end
|
|
53
53
|
|
|
54
54
|
# Tests that the block format for defining registers works
|
|
@@ -57,7 +57,7 @@ module OrigenTesters
|
|
|
57
57
|
# This is dreg
|
|
58
58
|
add_reg :dreg, 0x1000, size: 16 do
|
|
59
59
|
# This is dreg bit 15
|
|
60
|
-
bit 15,
|
|
60
|
+
bit 15, :bit15, reset: 1
|
|
61
61
|
# **Bit 14** - This does something cool
|
|
62
62
|
#
|
|
63
63
|
# 0 | Coolness is disabled
|
|
@@ -86,7 +86,7 @@ module OrigenTesters
|
|
|
86
86
|
bit 15, :bit15, reset: 1, description: 'This is dreg3 bit 15'
|
|
87
87
|
bit 14, :bit14, description: "**Bit 14** - This does something cool\n\n0 | Coolness is disabled\n1 | Coolness is enabled"
|
|
88
88
|
bits 13..8, :upper, description: 'This is dreg3 bit upper'
|
|
89
|
-
bit 7..0,
|
|
89
|
+
bit 7..0, :lower, writable: false, reset: 0x55, description: "This is dreg3 bit lower\nThis is dreg3 bit lower line 2"
|
|
90
90
|
end
|
|
91
91
|
end
|
|
92
92
|
end
|
|
@@ -65,7 +65,6 @@ module OrigenTesters
|
|
|
65
65
|
end
|
|
66
66
|
|
|
67
67
|
# Return the period
|
|
68
|
-
p
|
|
69
68
|
end
|
|
70
69
|
|
|
71
70
|
# Indicates whether a period_in_ns has been defined for this timeset.
|
|
@@ -134,7 +133,6 @@ module OrigenTesters
|
|
|
134
133
|
# )
|
|
135
134
|
# end
|
|
136
135
|
@period_in_ns = p
|
|
137
|
-
@period_in_ns
|
|
138
136
|
end
|
|
139
137
|
end
|
|
140
138
|
end
|
|
@@ -142,7 +142,7 @@ module OrigenTesters
|
|
|
142
142
|
time_in_ns: 0,
|
|
143
143
|
time_in_ms: 0,
|
|
144
144
|
time_in_s: 0,
|
|
145
|
-
match: false
|
|
145
|
+
match: false # Set to true to invoke a match loop where the supplied delay
|
|
146
146
|
# will become the timeout duration
|
|
147
147
|
}.merge(options)
|
|
148
148
|
|
|
@@ -255,8 +255,7 @@ module OrigenTesters
|
|
|
255
255
|
# end
|
|
256
256
|
def count(options = {})
|
|
257
257
|
options = { period_in_cycles: 0, period_in_ms: 0, period_in_us: 0, period_in_ns: 0,
|
|
258
|
-
duration_in_cycles: 0, duration_in_ms: 0, duration_in_us: 0, duration_in_ns: 0
|
|
259
|
-
}.merge(options)
|
|
258
|
+
duration_in_cycles: 0, duration_in_ms: 0, duration_in_us: 0, duration_in_ns: 0 }.merge(options)
|
|
260
259
|
|
|
261
260
|
period_cycles = options[:period_in_cycles] + ms_to_cycles(options[:period_in_ms]) +
|
|
262
261
|
us_to_cycles(options[:period_in_us]) + ns_to_cycles(options[:period_in_ns])
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
module OrigenTesters
|
|
2
2
|
# A simple class to model a vector
|
|
3
3
|
class Vector
|
|
4
|
-
attr_accessor :repeat, :microcode, :timeset, :pin_vals,
|
|
4
|
+
attr_accessor :repeat, :microcode, :timeset, :pin_vals, # rubocop:disable Lint/DuplicateMethods
|
|
5
5
|
:number, :cycle_number, :dont_compress,
|
|
6
6
|
:comments, :inline_comment, :cycle, :number, :contains_capture
|
|
7
7
|
|
|
@@ -12,7 +12,7 @@ module OrigenTesters
|
|
|
12
12
|
end
|
|
13
13
|
end
|
|
14
14
|
|
|
15
|
-
def comments
|
|
15
|
+
def comments # rubocop:disable Lint/DuplicateMethods
|
|
16
16
|
@comments ||= []
|
|
17
17
|
end
|
|
18
18
|
|
|
@@ -73,6 +73,7 @@ module OrigenTesters
|
|
|
73
73
|
if timeset.period_in_ns % tset.period_in_ns != 0
|
|
74
74
|
fail "The period of timeset #{timeset.name} is not a multiple of the period of timeset #{tset.name}!"
|
|
75
75
|
end
|
|
76
|
+
|
|
76
77
|
if contains_capture
|
|
77
78
|
vector_modification_required = true
|
|
78
79
|
elsif $tester.timing_toggled_pins.empty?
|
|
@@ -177,7 +178,7 @@ module OrigenTesters
|
|
|
177
178
|
Origen.app.pin_map.sort_by { |id, pin| pin.order }.map { |id, pin| pin }
|
|
178
179
|
end
|
|
179
180
|
|
|
180
|
-
def microcode=(val)
|
|
181
|
+
def microcode=(val) # rubocop:disable Lint/DuplicateMethods
|
|
181
182
|
if val && has_microcode? && @microcode != val
|
|
182
183
|
fail "Trying to assign microcode: #{val}, but vector already has microcode: #{@microcode}"
|
|
183
184
|
else
|
|
@@ -186,7 +187,7 @@ module OrigenTesters
|
|
|
186
187
|
end
|
|
187
188
|
|
|
188
189
|
# Since repeat 0 is non-intuitive every vector implicitly has a repeat of 1
|
|
189
|
-
def repeat
|
|
190
|
+
def repeat # rubocop:disable Lint/DuplicateMethods
|
|
190
191
|
@repeat || 1
|
|
191
192
|
end
|
|
192
193
|
|
|
@@ -196,7 +197,7 @@ module OrigenTesters
|
|
|
196
197
|
|
|
197
198
|
def ==(obj)
|
|
198
199
|
if obj.is_a?(Vector)
|
|
199
|
-
|
|
200
|
+
has_microcode? == obj.has_microcode? &&
|
|
200
201
|
timeset == obj.timeset &&
|
|
201
202
|
pin_vals == obj.pin_vals
|
|
202
203
|
else
|
|
@@ -22,6 +22,7 @@ module OrigenTesters
|
|
|
22
22
|
if number > 1 && number.odd?
|
|
23
23
|
fail 'Only even numbers can be supplied for the vector_group_size!'
|
|
24
24
|
end
|
|
25
|
+
|
|
25
26
|
# Each pattern should run with its own tester instance, but just in case
|
|
26
27
|
@pipeline = nil
|
|
27
28
|
@vector_group_size = number
|
|
@@ -128,7 +129,7 @@ module OrigenTesters
|
|
|
128
129
|
# Make the file name available to the template
|
|
129
130
|
Origen.generator.compiler.options[:file] = template
|
|
130
131
|
options.each { |k, v| Origen.generator.compiler.options[k] = v }
|
|
131
|
-
code = Origen.generator.compiler.insert(ERB.new(File.read(template.to_s),
|
|
132
|
+
code = Origen.generator.compiler.insert(ERB.new(File.read(template.to_s), trim_mode: Origen.config.erb_trim_mode, eoutvar: eoutvar).result)
|
|
132
133
|
code.strip!
|
|
133
134
|
push_microcode code
|
|
134
135
|
end
|
|
@@ -166,7 +167,7 @@ module OrigenTesters
|
|
|
166
167
|
end
|
|
167
168
|
|
|
168
169
|
def _render(method) # :nodoc:
|
|
169
|
-
if
|
|
170
|
+
if respond_to?(method)
|
|
170
171
|
template = send(method)
|
|
171
172
|
# Record the current file, this can be used to resolve any relative path
|
|
172
173
|
# references in the file about to be compiled
|
|
@@ -177,7 +178,7 @@ module OrigenTesters
|
|
|
177
178
|
eoutvar = Pathname.new(template).basename('.*').basename('.*').to_s.gsub('-', '_')
|
|
178
179
|
# Make the file name available to the template
|
|
179
180
|
Origen.generator.compiler.options[:file] = template
|
|
180
|
-
push_microcode Origen.generator.compiler.insert(ERB.new(File.read(template.to_s),
|
|
181
|
+
push_microcode Origen.generator.compiler.insert(ERB.new(File.read(template.to_s), trim_mode: Origen.config.erb_trim_mode, eoutvar: eoutvar).result)
|
|
181
182
|
end
|
|
182
183
|
end
|
|
183
184
|
|
|
@@ -296,6 +297,7 @@ module OrigenTesters
|
|
|
296
297
|
end
|
|
297
298
|
else
|
|
298
299
|
next if vec.respond_to?(:repeat) && vec.repeat == 0 # skip vectors with repeat of 0!
|
|
300
|
+
|
|
299
301
|
pipeline << vec
|
|
300
302
|
end
|
|
301
303
|
pipeline.flush do |vector|
|
|
@@ -465,6 +467,7 @@ module OrigenTesters
|
|
|
465
467
|
else
|
|
466
468
|
pin = Origen.pin_bank.find(id)
|
|
467
469
|
fail "Undefined pin (#{id}) added to pin_pattern_order" unless pin
|
|
470
|
+
|
|
468
471
|
ordered_pins << pin
|
|
469
472
|
pin.groups.each do |name, _group|
|
|
470
473
|
pingroups.delete(name)
|
|
@@ -480,16 +483,19 @@ module OrigenTesters
|
|
|
480
483
|
if group = Origen.pin_bank.pin_groups[id]
|
|
481
484
|
# see if group is already in ordered_pins
|
|
482
485
|
fail "Pin group #{id} is defined both in pin_pattern_order and pin_pattern_exclude" unless pingroups.include? id
|
|
486
|
+
|
|
483
487
|
# this is a pin group, delete all pins in group
|
|
484
488
|
pingroups.delete(id)
|
|
485
489
|
group.each do |pin|
|
|
486
490
|
fail "Pin (#{pin.name}) in group (#{group.id}) is defined both in pin_pattern_order and pin_pattern_exclude" unless pins.include? pin.id
|
|
491
|
+
|
|
487
492
|
pins.delete(pin.id)
|
|
488
493
|
end
|
|
489
494
|
else # this is a pin, delete the pin
|
|
490
495
|
pin = Origen.pin_bank.find(id)
|
|
491
496
|
fail "Undefined pin (#{id}) added to pin_pattern_exclude" unless pin
|
|
492
497
|
fail "Pin #{pin.name} is defined both in pin_pattern_order and pin_pattern_exclude" unless pins.include? pin.id
|
|
498
|
+
|
|
493
499
|
pin.name = id
|
|
494
500
|
pins.delete(pin.id)
|
|
495
501
|
pin.groups.each do |name, _group|
|
data/lib/origen_testers.rb
CHANGED
metadata
CHANGED
|
@@ -1,29 +1,15 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: origen_testers
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.53.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Stephen McGinty
|
|
8
|
-
|
|
8
|
+
- Priyavadan Kumar
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
|
-
- !ruby/object:Gem::Dependency
|
|
14
|
-
name: origen
|
|
15
|
-
requirement: !ruby/object:Gem::Requirement
|
|
16
|
-
requirements:
|
|
17
|
-
- - ">="
|
|
18
|
-
- !ruby/object:Gem::Version
|
|
19
|
-
version: 0.60.7
|
|
20
|
-
type: :runtime
|
|
21
|
-
prerelease: false
|
|
22
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
23
|
-
requirements:
|
|
24
|
-
- - ">="
|
|
25
|
-
- !ruby/object:Gem::Version
|
|
26
|
-
version: 0.60.7
|
|
27
13
|
- !ruby/object:Gem::Dependency
|
|
28
14
|
name: dentaku
|
|
29
15
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -148,14 +134,14 @@ dependencies:
|
|
|
148
134
|
requirements:
|
|
149
135
|
- - '='
|
|
150
136
|
- !ruby/object:Gem::Version
|
|
151
|
-
version: 0.
|
|
137
|
+
version: 0.1.2
|
|
152
138
|
type: :runtime
|
|
153
139
|
prerelease: false
|
|
154
140
|
version_requirements: !ruby/object:Gem::Requirement
|
|
155
141
|
requirements:
|
|
156
142
|
- - '='
|
|
157
143
|
- !ruby/object:Gem::Version
|
|
158
|
-
version: 0.
|
|
144
|
+
version: 0.1.2
|
|
159
145
|
- !ruby/object:Gem::Dependency
|
|
160
146
|
name: parallel
|
|
161
147
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -170,9 +156,9 @@ dependencies:
|
|
|
170
156
|
- - ">="
|
|
171
157
|
- !ruby/object:Gem::Version
|
|
172
158
|
version: '1.24'
|
|
173
|
-
description:
|
|
174
159
|
email:
|
|
175
160
|
- stephen.f.mcginty@gmail.com
|
|
161
|
+
- priyavadan@gmail.com
|
|
176
162
|
executables: []
|
|
177
163
|
extensions: []
|
|
178
164
|
extra_rdoc_files: []
|
|
@@ -605,7 +591,6 @@ files:
|
|
|
605
591
|
homepage: http://origen-sdk.org/testers
|
|
606
592
|
licenses: []
|
|
607
593
|
metadata: {}
|
|
608
|
-
post_install_message:
|
|
609
594
|
rdoc_options: []
|
|
610
595
|
require_paths:
|
|
611
596
|
- lib
|
|
@@ -620,8 +605,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
620
605
|
- !ruby/object:Gem::Version
|
|
621
606
|
version: '0'
|
|
622
607
|
requirements: []
|
|
623
|
-
rubygems_version:
|
|
624
|
-
signing_key:
|
|
608
|
+
rubygems_version: 4.0.3
|
|
625
609
|
specification_version: 4
|
|
626
610
|
summary: This plugin provides Origen tester models to drive ATE type testers like
|
|
627
611
|
the J750, UltraFLEX, V93K,...
|