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 +4 -4
- data/config/version.rb +1 -1
- data/lib/origen_testers/api.rb +10 -0
- data/lib/origen_testers/charz/profile.rb +13 -0
- data/lib/origen_testers/igxl_based_tester/base.rb +1 -1
- data/lib/origen_testers/igxl_based_tester/ultraflex.rb +8 -3
- data/lib/origen_testers/smartest_based_tester/base.rb +2 -1
- data/pattern/uflex_digital_instrument.rb +3 -0
- data/program/prb1.rb +4 -0
- data/templates/origen_guides/pattern/ultraflex.md.erb +12 -0
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b7fb18cb0a867b3e7d16d411f4d90d3f8a7e5164e68648bdab6228a88c9493db
|
4
|
+
data.tar.gz: 203c0d17be3c4da9ae74db8467d4f7d4f0d838dd7c3ed53dc6eabf0fa8dd0042
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a1ed85ac570989eef01297d1db96b02bee44de409972e56c4136adac466acc49384a0f2ab9ba91ca44d5889e3a1569dd3ca08734dc72ac62f735a0bcd446ba05
|
7
|
+
data.tar.gz: ee18f2e4c82ccf3e5d6ce1676d58b8acbce4ed76491e3b00ad5641d21da361db9c509afee9d2b0add262d1529d8082de4a9125f1d3406e274b9b7ca9d531e13e
|
data/config/version.rb
CHANGED
data/lib/origen_testers/api.rb
CHANGED
@@ -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 =
|
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|
|
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.
|
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:
|
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
|