origen_testers 0.49.2 → 0.50.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4ea968535c042745fa87c069932af23a54532acc9a0e22583a38ae58e25b2b87
4
- data.tar.gz: aec4d331fa4a4933c31228500d450846dbdd954f5e44087d727b752ae51df952
3
+ metadata.gz: e5895221d7385ac33677fffba9d998bf29a475978677f740968f1cfda57677e1
4
+ data.tar.gz: 5f623aacb11d0ea9b56b36fd3186cf32dbf2724e034de5d2b1822e02c507aa53
5
5
  SHA512:
6
- metadata.gz: 119ed16f37c02c94dbe2648df2019275729cb3827dfcebedff30d1beacd5b2ff329edc70eaeafed1f3ea22cfab234f8b2a1b5c46a0b9673ebb53c8c1842b8a63
7
- data.tar.gz: 00e51035094d97540785dae4ca1ada4e229bbe5b9f89d7183d66feb32a4ec8e7afac6c22c62133cf30c502e851b89167be3cb28b08410bbcf9ff2c48bfa1ef4d
6
+ metadata.gz: bae858530cf088b08ac1938411815e6d67fe86524fa98824f328583dfa6c319e5143588b868edd16ffef31a119e665e64cde113d0ea5c71ba8dd0ddb3b899529
7
+ data.tar.gz: 368c6d87bf5fb030e83cf96283c0d6ce43844a442f2719a10a76ddf3c2f4906ef7cd4012d7fdea9bf5eec4f39aedfaa0f1bba0276892978e2e91c26495ac9168
data/config/version.rb CHANGED
@@ -1,7 +1,7 @@
1
1
  module OrigenTesters
2
2
  MAJOR = 0
3
- MINOR = 49
4
- BUGFIX = 2
3
+ MINOR = 50
4
+ BUGFIX = 0
5
5
  DEV = nil
6
6
  VERSION = [MAJOR, MINOR, BUGFIX].join(".") + (DEV ? ".pre#{DEV}" : '')
7
7
  end
@@ -337,8 +337,11 @@ module OrigenTesters::ATP
337
337
 
338
338
  name = (options[:name] || options[:tname] || options[:test_name])
339
339
  unless name
340
- [:name, :tname, :test_name].each do |m|
341
- name ||= instance.respond_to?(m) ? instance.send(m) : nil
340
+ # Starting in Ruby3 type Symbol responds to name
341
+ unless instance.is_a?(Symbol)
342
+ [:name, :tname, :test_name].each do |m|
343
+ name ||= instance.respond_to?(m) ? instance.send(m) : nil
344
+ end
342
345
  end
343
346
  end
344
347
  children << n1(:name, name) if name
@@ -2,6 +2,7 @@ require 'sexpistol'
2
2
  module OrigenTesters::ATP
3
3
  class Parser < Sexpistol
4
4
  def initialize
5
+ # This accessor moves to Sexpistol::Parser in newer versions of the gem
5
6
  self.ruby_keyword_literals = true
6
7
  end
7
8
 
@@ -35,6 +35,19 @@ module OrigenTesters
35
35
  def attrs_ok?
36
36
  return if @quality_check == false
37
37
 
38
+ unless @routines.is_a?(Array)
39
+ Origen.log.error "Profile #{id}: routines is expected to be of type <Array>, but is instead of type <#{@routines.class}>!"
40
+ fail
41
+ end
42
+
43
+ # allowing a config for empty routines for usecase of
44
+ # determining routines on the fly dynamically
45
+ if @routines.empty? && !@allow_empty_routines
46
+ Origen.log.error "Profile #{id}: routines array is empty!"
47
+ Origen.log.warn "If you'd like to enable profile creation without routines, set the profile's @allow_empty_routines attribute to true"
48
+ fail
49
+ end
50
+
38
51
  unknown_routines = @routines - @defined_routines
39
52
  unless unknown_routines.empty?
40
53
  Origen.log.error "Profile #{id}: unknown routines: #{unknown_routines}"
@@ -52,7 +52,7 @@ module OrigenTesters
52
52
  end
53
53
 
54
54
  def split!
55
- section_indices = split(splitter_config)
55
+ section_indices = split(**splitter_config)
56
56
 
57
57
  # Check that we found each section in the pattern.
58
58
  if section_indices[:pinlist_start].nil?
@@ -51,7 +51,11 @@ module OrigenTesters
51
51
  include EnumerableExt
52
52
  include SpecHelpers
53
53
 
54
- def initialize(source, direct_source: false, no_verify: false)
54
+ def initialize(source, options = {})
55
+ options = { direct_source: false, no_verify: false }.merge(options)
56
+ direct_source = options[:direct_source]
57
+ no_verify = options[:no_verify]
58
+
55
59
  if source.is_a?(File)
56
60
  source = source.path
57
61
  end
@@ -28,7 +28,7 @@ module OrigenTesters
28
28
 
29
29
  # Returns a new IGXLBasedTester instance, normally there would only ever be one of these
30
30
  # assigned to the global variable such as $tester by your target.
31
- def initialize
31
+ def initialize(options = {})
32
32
  @unique_counter = 0
33
33
  @counter_lsb_bits = 0
34
34
  @counter_msb_bits = 0
@@ -4,6 +4,10 @@ module OrigenTesters
4
4
  class UltraFLEX < Base
5
5
  autoload :Generator, 'origen_testers/igxl_based_tester/ultraflex/generator.rb'
6
6
 
7
+ # Read or update the digital instrument
8
+ # Ex: tester.digital_instrument = 'hsdmq'
9
+ attr_accessor :digital_instrument
10
+
7
11
  # Tester model to generate .atp patterns for the Teradyne UltraFLEX
8
12
  #
9
13
  # == Basic Usage
@@ -18,8 +22,9 @@ module OrigenTesters
18
22
 
19
23
  # Returns a new UltraFLEX instance, normally there would only ever be one of these
20
24
  # assigned to the global variable such as $tester by your target.
21
- def initialize
22
- super
25
+ def initialize(options = {})
26
+ super(options)
27
+ options = { digital_instrument: 'hsdm' }.merge(options)
23
28
  @pipeline_depth = 255 # for single mode
24
29
  @software_version = '8.10.10'
25
30
  @name = 'ultraflex'
@@ -36,7 +41,7 @@ module OrigenTesters
36
41
  # this handled in pattern_header below
37
42
  @min_pattern_vectors = (@opcode_mode == :single) ? 64 : 128
38
43
 
39
- @digital_instrument = 'hsdm' # 'hsdm' for HSD1000 and UP800, ok with UP1600 though
44
+ @digital_instrument = options[:digital_instrument] # 'hsdm' for HSD1000 and UP800, ok with UP1600 though
40
45
 
41
46
  @capture_state = 'V' # STV requires valid 'V' expect data
42
47
 
@@ -0,0 +1,3 @@
1
+ Pattern.create do
2
+ tester.digital_instrument = 'hsdp' if tester.respond_to?(:digital_instrument)
3
+ end
@@ -27,4 +27,16 @@ for a given pin.
27
27
  # Overlay operations can happen after this point
28
28
  ~~~
29
29
 
30
+ ### Digital Instrument
31
+
32
+ The default digital instrument used is hsdm. This can be changed with either a create option or through an accessor:
33
+
34
+ ~~~ruby
35
+ # Instantiate with a different digital instrument
36
+ OrigenTesters::UltraFLEX.new(digital_instrument: 'hsdmq')
37
+
38
+ # set the digital instrument after instantiation
39
+ tester.digital_instrument = 'hsdmq'
40
+ ~~~
41
+
30
42
  % 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.49.2
4
+ version: 0.50.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: 2021-09-13 00:00:00.000000000 Z
11
+ date: 2022-05-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: origen
@@ -146,16 +146,16 @@ dependencies:
146
146
  name: sexpistol
147
147
  requirement: !ruby/object:Gem::Requirement
148
148
  requirements:
149
- - - "~>"
149
+ - - '='
150
150
  - !ruby/object:Gem::Version
151
- version: '0.0'
151
+ version: 0.0.7
152
152
  type: :runtime
153
153
  prerelease: false
154
154
  version_requirements: !ruby/object:Gem::Requirement
155
155
  requirements:
156
- - - "~>"
156
+ - - '='
157
157
  - !ruby/object:Gem::Version
158
- version: '0.0'
158
+ version: 0.0.7
159
159
  description:
160
160
  email:
161
161
  - stephen.f.mcginty@gmail.com
@@ -516,6 +516,7 @@ files:
516
516
  - pattern/tester_overlay.rb
517
517
  - pattern/tester_overlay_no_start.rb
518
518
  - pattern/tester_store.rb
519
+ - pattern/uflex_digital_instrument.rb
519
520
  - program/_additional_erase.rb
520
521
  - program/_efa_resources.rb
521
522
  - program/_erase.rb