origen_testers 0.49.1 → 0.49.4

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: 75b1fa14ed70e74c6a983c7214b55a575b346563b296ef6381b0d90be0ac9383
4
- data.tar.gz: 644ea157e1e0b4fd0586ef09360566dd6b9d9bbfa1fb216da16b9f6de3688616
3
+ metadata.gz: b7fb18cb0a867b3e7d16d411f4d90d3f8a7e5164e68648bdab6228a88c9493db
4
+ data.tar.gz: 203c0d17be3c4da9ae74db8467d4f7d4f0d838dd7c3ed53dc6eabf0fa8dd0042
5
5
  SHA512:
6
- metadata.gz: 67267f477fb2fa7796e92e0d742137781b8450125fee7756c8d3996f7511db6de66069b8a1564ca436295fd928318fc2a85c47a4d198155953b8126cca49f569
7
- data.tar.gz: a9bb49fb80816c242860a099f9215c30d58080d535aae0cefd61f5f7875939968ba0a376af3b87c7839e52eef57713835b1f2fbab32b67a4e64a5aa7b92b242f
6
+ metadata.gz: a1ed85ac570989eef01297d1db96b02bee44de409972e56c4136adac466acc49384a0f2ab9ba91ca44d5889e3a1569dd3ca08734dc72ac62f735a0bcd446ba05
7
+ data.tar.gz: ee18f2e4c82ccf3e5d6ce1676d58b8acbce4ed76491e3b00ad5641d21da361db9c509afee9d2b0add262d1529d8082de4a9125f1d3406e274b9b7ca9d531e13e
data/config/version.rb CHANGED
@@ -1,7 +1,7 @@
1
1
  module OrigenTesters
2
2
  MAJOR = 0
3
3
  MINOR = 49
4
- BUGFIX = 1
4
+ BUGFIX = 4
5
5
  DEV = nil
6
6
  VERSION = [MAJOR, MINOR, BUGFIX].join(".") + (DEV ? ".pre#{DEV}" : '')
7
7
  end
@@ -11,6 +11,7 @@ module OrigenTesters
11
11
  attr_accessor :includes
12
12
  attr_accessor :comment_level
13
13
  attr_accessor :generating
14
+
14
15
  # Get/Set the overlay style
15
16
  #
16
17
  # This method changes the way overlay is handled.
@@ -19,6 +20,7 @@ module OrigenTesters
19
20
  # @example
20
21
  # tester.overlay_style = :label
21
22
  attr_accessor :overlay_style
23
+
22
24
  # Get/Set the capture style
23
25
  #
24
26
  # This method changes the way tester.store() implements the store
@@ -49,10 +51,18 @@ module OrigenTesters
49
51
  end
50
52
  alias_method :pattern_extension, :pat_extension
51
53
 
54
+ def comment_char=(val)
55
+ @comment_char = val
56
+ end
57
+
52
58
  def comment_char
53
59
  @comment_char || '//'
54
60
  end
55
61
 
62
+ def program_comment_char=(val)
63
+ @program_comment_char = val
64
+ end
65
+
56
66
  def program_comment_char
57
67
  @program_comment_char || comment_char
58
68
  end
@@ -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}"
@@ -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
 
@@ -99,8 +99,10 @@ module OrigenTesters
99
99
  @min_repeat_loop = 33
100
100
  if smt8?
101
101
  @pat_extension = 'pat'
102
+ @program_comment_char = ['println', '//']
102
103
  else
103
104
  @pat_extension = 'avc'
105
+ @program_comment_char = ['print_dl', '//']
104
106
  end
105
107
  @compress = true
106
108
  # @support_repeat_previous = true
@@ -465,7 +467,6 @@ module OrigenTesters
465
467
  # Ensure the match pins are don't care by default
466
468
  pin.dont_care
467
469
  options[:pin2].dont_care if options[:pin2]
468
-
469
470
  if !options[:pin2]
470
471
  cc "for the #{pin.name.upcase} pin to go #{state.to_s.upcase}"
471
472
  match_block(timeout_in_cycles, options) do |match_or_conditions, fail_conditions|
@@ -0,0 +1,3 @@
1
+ Pattern.create do
2
+ tester.digital_instrument = 'hsdp' if tester.respond_to?(:digital_instrument)
3
+ end
data/program/prb1.rb CHANGED
@@ -8,6 +8,10 @@ Flow.create interface: 'OrigenTesters::Test::Interface', flow_description: 'Prob
8
8
  self.resources_filename = 'prb1'
9
9
  end
10
10
 
11
+ # Extra log below not in approved/ folder to show that comments are
12
+ # being skipped correctly during the difference checks
13
+ log 'PRB1 Test Flow Version 00001 - do not copy me to approved!'
14
+
11
15
  import 'components/prb1_main'
12
16
 
13
17
  import 'test' # import top-level test.rb directly, note that Flow.create options of sub-flow will be ignored!
@@ -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.1
4
+ version: 0.49.4
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-08-13 00:00:00.000000000 Z
11
+ date: 2022-02-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: origen
@@ -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