origen 0.0.1 → 0.0.2
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/ctags +0 -0
- data/bin/origen +165 -1
- data/bin/rgen +2 -0
- data/config/application.rb +141 -0
- data/config/commands.rb +72 -0
- data/config/development.rb +7 -0
- data/config/environment.rb +0 -0
- data/config/rgen.policy +7 -0
- data/config/rubocop/easy.yml +620 -0
- data/config/rubocop/easy_disabled.yml +271 -0
- data/config/rubocop/easy_enabled.yml +731 -0
- data/config/rubocop/strict.yml +620 -0
- data/config/rubocop/strict_disabled.yml +247 -0
- data/config/rubocop/strict_enabled.yml +755 -0
- data/config/users.rb +20 -0
- data/config/version.rb +1 -1
- data/helpers/url.rb +68 -0
- data/lib/c99/doc_interface.rb +56 -0
- data/lib/c99/j750_interface.rb +85 -0
- data/lib/c99/nvm.rb +89 -0
- data/lib/c99/target/mock2.rb +1 -0
- data/lib/c99/target/subdir/mock3.rb +1 -0
- data/lib/option_parser/optparse.rb +12 -0
- data/lib/origen/acronyms.rb +60 -0
- data/lib/origen/application/command_dispatcher.rb +12 -0
- data/lib/origen/application/configuration.rb +206 -0
- data/lib/origen/application/configuration_manager.rb +78 -0
- data/lib/origen/application/deployer.rb +367 -0
- data/lib/origen/application/environment.rb +186 -0
- data/lib/origen/application/lsf.rb +145 -0
- data/lib/origen/application/lsf_manager.rb +657 -0
- data/lib/origen/application/plugins_manager.rb +280 -0
- data/lib/origen/application/release.rb +359 -0
- data/lib/origen/application/runner.rb +246 -0
- data/lib/origen/application/statistics.rb +191 -0
- data/lib/origen/application/target.rb +374 -0
- data/lib/origen/application/version_tracker.rb +59 -0
- data/lib/origen/application/workspace_manager.rb +151 -0
- data/lib/origen/application.rb +746 -0
- data/lib/origen/bugs/bug.rb +36 -0
- data/lib/origen/bugs.rb +45 -0
- data/lib/origen/callbacks.rb +35 -0
- data/lib/origen/chip_mode.rb +118 -0
- data/lib/origen/chip_package.rb +461 -0
- data/lib/origen/client.rb +87 -0
- data/lib/origen/code_generators/actions.rb +258 -0
- data/lib/origen/code_generators/base.rb +57 -0
- data/lib/origen/code_generators/bundler.rb +17 -0
- data/lib/origen/code_generators/gem_setup.rb +49 -0
- data/lib/origen/code_generators/rake.rb +13 -0
- data/lib/origen/code_generators/rspec.rb +12 -0
- data/lib/origen/code_generators/semver.rb +39 -0
- data/lib/origen/code_generators/timever.rb +37 -0
- data/lib/origen/code_generators.rb +111 -0
- data/lib/origen/commands/add.rb +12 -0
- data/lib/origen/commands/compile.rb +62 -0
- data/lib/origen/commands/ctags.rb +9 -0
- data/lib/origen/commands/dispatch.rb +22 -0
- data/lib/origen/commands/environment.rb +11 -0
- data/lib/origen/commands/fetch.rb +63 -0
- data/lib/origen/commands/generate.rb +130 -0
- data/lib/origen/commands/interactive.rb +73 -0
- data/lib/origen/commands/lint.rb +82 -0
- data/lib/origen/commands/lsf.rb +93 -0
- data/lib/origen/commands/merge.rb +55 -0
- data/lib/origen/commands/modifications.rb +12 -0
- data/lib/origen/commands/new.rb +113 -0
- data/lib/origen/commands/plugin.rb +105 -0
- data/lib/origen/commands/program.rb +70 -0
- data/lib/origen/commands/rc.rb +442 -0
- data/lib/origen/commands/save.rb +56 -0
- data/lib/origen/commands/target.rb +27 -0
- data/lib/origen/commands/time.rb +127 -0
- data/lib/origen/commands/version.rb +17 -0
- data/lib/origen/commands/web.rb +221 -0
- data/lib/origen/commands.rb +272 -0
- data/lib/origen/commands_global.rb +76 -0
- data/lib/origen/controller.rb +94 -0
- data/lib/origen/core_ext/array.rb +23 -0
- data/lib/origen/core_ext/bignum.rb +36 -0
- data/lib/origen/core_ext/enumerable.rb +76 -0
- data/lib/origen/core_ext/fixnum.rb +46 -0
- data/lib/origen/core_ext/hash.rb +52 -0
- data/lib/origen/core_ext/module.rb +14 -0
- data/lib/origen/core_ext/numeric.rb +126 -0
- data/lib/origen/core_ext/object.rb +13 -0
- data/lib/origen/core_ext/range.rb +7 -0
- data/lib/origen/core_ext/string.rb +124 -0
- data/lib/origen/core_ext.rb +10 -0
- data/lib/origen/database/key_value_store.rb +111 -0
- data/lib/origen/database/key_value_stores.rb +108 -0
- data/lib/origen/database.rb +6 -0
- data/lib/origen/encodings.rb +102 -0
- data/lib/origen/features/feature.rb +22 -0
- data/lib/origen/features.rb +104 -0
- data/lib/origen/file_handler.rb +429 -0
- data/lib/origen/generator/comparator.rb +56 -0
- data/lib/origen/generator/compiler.rb +277 -0
- data/lib/origen/generator/flow.rb +49 -0
- data/lib/origen/generator/job.rb +131 -0
- data/lib/origen/generator/pattern.rb +356 -0
- data/lib/origen/generator/pattern_finder.rb +155 -0
- data/lib/origen/generator/pattern_iterator.rb +55 -0
- data/lib/origen/generator/renderer.rb +113 -0
- data/lib/origen/generator/resources.rb +40 -0
- data/lib/origen/generator/stage.rb +89 -0
- data/lib/origen/generator.rb +85 -0
- data/lib/origen/global_methods.rb +205 -0
- data/lib/origen/import_manager.rb +596 -0
- data/lib/origen/location/base.rb +116 -0
- data/lib/origen/location/map.rb +83 -0
- data/lib/origen/location.rb +6 -0
- data/lib/origen/log.rb +217 -0
- data/lib/origen/logger_methods.rb +56 -0
- data/lib/origen/mode.rb +61 -0
- data/lib/origen/model.rb +267 -0
- data/lib/origen/model_initializer.rb +45 -0
- data/lib/origen/nvm/block_array.rb +72 -0
- data/lib/origen/nvm.rb +6 -0
- data/lib/origen/parameters/live.rb +22 -0
- data/lib/origen/parameters/missing.rb +28 -0
- data/lib/origen/parameters/set.rb +144 -0
- data/lib/origen/parameters.rb +107 -0
- data/lib/origen/pdm.rb +218 -0
- data/lib/origen/pins/function_proxy.rb +36 -0
- data/lib/origen/pins/ground_pin.rb +6 -0
- data/lib/origen/pins/pin.rb +860 -0
- data/lib/origen/pins/pin_bank.rb +349 -0
- data/lib/origen/pins/pin_clock.rb +124 -0
- data/lib/origen/pins/pin_collection.rb +492 -0
- data/lib/origen/pins/pin_common.rb +206 -0
- data/lib/origen/pins/port.rb +268 -0
- data/lib/origen/pins/power_pin.rb +30 -0
- data/lib/origen/pins.rb +696 -0
- data/lib/origen/registers/bit.rb +562 -0
- data/lib/origen/registers/bit_collection.rb +787 -0
- data/lib/origen/registers/container.rb +288 -0
- data/lib/origen/registers/domain.rb +16 -0
- data/lib/origen/registers/reg.rb +1406 -0
- data/lib/origen/registers/reg_collection.rb +24 -0
- data/lib/origen/registers.rb +652 -0
- data/lib/origen/regression_manager.rb +251 -0
- data/lib/origen/remote_manager.rb +340 -0
- data/lib/origen/revision_control/base.rb +257 -0
- data/lib/origen/revision_control/design_sync.rb +276 -0
- data/lib/origen/revision_control/git.rb +243 -0
- data/lib/origen/revision_control/subversion.rb +6 -0
- data/lib/origen/revision_control.rb +44 -0
- data/lib/origen/ruby_version_check.rb +131 -0
- data/lib/origen/site_config.rb +61 -0
- data/lib/origen/specs/checkers.rb +103 -0
- data/lib/origen/specs/creation_info.rb +17 -0
- data/lib/origen/specs/doc_resource.rb +91 -0
- data/lib/origen/specs/exhibit.rb +17 -0
- data/lib/origen/specs/mode_select.rb +16 -0
- data/lib/origen/specs/note.rb +17 -0
- data/lib/origen/specs/override.rb +21 -0
- data/lib/origen/specs/power_supply.rb +13 -0
- data/lib/origen/specs/spec.rb +226 -0
- data/lib/origen/specs/version_history.rb +14 -0
- data/lib/origen/specs.rb +552 -0
- data/lib/origen/sub_blocks.rb +298 -0
- data/lib/origen/tester/api.rb +277 -0
- data/lib/origen/tester/bdm/bdm.rb +25 -0
- data/lib/origen/tester/command_based_tester.rb +46 -0
- data/lib/origen/tester/doc/doc.rb +226 -0
- data/lib/origen/tester/doc/generator/flow.rb +71 -0
- data/lib/origen/tester/doc/generator/flow_line.rb +203 -0
- data/lib/origen/tester/doc/generator/test.rb +68 -0
- data/lib/origen/tester/doc/generator/test_group.rb +66 -0
- data/lib/origen/tester/doc/generator/tests.rb +47 -0
- data/lib/origen/tester/doc/generator.rb +126 -0
- data/lib/origen/tester/doc/model.rb +162 -0
- data/lib/origen/tester/generator/flow_control_api.rb +606 -0
- data/lib/origen/tester/generator/identity_map.rb +25 -0
- data/lib/origen/tester/generator/placeholder.rb +13 -0
- data/lib/origen/tester/generator/test_numberer.rb +25 -0
- data/lib/origen/tester/generator.rb +271 -0
- data/lib/origen/tester/interface.rb +154 -0
- data/lib/origen/tester/j750/files.rb +45 -0
- data/lib/origen/tester/j750/generator/flow.rb +123 -0
- data/lib/origen/tester/j750/generator/flow_line.rb +288 -0
- data/lib/origen/tester/j750/generator/patgroup.rb +111 -0
- data/lib/origen/tester/j750/generator/patgroups.rb +41 -0
- data/lib/origen/tester/j750/generator/patset.rb +111 -0
- data/lib/origen/tester/j750/generator/patsets.rb +41 -0
- data/lib/origen/tester/j750/generator/templates/flow.txt.erb +9 -0
- data/lib/origen/tester/j750/generator/templates/instances.txt.erb +16 -0
- data/lib/origen/tester/j750/generator/templates/patgroups.txt.erb +8 -0
- data/lib/origen/tester/j750/generator/templates/patsets.txt.erb +10 -0
- data/lib/origen/tester/j750/generator/test_instance.rb +846 -0
- data/lib/origen/tester/j750/generator/test_instance_group.rb +60 -0
- data/lib/origen/tester/j750/generator/test_instances.rb +182 -0
- data/lib/origen/tester/j750/generator.rb +203 -0
- data/lib/origen/tester/j750/j750.rb +845 -0
- data/lib/origen/tester/j750/j750_hpt.rb +35 -0
- data/lib/origen/tester/j750/parser/ac_spec.rb +11 -0
- data/lib/origen/tester/j750/parser/ac_specs.rb +0 -0
- data/lib/origen/tester/j750/parser/dc_spec.rb +36 -0
- data/lib/origen/tester/j750/parser/dc_specs.rb +50 -0
- data/lib/origen/tester/j750/parser/descriptions.rb +340 -0
- data/lib/origen/tester/j750/parser/flow.rb +111 -0
- data/lib/origen/tester/j750/parser/flow_line.rb +207 -0
- data/lib/origen/tester/j750/parser/flows.rb +23 -0
- data/lib/origen/tester/j750/parser/pattern_set.rb +94 -0
- data/lib/origen/tester/j750/parser/pattern_sets.rb +33 -0
- data/lib/origen/tester/j750/parser/test_instance.rb +322 -0
- data/lib/origen/tester/j750/parser/test_instances.rb +26 -0
- data/lib/origen/tester/j750/parser/timeset.rb +15 -0
- data/lib/origen/tester/j750/parser/timesets.rb +0 -0
- data/lib/origen/tester/j750/parser.rb +104 -0
- data/lib/origen/tester/jlink/jlink.rb +33 -0
- data/lib/origen/tester/parser/description_lookup.rb +64 -0
- data/lib/origen/tester/parser/searchable_array.rb +32 -0
- data/lib/origen/tester/parser/searchable_hash.rb +32 -0
- data/lib/origen/tester/parser.rb +24 -0
- data/lib/origen/tester/time.rb +338 -0
- data/lib/origen/tester/timing.rb +253 -0
- data/lib/origen/tester/ultraflex/files.rb +45 -0
- data/lib/origen/tester/ultraflex/generator/flow.rb +119 -0
- data/lib/origen/tester/ultraflex/generator/flow_line.rb +269 -0
- data/lib/origen/tester/ultraflex/generator/patgroup.rb +111 -0
- data/lib/origen/tester/ultraflex/generator/patgroups.rb +41 -0
- data/lib/origen/tester/ultraflex/generator/patset.rb +111 -0
- data/lib/origen/tester/ultraflex/generator/patsets.rb +41 -0
- data/lib/origen/tester/ultraflex/generator/templates/flow.txt.erb +9 -0
- data/lib/origen/tester/ultraflex/generator/templates/instances.txt.erb +16 -0
- data/lib/origen/tester/ultraflex/generator/templates/patgroups.txt.erb +8 -0
- data/lib/origen/tester/ultraflex/generator/templates/patsets.txt.erb +10 -0
- data/lib/origen/tester/ultraflex/generator/test_instance.rb +622 -0
- data/lib/origen/tester/ultraflex/generator/test_instance_group.rb +60 -0
- data/lib/origen/tester/ultraflex/generator/test_instances.rb +174 -0
- data/lib/origen/tester/ultraflex/generator.rb +200 -0
- data/lib/origen/tester/ultraflex/parser/ac_spec.rb +11 -0
- data/lib/origen/tester/ultraflex/parser/ac_specs.rb +0 -0
- data/lib/origen/tester/ultraflex/parser/dc_spec.rb +36 -0
- data/lib/origen/tester/ultraflex/parser/dc_specs.rb +50 -0
- data/lib/origen/tester/ultraflex/parser/descriptions.rb +342 -0
- data/lib/origen/tester/ultraflex/parser/flow.rb +111 -0
- data/lib/origen/tester/ultraflex/parser/flow_line.rb +207 -0
- data/lib/origen/tester/ultraflex/parser/flows.rb +23 -0
- data/lib/origen/tester/ultraflex/parser/pattern_set.rb +94 -0
- data/lib/origen/tester/ultraflex/parser/pattern_sets.rb +33 -0
- data/lib/origen/tester/ultraflex/parser/test_instance.rb +262 -0
- data/lib/origen/tester/ultraflex/parser/test_instances.rb +26 -0
- data/lib/origen/tester/ultraflex/parser/timeset.rb +15 -0
- data/lib/origen/tester/ultraflex/parser/timesets.rb +0 -0
- data/lib/origen/tester/ultraflex/parser.rb +104 -0
- data/lib/origen/tester/ultraflex/ultraflex.rb +759 -0
- data/lib/origen/tester/v93k/generator/flow.rb +63 -0
- data/lib/origen/tester/v93k/generator/flow_node/print.rb +10 -0
- data/lib/origen/tester/v93k/generator/flow_node.rb +17 -0
- data/lib/origen/tester/v93k/generator/pattern.rb +16 -0
- data/lib/origen/tester/v93k/generator/pattern_master.rb +54 -0
- data/lib/origen/tester/v93k/generator/templates/_test_method.txt.erb +6 -0
- data/lib/origen/tester/v93k/generator/templates/_test_suite.txt.erb +11 -0
- data/lib/origen/tester/v93k/generator/templates/template.flow.erb +121 -0
- data/lib/origen/tester/v93k/generator/templates/template.pmfl.erb +9 -0
- data/lib/origen/tester/v93k/generator/test_function.rb +103 -0
- data/lib/origen/tester/v93k/generator/test_functions.rb +79 -0
- data/lib/origen/tester/v93k/generator/test_method.rb +46 -0
- data/lib/origen/tester/v93k/generator/test_methods.rb +75 -0
- data/lib/origen/tester/v93k/generator/test_suite.rb +54 -0
- data/lib/origen/tester/v93k/generator/test_suites.rb +65 -0
- data/lib/origen/tester/v93k/generator.rb +80 -0
- data/lib/origen/tester/v93k/v93k.rb +420 -0
- data/lib/origen/tester/vector.rb +86 -0
- data/lib/origen/tester/vector_generator.rb +633 -0
- data/lib/origen/tester/vector_pipeline.rb +150 -0
- data/lib/origen/tester.rb +56 -0
- data/lib/origen/top_level.rb +134 -0
- data/lib/origen/users/ldap.rb +65 -0
- data/lib/origen/users/user.rb +149 -0
- data/lib/origen/users.rb +30 -0
- data/lib/origen/utility/block_args.rb +93 -0
- data/lib/origen/utility/csv_data.rb +110 -0
- data/lib/origen/utility/design_sync.rb +494 -0
- data/lib/origen/utility/diff.rb +158 -0
- data/lib/origen/utility/input_capture.rb +121 -0
- data/lib/origen/utility/mailer.rb +143 -0
- data/lib/origen/utility/s_record.rb +205 -0
- data/lib/origen/utility/time_and_date.rb +30 -0
- data/lib/origen/utility.rb +12 -0
- data/lib/origen/version_checker.rb +117 -0
- data/lib/origen/version_string.rb +356 -0
- data/lib/origen.rb +648 -0
- data/lib/tasks/gem.rake +27 -22
- data/origen_site_config.yml +36 -0
- data/source_setup +17 -0
- data/spec/format/rgen_formatter.rb +14 -0
- data/templates/api_doc/README.txt.erb +24 -0
- data/templates/code_generators/gemfile_app.rb +4 -0
- data/templates/code_generators/gemfile_plugin.rb +6 -0
- data/templates/code_generators/gemspec.rb +33 -0
- data/templates/code_generators/rakefile.rb +10 -0
- data/templates/code_generators/spec_helper.rb +49 -0
- data/templates/code_generators/version.rb +8 -0
- data/templates/code_generators/version_time.rb +3 -0
- data/templates/git/gitignore.erb +33 -0
- data/templates/j750/_vt_flow.txt.erb +8 -0
- data/templates/j750/_vt_instances.txt.erb +4 -0
- data/templates/j750/program_sheet.txt.erb +9 -0
- data/templates/nanoc/Rules +74 -0
- data/templates/nanoc/config.yaml +77 -0
- data/templates/nanoc/content/favicon.ico +0 -0
- data/templates/nanoc/layouts/bootstrap.html.erb +63 -0
- data/templates/nanoc/layouts/bootstrap3.html.erb +71 -0
- data/templates/nanoc/layouts/freescale.html.erb +79 -0
- data/templates/nanoc/lib/bootstrap_filter.rb +49 -0
- data/templates/nanoc/lib/codeblocks_filter.rb +41 -0
- data/templates/nanoc/lib/default.rb +2 -0
- data/templates/nanoc/lib/gzip_filter.rb +16 -0
- data/templates/nanoc/lib/haml_code_filter.rb +41 -0
- data/templates/nanoc/lib/helpers.rb +1 -0
- data/templates/nanoc/lib/search_filter.rb +62 -0
- data/templates/nanoc_dynamic/content/search.js.erb +92 -0
- data/templates/shared/web/_logo.html +10 -0
- data/templates/test/_inline_sub.txt.erb +2 -0
- data/templates/test/environment.txt.erb +1 -0
- data/templates/test/inline.txt.erb +11 -0
- data/templates/test/inspections.txt.erb +19 -0
- data/templates/test/set1/_sub1.txt.erb +12 -0
- data/templates/test/set1/_sub4.txt.erb +1 -0
- data/templates/test/set1/_sub5.txt.erb +1 -0
- data/templates/test/set1/main.txt.erb +53 -0
- data/templates/test/set1/sub_dir/_sub2.txt.erb +20 -0
- data/templates/test/set1/sub_dir/_sub3.txt.erb +12 -0
- data/templates/test/set1/sub_dir/main2.txt.erb +4 -0
- data/templates/test/set2/template_with_no_erb_1.txt +9 -0
- data/templates/test/set2/template_with_no_erb_2.txt +9 -0
- data/templates/test/set3/_layout.html.erb +4 -0
- data/templates/test/set3/content.html.erb +6 -0
- data/templates/time/filter.rb.erb +15 -0
- data/templates/time/rules.rb.erb +45 -0
- metadata +639 -5
|
@@ -0,0 +1,63 @@
|
|
|
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
|
|
@@ -0,0 +1,17 @@
|
|
|
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
|
|
@@ -0,0 +1,54 @@
|
|
|
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
|
|
@@ -0,0 +1,11 @@
|
|
|
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 %>;
|
|
@@ -0,0 +1,121 @@
|
|
|
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
|
+
--------------------------------------------------
|
|
@@ -0,0 +1,103 @@
|
|
|
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
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
module Origen
|
|
2
|
+
module Tester
|
|
3
|
+
class V93K
|
|
4
|
+
module Generator
|
|
5
|
+
class TestFunctions
|
|
6
|
+
# Origen::Tester::Generator not included since test functions do not have their
|
|
7
|
+
# own top-level sheet, they will be incorporated within the flow sheet
|
|
8
|
+
|
|
9
|
+
attr_accessor :flow, :collection
|
|
10
|
+
|
|
11
|
+
def initialize(flow)
|
|
12
|
+
@flow = flow
|
|
13
|
+
@collection = {}
|
|
14
|
+
@ix = 0
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def filename
|
|
18
|
+
flow.filename
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
def add(name, type, options = {})
|
|
22
|
+
check_for_duplicates(name)
|
|
23
|
+
record_test_function(name)
|
|
24
|
+
func = TestFunction.new(next_name, type, options)
|
|
25
|
+
@collection[name] = func
|
|
26
|
+
# c = Origen.interface.consume_comments
|
|
27
|
+
# Origen.interface.descriptions.add_for_test_definition(name, c)
|
|
28
|
+
func
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
def functional(name, options = {})
|
|
32
|
+
add(name, :functional, options)
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
def [](name)
|
|
36
|
+
@collection[name]
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
# Returns true if the given test function name has already been added to the current flow.
|
|
40
|
+
#
|
|
41
|
+
# Pass in :global => true for all test flows to be considered.
|
|
42
|
+
def duplicate?(name, options = {})
|
|
43
|
+
files = existing_test_functions[name]
|
|
44
|
+
if files && !files.empty?
|
|
45
|
+
options[:global] || files.include?(filename)
|
|
46
|
+
else
|
|
47
|
+
false
|
|
48
|
+
end
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
private
|
|
52
|
+
|
|
53
|
+
def next_name
|
|
54
|
+
@ix += 1
|
|
55
|
+
"tf_#{@ix}"
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
def check_for_duplicates(name)
|
|
59
|
+
if duplicate?(name)
|
|
60
|
+
error "Duplicate test function #{name} generated in #{filename}"
|
|
61
|
+
exit 1
|
|
62
|
+
elsif duplicate?(name, global: true)
|
|
63
|
+
warning "Test function #{name} is duplicated in: #{existing_test_functions[name].join(', ')}"
|
|
64
|
+
end
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
def existing_test_functions
|
|
68
|
+
@@existing_test_functions ||= {}
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
def record_test_function(name)
|
|
72
|
+
existing_test_functions[name] ||= []
|
|
73
|
+
existing_test_functions[name] << filename
|
|
74
|
+
end
|
|
75
|
+
end
|
|
76
|
+
end
|
|
77
|
+
end
|
|
78
|
+
end
|
|
79
|
+
end
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
module Origen
|
|
2
|
+
module Tester
|
|
3
|
+
class V93K
|
|
4
|
+
module Generator
|
|
5
|
+
class TestMethod
|
|
6
|
+
ATTRS =
|
|
7
|
+
%w(name klass method_name parameters limits
|
|
8
|
+
)
|
|
9
|
+
|
|
10
|
+
ALIASES = {
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
DEFAULTS = {
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
# Generate accessors for all attributes and their aliases
|
|
17
|
+
ATTRS.each do |attr|
|
|
18
|
+
attr_accessor attr.to_sym
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
# Define the aliases
|
|
22
|
+
ALIASES.each do |_alias, val|
|
|
23
|
+
define_method("#{_alias}=") do |v|
|
|
24
|
+
send("#{val}=", v)
|
|
25
|
+
end
|
|
26
|
+
define_method("#{_alias}") do
|
|
27
|
+
send(val)
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
def initialize(name, attrs = {})
|
|
32
|
+
self.name = name
|
|
33
|
+
# Set the defaults
|
|
34
|
+
DEFAULTS.each do |k, v|
|
|
35
|
+
send("#{k}=", v)
|
|
36
|
+
end
|
|
37
|
+
# Then the values that have been supplied
|
|
38
|
+
attrs.each do |k, v|
|
|
39
|
+
send("#{k}=", v)
|
|
40
|
+
end
|
|
41
|
+
end
|
|
42
|
+
end
|
|
43
|
+
end
|
|
44
|
+
end
|
|
45
|
+
end
|
|
46
|
+
end
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
module Origen
|
|
2
|
+
module Tester
|
|
3
|
+
class V93K
|
|
4
|
+
module Generator
|
|
5
|
+
class TestMethods
|
|
6
|
+
# Origen::Tester::Generator not included since test methods do not have their
|
|
7
|
+
# own top-level sheet, they will be incorporated within the flow sheet
|
|
8
|
+
|
|
9
|
+
attr_accessor :flow, :collection
|
|
10
|
+
|
|
11
|
+
def initialize(flow)
|
|
12
|
+
@flow = flow
|
|
13
|
+
@collection = {}
|
|
14
|
+
@ix = 0
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def filename
|
|
18
|
+
flow.filename
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
def add(name, _type, options = {})
|
|
22
|
+
check_for_duplicates(name)
|
|
23
|
+
record_test_method(name)
|
|
24
|
+
func = TestMethod.new(next_name, options)
|
|
25
|
+
@collection[name] = func
|
|
26
|
+
# c = Origen.interface.consume_comments
|
|
27
|
+
# Origen.interface.descriptions.add_for_test_definition(name, c)
|
|
28
|
+
func
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
def [](name)
|
|
32
|
+
@collection[name]
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
# Returns true if the given test method name has already been added to the current flow.
|
|
36
|
+
#
|
|
37
|
+
# Pass in :global => true for all test flows to be considered.
|
|
38
|
+
def duplicate?(name, options = {})
|
|
39
|
+
files = existing_test_methods[name]
|
|
40
|
+
if files && !files.empty?
|
|
41
|
+
options[:global] || files.include?(filename)
|
|
42
|
+
else
|
|
43
|
+
false
|
|
44
|
+
end
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
private
|
|
48
|
+
|
|
49
|
+
def next_name
|
|
50
|
+
@ix += 1
|
|
51
|
+
"tm_#{@ix}"
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
def check_for_duplicates(name)
|
|
55
|
+
if duplicate?(name)
|
|
56
|
+
error "Duplicate test method #{name} generated in #{filename}"
|
|
57
|
+
exit 1
|
|
58
|
+
elsif duplicate?(name, global: true)
|
|
59
|
+
warning "Test method #{name} is duplicated in: #{existing_test_methods[name].join(', ')}"
|
|
60
|
+
end
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
def existing_test_methods
|
|
64
|
+
@@existing_test_methods ||= {}
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
def record_test_method(name)
|
|
68
|
+
existing_test_methods[name] ||= []
|
|
69
|
+
existing_test_methods[name] << filename
|
|
70
|
+
end
|
|
71
|
+
end
|
|
72
|
+
end
|
|
73
|
+
end
|
|
74
|
+
end
|
|
75
|
+
end
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
module Origen
|
|
2
|
+
module Tester
|
|
3
|
+
class V93K
|
|
4
|
+
module Generator
|
|
5
|
+
class TestSuite
|
|
6
|
+
ATTRS =
|
|
7
|
+
%w(name tim_equ_set lev_equ_set tim_spec_set lev_spec_set timset levset
|
|
8
|
+
seqlbl testf test_number
|
|
9
|
+
)
|
|
10
|
+
|
|
11
|
+
ALIASES = {
|
|
12
|
+
pattern: :seqlbl,
|
|
13
|
+
sequence_label: :seqlbl,
|
|
14
|
+
test_num: :test_number,
|
|
15
|
+
test_function: :testf,
|
|
16
|
+
levels: :levset,
|
|
17
|
+
timeset: :timset,
|
|
18
|
+
time_set: :timset
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
DEFAULTS = {
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
# Generate accessors for all attributes and their aliases
|
|
25
|
+
ATTRS.each do |attr|
|
|
26
|
+
attr_accessor attr.to_sym
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
# Define the aliases
|
|
30
|
+
ALIASES.each do |_alias, val|
|
|
31
|
+
define_method("#{_alias}=") do |v|
|
|
32
|
+
send("#{val}=", v)
|
|
33
|
+
end
|
|
34
|
+
define_method("#{_alias}") do
|
|
35
|
+
send(val)
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
def initialize(name, attrs = {})
|
|
40
|
+
self.name = name
|
|
41
|
+
# Set the defaults
|
|
42
|
+
DEFAULTS.each do |k, v|
|
|
43
|
+
send("#{k}=", v)
|
|
44
|
+
end
|
|
45
|
+
# Then the values that have been supplied
|
|
46
|
+
attrs.each do |k, v|
|
|
47
|
+
send("#{k}=", v)
|
|
48
|
+
end
|
|
49
|
+
end
|
|
50
|
+
end
|
|
51
|
+
end
|
|
52
|
+
end
|
|
53
|
+
end
|
|
54
|
+
end
|