origen_testers 0.49.2 → 0.50.0

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: 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