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,21 +1,21 @@
|
|
|
1
|
-
# This shim is temporary to help NXP transition to Origen from
|
|
2
|
-
# our original internal version (RGen)
|
|
3
|
-
if defined? RGen::ORIGENTRANSITION
|
|
4
|
-
require 'rgen/generator/resources'
|
|
5
|
-
else
|
|
6
|
-
require 'origen/generator/resources'
|
|
7
|
-
end
|
|
8
|
-
module Origen
|
|
9
|
-
class Generator
|
|
10
|
-
class Resources
|
|
11
|
-
alias_method :orig_create, :create
|
|
12
|
-
|
|
13
|
-
# Patching to make resources_mode apply much earlier
|
|
14
|
-
def create(options = {}, &block)
|
|
15
|
-
OrigenTesters::Interface.with_resources_mode do
|
|
16
|
-
orig_create(options, &block)
|
|
17
|
-
end
|
|
18
|
-
end
|
|
19
|
-
end
|
|
20
|
-
end
|
|
21
|
-
end
|
|
1
|
+
# This shim is temporary to help NXP transition to Origen from
|
|
2
|
+
# our original internal version (RGen)
|
|
3
|
+
if defined? RGen::ORIGENTRANSITION
|
|
4
|
+
require 'rgen/generator/resources'
|
|
5
|
+
else
|
|
6
|
+
require 'origen/generator/resources'
|
|
7
|
+
end
|
|
8
|
+
module Origen
|
|
9
|
+
class Generator
|
|
10
|
+
class Resources
|
|
11
|
+
alias_method :orig_create, :create
|
|
12
|
+
|
|
13
|
+
# Patching to make resources_mode apply much earlier
|
|
14
|
+
def create(options = {}, &block)
|
|
15
|
+
OrigenTesters::Interface.with_resources_mode do
|
|
16
|
+
orig_create(options, &block)
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
@@ -1,78 +1,78 @@
|
|
|
1
|
-
# This code is used to extend Origen Core's pin class with additional functionality
|
|
2
|
-
|
|
3
|
-
require 'origen/pins/pin'
|
|
4
|
-
|
|
5
|
-
module Origen
|
|
6
|
-
module Pins
|
|
7
|
-
class Pin
|
|
8
|
-
# Returns the channel number for the pin on a given tester site (default = 0), based on a given tester channel
|
|
9
|
-
# map (default_channelmap). Optionally user can specify site or channelmap.
|
|
10
|
-
def channel(options = {})
|
|
11
|
-
options = {
|
|
12
|
-
chanmapname: $tester.default_channelmap, # Default is to use default_channelmap
|
|
13
|
-
site: 0 # Default is to use site 0.
|
|
14
|
-
}.merge(options)
|
|
15
|
-
unless $tester.channelmap[options[:chanmapname]]
|
|
16
|
-
fail "You must first import the tester channel map (e.g. $tester.channelmap = \"probe_x32\") before calling pin.channel"
|
|
17
|
-
end
|
|
18
|
-
|
|
19
|
-
channelinfo = Struct.new(:channel, :chanmapname, :site)
|
|
20
|
-
channelinfo.new($tester.get_tester_channel(options[:chanmapname], name, options[:site]), options[:chanmapname], options[:site])
|
|
21
|
-
end
|
|
22
|
-
|
|
23
|
-
# Returns the instrument type for the pin on a given tester site (default = 0), based on a given tester channel
|
|
24
|
-
# map (default_channelmap) and a given tester configuration (default_testerconfig).
|
|
25
|
-
# Optionally user can specify site, channelmap, or testerconfig.
|
|
26
|
-
def instrument_type(options = {})
|
|
27
|
-
options = {
|
|
28
|
-
chanmapname: $tester.default_channelmap, # Default is to use default_channelmap
|
|
29
|
-
site: 0, # Default is to use site 0.
|
|
30
|
-
testerconfigname: $tester.default_testerconfig # Default is to use default_testerconfig
|
|
31
|
-
}.merge(options)
|
|
32
|
-
|
|
33
|
-
unless $tester.channelmap[options[:chanmapname]]
|
|
34
|
-
fail "You must first import the tester channel map (e.g. $tester.channelmap = \"probe_x32\") before calling pin.channel"
|
|
35
|
-
end
|
|
36
|
-
unless $tester.testerconfig[options[:testerconfigname]]
|
|
37
|
-
fail "You must first import the tester configuration (e.g. $tester.testerconfig = \"UflexConfigA\") before calling pin.instrument_type"
|
|
38
|
-
end
|
|
39
|
-
|
|
40
|
-
instrumentinfo = Struct.new(:instrument, :chanmapname, :site, :testerconfigname)
|
|
41
|
-
instrumentinfo.new($tester.get_tester_instrument(options[:testerconfigname], $tester.get_tester_channel(options[:chanmapname], name, options[:site]).split('.')[0].to_i), options[:chanmapname], options[:site], options[:testerconfigname])
|
|
42
|
-
end
|
|
43
|
-
|
|
44
|
-
# Returns ATE Hardware information for the pin (channel # and instrument type) on a given tester site
|
|
45
|
-
# (default = 0), based on a given tester channelmap (default_channelmap) and a given tester
|
|
46
|
-
# configuration (default_testerconfig). # Optionally user can specify site, channelmap, or testerconfig.
|
|
47
|
-
def ate_hardware(options = {})
|
|
48
|
-
options = {
|
|
49
|
-
chanmapname: $tester.default_channelmap, # Default is to use default_channelmap
|
|
50
|
-
site: 0, # Default is to use site 0.
|
|
51
|
-
testerconfigname: $tester.default_testerconfig # Default is to use default_testerconfig
|
|
52
|
-
}.merge(options)
|
|
53
|
-
|
|
54
|
-
unless $tester.channelmap[options[:chanmapname]]
|
|
55
|
-
fail "You must first import the tester channel map (e.g. $tester.channelmap = \"probe_x32\") before calling pin.channel"
|
|
56
|
-
end
|
|
57
|
-
unless $tester.testerconfig[options[:testerconfigname]]
|
|
58
|
-
fail "You must first import the tester configuration (e.g. $tester.testerconfig = \"UflexConfigA\") before calling pin.instrument_type"
|
|
59
|
-
end
|
|
60
|
-
if Origen.top_level.power_pin_groups.keys.include?(name) # Power Pin Groups do not need :ppmu, but need :supply
|
|
61
|
-
instrumentinfo = Struct.new(:channel, :instrument, :chanmapname, :site, :testerconfigname, :supply)
|
|
62
|
-
@channel = $tester.get_tester_channel(options[:chanmapname], name, options[:site])
|
|
63
|
-
@instrument = $tester.get_tester_instrument(options[:testerconfigname], $tester.get_tester_channel(options[:chanmapname], name, options[:site]).split('.')[0].to_i) + $tester.is_vhdvs_hc(options[:chanmapname], name, options[:site]).to_s + $tester.is_hexvs_plus(options[:testerconfigname], @channel.split('.')[0].to_i).to_s + $tester.is_vhdvs_plus(options[:testerconfigname], @channel.split('.')[0].to_i).to_s + $tester.merged_channels(options[:chanmapname], name, options[:site]).to_s
|
|
64
|
-
@supply = $tester.ate_hardware(@instrument).supply
|
|
65
|
-
instrumentinfo.new(@channel, @instrument, options[:chanmapname], options[:site], options[:testerconfigname], @supply)
|
|
66
|
-
else
|
|
67
|
-
if $tester.get_tester_channel(options[:chanmapname], name, options[:site]).split('.')[0].to_i == 24
|
|
68
|
-
instrumentinfo = Struct.new(:channel, :instrument, :chanmapname, :site, :testerconfigname)
|
|
69
|
-
instrumentinfo.new($tester.get_tester_channel(options[:chanmapname], name, options[:site]), $tester.get_tester_instrument(options[:testerconfigname], $tester.get_tester_channel(options[:chanmapname], name, options[:site]).split('.')[0].to_i), options[:chanmapname], options[:site], options[:testerconfigname])
|
|
70
|
-
else
|
|
71
|
-
instrumentinfo = Struct.new(:channel, :instrument, :chanmapname, :site, :testerconfigname, :ppmu)
|
|
72
|
-
instrumentinfo.new($tester.get_tester_channel(options[:chanmapname], name, options[:site]), $tester.get_tester_instrument(options[:testerconfigname], $tester.get_tester_channel(options[:chanmapname], name, options[:site]).split('.')[0].to_i), options[:chanmapname], options[:site], options[:testerconfigname], $tester.ate_hardware($tester.get_tester_instrument(options[:testerconfigname], $tester.get_tester_channel(options[:chanmapname], name, options[:site]).split('.')[0].to_i)).ppmu)
|
|
73
|
-
end
|
|
74
|
-
end
|
|
75
|
-
end
|
|
76
|
-
end
|
|
77
|
-
end
|
|
78
|
-
end
|
|
1
|
+
# This code is used to extend Origen Core's pin class with additional functionality
|
|
2
|
+
|
|
3
|
+
require 'origen/pins/pin'
|
|
4
|
+
|
|
5
|
+
module Origen
|
|
6
|
+
module Pins
|
|
7
|
+
class Pin
|
|
8
|
+
# Returns the channel number for the pin on a given tester site (default = 0), based on a given tester channel
|
|
9
|
+
# map (default_channelmap). Optionally user can specify site or channelmap.
|
|
10
|
+
def channel(options = {})
|
|
11
|
+
options = {
|
|
12
|
+
chanmapname: $tester.default_channelmap, # Default is to use default_channelmap
|
|
13
|
+
site: 0 # Default is to use site 0.
|
|
14
|
+
}.merge(options)
|
|
15
|
+
unless $tester.channelmap[options[:chanmapname]]
|
|
16
|
+
fail "You must first import the tester channel map (e.g. $tester.channelmap = \"probe_x32\") before calling pin.channel"
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
channelinfo = Struct.new(:channel, :chanmapname, :site)
|
|
20
|
+
channelinfo.new($tester.get_tester_channel(options[:chanmapname], name, options[:site]), options[:chanmapname], options[:site])
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
# Returns the instrument type for the pin on a given tester site (default = 0), based on a given tester channel
|
|
24
|
+
# map (default_channelmap) and a given tester configuration (default_testerconfig).
|
|
25
|
+
# Optionally user can specify site, channelmap, or testerconfig.
|
|
26
|
+
def instrument_type(options = {})
|
|
27
|
+
options = {
|
|
28
|
+
chanmapname: $tester.default_channelmap, # Default is to use default_channelmap
|
|
29
|
+
site: 0, # Default is to use site 0.
|
|
30
|
+
testerconfigname: $tester.default_testerconfig # Default is to use default_testerconfig
|
|
31
|
+
}.merge(options)
|
|
32
|
+
|
|
33
|
+
unless $tester.channelmap[options[:chanmapname]]
|
|
34
|
+
fail "You must first import the tester channel map (e.g. $tester.channelmap = \"probe_x32\") before calling pin.channel"
|
|
35
|
+
end
|
|
36
|
+
unless $tester.testerconfig[options[:testerconfigname]]
|
|
37
|
+
fail "You must first import the tester configuration (e.g. $tester.testerconfig = \"UflexConfigA\") before calling pin.instrument_type"
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
instrumentinfo = Struct.new(:instrument, :chanmapname, :site, :testerconfigname)
|
|
41
|
+
instrumentinfo.new($tester.get_tester_instrument(options[:testerconfigname], $tester.get_tester_channel(options[:chanmapname], name, options[:site]).split('.')[0].to_i), options[:chanmapname], options[:site], options[:testerconfigname])
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
# Returns ATE Hardware information for the pin (channel # and instrument type) on a given tester site
|
|
45
|
+
# (default = 0), based on a given tester channelmap (default_channelmap) and a given tester
|
|
46
|
+
# configuration (default_testerconfig). # Optionally user can specify site, channelmap, or testerconfig.
|
|
47
|
+
def ate_hardware(options = {})
|
|
48
|
+
options = {
|
|
49
|
+
chanmapname: $tester.default_channelmap, # Default is to use default_channelmap
|
|
50
|
+
site: 0, # Default is to use site 0.
|
|
51
|
+
testerconfigname: $tester.default_testerconfig # Default is to use default_testerconfig
|
|
52
|
+
}.merge(options)
|
|
53
|
+
|
|
54
|
+
unless $tester.channelmap[options[:chanmapname]]
|
|
55
|
+
fail "You must first import the tester channel map (e.g. $tester.channelmap = \"probe_x32\") before calling pin.channel"
|
|
56
|
+
end
|
|
57
|
+
unless $tester.testerconfig[options[:testerconfigname]]
|
|
58
|
+
fail "You must first import the tester configuration (e.g. $tester.testerconfig = \"UflexConfigA\") before calling pin.instrument_type"
|
|
59
|
+
end
|
|
60
|
+
if Origen.top_level.power_pin_groups.keys.include?(name) # Power Pin Groups do not need :ppmu, but need :supply
|
|
61
|
+
instrumentinfo = Struct.new(:channel, :instrument, :chanmapname, :site, :testerconfigname, :supply)
|
|
62
|
+
@channel = $tester.get_tester_channel(options[:chanmapname], name, options[:site])
|
|
63
|
+
@instrument = $tester.get_tester_instrument(options[:testerconfigname], $tester.get_tester_channel(options[:chanmapname], name, options[:site]).split('.')[0].to_i) + $tester.is_vhdvs_hc(options[:chanmapname], name, options[:site]).to_s + $tester.is_hexvs_plus(options[:testerconfigname], @channel.split('.')[0].to_i).to_s + $tester.is_vhdvs_plus(options[:testerconfigname], @channel.split('.')[0].to_i).to_s + $tester.merged_channels(options[:chanmapname], name, options[:site]).to_s
|
|
64
|
+
@supply = $tester.ate_hardware(@instrument).supply
|
|
65
|
+
instrumentinfo.new(@channel, @instrument, options[:chanmapname], options[:site], options[:testerconfigname], @supply)
|
|
66
|
+
else
|
|
67
|
+
if $tester.get_tester_channel(options[:chanmapname], name, options[:site]).split('.')[0].to_i == 24
|
|
68
|
+
instrumentinfo = Struct.new(:channel, :instrument, :chanmapname, :site, :testerconfigname)
|
|
69
|
+
instrumentinfo.new($tester.get_tester_channel(options[:chanmapname], name, options[:site]), $tester.get_tester_instrument(options[:testerconfigname], $tester.get_tester_channel(options[:chanmapname], name, options[:site]).split('.')[0].to_i), options[:chanmapname], options[:site], options[:testerconfigname])
|
|
70
|
+
else
|
|
71
|
+
instrumentinfo = Struct.new(:channel, :instrument, :chanmapname, :site, :testerconfigname, :ppmu)
|
|
72
|
+
instrumentinfo.new($tester.get_tester_channel(options[:chanmapname], name, options[:site]), $tester.get_tester_instrument(options[:testerconfigname], $tester.get_tester_channel(options[:chanmapname], name, options[:site]).split('.')[0].to_i), options[:chanmapname], options[:site], options[:testerconfigname], $tester.ate_hardware($tester.get_tester_instrument(options[:testerconfigname], $tester.get_tester_channel(options[:chanmapname], name, options[:site]).split('.')[0].to_i)).ppmu)
|
|
73
|
+
end
|
|
74
|
+
end
|
|
75
|
+
end
|
|
76
|
+
end
|
|
77
|
+
end
|
|
78
|
+
end
|
|
@@ -1,84 +1,84 @@
|
|
|
1
|
-
# This code is used to extend Origen Core's pin_collection class with additional functionality
|
|
2
|
-
|
|
3
|
-
require 'origen/pins/pin_collection'
|
|
4
|
-
|
|
5
|
-
module Origen
|
|
6
|
-
module Pins
|
|
7
|
-
class PinCollection
|
|
8
|
-
# Returns the channel number for the pin_collection on a given tester site (default = 0), based on a given tester channel
|
|
9
|
-
# map (default_channelmap). Optionally user can specify site or channelmap.
|
|
10
|
-
def channel(options = {})
|
|
11
|
-
options = {
|
|
12
|
-
chanmapname: $tester.default_channelmap, # Default is to use default_channelmap
|
|
13
|
-
site: 0 # Default is to use site 0.
|
|
14
|
-
}.merge(options)
|
|
15
|
-
unless $tester.channelmap[options[:chanmapname]]
|
|
16
|
-
fail "You must first import the tester channel map (e.g. $tester.channelmap = \"probe_x32\") before calling pin.channel"
|
|
17
|
-
end
|
|
18
|
-
|
|
19
|
-
channelinfo = Struct.new(:channel, :chanmapname, :site)
|
|
20
|
-
channelinfo.new($tester.get_tester_channel(options[:chanmapname], name, options[:site]), options[:chanmapname], options[:site])
|
|
21
|
-
end
|
|
22
|
-
|
|
23
|
-
# Returns the instrument type for the pin_collection on a given tester site (default = 0), based on a given tester channel
|
|
24
|
-
# map (default_channelmap) and a given tester configuration (default_testerconfig).
|
|
25
|
-
# Optionally user can specify site, channelmap, or testerconfig.
|
|
26
|
-
def instrument_type(options = {})
|
|
27
|
-
options = {
|
|
28
|
-
chanmapname: $tester.default_channelmap, # Default is to use default_channelmap
|
|
29
|
-
site: 0, # Default is to use site 0.
|
|
30
|
-
testerconfigname: $tester.default_testerconfig # Default is to use default_testerconfig
|
|
31
|
-
}.merge(options)
|
|
32
|
-
|
|
33
|
-
unless $tester.channelmap[options[:chanmapname]]
|
|
34
|
-
fail "You must first import the tester channel map (e.g. $tester.channelmap = \"probe_x32\") before calling pin.channel"
|
|
35
|
-
end
|
|
36
|
-
unless $tester.testerconfig[options[:testerconfigname]]
|
|
37
|
-
fail "You must first import the tester configuration (e.g. $tester.testerconfig = \"UflexConfigA\") before calling pin.instrument_type"
|
|
38
|
-
end
|
|
39
|
-
|
|
40
|
-
instrumentinfo = Struct.new(:instrument, :chanmapname, :site, :testerconfigname)
|
|
41
|
-
instrumentinfo.new($tester.get_tester_instrument(options[:testerconfigname], $tester.get_tester_channel(options[:chanmapname], name, options[:site]).split('.')[0].to_i), options[:chanmapname], options[:site], options[:testerconfigname])
|
|
42
|
-
end
|
|
43
|
-
|
|
44
|
-
# Returns ATE Hardware information for the pin_collection (channel # and instrument type) on a given tester site
|
|
45
|
-
# (default = 0), based on a given tester channelmap (default_channelmap) and a given tester
|
|
46
|
-
# configuration (default_testerconfig). # Optionally user can specify site, channelmap, or testerconfig.
|
|
47
|
-
def ate_hardware(options = {})
|
|
48
|
-
options = {
|
|
49
|
-
chanmapname: $tester.default_channelmap, # Default is to use default_channelmap
|
|
50
|
-
site: 0, # Default is to use site 0.
|
|
51
|
-
testerconfigname: $tester.default_testerconfig # Default is to use default_testerconfig
|
|
52
|
-
}.merge(options)
|
|
53
|
-
|
|
54
|
-
unless $tester.channelmap[options[:chanmapname]]
|
|
55
|
-
fail "You must first import the tester channel map (e.g. $tester.channelmap = \"probe_x32\") before calling pin.channel"
|
|
56
|
-
end
|
|
57
|
-
unless $tester.testerconfig[options[:testerconfigname]]
|
|
58
|
-
fail "You must first import the tester configuration (e.g. $tester.testerconfig = \"UflexConfigA\") before calling pin.instrument_type"
|
|
59
|
-
end
|
|
60
|
-
|
|
61
|
-
if Origen.top_level.power_pin_groups.keys.include?(name) # Power Pin Groups do not need :ppmu, but need :supply
|
|
62
|
-
instrumentinfo = Struct.new(:channel, :instrument, :chanmapname, :site, :testerconfigname, :supply)
|
|
63
|
-
@channel = $tester.get_tester_channel(options[:chanmapname], name, options[:site])
|
|
64
|
-
@instrument = $tester.get_tester_instrument(options[:testerconfigname], $tester.get_tester_channel(options[:chanmapname], name, options[:site]).split('.')[0].to_i) + $tester.is_vhdvs_hc(options[:chanmapname], name, options[:site]).to_s + $tester.is_hexvs_plus(options[:testerconfigname], @channel.split('.')[0].to_i).to_s + $tester.is_vhdvs_plus(options[:testerconfigname], @channel.split('.')[0].to_i).to_s + $tester.merged_channels(options[:chanmapname], name, options[:site]).to_s
|
|
65
|
-
@supply = $tester.ate_hardware(@instrument).supply
|
|
66
|
-
instrumentinfo.new(@channel, @instrument, options[:chanmapname], options[:site], options[:testerconfigname], @supply)
|
|
67
|
-
else # Collecting information of individual members and put in arrays
|
|
68
|
-
instrumentinfo = Struct.new(:members, :channel, :instrument, :chanmapname, :site, :testerconfigname, :ppmu)
|
|
69
|
-
@members = []
|
|
70
|
-
@channel = []
|
|
71
|
-
@instrument = []
|
|
72
|
-
@ppmu = []
|
|
73
|
-
Origen.top_level.pin_groups(name).map(&:id).each do |pinname|
|
|
74
|
-
@members << Origen.top_level.pins(pinname).name
|
|
75
|
-
@channel << $tester.get_tester_channel(options[:chanmapname], Origen.top_level.pins(pinname).name, options[:site])
|
|
76
|
-
@instrument << $tester.get_tester_instrument(options[:testerconfigname], $tester.get_tester_channel(options[:chanmapname], Origen.top_level.pins(pinname).name, options[:site]).split('.')[0].to_i)
|
|
77
|
-
@ppmu << $tester.ate_hardware($tester.get_tester_instrument(options[:testerconfigname], $tester.get_tester_channel(options[:chanmapname], Origen.top_level.pins(pinname).name, options[:site]).split('.')[0].to_i)).ppmu
|
|
78
|
-
end
|
|
79
|
-
instrumentinfo.new(@members, @channel, @instrument, options[:chanmapname], options[:site], options[:testerconfigname], @ppmu)
|
|
80
|
-
end
|
|
81
|
-
end
|
|
82
|
-
end
|
|
83
|
-
end
|
|
84
|
-
end
|
|
1
|
+
# This code is used to extend Origen Core's pin_collection class with additional functionality
|
|
2
|
+
|
|
3
|
+
require 'origen/pins/pin_collection'
|
|
4
|
+
|
|
5
|
+
module Origen
|
|
6
|
+
module Pins
|
|
7
|
+
class PinCollection
|
|
8
|
+
# Returns the channel number for the pin_collection on a given tester site (default = 0), based on a given tester channel
|
|
9
|
+
# map (default_channelmap). Optionally user can specify site or channelmap.
|
|
10
|
+
def channel(options = {})
|
|
11
|
+
options = {
|
|
12
|
+
chanmapname: $tester.default_channelmap, # Default is to use default_channelmap
|
|
13
|
+
site: 0 # Default is to use site 0.
|
|
14
|
+
}.merge(options)
|
|
15
|
+
unless $tester.channelmap[options[:chanmapname]]
|
|
16
|
+
fail "You must first import the tester channel map (e.g. $tester.channelmap = \"probe_x32\") before calling pin.channel"
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
channelinfo = Struct.new(:channel, :chanmapname, :site)
|
|
20
|
+
channelinfo.new($tester.get_tester_channel(options[:chanmapname], name, options[:site]), options[:chanmapname], options[:site])
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
# Returns the instrument type for the pin_collection on a given tester site (default = 0), based on a given tester channel
|
|
24
|
+
# map (default_channelmap) and a given tester configuration (default_testerconfig).
|
|
25
|
+
# Optionally user can specify site, channelmap, or testerconfig.
|
|
26
|
+
def instrument_type(options = {})
|
|
27
|
+
options = {
|
|
28
|
+
chanmapname: $tester.default_channelmap, # Default is to use default_channelmap
|
|
29
|
+
site: 0, # Default is to use site 0.
|
|
30
|
+
testerconfigname: $tester.default_testerconfig # Default is to use default_testerconfig
|
|
31
|
+
}.merge(options)
|
|
32
|
+
|
|
33
|
+
unless $tester.channelmap[options[:chanmapname]]
|
|
34
|
+
fail "You must first import the tester channel map (e.g. $tester.channelmap = \"probe_x32\") before calling pin.channel"
|
|
35
|
+
end
|
|
36
|
+
unless $tester.testerconfig[options[:testerconfigname]]
|
|
37
|
+
fail "You must first import the tester configuration (e.g. $tester.testerconfig = \"UflexConfigA\") before calling pin.instrument_type"
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
instrumentinfo = Struct.new(:instrument, :chanmapname, :site, :testerconfigname)
|
|
41
|
+
instrumentinfo.new($tester.get_tester_instrument(options[:testerconfigname], $tester.get_tester_channel(options[:chanmapname], name, options[:site]).split('.')[0].to_i), options[:chanmapname], options[:site], options[:testerconfigname])
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
# Returns ATE Hardware information for the pin_collection (channel # and instrument type) on a given tester site
|
|
45
|
+
# (default = 0), based on a given tester channelmap (default_channelmap) and a given tester
|
|
46
|
+
# configuration (default_testerconfig). # Optionally user can specify site, channelmap, or testerconfig.
|
|
47
|
+
def ate_hardware(options = {})
|
|
48
|
+
options = {
|
|
49
|
+
chanmapname: $tester.default_channelmap, # Default is to use default_channelmap
|
|
50
|
+
site: 0, # Default is to use site 0.
|
|
51
|
+
testerconfigname: $tester.default_testerconfig # Default is to use default_testerconfig
|
|
52
|
+
}.merge(options)
|
|
53
|
+
|
|
54
|
+
unless $tester.channelmap[options[:chanmapname]]
|
|
55
|
+
fail "You must first import the tester channel map (e.g. $tester.channelmap = \"probe_x32\") before calling pin.channel"
|
|
56
|
+
end
|
|
57
|
+
unless $tester.testerconfig[options[:testerconfigname]]
|
|
58
|
+
fail "You must first import the tester configuration (e.g. $tester.testerconfig = \"UflexConfigA\") before calling pin.instrument_type"
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
if Origen.top_level.power_pin_groups.keys.include?(name) # Power Pin Groups do not need :ppmu, but need :supply
|
|
62
|
+
instrumentinfo = Struct.new(:channel, :instrument, :chanmapname, :site, :testerconfigname, :supply)
|
|
63
|
+
@channel = $tester.get_tester_channel(options[:chanmapname], name, options[:site])
|
|
64
|
+
@instrument = $tester.get_tester_instrument(options[:testerconfigname], $tester.get_tester_channel(options[:chanmapname], name, options[:site]).split('.')[0].to_i) + $tester.is_vhdvs_hc(options[:chanmapname], name, options[:site]).to_s + $tester.is_hexvs_plus(options[:testerconfigname], @channel.split('.')[0].to_i).to_s + $tester.is_vhdvs_plus(options[:testerconfigname], @channel.split('.')[0].to_i).to_s + $tester.merged_channels(options[:chanmapname], name, options[:site]).to_s
|
|
65
|
+
@supply = $tester.ate_hardware(@instrument).supply
|
|
66
|
+
instrumentinfo.new(@channel, @instrument, options[:chanmapname], options[:site], options[:testerconfigname], @supply)
|
|
67
|
+
else # Collecting information of individual members and put in arrays
|
|
68
|
+
instrumentinfo = Struct.new(:members, :channel, :instrument, :chanmapname, :site, :testerconfigname, :ppmu)
|
|
69
|
+
@members = []
|
|
70
|
+
@channel = []
|
|
71
|
+
@instrument = []
|
|
72
|
+
@ppmu = []
|
|
73
|
+
Origen.top_level.pin_groups(name).map(&:id).each do |pinname|
|
|
74
|
+
@members << Origen.top_level.pins(pinname).name
|
|
75
|
+
@channel << $tester.get_tester_channel(options[:chanmapname], Origen.top_level.pins(pinname).name, options[:site])
|
|
76
|
+
@instrument << $tester.get_tester_instrument(options[:testerconfigname], $tester.get_tester_channel(options[:chanmapname], Origen.top_level.pins(pinname).name, options[:site]).split('.')[0].to_i)
|
|
77
|
+
@ppmu << $tester.ate_hardware($tester.get_tester_instrument(options[:testerconfigname], $tester.get_tester_channel(options[:chanmapname], Origen.top_level.pins(pinname).name, options[:site]).split('.')[0].to_i)).ppmu
|
|
78
|
+
end
|
|
79
|
+
instrumentinfo.new(@members, @channel, @instrument, options[:chanmapname], options[:site], options[:testerconfigname], @ppmu)
|
|
80
|
+
end
|
|
81
|
+
end
|
|
82
|
+
end
|
|
83
|
+
end
|
|
84
|
+
end
|
|
@@ -1,22 +1,22 @@
|
|
|
1
|
-
module OrigenTesters
|
|
2
|
-
module Parser
|
|
3
|
-
autoload :SearchableArray, 'origen_testers/parser/searchable_array'
|
|
4
|
-
autoload :SearchableHash, 'origen_testers/parser/searchable_hash'
|
|
5
|
-
autoload :DescriptionLookup, 'origen_testers/parser/description_lookup'
|
|
6
|
-
|
|
7
|
-
def parse(*args, &block)
|
|
8
|
-
parser.parse(*args, &block)
|
|
9
|
-
end
|
|
10
|
-
|
|
11
|
-
# Returns a SearchableArray containing all tests parsed from flows, this is intended to
|
|
12
|
-
# be the main API for accessing parsed test program attributes and should be a consistent
|
|
13
|
-
# method that is implemented accross all tester models.
|
|
14
|
-
#
|
|
15
|
-
# Direct access to the underlying structure (which will be specific to the tester model)
|
|
16
|
-
# can be achieved through the parser method, which returns an instance of J750::Parser
|
|
17
|
-
# $tester.parser.test_instances
|
|
18
|
-
def tests
|
|
19
|
-
parser.flow_items
|
|
20
|
-
end
|
|
21
|
-
end
|
|
22
|
-
end
|
|
1
|
+
module OrigenTesters
|
|
2
|
+
module Parser
|
|
3
|
+
autoload :SearchableArray, 'origen_testers/parser/searchable_array'
|
|
4
|
+
autoload :SearchableHash, 'origen_testers/parser/searchable_hash'
|
|
5
|
+
autoload :DescriptionLookup, 'origen_testers/parser/description_lookup'
|
|
6
|
+
|
|
7
|
+
def parse(*args, &block)
|
|
8
|
+
parser.parse(*args, &block)
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
# Returns a SearchableArray containing all tests parsed from flows, this is intended to
|
|
12
|
+
# be the main API for accessing parsed test program attributes and should be a consistent
|
|
13
|
+
# method that is implemented accross all tester models.
|
|
14
|
+
#
|
|
15
|
+
# Direct access to the underlying structure (which will be specific to the tester model)
|
|
16
|
+
# can be achieved through the parser method, which returns an instance of J750::Parser
|
|
17
|
+
# $tester.parser.test_instances
|
|
18
|
+
def tests
|
|
19
|
+
parser.flow_items
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
@@ -1,62 +1,62 @@
|
|
|
1
|
-
module OrigenTesters
|
|
2
|
-
module Parser
|
|
3
|
-
class DescriptionLookup
|
|
4
|
-
def initialize
|
|
5
|
-
@store = { flow: {}, test: {}, usage: {} }
|
|
6
|
-
end
|
|
7
|
-
|
|
8
|
-
def for_flow(name, options = {})
|
|
9
|
-
k = flow_key(name)
|
|
10
|
-
@store[:flow][k] || []
|
|
11
|
-
end
|
|
12
|
-
|
|
13
|
-
def for_test_definition(name, options = {})
|
|
14
|
-
n = name_key(name)
|
|
15
|
-
@store[:test][n] || []
|
|
16
|
-
end
|
|
17
|
-
|
|
18
|
-
def for_test_usage(name, flow, options = {})
|
|
19
|
-
k = flow_key(flow)
|
|
20
|
-
n = name_key(name)
|
|
21
|
-
@store[:usage][k] ||= {}
|
|
22
|
-
@store[:usage][k][n] || []
|
|
23
|
-
end
|
|
24
|
-
|
|
25
|
-
def add_for_flow(flow, description, options = {})
|
|
26
|
-
k = flow_key(flow)
|
|
27
|
-
@store[:flow][k] ||= []
|
|
28
|
-
[description].flatten.each do |d|
|
|
29
|
-
@store[:flow][k] << d
|
|
30
|
-
end
|
|
31
|
-
end
|
|
32
|
-
|
|
33
|
-
def add_for_test_definition(test, description, option = {})
|
|
34
|
-
n = name_key(test)
|
|
35
|
-
@store[:test][n] ||= []
|
|
36
|
-
[description].flatten.each do |d|
|
|
37
|
-
@store[:test][n] << d
|
|
38
|
-
end
|
|
39
|
-
end
|
|
40
|
-
|
|
41
|
-
def add_for_test_usage(test, flow, description, option = {})
|
|
42
|
-
k = flow_key(flow)
|
|
43
|
-
n = name_key(test)
|
|
44
|
-
@store[:usage][k] ||= {}
|
|
45
|
-
@store[:usage][k][n] ||= []
|
|
46
|
-
[description].flatten.each do |d|
|
|
47
|
-
@store[:usage][k][n] << d
|
|
48
|
-
end
|
|
49
|
-
end
|
|
50
|
-
|
|
51
|
-
private
|
|
52
|
-
|
|
53
|
-
def flow_key(flow)
|
|
54
|
-
Pathname.new(flow).basename('.*').to_s
|
|
55
|
-
end
|
|
56
|
-
|
|
57
|
-
def name_key(name)
|
|
58
|
-
name.to_s.downcase
|
|
59
|
-
end
|
|
60
|
-
end
|
|
61
|
-
end
|
|
62
|
-
end
|
|
1
|
+
module OrigenTesters
|
|
2
|
+
module Parser
|
|
3
|
+
class DescriptionLookup
|
|
4
|
+
def initialize
|
|
5
|
+
@store = { flow: {}, test: {}, usage: {} }
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
def for_flow(name, options = {})
|
|
9
|
+
k = flow_key(name)
|
|
10
|
+
@store[:flow][k] || []
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
def for_test_definition(name, options = {})
|
|
14
|
+
n = name_key(name)
|
|
15
|
+
@store[:test][n] || []
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def for_test_usage(name, flow, options = {})
|
|
19
|
+
k = flow_key(flow)
|
|
20
|
+
n = name_key(name)
|
|
21
|
+
@store[:usage][k] ||= {}
|
|
22
|
+
@store[:usage][k][n] || []
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
def add_for_flow(flow, description, options = {})
|
|
26
|
+
k = flow_key(flow)
|
|
27
|
+
@store[:flow][k] ||= []
|
|
28
|
+
[description].flatten.each do |d|
|
|
29
|
+
@store[:flow][k] << d
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
def add_for_test_definition(test, description, option = {})
|
|
34
|
+
n = name_key(test)
|
|
35
|
+
@store[:test][n] ||= []
|
|
36
|
+
[description].flatten.each do |d|
|
|
37
|
+
@store[:test][n] << d
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
def add_for_test_usage(test, flow, description, option = {})
|
|
42
|
+
k = flow_key(flow)
|
|
43
|
+
n = name_key(test)
|
|
44
|
+
@store[:usage][k] ||= {}
|
|
45
|
+
@store[:usage][k][n] ||= []
|
|
46
|
+
[description].flatten.each do |d|
|
|
47
|
+
@store[:usage][k][n] << d
|
|
48
|
+
end
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
private
|
|
52
|
+
|
|
53
|
+
def flow_key(flow)
|
|
54
|
+
Pathname.new(flow).basename('.*').to_s
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
def name_key(name)
|
|
58
|
+
name.to_s.downcase
|
|
59
|
+
end
|
|
60
|
+
end
|
|
61
|
+
end
|
|
62
|
+
end
|