origen 0.2.6 → 0.3.0
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 +4 -4
- data/bin/origen +3 -1
- data/config/boot.rb +1 -7
- data/config/commands.rb +0 -1
- data/config/version.rb +2 -2
- data/lib/c99/{j750_interface.rb → ate_interface.rb} +3 -11
- data/lib/c99/doc_interface.rb +1 -1
- data/lib/origen.rb +9 -30
- data/lib/origen/application.rb +10 -8
- data/lib/origen/application/configuration.rb +13 -26
- data/lib/origen/application/plugins.rb +122 -0
- data/lib/origen/application/plugins_manager.rb +16 -254
- data/lib/origen/application/release.rb +2 -2
- data/lib/origen/application/runner.rb +2 -4
- data/lib/origen/chips.rb +0 -0
- data/lib/origen/chips/chip.rb +0 -0
- data/lib/origen/chips/design_entry.rb +0 -0
- data/lib/origen/chips/doc_entry.rb +0 -0
- data/lib/origen/chips/note.rb +0 -0
- data/lib/origen/commands.rb +4 -44
- data/lib/origen/commands/compile.rb +1 -2
- data/lib/origen/commands/generate.rb +1 -1
- data/lib/origen/commands/interactive.rb +1 -2
- data/lib/origen/commands/plugin.rb +49 -56
- data/lib/origen/commands/program.rb +1 -1
- data/lib/origen/commands/rc.rb +2 -2
- data/lib/origen/commands/version.rb +2 -17
- data/lib/origen/commands_global.rb +3 -0
- data/lib/origen/file_handler.rb +10 -10
- data/lib/origen/generator.rb +1 -1
- data/lib/origen/generator/job.rb +1 -1
- data/lib/origen/generator/pattern.rb +2 -2
- data/lib/origen/generator/pattern_finder.rb +10 -9
- data/lib/origen/pins/pin.rb +0 -0
- data/lib/origen/regression_manager.rb +0 -0
- data/lib/origen/remote_manager.rb +2 -8
- data/lib/origen/revision_control/design_sync.rb +0 -0
- data/lib/origen/revision_control/git.rb +0 -0
- data/lib/origen/specs.rb +0 -0
- data/lib/origen/specs/checkers.rb +0 -0
- data/lib/origen/specs/creation_info.rb +0 -0
- data/lib/origen/specs/exhibit.rb +0 -0
- data/lib/origen/specs/spec.rb +0 -0
- data/lib/origen/utility.rb +0 -1
- data/lib/origen/utility/diff.rb +0 -0
- metadata +42 -119
- data/lib/origen/import_manager.rb +0 -596
- data/lib/origen/nvm.rb +0 -6
- data/lib/origen/nvm/block_array.rb +0 -72
- data/lib/origen/tester.rb +0 -56
- data/lib/origen/tester/api.rb +0 -277
- data/lib/origen/tester/bdm/bdm.rb +0 -25
- data/lib/origen/tester/doc/doc.rb +0 -226
- data/lib/origen/tester/doc/generator.rb +0 -126
- data/lib/origen/tester/doc/generator/flow.rb +0 -71
- data/lib/origen/tester/doc/generator/flow_line.rb +0 -203
- data/lib/origen/tester/doc/generator/test.rb +0 -68
- data/lib/origen/tester/doc/generator/test_group.rb +0 -66
- data/lib/origen/tester/doc/generator/tests.rb +0 -47
- data/lib/origen/tester/doc/model.rb +0 -162
- data/lib/origen/tester/generator.rb +0 -271
- data/lib/origen/tester/generator/flow_control_api.rb +0 -606
- data/lib/origen/tester/generator/identity_map.rb +0 -25
- data/lib/origen/tester/generator/placeholder.rb +0 -13
- data/lib/origen/tester/generator/test_numberer.rb +0 -25
- data/lib/origen/tester/interface.rb +0 -154
- data/lib/origen/tester/j750/files.rb +0 -45
- data/lib/origen/tester/j750/generator.rb +0 -203
- data/lib/origen/tester/j750/generator/flow.rb +0 -123
- data/lib/origen/tester/j750/generator/flow_line.rb +0 -288
- data/lib/origen/tester/j750/generator/patgroup.rb +0 -111
- data/lib/origen/tester/j750/generator/patgroups.rb +0 -41
- data/lib/origen/tester/j750/generator/patset.rb +0 -111
- data/lib/origen/tester/j750/generator/patsets.rb +0 -41
- data/lib/origen/tester/j750/generator/templates/flow.txt.erb +0 -9
- data/lib/origen/tester/j750/generator/templates/instances.txt.erb +0 -16
- data/lib/origen/tester/j750/generator/templates/patgroups.txt.erb +0 -8
- data/lib/origen/tester/j750/generator/templates/patsets.txt.erb +0 -10
- data/lib/origen/tester/j750/generator/test_instance.rb +0 -846
- data/lib/origen/tester/j750/generator/test_instance_group.rb +0 -60
- data/lib/origen/tester/j750/generator/test_instances.rb +0 -182
- data/lib/origen/tester/j750/j750.rb +0 -845
- data/lib/origen/tester/j750/j750_hpt.rb +0 -35
- data/lib/origen/tester/j750/parser.rb +0 -104
- data/lib/origen/tester/j750/parser/ac_spec.rb +0 -11
- data/lib/origen/tester/j750/parser/ac_specs.rb +0 -0
- data/lib/origen/tester/j750/parser/dc_spec.rb +0 -36
- data/lib/origen/tester/j750/parser/dc_specs.rb +0 -50
- data/lib/origen/tester/j750/parser/descriptions.rb +0 -340
- data/lib/origen/tester/j750/parser/flow.rb +0 -111
- data/lib/origen/tester/j750/parser/flow_line.rb +0 -207
- data/lib/origen/tester/j750/parser/flows.rb +0 -23
- data/lib/origen/tester/j750/parser/pattern_set.rb +0 -94
- data/lib/origen/tester/j750/parser/pattern_sets.rb +0 -33
- data/lib/origen/tester/j750/parser/test_instance.rb +0 -322
- data/lib/origen/tester/j750/parser/test_instances.rb +0 -26
- data/lib/origen/tester/j750/parser/timeset.rb +0 -15
- data/lib/origen/tester/j750/parser/timesets.rb +0 -0
- data/lib/origen/tester/jlink/jlink.rb +0 -33
- data/lib/origen/tester/parser.rb +0 -24
- data/lib/origen/tester/parser/description_lookup.rb +0 -64
- data/lib/origen/tester/parser/searchable_array.rb +0 -32
- data/lib/origen/tester/parser/searchable_hash.rb +0 -32
- data/lib/origen/tester/time.rb +0 -338
- data/lib/origen/tester/timing.rb +0 -253
- data/lib/origen/tester/ultraflex/files.rb +0 -45
- data/lib/origen/tester/ultraflex/generator.rb +0 -200
- data/lib/origen/tester/ultraflex/generator/flow.rb +0 -119
- data/lib/origen/tester/ultraflex/generator/flow_line.rb +0 -269
- data/lib/origen/tester/ultraflex/generator/patgroup.rb +0 -111
- data/lib/origen/tester/ultraflex/generator/patgroups.rb +0 -41
- data/lib/origen/tester/ultraflex/generator/patset.rb +0 -111
- data/lib/origen/tester/ultraflex/generator/patsets.rb +0 -41
- data/lib/origen/tester/ultraflex/generator/templates/flow.txt.erb +0 -9
- data/lib/origen/tester/ultraflex/generator/templates/instances.txt.erb +0 -16
- data/lib/origen/tester/ultraflex/generator/templates/patgroups.txt.erb +0 -8
- data/lib/origen/tester/ultraflex/generator/templates/patsets.txt.erb +0 -10
- data/lib/origen/tester/ultraflex/generator/test_instance.rb +0 -622
- data/lib/origen/tester/ultraflex/generator/test_instance_group.rb +0 -60
- data/lib/origen/tester/ultraflex/generator/test_instances.rb +0 -174
- data/lib/origen/tester/ultraflex/parser.rb +0 -104
- data/lib/origen/tester/ultraflex/parser/ac_spec.rb +0 -11
- data/lib/origen/tester/ultraflex/parser/ac_specs.rb +0 -0
- data/lib/origen/tester/ultraflex/parser/dc_spec.rb +0 -36
- data/lib/origen/tester/ultraflex/parser/dc_specs.rb +0 -50
- data/lib/origen/tester/ultraflex/parser/descriptions.rb +0 -342
- data/lib/origen/tester/ultraflex/parser/flow.rb +0 -111
- data/lib/origen/tester/ultraflex/parser/flow_line.rb +0 -207
- data/lib/origen/tester/ultraflex/parser/flows.rb +0 -23
- data/lib/origen/tester/ultraflex/parser/pattern_set.rb +0 -94
- data/lib/origen/tester/ultraflex/parser/pattern_sets.rb +0 -33
- data/lib/origen/tester/ultraflex/parser/test_instance.rb +0 -262
- data/lib/origen/tester/ultraflex/parser/test_instances.rb +0 -26
- data/lib/origen/tester/ultraflex/parser/timeset.rb +0 -15
- data/lib/origen/tester/ultraflex/parser/timesets.rb +0 -0
- data/lib/origen/tester/ultraflex/ultraflex.rb +0 -759
- data/lib/origen/tester/v93k/generator.rb +0 -80
- data/lib/origen/tester/v93k/generator/flow.rb +0 -63
- data/lib/origen/tester/v93k/generator/flow_node.rb +0 -17
- data/lib/origen/tester/v93k/generator/flow_node/print.rb +0 -10
- data/lib/origen/tester/v93k/generator/pattern.rb +0 -16
- data/lib/origen/tester/v93k/generator/pattern_master.rb +0 -54
- data/lib/origen/tester/v93k/generator/templates/_test_method.txt.erb +0 -6
- data/lib/origen/tester/v93k/generator/templates/_test_suite.txt.erb +0 -11
- data/lib/origen/tester/v93k/generator/templates/template.flow.erb +0 -121
- data/lib/origen/tester/v93k/generator/templates/template.pmfl.erb +0 -9
- data/lib/origen/tester/v93k/generator/test_function.rb +0 -103
- data/lib/origen/tester/v93k/generator/test_functions.rb +0 -79
- data/lib/origen/tester/v93k/generator/test_method.rb +0 -46
- data/lib/origen/tester/v93k/generator/test_methods.rb +0 -75
- data/lib/origen/tester/v93k/generator/test_suite.rb +0 -54
- data/lib/origen/tester/v93k/generator/test_suites.rb +0 -65
- data/lib/origen/tester/v93k/v93k.rb +0 -420
- data/lib/origen/tester/vector.rb +0 -86
- data/lib/origen/tester/vector_generator.rb +0 -637
- data/lib/origen/tester/vector_pipeline.rb +0 -150
- data/lib/origen/utility/design_sync.rb +0 -494
- data/lib/origen/version_checker.rb +0 -117
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
require 'active_support/concern'
|
|
2
|
-
|
|
3
|
-
module Origen
|
|
4
|
-
module Tester
|
|
5
|
-
class V93K
|
|
6
|
-
module Generator
|
|
7
|
-
extend ActiveSupport::Concern
|
|
8
|
-
|
|
9
|
-
autoload :Flow, 'origen/tester/v93k/generator/flow'
|
|
10
|
-
autoload :FlowNode, 'origen/tester/v93k/generator/flow_node'
|
|
11
|
-
autoload :TestFunction, 'origen/tester/v93k/generator/test_function'
|
|
12
|
-
autoload :TestFunctions, 'origen/tester/v93k/generator/test_functions'
|
|
13
|
-
autoload :TestMethod, 'origen/tester/v93k/generator/test_method'
|
|
14
|
-
autoload :TestMethods, 'origen/tester/v93k/generator/test_methods'
|
|
15
|
-
autoload :TestSuite, 'origen/tester/v93k/generator/test_suite'
|
|
16
|
-
autoload :TestSuites, 'origen/tester/v93k/generator/test_suites'
|
|
17
|
-
autoload :Pattern, 'origen/tester/v93k/generator/pattern'
|
|
18
|
-
autoload :PatternMaster, 'origen/tester/v93k/generator/pattern_master'
|
|
19
|
-
autoload :Placeholder, 'origen/tester/generator/placeholder'
|
|
20
|
-
|
|
21
|
-
included do
|
|
22
|
-
include Origen::Tester::Interface # adds the interface helpers/Origen hook-up
|
|
23
|
-
include Origen::Tester::Generator::FlowControlAPI::Interface
|
|
24
|
-
PLATFORM = Origen::Tester::V93K
|
|
25
|
-
end
|
|
26
|
-
|
|
27
|
-
def flow
|
|
28
|
-
return @flow if @flow
|
|
29
|
-
@flow = Flow.new
|
|
30
|
-
@flow.test_functions ||= TestFunctions.new(@flow)
|
|
31
|
-
@flow.test_suites ||= TestSuites.new(@flow)
|
|
32
|
-
@flow.test_methods ||= TestMethods.new(@flow)
|
|
33
|
-
@flow
|
|
34
|
-
end
|
|
35
|
-
|
|
36
|
-
def pattern_master
|
|
37
|
-
@pattern_master_file ||= PatternMaster.new
|
|
38
|
-
end
|
|
39
|
-
|
|
40
|
-
def test_functions
|
|
41
|
-
flow.test_functions
|
|
42
|
-
end
|
|
43
|
-
|
|
44
|
-
def test_suites
|
|
45
|
-
flow.test_suites
|
|
46
|
-
end
|
|
47
|
-
|
|
48
|
-
def test_methods
|
|
49
|
-
flow.test_methods
|
|
50
|
-
end
|
|
51
|
-
|
|
52
|
-
def flow_sheets
|
|
53
|
-
@@flow_sheets ||= {}
|
|
54
|
-
end
|
|
55
|
-
|
|
56
|
-
# Returns an array containing all sheet generators.
|
|
57
|
-
# All Origen program generators must implement this method
|
|
58
|
-
def sheet_generators # :nodoc:
|
|
59
|
-
g = []
|
|
60
|
-
[flow_sheets].each do |sheets|
|
|
61
|
-
sheets.each do |_name, sheet|
|
|
62
|
-
g << sheet
|
|
63
|
-
end
|
|
64
|
-
end
|
|
65
|
-
g
|
|
66
|
-
end
|
|
67
|
-
|
|
68
|
-
# Returns an array containing all flow sheet generators.
|
|
69
|
-
# All Origen program generators must implement this method
|
|
70
|
-
def flow_generators
|
|
71
|
-
g = []
|
|
72
|
-
flow_sheets.each do |_name, sheet|
|
|
73
|
-
g << sheet
|
|
74
|
-
end
|
|
75
|
-
g
|
|
76
|
-
end
|
|
77
|
-
end
|
|
78
|
-
end
|
|
79
|
-
end
|
|
80
|
-
end
|
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
module Origen
|
|
2
|
-
module Tester
|
|
3
|
-
class V93K
|
|
4
|
-
module Generator
|
|
5
|
-
class Flow
|
|
6
|
-
include Origen::Tester::Generator
|
|
7
|
-
|
|
8
|
-
attr_accessor :test_functions, :test_suites, :test_methods
|
|
9
|
-
|
|
10
|
-
TEMPLATE = "#{Origen.top}/lib/origen/tester/v93k/generator/templates/template.flow.erb"
|
|
11
|
-
|
|
12
|
-
def filename
|
|
13
|
-
super.gsub('_flow', '')
|
|
14
|
-
end
|
|
15
|
-
|
|
16
|
-
def run(test_suite, options = {})
|
|
17
|
-
add(:run, { test_suite: test_suite }.merge(options))
|
|
18
|
-
end
|
|
19
|
-
|
|
20
|
-
def run_and_branch(test_suite, options = {})
|
|
21
|
-
add(:run_and_branch, { test_suite: test_suite }.merge(options))
|
|
22
|
-
end
|
|
23
|
-
|
|
24
|
-
private
|
|
25
|
-
|
|
26
|
-
def add(type, options = {})
|
|
27
|
-
options = update_relationships(options)
|
|
28
|
-
ins = FlowLine.new(type, options)
|
|
29
|
-
collection << ins
|
|
30
|
-
if ins.test?
|
|
31
|
-
c = Origen.interface.consume_comments
|
|
32
|
-
Origen.interface.descriptions.add_for_test_usage(ins.parameter, Origen.interface.top_level_flow, c)
|
|
33
|
-
else
|
|
34
|
-
Origen.interface.discard_comments
|
|
35
|
-
end
|
|
36
|
-
ins
|
|
37
|
-
end
|
|
38
|
-
|
|
39
|
-
def update_relationships(options = {})
|
|
40
|
-
fail_id = options.delete(:if_failed)
|
|
41
|
-
pass_id = options.delete(:if_passed)
|
|
42
|
-
if fail_id
|
|
43
|
-
t = find_by_id(fail_id)
|
|
44
|
-
t.continue_on_fail
|
|
45
|
-
flag = t.set_flag_on_fail
|
|
46
|
-
options[:flag_true] = flag
|
|
47
|
-
elsif pass_id
|
|
48
|
-
t = find_by_id(pass_id)
|
|
49
|
-
t.continue_on_fail
|
|
50
|
-
flag = t.set_flag_on_pass
|
|
51
|
-
options[:flag_true] = flag
|
|
52
|
-
end
|
|
53
|
-
options
|
|
54
|
-
end
|
|
55
|
-
|
|
56
|
-
def find_by_id(id)
|
|
57
|
-
collection.find { |l| l.id == id }
|
|
58
|
-
end
|
|
59
|
-
end
|
|
60
|
-
end
|
|
61
|
-
end
|
|
62
|
-
end
|
|
63
|
-
end
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
module Origen
|
|
2
|
-
module Tester
|
|
3
|
-
class V93K
|
|
4
|
-
module Generator
|
|
5
|
-
class FlowNode
|
|
6
|
-
autoload :Run, 'origen/tester/v93k/generator/flow_node/run'
|
|
7
|
-
autoload :RunAndBranch, 'origen/tester/v93k/generator/flow_node/run_and_branch'
|
|
8
|
-
autoload :StopBin, 'origen/tester/v93k/generator/flow_node/stop_bin'
|
|
9
|
-
|
|
10
|
-
def collection
|
|
11
|
-
@collection ||= []
|
|
12
|
-
end
|
|
13
|
-
end
|
|
14
|
-
end
|
|
15
|
-
end
|
|
16
|
-
end
|
|
17
|
-
end
|
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
module Origen
|
|
2
|
-
module Tester
|
|
3
|
-
class V93K
|
|
4
|
-
module Generator
|
|
5
|
-
class PatternMaster
|
|
6
|
-
include Origen::Tester::Generator
|
|
7
|
-
|
|
8
|
-
TEMPLATE = "#{Origen.top}/lib/origen/tester/v93k/generator/templates/template.pmfl.erb"
|
|
9
|
-
|
|
10
|
-
def add(name, options = {})
|
|
11
|
-
check_for_duplicates(name)
|
|
12
|
-
record_pattern(name)
|
|
13
|
-
p = Pattern.new(name, options)
|
|
14
|
-
collection << p
|
|
15
|
-
p
|
|
16
|
-
end
|
|
17
|
-
|
|
18
|
-
# Returns true if the given pattern name has already been added to the current pattern
|
|
19
|
-
# master file.
|
|
20
|
-
#
|
|
21
|
-
# Pass in :global => true for all pattern sets sheets to be considered.
|
|
22
|
-
def duplicate?(name, options = {})
|
|
23
|
-
files = existing_patterns[name]
|
|
24
|
-
if files && !files.empty?
|
|
25
|
-
options[:global] || files.include?(filename)
|
|
26
|
-
else
|
|
27
|
-
false
|
|
28
|
-
end
|
|
29
|
-
end
|
|
30
|
-
|
|
31
|
-
private
|
|
32
|
-
|
|
33
|
-
def check_for_duplicates(name)
|
|
34
|
-
if duplicate?(name)
|
|
35
|
-
error "Duplicate pattern #{name} generated in #{filename}"
|
|
36
|
-
exit 1
|
|
37
|
-
elsif duplicate?(name, global: true)
|
|
38
|
-
warning "Pattern #{name} is duplicated in: #{existing_patterns[name].join(', ')}"
|
|
39
|
-
end
|
|
40
|
-
end
|
|
41
|
-
|
|
42
|
-
def existing_patterns
|
|
43
|
-
@@existing_patterns ||= {}
|
|
44
|
-
end
|
|
45
|
-
|
|
46
|
-
def record_pattern(name)
|
|
47
|
-
existing_patterns[name] ||= []
|
|
48
|
-
existing_patterns[name] << filename
|
|
49
|
-
end
|
|
50
|
-
end
|
|
51
|
-
end
|
|
52
|
-
end
|
|
53
|
-
end
|
|
54
|
-
end
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
% suite = options[:suite]
|
|
2
|
-
<%= suite.name %>:
|
|
3
|
-
override_tim_equ_set = <%= suite.tim_equ_set %>;
|
|
4
|
-
override_lev_equ_set = <%= suite.lev_equ_set %>;
|
|
5
|
-
override_tim_spec_set = <%= suite.tim_spec_set %>;
|
|
6
|
-
override_lev_spec_set = <%= suite.lev_spec_set %>;
|
|
7
|
-
override_timset = <%= suite.timset %>;
|
|
8
|
-
override_levset = <%= suite.levset %>;
|
|
9
|
-
override_seqlbl = "<%= suite.pattern %>";
|
|
10
|
-
override_testf = <%= suite.test_function %>;
|
|
11
|
-
override_test_number = <%= suite.test_number %>;
|
|
@@ -1,121 +0,0 @@
|
|
|
1
|
-
hp93000,testflow,0.1
|
|
2
|
-
language_revision = 1;
|
|
3
|
-
|
|
4
|
-
information
|
|
5
|
-
|
|
6
|
-
device_name = "Apache";
|
|
7
|
-
|
|
8
|
-
device_revision = "0";
|
|
9
|
-
|
|
10
|
-
test_revision = "<%= RGen.app.version %>";
|
|
11
|
-
|
|
12
|
-
description = "";
|
|
13
|
-
|
|
14
|
-
end
|
|
15
|
-
--------------------------------------------------
|
|
16
|
-
declarations
|
|
17
|
-
|
|
18
|
-
end
|
|
19
|
-
--------------------------------------------------
|
|
20
|
-
flags
|
|
21
|
-
|
|
22
|
-
-- System flags
|
|
23
|
-
report_to_file = 1;
|
|
24
|
-
report_to_printer = 0;
|
|
25
|
-
datalog_to_file = 1;
|
|
26
|
-
datalog_to_printer = 0;
|
|
27
|
-
datalog_to_report_win = 0;
|
|
28
|
-
datalog_formatter = 0;
|
|
29
|
-
datalog_sample_size = 1;
|
|
30
|
-
graphic_result_displa = 1;
|
|
31
|
-
state_display = 0;
|
|
32
|
-
print_wafermap = 0;
|
|
33
|
-
OOC_watch = 1;
|
|
34
|
-
OOC_sample_size = 1;
|
|
35
|
-
ink_wafer = 0;
|
|
36
|
-
max_reprobes = 1;
|
|
37
|
-
temp_monitor = 1;
|
|
38
|
-
calib_age_monitor = 1;
|
|
39
|
-
diag_monitor = 1;
|
|
40
|
-
current_monitor = 1;
|
|
41
|
-
-- Testflow flags
|
|
42
|
-
set_pass_level = 0;
|
|
43
|
-
set_fail_level = 0;
|
|
44
|
-
set_bypass_level = 0;
|
|
45
|
-
hold_on_fail = 0;
|
|
46
|
-
optimized_mode = 1;
|
|
47
|
-
global_hold = 0;
|
|
48
|
-
debug_mode = 0;
|
|
49
|
-
parallel_mode = 1;
|
|
50
|
-
global_overon = 0;
|
|
51
|
-
|
|
52
|
-
end
|
|
53
|
-
--------------------------------------------------
|
|
54
|
-
testfunctions
|
|
55
|
-
|
|
56
|
-
% test_functions.collection.each do |key, func|
|
|
57
|
-
% func.lines.each do |line|
|
|
58
|
-
<%= line %>
|
|
59
|
-
% end
|
|
60
|
-
% end
|
|
61
|
-
|
|
62
|
-
end
|
|
63
|
-
--------------------------------------------------
|
|
64
|
-
testmethods
|
|
65
|
-
|
|
66
|
-
% test_methods.collection.each do |name, method|
|
|
67
|
-
<%= render "#{RGen.top}/lib/rgen/tester/v93k/generator/templates/test_method.txt.erb", :test_method => method, :_inline => true %>
|
|
68
|
-
% end
|
|
69
|
-
|
|
70
|
-
end
|
|
71
|
-
--------------------------------------------------
|
|
72
|
-
test_suites
|
|
73
|
-
|
|
74
|
-
% test_suites.collection.each do |suite|
|
|
75
|
-
<%= render "#{RGen.top}/lib/rgen/tester/v93k/generator/templates/test_suite.txt.erb", :suite => suite, :_inline => true %>
|
|
76
|
-
|
|
77
|
-
% end
|
|
78
|
-
|
|
79
|
-
end
|
|
80
|
-
--------------------------------------------------
|
|
81
|
-
test_flow
|
|
82
|
-
|
|
83
|
-
run_and_branch(Continuity) then
|
|
84
|
-
{
|
|
85
|
-
}
|
|
86
|
-
else
|
|
87
|
-
{
|
|
88
|
-
stop_bin "AA", "Continuity failed", , bad,noreprobe,red, ,over_on;
|
|
89
|
-
}
|
|
90
|
-
run_and_branch(Basic_functional_tes) then
|
|
91
|
-
{
|
|
92
|
-
}
|
|
93
|
-
else
|
|
94
|
-
{
|
|
95
|
-
stop_bin "BB", "Basic functional test failed", ,bad,noreprobe,red, ,over_on;
|
|
96
|
-
}
|
|
97
|
-
stop_bin "OK", "Everything went fine", , good,noreprobe,
|
|
98
|
-
green, , over_on;
|
|
99
|
-
end
|
|
100
|
-
-------------------------------------------------
|
|
101
|
-
binning
|
|
102
|
-
|
|
103
|
-
otherwise bin = "db", "", , bad,noreprobe,red, , not_over_on;
|
|
104
|
-
end
|
|
105
|
-
-------------------------------------------------
|
|
106
|
-
oocrule
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
end
|
|
110
|
-
-------------------------------------------------
|
|
111
|
-
context
|
|
112
|
-
|
|
113
|
-
context_config_file = "74145";
|
|
114
|
-
context_levels_file = "LowPower";
|
|
115
|
-
context_timing_file = "Fast";
|
|
116
|
-
context_vector_file = "74145";
|
|
117
|
-
context_attrib_file = "";
|
|
118
|
-
context_mixsgl_file = "";
|
|
119
|
-
|
|
120
|
-
end
|
|
121
|
-
--------------------------------------------------
|
|
@@ -1,103 +0,0 @@
|
|
|
1
|
-
module Origen
|
|
2
|
-
module Tester
|
|
3
|
-
class V93K
|
|
4
|
-
module Generator
|
|
5
|
-
class TestFunction
|
|
6
|
-
attr_accessor :name, :type, :description
|
|
7
|
-
|
|
8
|
-
# When defining attributes of a given test function here they must be defined
|
|
9
|
-
# in the correct order
|
|
10
|
-
ATTRS = {
|
|
11
|
-
|
|
12
|
-
functional: [],
|
|
13
|
-
|
|
14
|
-
general_pmu: %w(pins force_units force clamp_units clamp precharge_units precharge
|
|
15
|
-
pass_min_units pass_min pass_max_units pass_max settling_time_units
|
|
16
|
-
settling_time test_system_state term output_string mode
|
|
17
|
-
)
|
|
18
|
-
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
ALIASES = {
|
|
22
|
-
desc: :description,
|
|
23
|
-
|
|
24
|
-
general_pmu: {
|
|
25
|
-
state: :test_system_state
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
DEFAULTS = {
|
|
30
|
-
description: 'A test function generated by Origen'
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
# Define the common aliases now, the instance type specific ones will
|
|
34
|
-
# be created when the instance type is known
|
|
35
|
-
ALIASES.each do |_alias, val|
|
|
36
|
-
if val.is_a? Hash
|
|
37
|
-
else
|
|
38
|
-
define_method("#{_alias}=") do |v|
|
|
39
|
-
send("#{val}=", v)
|
|
40
|
-
end
|
|
41
|
-
define_method("#{_alias}") do
|
|
42
|
-
send(val)
|
|
43
|
-
end
|
|
44
|
-
end
|
|
45
|
-
end
|
|
46
|
-
|
|
47
|
-
def initialize(name, type, attrs = {})
|
|
48
|
-
@type = type
|
|
49
|
-
self.name = name
|
|
50
|
-
# Build the type specific attribute accessors
|
|
51
|
-
ATTRS[@type.to_sym].each do |method|
|
|
52
|
-
define_singleton_method("#{method}=") do |v|
|
|
53
|
-
instance_variable_set("@#{method}".to_sym, v)
|
|
54
|
-
end
|
|
55
|
-
define_singleton_method("#{method}") do
|
|
56
|
-
instance_variable_get("@#{method}".to_sym)
|
|
57
|
-
end
|
|
58
|
-
end
|
|
59
|
-
# Build the type specific accessors (aliases)
|
|
60
|
-
if ALIASES[@type.to_sym]
|
|
61
|
-
ALIASES[@type.to_sym].each do |_alias, val|
|
|
62
|
-
define_singleton_method("#{_alias}=") do |v|
|
|
63
|
-
send("#{val}=", v)
|
|
64
|
-
end
|
|
65
|
-
define_singleton_method("#{_alias}") do
|
|
66
|
-
send(val)
|
|
67
|
-
end
|
|
68
|
-
end
|
|
69
|
-
end
|
|
70
|
-
# Set the defaults
|
|
71
|
-
DEFAULTS.each do |key, val|
|
|
72
|
-
send("#{key}=", val) unless val.is_a?(Hash)
|
|
73
|
-
end
|
|
74
|
-
if DEFAULTS[@type.to_sym]
|
|
75
|
-
DEFAULTS[@type.to_sym].each do |k, v|
|
|
76
|
-
send("#{k}=", v)
|
|
77
|
-
end
|
|
78
|
-
end
|
|
79
|
-
# Then the values that have been supplied
|
|
80
|
-
attrs.each do |k, v|
|
|
81
|
-
m = "#{k}="
|
|
82
|
-
send(m, v) if self.respond_to?(m)
|
|
83
|
-
end
|
|
84
|
-
end
|
|
85
|
-
|
|
86
|
-
# Returns the fully formatted lines (an array) that should be inserted into a flow
|
|
87
|
-
# sheet to include this test function
|
|
88
|
-
def lines
|
|
89
|
-
[
|
|
90
|
-
"#{name}:",
|
|
91
|
-
"testfunction_description = \"#{description}\";",
|
|
92
|
-
"testfunction_parameters = \"#{type};#{parameter_string}\";"
|
|
93
|
-
]
|
|
94
|
-
end
|
|
95
|
-
|
|
96
|
-
def parameter_string
|
|
97
|
-
ATTRS[@type.to_sym].map { |attr| send(attr) }.compact.join(';')
|
|
98
|
-
end
|
|
99
|
-
end
|
|
100
|
-
end
|
|
101
|
-
end
|
|
102
|
-
end
|
|
103
|
-
end
|