origen_testers 0.7.9 → 0.7.10

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
  SHA1:
3
- metadata.gz: 6244c25bef50d180f012dd648c56a16557082e41
4
- data.tar.gz: 901fdc6849503a4149272d65a72474efee0887f5
3
+ metadata.gz: 8fa93b1de5dc4b7588e87bedbf2766dfde8fb16e
4
+ data.tar.gz: d1513d3d83ea18680d577f7ffab62a9ec17a6dec
5
5
  SHA512:
6
- metadata.gz: fcd1d57220bc8fc4e2beadf8dc0c41f4eaa588c4f6f249ee167af2cfec7902ad86fa3625cac9dc52299328b7eed01276734b8337a71e7e80c6d3c6f5e3add4fc
7
- data.tar.gz: b855192520b92abdec8c4dc3df3e82b215fa1b160612da2f4320fea3dfad4541cb96ec7c5b9f6e1d1548949b71db5f311f6394701b3a3497ff521fd7d9dfb8f6
6
+ metadata.gz: 12dfc6462fdeacb4d8044447b78c5144115dd711008e637bde53772ef46974b209be09f8fb6af392dd6c73ac8b75e39b4423f98b6de02de5521cfc405dab1821
7
+ data.tar.gz: 8843504728de2a0e1df34c0d2dcf95f56e8967b6e557d374656571e5348cec6896527a97e5fb9b9eaf4d7b4ffdf07a199d59340d87dd9f69265b5c349cee6293
data/config/version.rb CHANGED
@@ -1,7 +1,7 @@
1
1
  module OrigenTesters
2
2
  MAJOR = 0
3
3
  MINOR = 7
4
- BUGFIX = 9
4
+ BUGFIX = 10
5
5
  DEV = nil
6
6
 
7
7
  VERSION = [MAJOR, MINOR, BUGFIX].join(".") + (DEV ? ".pre#{DEV}" : '')
@@ -4,7 +4,11 @@ module OrigenTesters
4
4
  class Flow < ATP::Formatter
5
5
  include OrigenTesters::Flow
6
6
 
7
- attr_accessor :test_suites, :test_methods, :lines, :stack
7
+ attr_accessor :test_suites, :test_methods, :lines, :stack, :var_filename
8
+
9
+ def var_filename
10
+ @var_filename || 'global'
11
+ end
8
12
 
9
13
  def subdirectory
10
14
  'testflow/mfh.testflow.group'
@@ -19,11 +23,11 @@ module OrigenTesters
19
23
  end
20
24
 
21
25
  def flow_control_variables
22
- @flow_control_variables ||= []
26
+ Origen.interface.variables_file(self).flow_control_variables
23
27
  end
24
28
 
25
29
  def runtime_control_variables
26
- @runtime_control_variables ||= []
30
+ Origen.interface.variables_file(self).runtime_control_variables
27
31
  end
28
32
 
29
33
  def at_flow_start
@@ -40,14 +44,20 @@ module OrigenTesters
40
44
  @lines = []
41
45
  @stack = { on_fail: [], on_pass: [] }
42
46
  process(model.ast)
43
- flow_control_variables.uniq!
44
- runtime_control_variables.uniq!
45
47
  end
46
48
 
47
49
  def line(str)
48
50
  @lines << (' ' * @indent * 2) + str
49
51
  end
50
52
 
53
+ # def on_flow(node)
54
+ # line '{'
55
+ # @indent += 1
56
+ # process_all(node.children)
57
+ # @indent -= 1
58
+ # line "}, open,\"#{unique_group_name(node.find(:name).value)}\", \"\""
59
+ # end
60
+
51
61
  def on_test(node)
52
62
  name = node.find(:object).to_a[0]
53
63
  name = name.name unless name.is_a?(String)
@@ -84,7 +94,7 @@ module OrigenTesters
84
94
  def on_job(node)
85
95
  jobs, state, *nodes = *node
86
96
  jobs = clean_job(jobs)
87
- flow_control_variables << ['JOB', '']
97
+ runtime_control_variables << ['JOB', '']
88
98
  condition = jobs.join(' or ')
89
99
  line "if #{condition} then"
90
100
  line '{'
@@ -16,8 +16,6 @@ module OrigenTesters
16
16
  def initialize(options = {})
17
17
  super
18
18
  @initialized = true
19
- @@pattern_masters ||= {}
20
- @@pattern_compilers ||= {}
21
19
  end
22
20
 
23
21
  def add_tml(name, methods)
@@ -43,12 +41,14 @@ module OrigenTesters
43
41
  @@flow_sheets = nil
44
42
  @@pattern_masters = nil
45
43
  @@pattern_compilers = nil
44
+ @@variables_files = nil
46
45
  end
47
46
  alias_method :reset_globals, :at_run_start
48
47
 
49
48
  def resources_filename=(name)
50
49
  self.pattern_master_filename = name
51
50
  self.pattern_references_name = name
51
+ flow.var_filename = name
52
52
  end
53
53
 
54
54
  def pattern_master_filename=(name)
@@ -75,8 +75,7 @@ module OrigenTesters
75
75
  # master file called 'global' will be used for all flows.
76
76
  # To use a different one set the resources_filename at the start of the flow.
77
77
  def pattern_master
78
- @@pattern_masters ||= {}
79
- @@pattern_masters[pattern_master_filename] ||= begin
78
+ pattern_masters[pattern_master_filename] ||= begin
80
79
  m = platform::PatternMaster.new(manually_register: true)
81
80
  name = "#{pattern_master_filename}.pmfl"
82
81
  name = "#{Origen.config.program_prefix}_#{name}" if Origen.config.program_prefix
@@ -86,12 +85,16 @@ module OrigenTesters
86
85
  end
87
86
  end
88
87
 
88
+ # Returns a hash containing all pattern master generators
89
+ def pattern_masters
90
+ @@pattern_masters ||= {}
91
+ end
92
+
89
93
  # Returns the pattern compiler file (.aiv) for the current flow, by default a common pattern
90
94
  # compiler file called 'global' will be used for all flows.
91
95
  # To use a different one set the resources_filename at the start of the flow.
92
96
  def pattern_compiler
93
- @@pattern_compilers ||= {}
94
- @@pattern_compilers[pattern_master_filename] ||= begin
97
+ pattern_compilers[pattern_master_filename] ||= begin
95
98
  m = platform::PatternCompiler.new(manually_register: true)
96
99
  name = "#{pattern_master_filename}.aiv"
97
100
  name = "#{Origen.config.program_prefix}_#{name}" if Origen.config.program_prefix
@@ -101,6 +104,31 @@ module OrigenTesters
101
104
  end
102
105
  end
103
106
 
107
+ # Returns a hash containing all pattern compiler generators
108
+ def pattern_compilers
109
+ @@pattern_compilers ||= {}
110
+ end
111
+
112
+ # Returns the variables file for the current or given flow, by default a common variable
113
+ # file called 'global' will be used for all flows.
114
+ # To use a different one set the resources_filename at the start of the flow.
115
+ def variables_file(flw = nil)
116
+ name = (flw || flow).var_filename
117
+ variables_files[name] ||= begin
118
+ m = platform::VariablesFile.new(manually_register: true)
119
+ filename = "#{name}_vars.tf"
120
+ filename = "#{Origen.config.program_prefix}_#{filename}" if Origen.config.program_prefix
121
+ m.filename = filename
122
+ m.id = name
123
+ m
124
+ end
125
+ end
126
+
127
+ # Returns a hash containing all variables file generators
128
+ def variables_files
129
+ @@variables_files ||= {}
130
+ end
131
+
104
132
  # @api private
105
133
  def pattern_reference_recorded(name, options = {})
106
134
  # Will be called everytime a pattern reference is made that the ATE should be aware of,
@@ -129,10 +157,13 @@ module OrigenTesters
129
157
  flow_sheets.each do |_name, sheet|
130
158
  g << sheet
131
159
  end
132
- Hash(@@pattern_masters).each do |name, sheet|
160
+ pattern_masters.each do |name, sheet|
161
+ g << sheet
162
+ end
163
+ pattern_compilers.each do |name, sheet|
133
164
  g << sheet
134
165
  end
135
- Hash(@@pattern_compilers).each do |name, sheet|
166
+ variables_files.each do |name, sheet|
136
167
  g << sheet
137
168
  end
138
169
  g
@@ -22,7 +22,7 @@ module OrigenTesters
22
22
  end
23
23
 
24
24
  def paths
25
- { '.' => patterns }
25
+ { '../vectors' => patterns }
26
26
  end
27
27
 
28
28
  # def add(name, options = {})
@@ -85,6 +85,9 @@ module OrigenTesters
85
85
 
86
86
  def initialize(name, attrs = {})
87
87
  @name = name
88
+ if interface.flow.sig
89
+ @name = "#{name}_#{interface.flow.sig}"
90
+ end
88
91
  # Set the defaults
89
92
  DEFAULTS.each do |k, v|
90
93
  send("#{k}=", v)
@@ -143,6 +146,10 @@ module OrigenTesters
143
146
  (test_method && test_method.respond_to?(method)) || super
144
147
  end
145
148
 
149
+ def interface
150
+ Origen.interface
151
+ end
152
+
146
153
  private
147
154
 
148
155
  def flags
@@ -0,0 +1,35 @@
1
+ require 'pathname'
2
+ module OrigenTesters
3
+ module SmartestBasedTester
4
+ class Base
5
+ class VariablesFile
6
+ include OrigenTesters::Generator
7
+
8
+ attr_reader :flow_control_variables, :runtime_control_variables
9
+ attr_accessor :filename, :id
10
+
11
+ def initialize(options = {})
12
+ @flow_control_variables = []
13
+ @runtime_control_variables = []
14
+ end
15
+
16
+ def subdirectory
17
+ 'testflow/mfh.testflow.setup'
18
+ end
19
+
20
+ def clean_flow_control_variables
21
+ # These map to user flags and can only be integers
22
+ flow_control_variables.uniq.sort
23
+ end
24
+
25
+ def clean_runtime_control_variables
26
+ runtime_control_variables.uniq.sort do |x, y|
27
+ x = x[0] if x.is_a?(Array)
28
+ y = y[0] if y.is_a?(Array)
29
+ x <=> y
30
+ end
31
+ end
32
+ end
33
+ end
34
+ end
35
+ end
@@ -11,89 +11,90 @@ information
11
11
  % end
12
12
  % end
13
13
  % else
14
- -- STOPDIFF
15
- test_revision = "<%= Origen.app.version %>";
16
- -- STARTDIFF
14
+ %# Disabled for now, SMT master file doesn't like it
15
+ %#-- STOPDIFF
16
+ %#test_revision = "<%= Origen.app.version %>";
17
+ %#-- STARTDIFF
17
18
  % end
18
19
 
19
20
  end
20
- --------------------------------------------------
21
- declarations
22
-
23
- % if program
24
- % program.declarations.each do |key, val|
25
- <%= key %> = <%= val %>
26
- % end
27
- % else
28
- % flow_control_variables.each do |var|
29
- % if var.is_a?(Array)
30
- @<%= var[0].to_s.upcase %> = <%= var[1].is_a?(String) || var[1].is_a?(Symbol) ? "\"#{var[1]}\"" : var[1] %>;
31
- % else
32
- @<%= var.to_s.upcase %> = -1;
33
- % end
34
- % end
35
- % runtime_control_variables.each do |var|
36
- % if var.is_a?(Array)
37
- @<%= var[0].to_s.upcase %> = <%= var[1].is_a?(String) || var[1].is_a?(Symbol) ? "\"#{var[1]}\"" : var[1] %>;
38
- % else
39
- @<%= var.to_s.upcase %> = -1;
40
- % end
41
- % end
42
- % end
43
- end
21
+ %#--------------------------------------------------
22
+ %#declarations
23
+ %#
24
+ %#% if program
25
+ %#% program.declarations.each do |key, val|
26
+ %#<%= key %> = <%= val %>
27
+ %#% end
28
+ %#% else
29
+ %#% flow_control_variables.each do |var|
30
+ %#% if var.is_a?(Array)
31
+ %#@<%= var[0].to_s.upcase %> = <%= var[1].is_a?(String) || var[1].is_a?(Symbol) ? "\"#{var[1]}\"" : var[1] %>;
32
+ %#% else
33
+ %#@<%= var.to_s.upcase %> = -1;
34
+ %#% end
35
+ %#% end
36
+ %#% runtime_control_variables.each do |var|
37
+ %#% if var.is_a?(Array)
38
+ %#@<%= var[0].to_s.upcase %> = <%= var[1].is_a?(String) || var[1].is_a?(Symbol) ? "\"#{var[1]}\"" : var[1] %>;
39
+ %#% else
40
+ %#@<%= var.to_s.upcase %> = -1;
41
+ %#% end
42
+ %#% end
43
+ %#% end
44
+ %#end
44
45
  --------------------------------------------------
45
46
  implicit_declarations
46
47
 
47
48
  end
48
49
  -----------------------------------------------------------------
49
- flags
50
-
51
- % if program
52
- % program.flags.each do |key, val|
53
- <%= key %> = <%= val %>
54
- % end
55
- % else
56
- datalog_formatter = 0;
57
- datalog_sample_size = 1;
58
- graphic_result_displa = 1;
59
- state_display = 0;
60
- print_wafermap = 0;
61
- ink_wafer = 0;
62
- max_reprobes = 1;
63
- temp_monitor = 1;
64
- calib_age_monitor = 1;
65
- diag_monitor = 1;
66
- current_monitor = 1;
67
- log_events_enable = 1;
68
- set_pass_level = 0;
69
- set_fail_level = 0;
70
- set_bypass_level = 0;
71
- hold_on_fail = 0;
72
- global_hold = 0;
73
- debug_mode = 0;
74
- debug_analog = 0;
75
- parallel_mode = 1;
76
- site_match_mode = 2;
77
- global_overon = 0;
78
- limits_enable = 0;
79
- test_number_enable = 1;
80
- test_number_inc = 1;
81
- log_cycles_before = 0;
82
- log_cycles_after = 0;
83
- unburst_mode = 0;
84
- sqst_mode = 0;
85
- warn_as_fail = 1;
86
- use_hw_dsp = 0;
87
- dsp_file_enable = 0;
88
- buffer_testflow_log = 0;
89
- check_testmethod_api = 0;
90
- stdf_generation = 1;
91
- tm_crash_as_fatal = 1;
92
- hidden_datalog_mode = 0;
93
- multibin_mode = 0;
94
- % end
95
- end
96
- -----------------------------------------------------------------
50
+ %#flags
51
+ %#
52
+ %#% if program
53
+ %#% program.flags.each do |key, val|
54
+ %#<%= key %> = <%= val %>
55
+ %#% end
56
+ %#% else
57
+ %#datalog_formatter = 0;
58
+ %#datalog_sample_size = 1;
59
+ %#graphic_result_displa = 1;
60
+ %#state_display = 0;
61
+ %#print_wafermap = 0;
62
+ %#ink_wafer = 0;
63
+ %#max_reprobes = 1;
64
+ %#temp_monitor = 1;
65
+ %#calib_age_monitor = 1;
66
+ %#diag_monitor = 1;
67
+ %#current_monitor = 1;
68
+ %#log_events_enable = 1;
69
+ %#set_pass_level = 0;
70
+ %#set_fail_level = 0;
71
+ %#set_bypass_level = 0;
72
+ %#hold_on_fail = 0;
73
+ %#global_hold = 0;
74
+ %#debug_mode = 0;
75
+ %#debug_analog = 0;
76
+ %#parallel_mode = 1;
77
+ %#site_match_mode = 2;
78
+ %#global_overon = 0;
79
+ %#limits_enable = 0;
80
+ %#test_number_enable = 1;
81
+ %#test_number_inc = 1;
82
+ %#log_cycles_before = 0;
83
+ %#log_cycles_after = 0;
84
+ %#unburst_mode = 0;
85
+ %#sqst_mode = 0;
86
+ %#warn_as_fail = 1;
87
+ %#use_hw_dsp = 0;
88
+ %#dsp_file_enable = 0;
89
+ %#buffer_testflow_log = 0;
90
+ %#check_testmethod_api = 0;
91
+ %#stdf_generation = 1;
92
+ %#tm_crash_as_fatal = 1;
93
+ %#hidden_datalog_mode = 0;
94
+ %#multibin_mode = 0;
95
+ %#% end
96
+ %#end
97
+ %#-----------------------------------------------------------------
97
98
  testmethodparameters
98
99
  % if program
99
100
  % program.testmethodparameters.each do |id, parameters|
@@ -175,13 +176,15 @@ test_flow
175
176
  % end
176
177
  % else
177
178
  {
178
- % runtime_control_variables.each do |var|
179
- @<%= var.to_s.upcase %> = -1;
180
- % end
181
- }, open,"Init Flow Control Vars", ""
179
+ %# {
180
+ %#% runtime_control_variables.each do |var|
181
+ %# @<%= var.to_s.upcase %> = -1;
182
+ %#% end
183
+ %# }, open,"Init Flow Control Vars", ""
182
184
  % lines.each do |line|
183
- <%= line %>
185
+ <%= line %>
184
186
  % end
187
+ }, open,"<%= filename.sub(/\..*/, '').upcase %>", ""
185
188
  % end
186
189
  end
187
190
  -------------------------------------------------
@@ -0,0 +1,48 @@
1
+ hp93000,testflow,0.1
2
+ language_revision = 1;
3
+
4
+ declarations
5
+
6
+ % clean_runtime_control_variables.each do |var|
7
+ % if var.is_a?(Array)
8
+ @<%= var[0].to_s.upcase %> = <%= var[1].is_a?(String) || var[1].is_a?(Symbol) ? "\"#{var[1]}\"" : var[1] %>;
9
+ % else
10
+ @<%= var.to_s.upcase %> = 0;
11
+ % end
12
+ % end
13
+
14
+ end
15
+ -----------------------------------------------------------------
16
+ flags
17
+
18
+ % clean_flow_control_variables.each do |var|
19
+ % if var.is_a?(Array)
20
+ user <%= var[0].to_s.upcase %> = <%= var[1].is_a?(String) || var[1].is_a?(Symbol) ? "\"#{var[1]}\"" : var[1] %>;
21
+ % else
22
+ user <%= var.to_s.upcase %> = 0;
23
+ % end
24
+ % end
25
+
26
+ end
27
+ -----------------------------------------------------------------
28
+ testmethodparameters
29
+ end
30
+ -----------------------------------------------------------------
31
+ testmethodlimits
32
+ end
33
+ -----------------------------------------------------------------
34
+ test_flow
35
+ end
36
+ -----------------------------------------------------------------
37
+ binning
38
+ end
39
+ -----------------------------------------------------------------
40
+ oocrule
41
+ end
42
+ -----------------------------------------------------------------
43
+ context
44
+ end
45
+ -----------------------------------------------------------------
46
+ hardware_bin_descriptions
47
+ end
48
+ -----------------------------------------------------------------
@@ -0,0 +1,10 @@
1
+ module OrigenTesters
2
+ module SmartestBasedTester
3
+ class V93K
4
+ require 'origen_testers/smartest_based_tester/base/variables_file'
5
+ class VariablesFile < Base::VariablesFile
6
+ TEMPLATE = "#{Origen.root!}/lib/origen_testers/smartest_based_tester/v93k/templates/vars.tf.erb"
7
+ end
8
+ end
9
+ end
10
+ 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.7.9
4
+ version: 0.7.10
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-15 00:00:00.000000000 Z
11
+ date: 2016-08-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: origen
@@ -310,6 +310,7 @@ files:
310
310
  - lib/origen_testers/smartest_based_tester/base/test_methods/limits.rb
311
311
  - lib/origen_testers/smartest_based_tester/base/test_suite.rb
312
312
  - lib/origen_testers/smartest_based_tester/base/test_suites.rb
313
+ - lib/origen_testers/smartest_based_tester/base/variables_file.rb
313
314
  - lib/origen_testers/smartest_based_tester/v93k.rb
314
315
  - lib/origen_testers/smartest_based_tester/v93k/builder.rb
315
316
  - lib/origen_testers/smartest_based_tester/v93k/builder/flow.rb
@@ -321,10 +322,12 @@ files:
321
322
  - lib/origen_testers/smartest_based_tester/v93k/templates/template.aiv.erb
322
323
  - lib/origen_testers/smartest_based_tester/v93k/templates/template.pmfl.erb
323
324
  - lib/origen_testers/smartest_based_tester/v93k/templates/template.tf.erb
325
+ - lib/origen_testers/smartest_based_tester/v93k/templates/vars.tf.erb
324
326
  - lib/origen_testers/smartest_based_tester/v93k/test_method.rb
325
327
  - lib/origen_testers/smartest_based_tester/v93k/test_methods.rb
326
328
  - lib/origen_testers/smartest_based_tester/v93k/test_suite.rb
327
329
  - lib/origen_testers/smartest_based_tester/v93k/test_suites.rb
330
+ - lib/origen_testers/smartest_based_tester/v93k/variables_file.rb
328
331
  - lib/origen_testers/test/basic_interface.rb
329
332
  - lib/origen_testers/test/block.rb
330
333
  - lib/origen_testers/test/custom_test_interface.rb