origen_testers 0.45.1 → 0.45.2

Sign up to get free protection for your applications and to get access to all the features.
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