origen_testers 0.13.1 → 0.13.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/config/application.rb +151 -151
- data/config/boot.rb +13 -13
- data/config/commands.rb +85 -86
- data/config/users.rb +18 -18
- data/config/version.rb +8 -8
- data/lib/commands/build.rb +69 -69
- data/lib/commands/run.rb +48 -48
- data/lib/origen_testers.rb +47 -47
- data/lib/origen_testers/api.rb +381 -381
- data/lib/origen_testers/basic_test_setups.rb +105 -105
- data/lib/origen_testers/callback_handlers.rb +59 -59
- data/lib/origen_testers/command_based_tester.rb +45 -45
- data/lib/origen_testers/flow.rb +382 -382
- data/lib/origen_testers/generator.rb +283 -283
- data/lib/origen_testers/generator/identity_map.rb +23 -23
- data/lib/origen_testers/generator/placeholder.rb +11 -11
- data/lib/origen_testers/generator/test_numberer.rb +23 -23
- data/lib/origen_testers/igxl_based_tester.rb +12 -12
- data/lib/origen_testers/igxl_based_tester/base.rb +1100 -1099
- data/lib/origen_testers/igxl_based_tester/base/ac_specsets.rb +79 -79
- data/lib/origen_testers/igxl_based_tester/base/custom_test_instance.rb +169 -169
- data/lib/origen_testers/igxl_based_tester/base/dc_specsets.rb +98 -98
- data/lib/origen_testers/igxl_based_tester/base/edge.rb +60 -60
- data/lib/origen_testers/igxl_based_tester/base/edges.rb +24 -24
- data/lib/origen_testers/igxl_based_tester/base/edgeset.rb +39 -39
- data/lib/origen_testers/igxl_based_tester/base/edgesets.rb +130 -130
- data/lib/origen_testers/igxl_based_tester/base/flow.rb +460 -460
- data/lib/origen_testers/igxl_based_tester/base/flow_line.rb +276 -276
- data/lib/origen_testers/igxl_based_tester/base/generator.rb +607 -607
- data/lib/origen_testers/igxl_based_tester/base/global_specs.rb +83 -83
- data/lib/origen_testers/igxl_based_tester/base/job.rb +75 -75
- data/lib/origen_testers/igxl_based_tester/base/jobs.rb +44 -44
- data/lib/origen_testers/igxl_based_tester/base/level_io_se.rb +59 -59
- data/lib/origen_testers/igxl_based_tester/base/level_supply.rb +39 -39
- data/lib/origen_testers/igxl_based_tester/base/levels.rb +31 -31
- data/lib/origen_testers/igxl_based_tester/base/levelset.rb +110 -110
- data/lib/origen_testers/igxl_based_tester/base/patgroup.rb +109 -109
- data/lib/origen_testers/igxl_based_tester/base/patgroups.rb +38 -38
- data/lib/origen_testers/igxl_based_tester/base/patset.rb +68 -68
- data/lib/origen_testers/igxl_based_tester/base/patset_pattern.rb +56 -56
- data/lib/origen_testers/igxl_based_tester/base/patsets.rb +38 -38
- data/lib/origen_testers/igxl_based_tester/base/patsubr.rb +68 -68
- data/lib/origen_testers/igxl_based_tester/base/patsubr_pattern.rb +56 -56
- data/lib/origen_testers/igxl_based_tester/base/patsubrs.rb +38 -38
- data/lib/origen_testers/igxl_based_tester/base/pinmap.rb +93 -93
- data/lib/origen_testers/igxl_based_tester/base/references.rb +25 -25
- data/lib/origen_testers/igxl_based_tester/base/test_instance.rb +322 -322
- data/lib/origen_testers/igxl_based_tester/base/test_instance_group.rb +66 -66
- data/lib/origen_testers/igxl_based_tester/base/test_instances.rb +212 -212
- data/lib/origen_testers/igxl_based_tester/base/test_instances/custom_til.rb +37 -37
- data/lib/origen_testers/igxl_based_tester/base/timeset.rb +37 -37
- data/lib/origen_testers/igxl_based_tester/base/timesets.rb +49 -49
- data/lib/origen_testers/igxl_based_tester/base/timesets_basic.rb +49 -49
- data/lib/origen_testers/igxl_based_tester/files.rb +43 -43
- data/lib/origen_testers/igxl_based_tester/j750.rb +269 -269
- data/lib/origen_testers/igxl_based_tester/j750/custom_test_instance.rb +32 -32
- data/lib/origen_testers/igxl_based_tester/j750/flow.rb +10 -10
- data/lib/origen_testers/igxl_based_tester/j750/flow_line.rb +19 -19
- data/lib/origen_testers/igxl_based_tester/j750/generator.rb +19 -19
- data/lib/origen_testers/igxl_based_tester/j750/patgroup.rb +9 -9
- data/lib/origen_testers/igxl_based_tester/j750/patgroups.rb +10 -10
- data/lib/origen_testers/igxl_based_tester/j750/patset.rb +9 -9
- data/lib/origen_testers/igxl_based_tester/j750/patset_pattern.rb +18 -18
- data/lib/origen_testers/igxl_based_tester/j750/patsets.rb +10 -10
- data/lib/origen_testers/igxl_based_tester/j750/patsubr.rb +9 -9
- data/lib/origen_testers/igxl_based_tester/j750/patsubr_pattern.rb +18 -18
- data/lib/origen_testers/igxl_based_tester/j750/patsubrs.rb +10 -10
- data/lib/origen_testers/igxl_based_tester/j750/test_instance.rb +746 -746
- data/lib/origen_testers/igxl_based_tester/j750/test_instance_group.rb +9 -9
- data/lib/origen_testers/igxl_based_tester/j750/test_instances.rb +10 -10
- data/lib/origen_testers/igxl_based_tester/j750_hpt.rb +34 -34
- data/lib/origen_testers/igxl_based_tester/j750_hpt/custom_test_instance.rb +32 -32
- data/lib/origen_testers/igxl_based_tester/j750_hpt/flow.rb +9 -9
- data/lib/origen_testers/igxl_based_tester/j750_hpt/flow_line.rb +9 -9
- data/lib/origen_testers/igxl_based_tester/j750_hpt/generator.rb +19 -19
- data/lib/origen_testers/igxl_based_tester/j750_hpt/patgroup.rb +9 -9
- data/lib/origen_testers/igxl_based_tester/j750_hpt/patgroups.rb +9 -9
- data/lib/origen_testers/igxl_based_tester/j750_hpt/patset.rb +9 -9
- data/lib/origen_testers/igxl_based_tester/j750_hpt/patset_pattern.rb +9 -9
- data/lib/origen_testers/igxl_based_tester/j750_hpt/patsets.rb +9 -9
- data/lib/origen_testers/igxl_based_tester/j750_hpt/patsubr.rb +9 -9
- data/lib/origen_testers/igxl_based_tester/j750_hpt/patsubr_pattern.rb +9 -9
- data/lib/origen_testers/igxl_based_tester/j750_hpt/patsubrs.rb +9 -9
- data/lib/origen_testers/igxl_based_tester/j750_hpt/test_instance.rb +599 -599
- data/lib/origen_testers/igxl_based_tester/j750_hpt/test_instance_group.rb +9 -9
- data/lib/origen_testers/igxl_based_tester/j750_hpt/test_instances.rb +9 -9
- data/lib/origen_testers/igxl_based_tester/parser.rb +102 -102
- data/lib/origen_testers/igxl_based_tester/parser/ac_spec.rb +9 -9
- data/lib/origen_testers/igxl_based_tester/parser/dc_spec.rb +33 -33
- data/lib/origen_testers/igxl_based_tester/parser/dc_specs.rb +48 -48
- data/lib/origen_testers/igxl_based_tester/parser/descriptions.rb +339 -339
- data/lib/origen_testers/igxl_based_tester/parser/flow.rb +109 -109
- data/lib/origen_testers/igxl_based_tester/parser/flow_line.rb +203 -203
- data/lib/origen_testers/igxl_based_tester/parser/flows.rb +21 -21
- data/lib/origen_testers/igxl_based_tester/parser/pattern_set.rb +92 -92
- data/lib/origen_testers/igxl_based_tester/parser/pattern_sets.rb +31 -31
- data/lib/origen_testers/igxl_based_tester/parser/test_instance.rb +420 -420
- data/lib/origen_testers/igxl_based_tester/parser/test_instances.rb +24 -24
- data/lib/origen_testers/igxl_based_tester/parser/timeset.rb +13 -13
- data/lib/origen_testers/igxl_based_tester/ultraflex.rb +798 -798
- data/lib/origen_testers/igxl_based_tester/ultraflex/ac_specsets.rb +10 -10
- data/lib/origen_testers/igxl_based_tester/ultraflex/ate_hardware.rb +949 -949
- data/lib/origen_testers/igxl_based_tester/ultraflex/custom_test_instance.rb +36 -36
- data/lib/origen_testers/igxl_based_tester/ultraflex/dc_specsets.rb +10 -10
- data/lib/origen_testers/igxl_based_tester/ultraflex/edge.rb +9 -9
- data/lib/origen_testers/igxl_based_tester/ultraflex/edges.rb +9 -9
- data/lib/origen_testers/igxl_based_tester/ultraflex/edgeset.rb +9 -9
- data/lib/origen_testers/igxl_based_tester/ultraflex/edgesets.rb +10 -10
- data/lib/origen_testers/igxl_based_tester/ultraflex/flow.rb +158 -158
- data/lib/origen_testers/igxl_based_tester/ultraflex/flow_line.rb +19 -19
- data/lib/origen_testers/igxl_based_tester/ultraflex/generator.rb +19 -19
- data/lib/origen_testers/igxl_based_tester/ultraflex/global_specs.rb +10 -10
- data/lib/origen_testers/igxl_based_tester/ultraflex/job.rb +9 -9
- data/lib/origen_testers/igxl_based_tester/ultraflex/jobs.rb +10 -10
- data/lib/origen_testers/igxl_based_tester/ultraflex/level_io_se.rb +9 -9
- data/lib/origen_testers/igxl_based_tester/ultraflex/level_supply.rb +9 -9
- data/lib/origen_testers/igxl_based_tester/ultraflex/levels.rb +9 -9
- data/lib/origen_testers/igxl_based_tester/ultraflex/levelset.rb +10 -10
- data/lib/origen_testers/igxl_based_tester/ultraflex/patgroup.rb +9 -9
- data/lib/origen_testers/igxl_based_tester/ultraflex/patgroups.rb +10 -10
- data/lib/origen_testers/igxl_based_tester/ultraflex/patset.rb +9 -9
- data/lib/origen_testers/igxl_based_tester/ultraflex/patset_pattern.rb +18 -18
- data/lib/origen_testers/igxl_based_tester/ultraflex/patsets.rb +10 -10
- data/lib/origen_testers/igxl_based_tester/ultraflex/patsubr.rb +9 -9
- data/lib/origen_testers/igxl_based_tester/ultraflex/patsubr_pattern.rb +18 -18
- data/lib/origen_testers/igxl_based_tester/ultraflex/patsubrs.rb +10 -10
- data/lib/origen_testers/igxl_based_tester/ultraflex/pinmap.rb +10 -10
- data/lib/origen_testers/igxl_based_tester/ultraflex/references.rb +10 -10
- data/lib/origen_testers/igxl_based_tester/ultraflex/templates/ac_specsets.txt.erb +0 -0
- data/lib/origen_testers/igxl_based_tester/ultraflex/templates/dc_specsets.txt.erb +0 -0
- data/lib/origen_testers/igxl_based_tester/ultraflex/templates/edgesets.txt.erb +0 -0
- data/lib/origen_testers/igxl_based_tester/ultraflex/templates/global_specs.txt.erb +0 -0
- data/lib/origen_testers/igxl_based_tester/ultraflex/templates/jobs.txt.erb +0 -0
- data/lib/origen_testers/igxl_based_tester/ultraflex/templates/levelset.txt.erb +0 -0
- data/lib/origen_testers/igxl_based_tester/ultraflex/templates/pinmap.txt.erb +0 -0
- data/lib/origen_testers/igxl_based_tester/ultraflex/templates/references.txt.erb +0 -0
- data/lib/origen_testers/igxl_based_tester/ultraflex/templates/timesets.txt.erb +0 -0
- data/lib/origen_testers/igxl_based_tester/ultraflex/templates/timesets_basic.txt.erb +0 -0
- data/lib/origen_testers/igxl_based_tester/ultraflex/test_instance.rb +315 -315
- data/lib/origen_testers/igxl_based_tester/ultraflex/test_instance_group.rb +9 -9
- data/lib/origen_testers/igxl_based_tester/ultraflex/test_instances.rb +10 -10
- data/lib/origen_testers/igxl_based_tester/ultraflex/timeset.rb +9 -9
- data/lib/origen_testers/igxl_based_tester/ultraflex/timesets.rb +10 -10
- data/lib/origen_testers/igxl_based_tester/ultraflex/timesets_basic.rb +10 -10
- data/lib/origen_testers/interface.rb +345 -324
- data/lib/origen_testers/memory_style.rb +77 -77
- data/lib/origen_testers/no_interface.rb +7 -7
- data/lib/origen_testers/origen_ext/application/runner.rb +25 -25
- data/lib/origen_testers/origen_ext/generator.rb +54 -54
- data/lib/origen_testers/origen_ext/generator/flow.rb +91 -77
- data/lib/origen_testers/origen_ext/generator/resources.rb +21 -21
- data/lib/origen_testers/origen_ext/pins/pin.rb +78 -78
- data/lib/origen_testers/origen_ext/pins/pin_collection.rb +84 -84
- data/lib/origen_testers/parser.rb +22 -22
- data/lib/origen_testers/parser/description_lookup.rb +62 -62
- data/lib/origen_testers/parser/searchable_array.rb +30 -30
- data/lib/origen_testers/parser/searchable_hash.rb +30 -30
- data/lib/origen_testers/pattern_compilers.rb +116 -116
- data/lib/origen_testers/pattern_compilers/assembler.rb +88 -88
- data/lib/origen_testers/pattern_compilers/job.rb +96 -96
- data/lib/origen_testers/pattern_compilers/ultraflex_pattern_compiler.rb +599 -599
- data/lib/origen_testers/program_generators.rb +62 -62
- data/lib/origen_testers/smartest_based_tester.rb +8 -8
- data/lib/origen_testers/smartest_based_tester/base.rb +576 -567
- data/lib/origen_testers/smartest_based_tester/base/flow.rb +296 -291
- data/lib/origen_testers/smartest_based_tester/base/generator.rb +207 -194
- data/lib/origen_testers/smartest_based_tester/base/pattern_compiler.rb +32 -32
- data/lib/origen_testers/smartest_based_tester/base/pattern_master.rb +69 -69
- data/lib/origen_testers/smartest_based_tester/base/processors.rb +16 -16
- data/lib/origen_testers/smartest_based_tester/base/processors/adjacent_if_combiner.rb +106 -106
- data/lib/origen_testers/smartest_based_tester/base/processors/continue_implementer.rb +39 -39
- data/lib/origen_testers/smartest_based_tester/base/processors/empty_branch_cleaner.rb +21 -21
- data/lib/origen_testers/smartest_based_tester/base/processors/extract_run_flag_table.rb +33 -33
- data/lib/origen_testers/smartest_based_tester/base/processors/extract_set_variables.rb +22 -22
- data/lib/origen_testers/smartest_based_tester/base/processors/flag_optimizer.rb +188 -188
- data/lib/origen_testers/smartest_based_tester/base/processors/if_ran_cleaner.rb +34 -34
- data/lib/origen_testers/smartest_based_tester/base/test_method.rb +178 -164
- data/lib/origen_testers/smartest_based_tester/base/test_methods.rb +77 -73
- data/lib/origen_testers/smartest_based_tester/base/test_methods/ac_tml.rb +33 -33
- data/lib/origen_testers/smartest_based_tester/base/test_methods/base_tml.rb +38 -38
- data/lib/origen_testers/smartest_based_tester/base/test_methods/custom_tml.rb +19 -19
- data/lib/origen_testers/smartest_based_tester/base/test_methods/dc_tml.rb +147 -147
- data/lib/origen_testers/smartest_based_tester/base/test_methods/limits.rb +65 -65
- data/lib/origen_testers/smartest_based_tester/base/test_suite.rb +208 -193
- data/lib/origen_testers/smartest_based_tester/base/test_suites.rb +58 -54
- data/lib/origen_testers/smartest_based_tester/base/variables_file.rb +38 -38
- data/lib/origen_testers/smartest_based_tester/v93k.rb +8 -8
- data/lib/origen_testers/smartest_based_tester/v93k/builder.rb +89 -89
- data/lib/origen_testers/smartest_based_tester/v93k/builder/flow.rb +181 -181
- data/lib/origen_testers/smartest_based_tester/v93k/builder/pattern_master.rb +54 -54
- data/lib/origen_testers/smartest_based_tester/v93k/flow.rb +10 -10
- data/lib/origen_testers/smartest_based_tester/v93k/generator.rb +19 -19
- data/lib/origen_testers/smartest_based_tester/v93k/pattern_compiler.rb +10 -10
- data/lib/origen_testers/smartest_based_tester/v93k/pattern_master.rb +10 -10
- data/lib/origen_testers/smartest_based_tester/v93k/templates/template.aiv.erb +17 -17
- data/lib/origen_testers/smartest_based_tester/v93k/templates/template.pmfl.erb +13 -13
- data/lib/origen_testers/smartest_based_tester/v93k/templates/template.tf.erb +236 -214
- data/lib/origen_testers/smartest_based_tester/v93k/templates/vars.tf.erb +48 -48
- data/lib/origen_testers/smartest_based_tester/v93k/test_method.rb +9 -9
- data/lib/origen_testers/smartest_based_tester/v93k/test_methods.rb +9 -9
- data/lib/origen_testers/smartest_based_tester/v93k/test_suite.rb +9 -9
- data/lib/origen_testers/smartest_based_tester/v93k/test_suites.rb +9 -9
- data/lib/origen_testers/smartest_based_tester/v93k/variables_file.rb +10 -10
- data/lib/origen_testers/test/basic_interface.rb +17 -17
- data/lib/origen_testers/test/block.rb +21 -21
- data/lib/origen_testers/test/custom_test_interface.rb +111 -111
- data/lib/origen_testers/test/dut.rb +295 -295
- data/lib/origen_testers/test/dut2.rb +76 -76
- data/lib/origen_testers/test/dut3.rb +244 -244
- data/lib/origen_testers/test/interface.rb +503 -503
- data/lib/origen_testers/test/nvm.rb +94 -94
- data/lib/origen_testers/timing.rb +368 -368
- data/lib/origen_testers/vector.rb +207 -207
- data/lib/origen_testers/vector_based_tester.rb +41 -41
- data/lib/origen_testers/vector_generator.rb +655 -655
- data/lib/origen_testers/vector_pipeline.rb +302 -302
- data/pattern/bitmap.rb +7 -7
- data/pattern/dc_instr.rb +7 -7
- data/pattern/delay.rb +7 -7
- data/pattern/freq_counter.rb +6 -6
- data/pattern/mem_test.rb +8 -8
- data/pattern/multi_vector.rb +122 -122
- data/pattern/multi_vector_plus1.rb +125 -125
- data/pattern/nvm/j750/add_late_pins.rb +3 -3
- data/pattern/nvm/j750/iterator_postfix_test_x_bx.rb +8 -8
- data/pattern/nvm/j750/iterator_test_x_bx.rb +8 -8
- data/pattern/nvm/j750/j750_halt.rb +159 -159
- data/pattern/nvm/j750/j750_workout.rb +209 -209
- data/pattern/nvm/j750/timing.rb +73 -73
- data/pattern/read_write_reg.rb +61 -61
- data/pattern/reset.rb +4 -4
- data/pattern/subroutines.rb +69 -69
- data/pattern/tester_overlay.rb +61 -52
- data/pattern/tester_store.rb +28 -28
- data/program/_additional_erase.rb +7 -7
- data/program/_efa_resources.rb +7 -7
- data/program/_erase.rb +25 -25
- data/program/_erase_vfy.rb +5 -5
- data/program/_iv_resources.rb +10 -10
- data/program/basic_interface.rb +5 -5
- data/program/components/_prb1_main.rb +222 -222
- data/program/components/_temp.rb +6 -6
- data/program/custom_tests.rb +10 -10
- data/program/flow_control.rb +422 -422
- data/program/prb1.rb +11 -11
- data/program/prb1_resources.rb +28 -28
- data/program/prb2.rb +27 -27
- data/program/test.rb +29 -29
- data/program/uflex_resources.rb +199 -199
- data/templates/example.txt.erb +53 -53
- data/templates/j750/program_sheet.txt.erb +9 -9
- data/templates/manifest/v93k.yaml.erb +22 -22
- data/templates/web/index.md.erb +51 -51
- data/templates/web/layouts/_basic.html.erb +15 -15
- data/templates/web/partials/_navbar.html.erb +22 -22
- data/templates/web/release_notes.md.erb +5 -5
- metadata +2 -2
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
module OrigenTesters
|
|
2
|
-
module IGXLBasedTester
|
|
3
|
-
class UltraFLEX
|
|
4
|
-
require 'origen_testers/igxl_based_tester/base/test_instance_group'
|
|
5
|
-
class TestInstanceGroup < Base::TestInstanceGroup
|
|
6
|
-
end
|
|
7
|
-
end
|
|
8
|
-
end
|
|
9
|
-
end
|
|
1
|
+
module OrigenTesters
|
|
2
|
+
module IGXLBasedTester
|
|
3
|
+
class UltraFLEX
|
|
4
|
+
require 'origen_testers/igxl_based_tester/base/test_instance_group'
|
|
5
|
+
class TestInstanceGroup < Base::TestInstanceGroup
|
|
6
|
+
end
|
|
7
|
+
end
|
|
8
|
+
end
|
|
9
|
+
end
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
module OrigenTesters
|
|
2
|
-
module IGXLBasedTester
|
|
3
|
-
class UltraFLEX
|
|
4
|
-
require 'origen_testers/igxl_based_tester/base/test_instances'
|
|
5
|
-
class TestInstances < Base::TestInstances
|
|
6
|
-
TEMPLATE = "#{Origen.root!}/lib/origen_testers/igxl_based_tester/ultraflex/templates/instances.txt.erb"
|
|
7
|
-
end
|
|
8
|
-
end
|
|
9
|
-
end
|
|
10
|
-
end
|
|
1
|
+
module OrigenTesters
|
|
2
|
+
module IGXLBasedTester
|
|
3
|
+
class UltraFLEX
|
|
4
|
+
require 'origen_testers/igxl_based_tester/base/test_instances'
|
|
5
|
+
class TestInstances < Base::TestInstances
|
|
6
|
+
TEMPLATE = "#{Origen.root!}/lib/origen_testers/igxl_based_tester/ultraflex/templates/instances.txt.erb"
|
|
7
|
+
end
|
|
8
|
+
end
|
|
9
|
+
end
|
|
10
|
+
end
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
module OrigenTesters
|
|
2
|
-
module IGXLBasedTester
|
|
3
|
-
class UltraFLEX
|
|
4
|
-
require 'origen_testers/igxl_based_tester/base/timeset'
|
|
5
|
-
class Timeset < Base::Timeset
|
|
6
|
-
end
|
|
7
|
-
end
|
|
8
|
-
end
|
|
9
|
-
end
|
|
1
|
+
module OrigenTesters
|
|
2
|
+
module IGXLBasedTester
|
|
3
|
+
class UltraFLEX
|
|
4
|
+
require 'origen_testers/igxl_based_tester/base/timeset'
|
|
5
|
+
class Timeset < Base::Timeset
|
|
6
|
+
end
|
|
7
|
+
end
|
|
8
|
+
end
|
|
9
|
+
end
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
module OrigenTesters
|
|
2
|
-
module IGXLBasedTester
|
|
3
|
-
class UltraFLEX
|
|
4
|
-
require 'origen_testers/igxl_based_tester/base/timesets'
|
|
5
|
-
class Timesets < Base::Timesets
|
|
6
|
-
TEMPLATE = "#{Origen.root!}/lib/origen_testers/igxl_based_tester/ultraflex/templates/timesets.txt.erb"
|
|
7
|
-
end
|
|
8
|
-
end
|
|
9
|
-
end
|
|
10
|
-
end
|
|
1
|
+
module OrigenTesters
|
|
2
|
+
module IGXLBasedTester
|
|
3
|
+
class UltraFLEX
|
|
4
|
+
require 'origen_testers/igxl_based_tester/base/timesets'
|
|
5
|
+
class Timesets < Base::Timesets
|
|
6
|
+
TEMPLATE = "#{Origen.root!}/lib/origen_testers/igxl_based_tester/ultraflex/templates/timesets.txt.erb"
|
|
7
|
+
end
|
|
8
|
+
end
|
|
9
|
+
end
|
|
10
|
+
end
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
module OrigenTesters
|
|
2
|
-
module IGXLBasedTester
|
|
3
|
-
class UltraFLEX
|
|
4
|
-
require 'origen_testers/igxl_based_tester/base/timesets_basic'
|
|
5
|
-
class TimesetsBasic < Base::TimesetsBasic
|
|
6
|
-
TEMPLATE = "#{Origen.root!}/lib/origen_testers/igxl_based_tester/ultraflex/templates/timesets_basic.txt.erb"
|
|
7
|
-
end
|
|
8
|
-
end
|
|
9
|
-
end
|
|
10
|
-
end
|
|
1
|
+
module OrigenTesters
|
|
2
|
+
module IGXLBasedTester
|
|
3
|
+
class UltraFLEX
|
|
4
|
+
require 'origen_testers/igxl_based_tester/base/timesets_basic'
|
|
5
|
+
class TimesetsBasic < Base::TimesetsBasic
|
|
6
|
+
TEMPLATE = "#{Origen.root!}/lib/origen_testers/igxl_based_tester/ultraflex/templates/timesets_basic.txt.erb"
|
|
7
|
+
end
|
|
8
|
+
end
|
|
9
|
+
end
|
|
10
|
+
end
|
|
@@ -1,324 +1,345 @@
|
|
|
1
|
-
require 'active_support/concern'
|
|
2
|
-
|
|
3
|
-
module OrigenTesters
|
|
4
|
-
# Include this module in any class you define as a test interface
|
|
5
|
-
module Interface
|
|
6
|
-
extend ActiveSupport::Concern
|
|
7
|
-
|
|
8
|
-
included do
|
|
9
|
-
Origen.add_interface(self)
|
|
10
|
-
end
|
|
11
|
-
|
|
12
|
-
(ATP::AST::Builder::CONDITION_KEYS + [:group, :bin, :pass, :fail, :test, :log]).each do |method|
|
|
13
|
-
define_method method do |*args, &block|
|
|
14
|
-
flow.send(method, *args, &block)
|
|
15
|
-
end
|
|
16
|
-
end
|
|
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
|
-
|
|
31
|
-
def self.with_resources_mode
|
|
32
|
-
orig = @resources_mode
|
|
33
|
-
@resources_mode = true
|
|
34
|
-
yield
|
|
35
|
-
@resources_mode = orig
|
|
36
|
-
end
|
|
37
|
-
|
|
38
|
-
def self.resources_mode?
|
|
39
|
-
!!@resources_mode
|
|
40
|
-
end
|
|
41
|
-
|
|
42
|
-
def self.write=(val)
|
|
43
|
-
@write = val
|
|
44
|
-
end
|
|
45
|
-
|
|
46
|
-
def self.write?
|
|
47
|
-
!!@write
|
|
48
|
-
end
|
|
49
|
-
|
|
50
|
-
def write?
|
|
51
|
-
OrigenTesters::Interface.write?
|
|
52
|
-
end
|
|
53
|
-
|
|
54
|
-
#
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
#
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
#
|
|
79
|
-
#
|
|
80
|
-
#
|
|
81
|
-
#
|
|
82
|
-
#
|
|
83
|
-
#
|
|
84
|
-
def
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
end
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
end
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
end
|
|
204
|
-
|
|
205
|
-
def
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
#
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
def
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
1
|
+
require 'active_support/concern'
|
|
2
|
+
|
|
3
|
+
module OrigenTesters
|
|
4
|
+
# Include this module in any class you define as a test interface
|
|
5
|
+
module Interface
|
|
6
|
+
extend ActiveSupport::Concern
|
|
7
|
+
|
|
8
|
+
included do
|
|
9
|
+
Origen.add_interface(self)
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
(ATP::AST::Builder::CONDITION_KEYS + [:group, :bin, :pass, :fail, :test, :log]).each do |method|
|
|
13
|
+
define_method method do |*args, &block|
|
|
14
|
+
flow.send(method, *args, &block)
|
|
15
|
+
end
|
|
16
|
+
end
|
|
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
|
+
|
|
31
|
+
def self.with_resources_mode
|
|
32
|
+
orig = @resources_mode
|
|
33
|
+
@resources_mode = true
|
|
34
|
+
yield
|
|
35
|
+
@resources_mode = orig
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
def self.resources_mode?
|
|
39
|
+
!!@resources_mode
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
def self.write=(val)
|
|
43
|
+
@write = val
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
def self.write?
|
|
47
|
+
!!@write
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
def write?
|
|
51
|
+
OrigenTesters::Interface.write?
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
# Returns the value defined on if/how to make test names unique within a flow
|
|
55
|
+
def unique_test_names
|
|
56
|
+
@unique_test_names
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
# Set the value of unique_test_names
|
|
60
|
+
def unique_test_names=(val)
|
|
61
|
+
@unique_test_names = val
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
# Returns whether the tester has been configured to wrap top-level flow modules with an
|
|
65
|
+
# enable or not.
|
|
66
|
+
#
|
|
67
|
+
# Returns nil if not.
|
|
68
|
+
#
|
|
69
|
+
# Returns :enabled if the enable is configured to be on by default, or :disabled if it is
|
|
70
|
+
# configured to be off by default.
|
|
71
|
+
def add_flow_enable
|
|
72
|
+
@add_flow_enable
|
|
73
|
+
end
|
|
74
|
+
|
|
75
|
+
# Set to :enabled to have the current flow wrapped by an enable flow variable
|
|
76
|
+
# that is enabled by default (top-level flow has to disable modules it doesn't want).
|
|
77
|
+
#
|
|
78
|
+
# Set to :disabled to have the opposite, where the top-level flow has to enable all
|
|
79
|
+
# modules.
|
|
80
|
+
#
|
|
81
|
+
# Set to nil to have no wrapping. While this is the default, setting this to nil will
|
|
82
|
+
# override any setting of the attribute of the same name that has been set at
|
|
83
|
+
# tester-level by the target.
|
|
84
|
+
def add_flow_enable=(value)
|
|
85
|
+
return unless flow.respond_to?(:add_flow_enable=)
|
|
86
|
+
if value
|
|
87
|
+
if value == :enable || value == :enabled
|
|
88
|
+
flow.add_flow_enable = :enabled
|
|
89
|
+
elsif value == :disable || value == :disabled
|
|
90
|
+
flow.add_flow_enable = :disabled
|
|
91
|
+
else
|
|
92
|
+
fail "Unknown add_flow_enable value, #{value}, must be :enabled or :disabled"
|
|
93
|
+
end
|
|
94
|
+
else
|
|
95
|
+
flow.add_flow_enable = nil
|
|
96
|
+
end
|
|
97
|
+
end
|
|
98
|
+
|
|
99
|
+
# This identifier will be used to make labels and other references unique to the
|
|
100
|
+
# current application. This will help to avoid name duplication if a program is
|
|
101
|
+
# comprised of many modules generated by Origen.
|
|
102
|
+
#
|
|
103
|
+
# Override in the application interface to customize, by default the identifier
|
|
104
|
+
# will be Origen.config.initials
|
|
105
|
+
def app_identifier
|
|
106
|
+
Origen.config.initials || 'Anon App'
|
|
107
|
+
end
|
|
108
|
+
|
|
109
|
+
def close(options = {})
|
|
110
|
+
sheet_generators.each do |generator|
|
|
111
|
+
generator.close(options)
|
|
112
|
+
end
|
|
113
|
+
end
|
|
114
|
+
|
|
115
|
+
# Compile a template file
|
|
116
|
+
def compile(file, options = {})
|
|
117
|
+
return unless write?
|
|
118
|
+
# Any options passed in from an interface will be passed to the compiler and to
|
|
119
|
+
# the templates being compiled
|
|
120
|
+
options[:initial_options] = options
|
|
121
|
+
Origen.file_handler.preserve_state do
|
|
122
|
+
begin
|
|
123
|
+
file = Origen.file_handler.clean_path_to_template(file)
|
|
124
|
+
Origen.generator.compile_file_or_directory(file, options)
|
|
125
|
+
rescue
|
|
126
|
+
file = Origen.file_handler.clean_path_to(file)
|
|
127
|
+
Origen.generator.compile_file_or_directory(file, options)
|
|
128
|
+
end
|
|
129
|
+
end
|
|
130
|
+
end
|
|
131
|
+
|
|
132
|
+
def import(file, options = {})
|
|
133
|
+
# Attach the import request to the first generator, when it imports
|
|
134
|
+
# it any generated resources will automatically find their way to the
|
|
135
|
+
# correct generator/collection
|
|
136
|
+
generator = flow || sheet_generators.first
|
|
137
|
+
generator.import(file, options)
|
|
138
|
+
end
|
|
139
|
+
|
|
140
|
+
def render(file, options = {})
|
|
141
|
+
flow.render(file, options)
|
|
142
|
+
end
|
|
143
|
+
|
|
144
|
+
def write_files(options = {})
|
|
145
|
+
sheet_generators.each do |generator|
|
|
146
|
+
generator.finalize(options)
|
|
147
|
+
end
|
|
148
|
+
sheet_generators.each do |generator|
|
|
149
|
+
generator.write_to_file(options) if generator.to_be_written?
|
|
150
|
+
end
|
|
151
|
+
clean_referenced_patterns
|
|
152
|
+
flow.save_program
|
|
153
|
+
end
|
|
154
|
+
|
|
155
|
+
def on_program_completion(options = {})
|
|
156
|
+
reset_globals
|
|
157
|
+
@@pattern_references = {}
|
|
158
|
+
@@referenced_patterns = nil
|
|
159
|
+
end
|
|
160
|
+
|
|
161
|
+
# A secondary pattern is one where the pattern has been created by Origen as an output from
|
|
162
|
+
# generating another pattern (a primary pattern). For example, on V93K anytime a tester
|
|
163
|
+
# handshake is done, the pattern will be split into separate components, such as
|
|
164
|
+
# meas_bgap.avc (the primary pattern) and meas_bgap_part1.avc (a secondary pattern).
|
|
165
|
+
#
|
|
166
|
+
# Any such secondary pattern references should be pushed to this array, rather than the
|
|
167
|
+
# referenced_patterns array.
|
|
168
|
+
# By using the dedicated secondary array, the pattern will not appear in the referenced.list
|
|
169
|
+
# file so that Origen is not asked to generate it (since it will be created naturally from
|
|
170
|
+
# the primary pattern reference).
|
|
171
|
+
# However if the ATE requires a reference to the pattern (e.g. the V93K pattern master file),
|
|
172
|
+
# then it will be included in the relevant ATE files.
|
|
173
|
+
def record_pattern_reference(name, options = {})
|
|
174
|
+
if name.is_a?(String) || name.is_a?(Symbol)
|
|
175
|
+
name = name.to_s
|
|
176
|
+
else
|
|
177
|
+
fail "Pattern name must be a string or a symbol, not a #{name.class}"
|
|
178
|
+
end
|
|
179
|
+
# Help out the user and force any multi-part patterns to :ate type
|
|
180
|
+
unless options[:type]
|
|
181
|
+
if name.sub(/\..*/, '') =~ /part\d+$/
|
|
182
|
+
options[:type] = :ate
|
|
183
|
+
end
|
|
184
|
+
end
|
|
185
|
+
unless options[:type] == :origen
|
|
186
|
+
# Inform the current generator that it has a new pattern reference to handle
|
|
187
|
+
if respond_to?(:pattern_reference_recorded)
|
|
188
|
+
pattern_reference_recorded(name, options)
|
|
189
|
+
end
|
|
190
|
+
end
|
|
191
|
+
base = options[:subroutine] ? pattern_references[:subroutine] : pattern_references[:main]
|
|
192
|
+
case options[:type]
|
|
193
|
+
when :origen
|
|
194
|
+
base[:origen] << name
|
|
195
|
+
when :ate
|
|
196
|
+
base[:ate] << name
|
|
197
|
+
when nil
|
|
198
|
+
base[:all] << name
|
|
199
|
+
else
|
|
200
|
+
fail "Unknown pattern reference type, #{options[:type]}, valid values are :origen or :ate"
|
|
201
|
+
end
|
|
202
|
+
nil
|
|
203
|
+
end
|
|
204
|
+
|
|
205
|
+
def pattern_references
|
|
206
|
+
@@pattern_references ||= {}
|
|
207
|
+
@@pattern_references[pattern_references_name] ||= {
|
|
208
|
+
main: {
|
|
209
|
+
all: [],
|
|
210
|
+
origen: [],
|
|
211
|
+
ate: []
|
|
212
|
+
},
|
|
213
|
+
subroutine: {
|
|
214
|
+
all: [],
|
|
215
|
+
origen: [],
|
|
216
|
+
ate: []
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
end
|
|
220
|
+
|
|
221
|
+
def all_pattern_references
|
|
222
|
+
pattern_references
|
|
223
|
+
@@pattern_references
|
|
224
|
+
end
|
|
225
|
+
|
|
226
|
+
def pattern_references_name=(name)
|
|
227
|
+
@pattern_references_name = name
|
|
228
|
+
end
|
|
229
|
+
|
|
230
|
+
def pattern_references_name
|
|
231
|
+
@pattern_references_name || 'global'
|
|
232
|
+
end
|
|
233
|
+
|
|
234
|
+
# @deprecated Use record_pattern_reference instead
|
|
235
|
+
#
|
|
236
|
+
# All generators should push to this array whenever they reference a pattern
|
|
237
|
+
# so that it is captured in the pattern list, e.g.
|
|
238
|
+
# Origen.interface.referenced_patterns << pattern
|
|
239
|
+
#
|
|
240
|
+
# If the ATE platform also has a pattern list, e.g. the pattern master file on V93K,
|
|
241
|
+
# then this will also be updated.
|
|
242
|
+
# Duplicates will be automatically eliminated, so no duplicate checking should be
|
|
243
|
+
# performed on the application side.
|
|
244
|
+
def referenced_patterns
|
|
245
|
+
@@referenced_patterns ||= PatternArray.new
|
|
246
|
+
end
|
|
247
|
+
|
|
248
|
+
# Remove duplicates and file extensions from the referenced pattern lists
|
|
249
|
+
def clean_referenced_patterns
|
|
250
|
+
refs = [:referenced_patterns]
|
|
251
|
+
# refs << :referenced_subroutine_patterns if Origen.tester.v93k?
|
|
252
|
+
refs.each do |ref|
|
|
253
|
+
var = send(ref)
|
|
254
|
+
var = var.uniq.map do |pat|
|
|
255
|
+
pat = pat.sub(/\..*/, '')
|
|
256
|
+
pat unless pat =~ /_part\d+$/
|
|
257
|
+
end.uniq.compact
|
|
258
|
+
singleton_class.class_variable_set("@@#{ref}", var)
|
|
259
|
+
end
|
|
260
|
+
end
|
|
261
|
+
|
|
262
|
+
# Add a comment line into the buffer
|
|
263
|
+
def comment(text)
|
|
264
|
+
comments << text
|
|
265
|
+
end
|
|
266
|
+
|
|
267
|
+
def comments
|
|
268
|
+
@@comments ||= []
|
|
269
|
+
end
|
|
270
|
+
|
|
271
|
+
def discard_comments
|
|
272
|
+
@@comments = nil
|
|
273
|
+
end
|
|
274
|
+
|
|
275
|
+
# Returns the buffered description comments and clears the buffer
|
|
276
|
+
def consume_comments
|
|
277
|
+
c = comments
|
|
278
|
+
discard_comments
|
|
279
|
+
c
|
|
280
|
+
end
|
|
281
|
+
|
|
282
|
+
def top_level_flow
|
|
283
|
+
@@top_level_flow ||= nil
|
|
284
|
+
end
|
|
285
|
+
alias_method :top_level_flow_filename, :top_level_flow
|
|
286
|
+
|
|
287
|
+
def flow_generator
|
|
288
|
+
flow
|
|
289
|
+
end
|
|
290
|
+
|
|
291
|
+
def set_top_level_flow
|
|
292
|
+
@@top_level_flow = flow_generator.output_file
|
|
293
|
+
end
|
|
294
|
+
|
|
295
|
+
def clear_top_level_flow
|
|
296
|
+
@@top_level_flow = nil
|
|
297
|
+
end
|
|
298
|
+
|
|
299
|
+
# A storage Hash that all generators can push comment descriptions
|
|
300
|
+
# into when generating.
|
|
301
|
+
# At the end of a generation run this will contain all descriptions
|
|
302
|
+
# for all flows that were just created.
|
|
303
|
+
#
|
|
304
|
+
# Access via Origen.interface.descriptions
|
|
305
|
+
def descriptions
|
|
306
|
+
@@descriptions ||= Parser::DescriptionLookup.new
|
|
307
|
+
end
|
|
308
|
+
|
|
309
|
+
# Any tests generated within the given block will be generated in resources mode.
|
|
310
|
+
# Generally this means that all resources for a given test will be generated but
|
|
311
|
+
# flow entries will be inhibited.
|
|
312
|
+
def resources_mode
|
|
313
|
+
OrigenTesters::Interface.with_resources_mode do
|
|
314
|
+
yield
|
|
315
|
+
end
|
|
316
|
+
end
|
|
317
|
+
alias_method :with_resources_mode, :resources_mode
|
|
318
|
+
|
|
319
|
+
def resources_mode?
|
|
320
|
+
OrigenTesters::Interface.resources_mode?
|
|
321
|
+
end
|
|
322
|
+
|
|
323
|
+
def identity_map # :nodoc:
|
|
324
|
+
@@identity_map ||= ::OrigenTesters::Generator::IdentityMap.new
|
|
325
|
+
end
|
|
326
|
+
|
|
327
|
+
def platform
|
|
328
|
+
# This branch to support the ProgramGenerators module where the generator
|
|
329
|
+
# is included into an interface instance and not the class
|
|
330
|
+
if singleton_class.const_defined? :PLATFORM
|
|
331
|
+
singleton_class::PLATFORM
|
|
332
|
+
else
|
|
333
|
+
self.class::PLATFORM
|
|
334
|
+
end
|
|
335
|
+
end
|
|
336
|
+
|
|
337
|
+
module ClassMethods
|
|
338
|
+
# Returns true if the interface class supports the
|
|
339
|
+
# given tester instance
|
|
340
|
+
def supports?(tester_instance)
|
|
341
|
+
tester_instance.class == self::PLATFORM
|
|
342
|
+
end
|
|
343
|
+
end
|
|
344
|
+
end
|
|
345
|
+
end
|