origen_testers 0.49.1 → 0.49.4

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