origen_testers 0.45.1 → 0.45.2
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 +1 -1
- data/lib/origen_testers/atp/flow.rb +4 -0
- data/lib/origen_testers/igxl_based_tester/base.rb +18 -12
- data/lib/origen_testers/igxl_based_tester/j750.rb +4 -2
- data/lib/origen_testers/igxl_based_tester/ultraflex.rb +6 -2
- data/lib/origen_testers/smartest_based_tester/base.rb +9 -5
- data/pattern/nvm/j750/j750_workout_inhibited.rb +6 -0
- data/pattern/nvm/v93k/v93k_workout_inhibited.rb +5 -0
- metadata +5 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: '09250597b91ce9bfe38f029fa09269acdc311b508cc493d698adf0faaebe4cb7'
|
4
|
+
data.tar.gz: 955d54bdade5925bd6f84a1ccf61f8b477b3a74fcfc1eef2fae9144bb48f95f6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3b97b49afca843c7cf0799fc462062728f2424d463fe2e61eb56b870fe4a9c67254f102b7a12d70afc8082c3cd1a02b466c65756fc2df51e5fd0ee40bbde503e
|
7
|
+
data.tar.gz: ec7d5196fc86b5eec2bfeb64ae82e3fe0f89be4b7993d6d7a7a67f4343fd0b9e8e29bf473ab64c3a1a1ca16fb20cfef65c1b23d4eb0e91f3ef94e8bdd7b96b05
|
data/config/version.rb
CHANGED
@@ -612,6 +612,10 @@ module OrigenTesters::ATP
|
|
612
612
|
else
|
613
613
|
options = {}
|
614
614
|
end
|
615
|
+
if flags.include? nil
|
616
|
+
Origen.log.error("Found Nil flag passed to the '#{method}' method, ensure the flag is passed as a String or a Symbol!")
|
617
|
+
fail
|
618
|
+
end
|
615
619
|
flags = flags.first if flags.size == 1
|
616
620
|
# Legacy option provided by OrigenTesters that permits override of a block enable method by passing
|
617
621
|
# an :or option with a true value
|
@@ -284,7 +284,7 @@ module OrigenTesters
|
|
284
284
|
options = { offset: 0
|
285
285
|
}.merge(options)
|
286
286
|
update_vector microcode: 'stv', offset: options[:offset]
|
287
|
-
last_vector(options[:offset]).contains_capture = true
|
287
|
+
last_vector(options[:offset]).contains_capture = true unless @inhibit_vectors
|
288
288
|
end
|
289
289
|
alias_method :to_hram, :store
|
290
290
|
alias_method :capture, :store
|
@@ -304,8 +304,10 @@ module OrigenTesters
|
|
304
304
|
options = {
|
305
305
|
}.merge(options)
|
306
306
|
|
307
|
-
|
308
|
-
|
307
|
+
unless @inhibit_vectors
|
308
|
+
preset_next_vector microcode: 'stv' do |vector|
|
309
|
+
vector.contains_capture = true
|
310
|
+
end
|
309
311
|
end
|
310
312
|
end
|
311
313
|
alias_method :store!, :store_next_cycle
|
@@ -334,8 +336,10 @@ module OrigenTesters
|
|
334
336
|
options = {
|
335
337
|
offset: 0
|
336
338
|
}.merge(options)
|
337
|
-
|
338
|
-
|
339
|
+
unless @inhibit_vectors
|
340
|
+
called_subroutines << name.to_s.chomp unless called_subroutines.include?(name.to_s.chomp) || @inhibit_vectors
|
341
|
+
update_vector microcode: "call #{name}", offset: options[:offset]
|
342
|
+
end
|
339
343
|
end
|
340
344
|
|
341
345
|
# Start a subroutine.
|
@@ -348,11 +352,13 @@ module OrigenTesters
|
|
348
352
|
# < generate your subroutine vectors here >
|
349
353
|
# $tester.end_subroutine
|
350
354
|
def start_subroutine(name, options = {})
|
351
|
-
|
352
|
-
|
353
|
-
|
354
|
-
|
355
|
-
|
355
|
+
unless @inhibit_vectors
|
356
|
+
local_subroutines << name.to_s.chomp unless local_subroutines.include?(name.to_s.chomp) || @inhibit_vectors
|
357
|
+
if $tester.ultraflex? && (name =~ /keep_?alive/ || options[:keep_alive])
|
358
|
+
microcode "keepalive subr #{name}:"
|
359
|
+
else
|
360
|
+
microcode "global subr #{name}:"
|
361
|
+
end
|
356
362
|
end
|
357
363
|
end
|
358
364
|
|
@@ -587,7 +593,7 @@ module OrigenTesters
|
|
587
593
|
# $tester.label("something_significant",true) # apply global label
|
588
594
|
def label(name, global = false)
|
589
595
|
global_opt = (global) ? 'global ' : ''
|
590
|
-
microcode global_opt + name + ':'
|
596
|
+
microcode global_opt + name + ':' unless @inhibit_vectors
|
591
597
|
end
|
592
598
|
|
593
599
|
# * J750 Specific *
|
@@ -796,7 +802,7 @@ module OrigenTesters
|
|
796
802
|
|
797
803
|
# Override this to force the formatting to match the v1 J750 model (easier diffs)
|
798
804
|
def push_microcode(code) # :nodoc:
|
799
|
-
stage.store(code.ljust(65) + ''.ljust(31))
|
805
|
+
stage.store(code.ljust(65) + ''.ljust(31)) unless @inhibit_vectors
|
800
806
|
end
|
801
807
|
alias_method :microcode, :push_microcode
|
802
808
|
|
@@ -180,8 +180,10 @@ module OrigenTesters
|
|
180
180
|
end
|
181
181
|
|
182
182
|
# retroactively set loop counter values for timeout based on cycles in match loop condition
|
183
|
-
|
184
|
-
|
183
|
+
unless @inhibit_vectors
|
184
|
+
set_loopb_vector.microcode = "loopB #{outer_loop_count} ign ifc icc"
|
185
|
+
set_loopa_vector.microcode = "loopA #{inner_loop_count} ign ifc icc"
|
186
|
+
end
|
185
187
|
|
186
188
|
cc 'Loop back around if time remaining'
|
187
189
|
cycle(microcode: "end_loopA match_inner_loop_#{@unique_counter} icc")
|
@@ -586,8 +586,10 @@ module OrigenTesters
|
|
586
586
|
end
|
587
587
|
|
588
588
|
# retroactively modify the counters based on cycles in match loop conditions
|
589
|
-
|
590
|
-
|
589
|
+
unless @inhibit_vectors
|
590
|
+
set_msb_vector.microcode = "set_msb #{counter_msb}"
|
591
|
+
set_c0_vector.microcode = "set c0 #{counter_lsb}"
|
592
|
+
end
|
591
593
|
|
592
594
|
if match_delay_cycles
|
593
595
|
cc 'Delay to meet timeout value'
|
@@ -677,6 +679,7 @@ module OrigenTesters
|
|
677
679
|
# $tester.cycle
|
678
680
|
# $tester.store(:offset => -2) # Just realized I need to capture that earlier vector
|
679
681
|
def store(*pins)
|
682
|
+
return if @inhibit_vectors
|
680
683
|
options = pins.last.is_a?(Hash) ? pins.pop : {}
|
681
684
|
options = { offset: 0,
|
682
685
|
opcode: 'stv'
|
@@ -741,6 +744,7 @@ module OrigenTesters
|
|
741
744
|
# $tester.store_next_cycle
|
742
745
|
# $tester.cycle # This is the vector that will be captured
|
743
746
|
def store_next_cycle(*pins)
|
747
|
+
return if @inhibit_vectors
|
744
748
|
options = pins.last.is_a?(Hash) ? pins.pop : {}
|
745
749
|
options = {
|
746
750
|
opcode: 'stv'
|
@@ -319,8 +319,10 @@ module OrigenTesters
|
|
319
319
|
pin.restore_state do
|
320
320
|
pin.capture
|
321
321
|
update_vector_pin_val pin, offset: options[:offset]
|
322
|
-
|
323
|
-
|
322
|
+
unless @inhibit_vectors
|
323
|
+
last_vector(options[:offset]).dont_compress = true
|
324
|
+
last_vector(options[:offset]).contains_capture = true
|
325
|
+
end
|
324
326
|
end
|
325
327
|
end
|
326
328
|
end
|
@@ -545,7 +547,7 @@ module OrigenTesters
|
|
545
547
|
number_of_loops = (timeout_in_cycles.to_f / (match_loop_cycle_count + mrpt)).ceil
|
546
548
|
end
|
547
549
|
|
548
|
-
match_microcode.concat(" #{number_of_loops};")
|
550
|
+
match_microcode.concat(" #{number_of_loops};") unless @inhibit_vectors
|
549
551
|
|
550
552
|
# Now do the wait loop, mrpt should always be a multiple of 8
|
551
553
|
microcode "SQPG MRPT #{mrpt};"
|
@@ -587,9 +589,11 @@ module OrigenTesters
|
|
587
589
|
loop_cycles = cycle_count - preloop_cycle_count
|
588
590
|
end
|
589
591
|
|
590
|
-
|
592
|
+
unless @inhibit_vectors
|
593
|
+
number_of_loops = (timeout_in_cycles.to_f / loop_cycles).ceil
|
591
594
|
|
592
|
-
|
595
|
+
loop_microcode.sub!('2', number_of_loops.to_s)
|
596
|
+
end
|
593
597
|
|
594
598
|
if options[:force_fail_on_timeout]
|
595
599
|
fail_conditions.each(&:call)
|
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.45.
|
4
|
+
version: 0.45.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Stephen McGinty
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-
|
11
|
+
date: 2020-02-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: origen
|
@@ -455,8 +455,10 @@ files:
|
|
455
455
|
- pattern/nvm/j750/iterator_test_x_bx.rb
|
456
456
|
- pattern/nvm/j750/j750_halt.rb
|
457
457
|
- pattern/nvm/j750/j750_workout.rb
|
458
|
+
- pattern/nvm/j750/j750_workout_inhibited.rb
|
458
459
|
- pattern/nvm/j750/timing.rb
|
459
460
|
- pattern/nvm/v93k/v93k_workout.rb
|
461
|
+
- pattern/nvm/v93k/v93k_workout_inhibited.rb
|
460
462
|
- pattern/pin_flip.rb
|
461
463
|
- pattern/read_write_reg.rb
|
462
464
|
- pattern/reset.rb
|
@@ -545,8 +547,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
545
547
|
- !ruby/object:Gem::Version
|
546
548
|
version: '0'
|
547
549
|
requirements: []
|
548
|
-
|
549
|
-
rubygems_version: 2.7.7
|
550
|
+
rubygems_version: 3.0.1
|
550
551
|
signing_key:
|
551
552
|
specification_version: 4
|
552
553
|
summary: This plugin provides Origen tester models to drive ATE type testers like
|