origen_testers 0.7.7 → 0.7.8
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/config/commands.rb +7 -0
- data/config/version.rb +1 -1
- data/lib/origen_testers/igxl_based_tester/base/generator.rb +1 -0
- data/lib/origen_testers/interface.rb +102 -19
- data/lib/origen_testers/origen_ext/generator.rb +19 -2
- data/lib/origen_testers/smartest_based_tester/base.rb +2 -6
- data/lib/origen_testers/smartest_based_tester/base/flow.rb +8 -2
- data/lib/origen_testers/smartest_based_tester/base/generator.rb +49 -13
- data/lib/origen_testers/smartest_based_tester/base/pattern_compiler.rb +12 -3
- data/lib/origen_testers/smartest_based_tester/base/pattern_master.rb +31 -9
- data/lib/origen_testers/smartest_based_tester/base/test_method.rb +19 -1
- data/lib/origen_testers/smartest_based_tester/base/test_methods/dc_tml.rb +1 -1
- data/lib/origen_testers/smartest_based_tester/base/test_methods/limits.rb +4 -0
- data/lib/origen_testers/smartest_based_tester/base/test_suite.rb +5 -0
- data/lib/origen_testers/smartest_based_tester/base/test_suites.rb +2 -6
- data/lib/origen_testers/smartest_based_tester/v93k/flow.rb +1 -1
- data/lib/origen_testers/smartest_based_tester/v93k/templates/template.aiv.erb +4 -4
- data/lib/origen_testers/smartest_based_tester/v93k/templates/template.pmfl.erb +1 -1
- data/lib/origen_testers/smartest_based_tester/v93k/templates/{template.flow.erb → template.tf.erb} +0 -0
- metadata +5 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0fef29207283a7c7837cfaef6fb5d32d4a422292
|
4
|
+
data.tar.gz: 4d41a6c74b72ef2fffae771928ec1356d7f989ba
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0624f4f177bae4b5ad179601a22504a56dd8ca907b26bd6feca823443978c9575c5fd03f38f36a8e709f7caa1bedfec993be5c520045371b9178fd5320fff917
|
7
|
+
data.tar.gz: cbc5987d9c38140931121c5da1d9f1720b30ec02f8621cc7490aee665d3c24cda457dedb7931c1096b2a9273e6e233ff16ff2fecb4b6e011918f756871b06b87
|
data/config/commands.rb
CHANGED
@@ -21,6 +21,12 @@ aliases = {
|
|
21
21
|
# Now branch to the specific task code
|
22
22
|
case @command
|
23
23
|
|
24
|
+
when "tags"
|
25
|
+
Dir.chdir Origen.root do
|
26
|
+
system "ripper-tags --recursive lib"
|
27
|
+
end
|
28
|
+
exit 0
|
29
|
+
|
24
30
|
# Run the unit tests
|
25
31
|
when "specs"
|
26
32
|
require "rspec"
|
@@ -68,6 +74,7 @@ else
|
|
68
74
|
specs Run the specs (tests), -c will enable coverage
|
69
75
|
examples Run the examples (tests), -c will enable coverage
|
70
76
|
test Run both specs and examples, -c will enable coverage
|
77
|
+
tags Generate ctags for this app
|
71
78
|
EOT
|
72
79
|
|
73
80
|
end
|
data/config/version.rb
CHANGED
@@ -15,6 +15,19 @@ module OrigenTesters
|
|
15
15
|
end
|
16
16
|
end
|
17
17
|
|
18
|
+
class PatternArray < ::Array
|
19
|
+
def <<(pat)
|
20
|
+
push(pat)
|
21
|
+
end
|
22
|
+
|
23
|
+
# Override the array push method to capture the pattern under the new API, but
|
24
|
+
# maintain the old one where a pattern reference was just pushed to the
|
25
|
+
# referenced_patterns array
|
26
|
+
def push(pat)
|
27
|
+
Origen.interface.record_pattern_reference(pat)
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
18
31
|
def self.with_resources_mode
|
19
32
|
orig = @resources_mode
|
20
33
|
@resources_mode = true
|
@@ -100,38 +113,108 @@ module OrigenTesters
|
|
100
113
|
|
101
114
|
def on_program_completion(options = {})
|
102
115
|
reset_globals
|
116
|
+
@@pattern_references = {}
|
103
117
|
@@referenced_patterns = nil
|
104
|
-
@@referenced_subroutine_patterns = nil
|
105
118
|
end
|
106
119
|
|
120
|
+
# A secondary pattern is one where the pattern has been created by Origen as an output from
|
121
|
+
# generating another pattern (a primary pattern). For example, on V93K anytime a tester
|
122
|
+
# handshake is done, the pattern will be split into separate components, such as
|
123
|
+
# meas_bgap.avc (the primary pattern) and meas_bgap_part1.avc (a secondary pattern).
|
124
|
+
#
|
125
|
+
# Any such secondary pattern references should be pushed to this array, rather than the
|
126
|
+
# referenced_patterns array.
|
127
|
+
# By using the dedicated secondary array, the pattern will not appear in the referenced.list
|
128
|
+
# file so that Origen is not asked to generate it (since it will be created naturally from
|
129
|
+
# the primary pattern reference).
|
130
|
+
# However if the ATE requires a reference to the pattern (e.g. the V93K pattern master file),
|
131
|
+
# then it will be included in the relevant ATE files.
|
132
|
+
def record_pattern_reference(name, options = {})
|
133
|
+
if name.is_a?(String) || name.is_a?(Symbol)
|
134
|
+
name = name.to_s
|
135
|
+
else
|
136
|
+
fail "Pattern name must be a string or a symbol, not a #{name.class}"
|
137
|
+
end
|
138
|
+
# Help out the user and force any multi-part patterns to :ate type
|
139
|
+
unless options[:type]
|
140
|
+
if name.sub(/\..*/, '') =~ /part\d+$/
|
141
|
+
options[:type] = :ate
|
142
|
+
end
|
143
|
+
end
|
144
|
+
unless options[:type] == :origen
|
145
|
+
# Inform the current generator that it has a new pattern reference to handle
|
146
|
+
if respond_to?(:pattern_reference_recorded)
|
147
|
+
pattern_reference_recorded(name, options)
|
148
|
+
end
|
149
|
+
end
|
150
|
+
base = options[:subroutine] ? pattern_references[:subroutine] : pattern_references[:main]
|
151
|
+
case options[:type]
|
152
|
+
when :origen
|
153
|
+
base[:origen] << name
|
154
|
+
when :ate
|
155
|
+
base[:ate] << name
|
156
|
+
when nil
|
157
|
+
base[:all] << name
|
158
|
+
else
|
159
|
+
fail "Unknown pattern reference type, #{options[:type]}, valid values are :origen or :ate"
|
160
|
+
end
|
161
|
+
nil
|
162
|
+
end
|
163
|
+
|
164
|
+
def pattern_references
|
165
|
+
@@pattern_references ||= {}
|
166
|
+
@@pattern_references[pattern_references_name] ||= {
|
167
|
+
main: {
|
168
|
+
all: [],
|
169
|
+
origen: [],
|
170
|
+
ate: []
|
171
|
+
},
|
172
|
+
subroutine: {
|
173
|
+
all: [],
|
174
|
+
origen: [],
|
175
|
+
ate: []
|
176
|
+
}
|
177
|
+
}
|
178
|
+
end
|
179
|
+
|
180
|
+
def all_pattern_references
|
181
|
+
pattern_references
|
182
|
+
@@pattern_references
|
183
|
+
end
|
184
|
+
|
185
|
+
def pattern_references_name=(name)
|
186
|
+
@pattern_references_name = name
|
187
|
+
end
|
188
|
+
|
189
|
+
def pattern_references_name
|
190
|
+
@pattern_references_name || 'global'
|
191
|
+
end
|
192
|
+
|
193
|
+
# @deprecated Use record_pattern_reference instead
|
194
|
+
#
|
107
195
|
# All generators should push to this array whenever they reference a pattern
|
108
196
|
# so that it is captured in the pattern list, e.g.
|
109
197
|
# Origen.interface.referenced_patterns << pattern
|
198
|
+
#
|
199
|
+
# If the ATE platform also has a pattern list, e.g. the pattern master file on V93K,
|
200
|
+
# then this will also be updated.
|
201
|
+
# Duplicates will be automatically eliminated, so no duplicate checking should be
|
202
|
+
# performed on the application side.
|
110
203
|
def referenced_patterns
|
111
|
-
@@referenced_patterns ||=
|
112
|
-
end
|
113
|
-
|
114
|
-
# All generators should push to this array whenever they reference a subroutine
|
115
|
-
# pattern so that it is captured in the pattern list, e.g.
|
116
|
-
# Origen.interface.referenced_subroutine_patterns << pattern
|
117
|
-
def referenced_subroutine_patterns
|
118
|
-
unless Origen.tester.v93k?
|
119
|
-
fail 'referenced_subroutine_patterns is currently only implemented for V93k!'
|
120
|
-
end
|
121
|
-
@@referenced_subroutine_patterns ||= []
|
204
|
+
@@referenced_patterns ||= PatternArray.new
|
122
205
|
end
|
123
206
|
|
124
207
|
# Remove duplicates and file extensions from the referenced pattern lists
|
125
208
|
def clean_referenced_patterns
|
126
209
|
refs = [:referenced_patterns]
|
127
|
-
refs << :referenced_subroutine_patterns if Origen.tester.v93k?
|
210
|
+
# refs << :referenced_subroutine_patterns if Origen.tester.v93k?
|
128
211
|
refs.each do |ref|
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
pat
|
133
|
-
end
|
134
|
-
ref
|
212
|
+
var = send(ref)
|
213
|
+
var = var.uniq.map do |pat|
|
214
|
+
pat = pat.sub(/\..*/, '')
|
215
|
+
pat unless pat =~ /_part\d+$/
|
216
|
+
end.uniq.compact
|
217
|
+
singleton_class.class_variable_set("@@#{ref}", var)
|
135
218
|
end
|
136
219
|
end
|
137
220
|
|
@@ -7,6 +7,8 @@ else
|
|
7
7
|
end
|
8
8
|
module Origen
|
9
9
|
class Generator
|
10
|
+
include Comparator
|
11
|
+
|
10
12
|
# Makes more sense for this plugin to own this method now
|
11
13
|
def generate_program(file, options)
|
12
14
|
Origen.file_handler.resolve_files(file, ignore_with_prefix: '_', default_dir: "#{Origen.root}/program") do |path|
|
@@ -26,10 +28,25 @@ module Origen
|
|
26
28
|
dir = Pathname.new(file).dirname
|
27
29
|
FileUtils.mkdir_p(dir) unless dir.exist?
|
28
30
|
File.open(file, 'w') do |f|
|
29
|
-
Origen.interface.
|
30
|
-
|
31
|
+
pats = Origen.interface.all_pattern_references.map do |name, refs|
|
32
|
+
refs[:main][:all] + refs[:main][:origen]
|
33
|
+
end.flatten.uniq.sort
|
34
|
+
unless pats.empty?
|
35
|
+
f.puts '# Main patterns'
|
36
|
+
pats.each { |p| f.puts p }
|
37
|
+
f.puts
|
38
|
+
end
|
39
|
+
|
40
|
+
pats = Origen.interface.all_pattern_references.map do |name, refs|
|
41
|
+
refs[:subroutine][:all] + refs[:subroutine][:origen]
|
42
|
+
end.flatten.uniq.sort
|
43
|
+
unless pats.empty?
|
44
|
+
f.puts '# Subroutine patterns'
|
45
|
+
pats.each { |p| f.puts p }
|
31
46
|
end
|
32
47
|
end
|
48
|
+
ref_file = File.join(Origen.file_handler.reference_directory, Pathname.new(file).basename)
|
49
|
+
check_for_changes(file, ref_file)
|
33
50
|
end
|
34
51
|
Origen.interface.on_program_completion(options)
|
35
52
|
end
|
@@ -75,12 +75,8 @@ module OrigenTesters
|
|
75
75
|
end
|
76
76
|
alias_method :capture, :store
|
77
77
|
|
78
|
-
#
|
79
|
-
#
|
80
|
-
# This method applys a store vector (stv) opcode to the next vector to be generated,
|
81
|
-
# note that is does not actually generate a new vector.
|
82
|
-
#
|
83
|
-
# On J750 the pins argument is ignored since the tester only supports whole vector capture.
|
78
|
+
# Same as the store method, except that the capture will be applied to the next
|
79
|
+
# vector to be generated.
|
84
80
|
#
|
85
81
|
# @example
|
86
82
|
# $tester.store_next_cycle
|
@@ -4,10 +4,10 @@ module OrigenTesters
|
|
4
4
|
class Flow < ATP::Formatter
|
5
5
|
include OrigenTesters::Flow
|
6
6
|
|
7
|
-
attr_accessor :test_suites, :test_methods, :
|
7
|
+
attr_accessor :test_suites, :test_methods, :lines, :stack
|
8
8
|
|
9
9
|
def subdirectory
|
10
|
-
'testflow'
|
10
|
+
'testflow/mfh.testflow.group'
|
11
11
|
end
|
12
12
|
|
13
13
|
def filename
|
@@ -26,6 +26,12 @@ module OrigenTesters
|
|
26
26
|
@runtime_control_variables ||= []
|
27
27
|
end
|
28
28
|
|
29
|
+
def at_flow_start
|
30
|
+
end
|
31
|
+
|
32
|
+
def at_flow_end
|
33
|
+
end
|
34
|
+
|
29
35
|
def finalize(options = {})
|
30
36
|
super
|
31
37
|
test_suites.finalize
|
@@ -16,6 +16,8 @@ module OrigenTesters
|
|
16
16
|
def initialize(options = {})
|
17
17
|
super
|
18
18
|
@initialized = true
|
19
|
+
@@pattern_masters ||= {}
|
20
|
+
@@pattern_compilers ||= {}
|
19
21
|
end
|
20
22
|
|
21
23
|
def add_tml(name, methods)
|
@@ -27,16 +29,34 @@ module OrigenTesters
|
|
27
29
|
# @api private
|
28
30
|
def at_flow_start
|
29
31
|
flow.at_flow_start
|
32
|
+
@pattern_master_filename = nil
|
33
|
+
end
|
34
|
+
|
35
|
+
# @api private
|
36
|
+
def at_flow_end
|
37
|
+
flow.at_flow_end
|
30
38
|
end
|
31
39
|
|
32
40
|
# @api private
|
33
41
|
def at_run_start
|
34
42
|
flow.at_run_start
|
35
43
|
@@flow_sheets = nil
|
44
|
+
@@pattern_masters = nil
|
45
|
+
@@pattern_compilers = nil
|
36
46
|
end
|
37
47
|
alias_method :reset_globals, :at_run_start
|
38
48
|
|
39
49
|
def resources_filename=(name)
|
50
|
+
self.pattern_master_filename = name
|
51
|
+
self.pattern_references_name = name
|
52
|
+
end
|
53
|
+
|
54
|
+
def pattern_master_filename=(name)
|
55
|
+
@pattern_master_filename = name
|
56
|
+
end
|
57
|
+
|
58
|
+
def pattern_master_filename
|
59
|
+
@pattern_master_filename || 'global'
|
40
60
|
end
|
41
61
|
|
42
62
|
def flow(filename = Origen.file_handler.current_file.basename('.rb').to_s)
|
@@ -48,35 +68,48 @@ module OrigenTesters
|
|
48
68
|
p.filename = f
|
49
69
|
p.test_suites ||= platform::TestSuites.new(p)
|
50
70
|
p.test_methods ||= platform::TestMethods.new(p)
|
51
|
-
p.pattern_master ||= platform::PatternMaster.new(p)
|
52
71
|
flow_sheets[f] = p
|
53
72
|
end
|
54
73
|
|
55
|
-
# Returns
|
56
|
-
#
|
57
|
-
#
|
74
|
+
# Returns the pattern master file (.pmfl) for the current flow, by default a common pattern
|
75
|
+
# master file called 'global' will be used for all flows.
|
76
|
+
# To use a different one set the resources_filename at the start of the flow.
|
58
77
|
def pattern_master
|
59
|
-
|
78
|
+
@@pattern_masters ||= {}
|
79
|
+
@@pattern_masters[pattern_master_filename] ||= begin
|
60
80
|
m = platform::PatternMaster.new(manually_register: true)
|
61
|
-
name =
|
81
|
+
name = "#{pattern_master_filename}.pmfl"
|
62
82
|
name = "#{Origen.config.program_prefix}_#{name}" if Origen.config.program_prefix
|
63
83
|
m.filename = name
|
84
|
+
m.id = pattern_master_filename
|
64
85
|
m
|
65
86
|
end
|
66
87
|
end
|
67
88
|
|
68
|
-
#
|
69
|
-
#
|
89
|
+
# Returns the pattern compiler file (.aiv) for the current flow, by default a common pattern
|
90
|
+
# compiler file called 'global' will be used for all flows.
|
91
|
+
# To use a different one set the resources_filename at the start of the flow.
|
70
92
|
def pattern_compiler
|
71
|
-
|
93
|
+
@@pattern_compilers ||= {}
|
94
|
+
@@pattern_compilers[pattern_master_filename] ||= begin
|
72
95
|
m = platform::PatternCompiler.new(manually_register: true)
|
73
|
-
name =
|
96
|
+
name = "#{pattern_master_filename}.aiv"
|
74
97
|
name = "#{Origen.config.program_prefix}_#{name}" if Origen.config.program_prefix
|
75
98
|
m.filename = name
|
99
|
+
m.id = pattern_master_filename
|
76
100
|
m
|
77
101
|
end
|
78
102
|
end
|
79
103
|
|
104
|
+
# @api private
|
105
|
+
def pattern_reference_recorded(name, options = {})
|
106
|
+
# Will be called everytime a pattern reference is made that the ATE should be aware of,
|
107
|
+
# don't need to remember it as it can be fetched from all_pattern_references later, but
|
108
|
+
# need to instantiate a pattern master and compiler to handle it later
|
109
|
+
pattern_master
|
110
|
+
pattern_compiler
|
111
|
+
end
|
112
|
+
|
80
113
|
def test_suites
|
81
114
|
flow.test_suites
|
82
115
|
end
|
@@ -95,10 +128,13 @@ module OrigenTesters
|
|
95
128
|
g = []
|
96
129
|
flow_sheets.each do |_name, sheet|
|
97
130
|
g << sheet
|
98
|
-
g << sheet.pattern_master
|
99
131
|
end
|
100
|
-
|
101
|
-
|
132
|
+
Hash(@@pattern_masters).each do |name, sheet|
|
133
|
+
g << sheet
|
134
|
+
end
|
135
|
+
Hash(@@pattern_compilers).each do |name, sheet|
|
136
|
+
g << sheet
|
137
|
+
end
|
102
138
|
g
|
103
139
|
end
|
104
140
|
|
@@ -5,17 +5,26 @@ module OrigenTesters
|
|
5
5
|
class PatternCompiler
|
6
6
|
include OrigenTesters::Generator
|
7
7
|
|
8
|
-
attr_accessor :filename
|
8
|
+
attr_accessor :filename, :part_patterns, :id
|
9
9
|
|
10
10
|
def initialize(flow = nil)
|
11
|
+
@part_patterns = []
|
11
12
|
end
|
12
13
|
|
13
14
|
def subroutines
|
14
|
-
|
15
|
+
(references[:subroutine][:all] + references[:subroutine][:ate]).map do |p|
|
16
|
+
p.strip.sub(/\..*/, '')
|
17
|
+
end.uniq.sort
|
15
18
|
end
|
16
19
|
|
17
20
|
def patterns
|
18
|
-
|
21
|
+
(references[:main][:all] + references[:main][:ate]).map do |p|
|
22
|
+
p.strip.sub(/\..*/, '')
|
23
|
+
end.uniq.sort
|
24
|
+
end
|
25
|
+
|
26
|
+
def references
|
27
|
+
Origen.interface.all_pattern_references[id]
|
19
28
|
end
|
20
29
|
end
|
21
30
|
end
|
@@ -6,7 +6,7 @@ module OrigenTesters
|
|
6
6
|
include OrigenTesters::Generator
|
7
7
|
|
8
8
|
attr_reader :flow, :paths
|
9
|
-
attr_accessor :filename
|
9
|
+
attr_accessor :filename, :id
|
10
10
|
|
11
11
|
def initialize(flow = nil)
|
12
12
|
@flow = flow
|
@@ -14,20 +14,42 @@ module OrigenTesters
|
|
14
14
|
end
|
15
15
|
|
16
16
|
def filename
|
17
|
-
@filename || flow.filename.sub('.
|
17
|
+
@filename || flow.filename.sub('.tf', '.pmfl')
|
18
18
|
end
|
19
19
|
|
20
20
|
def subdirectory
|
21
21
|
'vectors'
|
22
22
|
end
|
23
23
|
|
24
|
-
def
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
24
|
+
def paths
|
25
|
+
{ '.' => patterns }
|
26
|
+
end
|
27
|
+
|
28
|
+
# def add(name, options = {})
|
29
|
+
# name, subdir = extract_subdir(name, options)
|
30
|
+
# name += '.binl.gz' unless name =~ /binl.gz$/
|
31
|
+
# # Don't want to ask Origen to compile these, but do want them in the v93k
|
32
|
+
# # compile list
|
33
|
+
# if name =~ /_part\d+\.binl\.gz$/
|
34
|
+
# Origen.interface.pattern_compiler.part_patterns << name
|
35
|
+
# else
|
36
|
+
# Origen.interface.referenced_patterns << name
|
37
|
+
# end
|
38
|
+
# paths[subdir] ||= []
|
39
|
+
# # Just add it, duplicates will be removed at render time
|
40
|
+
# paths[subdir] << name unless paths[subdir].include?(name)
|
41
|
+
# end
|
42
|
+
|
43
|
+
def patterns
|
44
|
+
(references[:subroutine][:all] + references[:subroutine][:ate] +
|
45
|
+
references[:main][:all] + references[:main][:ate]).map do |p|
|
46
|
+
p = p.strip
|
47
|
+
p += '.binl.gz' unless p =~ /binl.gz$/
|
48
|
+
end.uniq
|
49
|
+
end
|
50
|
+
|
51
|
+
def references
|
52
|
+
Origen.interface.all_pattern_references[id]
|
31
53
|
end
|
32
54
|
|
33
55
|
private
|
@@ -89,7 +89,14 @@ module OrigenTesters
|
|
89
89
|
type = parameters[attr]
|
90
90
|
else
|
91
91
|
# The type is based on the value of another attribute
|
92
|
-
|
92
|
+
name = clean_attr_name(parameters[attr])
|
93
|
+
if respond_to?(name)
|
94
|
+
type = send(name)
|
95
|
+
elsif respond_to?(name.sub(/b$/, ''))
|
96
|
+
type = inverse_of(send(name.sub(/b$/, '')))
|
97
|
+
else
|
98
|
+
fail "Unknown attribute type: #{parameters[attr]}"
|
99
|
+
end
|
93
100
|
end
|
94
101
|
case type
|
95
102
|
when :current, 'CURR'
|
@@ -130,6 +137,17 @@ module OrigenTesters
|
|
130
137
|
|
131
138
|
private
|
132
139
|
|
140
|
+
def inverse_of(type)
|
141
|
+
case type
|
142
|
+
when :current, 'CURR'
|
143
|
+
:voltage
|
144
|
+
when :voltage, 'VOLT'
|
145
|
+
:current
|
146
|
+
else
|
147
|
+
fail "Don't know the inverse of type: #{type}"
|
148
|
+
end
|
149
|
+
end
|
150
|
+
|
133
151
|
def clean_attr_name(name)
|
134
152
|
name.to_s.gsub(/\.|-/, '_')
|
135
153
|
end
|
@@ -41,7 +41,7 @@ module OrigenTesters
|
|
41
41
|
pinlist: [:string, '@'],
|
42
42
|
force_mode: [:string, 'VOLT', %w(VOLT CURR)],
|
43
43
|
force_value: [:force_mode, 3800.mV],
|
44
|
-
spmu_clamp: [:
|
44
|
+
spmu_clamp: [:force_modeb, 0],
|
45
45
|
precharge: [:string, 'OFF', %w(ON OFF)],
|
46
46
|
precharge_voltage: [:voltage, 0],
|
47
47
|
settling_time: [:time, 0],
|
@@ -6,6 +6,10 @@ module OrigenTesters
|
|
6
6
|
attr_reader :test_method
|
7
7
|
attr_accessor :lo_limit, :hi_limit
|
8
8
|
attr_accessor :unit
|
9
|
+
alias_method :lo, :lo_limit
|
10
|
+
alias_method :lo=, :lo_limit=
|
11
|
+
alias_method :hi, :hi_limit
|
12
|
+
alias_method :hi=, :hi_limit=
|
9
13
|
|
10
14
|
def initialize(test_method)
|
11
15
|
@test_method = test_method
|
@@ -32,12 +32,8 @@ module OrigenTesters
|
|
32
32
|
end
|
33
33
|
|
34
34
|
def finalize
|
35
|
-
collection.each do |suite|
|
36
|
-
|
37
|
-
flow.pattern_master.add suite.pattern
|
38
|
-
Origen.interface.pattern_master.add suite.pattern
|
39
|
-
end
|
40
|
-
end
|
35
|
+
# collection.each do |suite|
|
36
|
+
# end
|
41
37
|
end
|
42
38
|
|
43
39
|
private
|
@@ -3,7 +3,7 @@ module OrigenTesters
|
|
3
3
|
class V93K
|
4
4
|
require 'origen_testers/smartest_based_tester/base/flow'
|
5
5
|
class Flow < Base::Flow
|
6
|
-
TEMPLATE = "#{Origen.root!}/lib/origen_testers/smartest_based_tester/v93k/templates/template.
|
6
|
+
TEMPLATE = "#{Origen.root!}/lib/origen_testers/smartest_based_tester/v93k/templates/template.tf.erb"
|
7
7
|
end
|
8
8
|
end
|
9
9
|
end
|
@@ -9,9 +9,9 @@ single_binary_pattern_dir ./BINL/
|
|
9
9
|
AI_V2B_OPTIONS -ALT -c <%= $dut.name.to_s.upcase %>.vbc -k -z PS800
|
10
10
|
|
11
11
|
PATTERNS name tmf_file v2b_options
|
12
|
-
% subroutines.
|
13
|
-
<%= pattern
|
12
|
+
% subroutines.each do |pattern|
|
13
|
+
<%= pattern %> <%= $dut.name.to_s.upcase %>.tmf -s
|
14
14
|
% end
|
15
|
-
% patterns.
|
16
|
-
<%= pattern
|
15
|
+
% patterns.each do |pattern|
|
16
|
+
<%= pattern %> <%= $dut.name.to_s.upcase %>.tmf
|
17
17
|
% end
|
data/lib/origen_testers/smartest_based_tester/v93k/templates/{template.flow.erb → template.tf.erb}
RENAMED
File without changes
|
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.7.
|
4
|
+
version: 0.7.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Stephen McGinty
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-08-
|
11
|
+
date: 2016-08-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: origen
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 0.7.
|
19
|
+
version: 0.7.23
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 0.7.
|
26
|
+
version: 0.7.23
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: require_all
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -319,8 +319,8 @@ files:
|
|
319
319
|
- lib/origen_testers/smartest_based_tester/v93k/pattern_compiler.rb
|
320
320
|
- lib/origen_testers/smartest_based_tester/v93k/pattern_master.rb
|
321
321
|
- lib/origen_testers/smartest_based_tester/v93k/templates/template.aiv.erb
|
322
|
-
- lib/origen_testers/smartest_based_tester/v93k/templates/template.flow.erb
|
323
322
|
- lib/origen_testers/smartest_based_tester/v93k/templates/template.pmfl.erb
|
323
|
+
- lib/origen_testers/smartest_based_tester/v93k/templates/template.tf.erb
|
324
324
|
- lib/origen_testers/smartest_based_tester/v93k/test_method.rb
|
325
325
|
- lib/origen_testers/smartest_based_tester/v93k/test_methods.rb
|
326
326
|
- lib/origen_testers/smartest_based_tester/v93k/test_suite.rb
|
@@ -406,4 +406,3 @@ specification_version: 4
|
|
406
406
|
summary: This plugin provides Origen tester models to drive ATE type testers like
|
407
407
|
the J750, UltraFLEX, V93K,...
|
408
408
|
test_files: []
|
409
|
-
has_rdoc:
|