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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: cceebf2a514d026d06372b7c11f75e3d904c050582a8e489e51fac4bb7248e39
4
- data.tar.gz: 972c73615c5bb0d7841b9d361d1e8d2f7852fa3c6ca9679b7d582795bdc418ee
3
+ metadata.gz: '09250597b91ce9bfe38f029fa09269acdc311b508cc493d698adf0faaebe4cb7'
4
+ data.tar.gz: 955d54bdade5925bd6f84a1ccf61f8b477b3a74fcfc1eef2fae9144bb48f95f6
5
5
  SHA512:
6
- metadata.gz: 0af29d48b36fab76af9e36dccf1a5f9189b9e83707e0405d8af503003299ae15359e9f007e5d7e4f4c2a566c7317a55a74f4f7771d07d5f08f4eb6715f504ff3
7
- data.tar.gz: b45e3938548fdf79d65b2011eb2fd6ad5a25f62db03f61f608ea36686fc10f9f86eb429207f346328421bd9ee133592a0f2af9608ef6593a4b08e730090c4672
6
+ metadata.gz: 3b97b49afca843c7cf0799fc462062728f2424d463fe2e61eb56b870fe4a9c67254f102b7a12d70afc8082c3cd1a02b466c65756fc2df51e5fd0ee40bbde503e
7
+ data.tar.gz: ec7d5196fc86b5eec2bfeb64ae82e3fe0f89be4b7993d6d7a7a67f4343fd0b9e8e29bf473ab64c3a1a1ca16fb20cfef65c1b23d4eb0e91f3ef94e8bdd7b96b05
@@ -1,7 +1,7 @@
1
1
  module OrigenTesters
2
2
  MAJOR = 0
3
3
  MINOR = 45
4
- BUGFIX = 1
4
+ BUGFIX = 2
5
5
  DEV = nil
6
6
  VERSION = [MAJOR, MINOR, BUGFIX].join(".") + (DEV ? ".pre#{DEV}" : '')
7
7
  end
@@ -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
- preset_next_vector microcode: 'stv' do |vector|
308
- vector.contains_capture = true
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
- called_subroutines << name.to_s.chomp unless called_subroutines.include?(name.to_s.chomp) || @inhibit_vectors
338
- update_vector microcode: "call #{name}", offset: options[:offset]
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
- local_subroutines << name.to_s.chomp unless local_subroutines.include?(name.to_s.chomp) || @inhibit_vectors
352
- if $tester.ultraflex? && (name =~ /keep_?alive/ || options[:keep_alive])
353
- microcode "keepalive subr #{name}:"
354
- else
355
- microcode "global subr #{name}:"
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
- set_loopb_vector.microcode = "loopB #{outer_loop_count} ign ifc icc"
184
- set_loopa_vector.microcode = "loopA #{inner_loop_count} ign ifc icc"
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
- set_msb_vector.microcode = "set_msb #{counter_msb}"
590
- set_c0_vector.microcode = "set c0 #{counter_lsb}"
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
- last_vector(options[:offset]).dont_compress = true
323
- last_vector(options[:offset]).contains_capture = true
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
- number_of_loops = (timeout_in_cycles.to_f / loop_cycles).ceil
592
+ unless @inhibit_vectors
593
+ number_of_loops = (timeout_in_cycles.to_f / loop_cycles).ceil
591
594
 
592
- loop_microcode.sub!('2', number_of_loops.to_s)
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)
@@ -0,0 +1,6 @@
1
+ Pattern.sequence skip_startup: true do |seq|
2
+ tester.set_timeset('nvmbist', 40)
3
+ tester.inhibit_vectors_and_comments do
4
+ seq.run :j750_workout
5
+ end
6
+ end
@@ -0,0 +1,5 @@
1
+ Pattern.sequence do |seq|
2
+ tester.inhibit_vectors_and_comments do
3
+ seq.run :v93k_workout
4
+ end
5
+ 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.45.1
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-01-28 00:00:00.000000000 Z
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
- rubyforge_project:
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