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.
Files changed (258) hide show
  1. checksums.yaml +4 -4
  2. data/config/application.rb +151 -151
  3. data/config/boot.rb +13 -13
  4. data/config/commands.rb +85 -86
  5. data/config/users.rb +18 -18
  6. data/config/version.rb +8 -8
  7. data/lib/commands/build.rb +69 -69
  8. data/lib/commands/run.rb +48 -48
  9. data/lib/origen_testers.rb +47 -47
  10. data/lib/origen_testers/api.rb +381 -381
  11. data/lib/origen_testers/basic_test_setups.rb +105 -105
  12. data/lib/origen_testers/callback_handlers.rb +59 -59
  13. data/lib/origen_testers/command_based_tester.rb +45 -45
  14. data/lib/origen_testers/flow.rb +382 -382
  15. data/lib/origen_testers/generator.rb +283 -283
  16. data/lib/origen_testers/generator/identity_map.rb +23 -23
  17. data/lib/origen_testers/generator/placeholder.rb +11 -11
  18. data/lib/origen_testers/generator/test_numberer.rb +23 -23
  19. data/lib/origen_testers/igxl_based_tester.rb +12 -12
  20. data/lib/origen_testers/igxl_based_tester/base.rb +1100 -1099
  21. data/lib/origen_testers/igxl_based_tester/base/ac_specsets.rb +79 -79
  22. data/lib/origen_testers/igxl_based_tester/base/custom_test_instance.rb +169 -169
  23. data/lib/origen_testers/igxl_based_tester/base/dc_specsets.rb +98 -98
  24. data/lib/origen_testers/igxl_based_tester/base/edge.rb +60 -60
  25. data/lib/origen_testers/igxl_based_tester/base/edges.rb +24 -24
  26. data/lib/origen_testers/igxl_based_tester/base/edgeset.rb +39 -39
  27. data/lib/origen_testers/igxl_based_tester/base/edgesets.rb +130 -130
  28. data/lib/origen_testers/igxl_based_tester/base/flow.rb +460 -460
  29. data/lib/origen_testers/igxl_based_tester/base/flow_line.rb +276 -276
  30. data/lib/origen_testers/igxl_based_tester/base/generator.rb +607 -607
  31. data/lib/origen_testers/igxl_based_tester/base/global_specs.rb +83 -83
  32. data/lib/origen_testers/igxl_based_tester/base/job.rb +75 -75
  33. data/lib/origen_testers/igxl_based_tester/base/jobs.rb +44 -44
  34. data/lib/origen_testers/igxl_based_tester/base/level_io_se.rb +59 -59
  35. data/lib/origen_testers/igxl_based_tester/base/level_supply.rb +39 -39
  36. data/lib/origen_testers/igxl_based_tester/base/levels.rb +31 -31
  37. data/lib/origen_testers/igxl_based_tester/base/levelset.rb +110 -110
  38. data/lib/origen_testers/igxl_based_tester/base/patgroup.rb +109 -109
  39. data/lib/origen_testers/igxl_based_tester/base/patgroups.rb +38 -38
  40. data/lib/origen_testers/igxl_based_tester/base/patset.rb +68 -68
  41. data/lib/origen_testers/igxl_based_tester/base/patset_pattern.rb +56 -56
  42. data/lib/origen_testers/igxl_based_tester/base/patsets.rb +38 -38
  43. data/lib/origen_testers/igxl_based_tester/base/patsubr.rb +68 -68
  44. data/lib/origen_testers/igxl_based_tester/base/patsubr_pattern.rb +56 -56
  45. data/lib/origen_testers/igxl_based_tester/base/patsubrs.rb +38 -38
  46. data/lib/origen_testers/igxl_based_tester/base/pinmap.rb +93 -93
  47. data/lib/origen_testers/igxl_based_tester/base/references.rb +25 -25
  48. data/lib/origen_testers/igxl_based_tester/base/test_instance.rb +322 -322
  49. data/lib/origen_testers/igxl_based_tester/base/test_instance_group.rb +66 -66
  50. data/lib/origen_testers/igxl_based_tester/base/test_instances.rb +212 -212
  51. data/lib/origen_testers/igxl_based_tester/base/test_instances/custom_til.rb +37 -37
  52. data/lib/origen_testers/igxl_based_tester/base/timeset.rb +37 -37
  53. data/lib/origen_testers/igxl_based_tester/base/timesets.rb +49 -49
  54. data/lib/origen_testers/igxl_based_tester/base/timesets_basic.rb +49 -49
  55. data/lib/origen_testers/igxl_based_tester/files.rb +43 -43
  56. data/lib/origen_testers/igxl_based_tester/j750.rb +269 -269
  57. data/lib/origen_testers/igxl_based_tester/j750/custom_test_instance.rb +32 -32
  58. data/lib/origen_testers/igxl_based_tester/j750/flow.rb +10 -10
  59. data/lib/origen_testers/igxl_based_tester/j750/flow_line.rb +19 -19
  60. data/lib/origen_testers/igxl_based_tester/j750/generator.rb +19 -19
  61. data/lib/origen_testers/igxl_based_tester/j750/patgroup.rb +9 -9
  62. data/lib/origen_testers/igxl_based_tester/j750/patgroups.rb +10 -10
  63. data/lib/origen_testers/igxl_based_tester/j750/patset.rb +9 -9
  64. data/lib/origen_testers/igxl_based_tester/j750/patset_pattern.rb +18 -18
  65. data/lib/origen_testers/igxl_based_tester/j750/patsets.rb +10 -10
  66. data/lib/origen_testers/igxl_based_tester/j750/patsubr.rb +9 -9
  67. data/lib/origen_testers/igxl_based_tester/j750/patsubr_pattern.rb +18 -18
  68. data/lib/origen_testers/igxl_based_tester/j750/patsubrs.rb +10 -10
  69. data/lib/origen_testers/igxl_based_tester/j750/test_instance.rb +746 -746
  70. data/lib/origen_testers/igxl_based_tester/j750/test_instance_group.rb +9 -9
  71. data/lib/origen_testers/igxl_based_tester/j750/test_instances.rb +10 -10
  72. data/lib/origen_testers/igxl_based_tester/j750_hpt.rb +34 -34
  73. data/lib/origen_testers/igxl_based_tester/j750_hpt/custom_test_instance.rb +32 -32
  74. data/lib/origen_testers/igxl_based_tester/j750_hpt/flow.rb +9 -9
  75. data/lib/origen_testers/igxl_based_tester/j750_hpt/flow_line.rb +9 -9
  76. data/lib/origen_testers/igxl_based_tester/j750_hpt/generator.rb +19 -19
  77. data/lib/origen_testers/igxl_based_tester/j750_hpt/patgroup.rb +9 -9
  78. data/lib/origen_testers/igxl_based_tester/j750_hpt/patgroups.rb +9 -9
  79. data/lib/origen_testers/igxl_based_tester/j750_hpt/patset.rb +9 -9
  80. data/lib/origen_testers/igxl_based_tester/j750_hpt/patset_pattern.rb +9 -9
  81. data/lib/origen_testers/igxl_based_tester/j750_hpt/patsets.rb +9 -9
  82. data/lib/origen_testers/igxl_based_tester/j750_hpt/patsubr.rb +9 -9
  83. data/lib/origen_testers/igxl_based_tester/j750_hpt/patsubr_pattern.rb +9 -9
  84. data/lib/origen_testers/igxl_based_tester/j750_hpt/patsubrs.rb +9 -9
  85. data/lib/origen_testers/igxl_based_tester/j750_hpt/test_instance.rb +599 -599
  86. data/lib/origen_testers/igxl_based_tester/j750_hpt/test_instance_group.rb +9 -9
  87. data/lib/origen_testers/igxl_based_tester/j750_hpt/test_instances.rb +9 -9
  88. data/lib/origen_testers/igxl_based_tester/parser.rb +102 -102
  89. data/lib/origen_testers/igxl_based_tester/parser/ac_spec.rb +9 -9
  90. data/lib/origen_testers/igxl_based_tester/parser/dc_spec.rb +33 -33
  91. data/lib/origen_testers/igxl_based_tester/parser/dc_specs.rb +48 -48
  92. data/lib/origen_testers/igxl_based_tester/parser/descriptions.rb +339 -339
  93. data/lib/origen_testers/igxl_based_tester/parser/flow.rb +109 -109
  94. data/lib/origen_testers/igxl_based_tester/parser/flow_line.rb +203 -203
  95. data/lib/origen_testers/igxl_based_tester/parser/flows.rb +21 -21
  96. data/lib/origen_testers/igxl_based_tester/parser/pattern_set.rb +92 -92
  97. data/lib/origen_testers/igxl_based_tester/parser/pattern_sets.rb +31 -31
  98. data/lib/origen_testers/igxl_based_tester/parser/test_instance.rb +420 -420
  99. data/lib/origen_testers/igxl_based_tester/parser/test_instances.rb +24 -24
  100. data/lib/origen_testers/igxl_based_tester/parser/timeset.rb +13 -13
  101. data/lib/origen_testers/igxl_based_tester/ultraflex.rb +798 -798
  102. data/lib/origen_testers/igxl_based_tester/ultraflex/ac_specsets.rb +10 -10
  103. data/lib/origen_testers/igxl_based_tester/ultraflex/ate_hardware.rb +949 -949
  104. data/lib/origen_testers/igxl_based_tester/ultraflex/custom_test_instance.rb +36 -36
  105. data/lib/origen_testers/igxl_based_tester/ultraflex/dc_specsets.rb +10 -10
  106. data/lib/origen_testers/igxl_based_tester/ultraflex/edge.rb +9 -9
  107. data/lib/origen_testers/igxl_based_tester/ultraflex/edges.rb +9 -9
  108. data/lib/origen_testers/igxl_based_tester/ultraflex/edgeset.rb +9 -9
  109. data/lib/origen_testers/igxl_based_tester/ultraflex/edgesets.rb +10 -10
  110. data/lib/origen_testers/igxl_based_tester/ultraflex/flow.rb +158 -158
  111. data/lib/origen_testers/igxl_based_tester/ultraflex/flow_line.rb +19 -19
  112. data/lib/origen_testers/igxl_based_tester/ultraflex/generator.rb +19 -19
  113. data/lib/origen_testers/igxl_based_tester/ultraflex/global_specs.rb +10 -10
  114. data/lib/origen_testers/igxl_based_tester/ultraflex/job.rb +9 -9
  115. data/lib/origen_testers/igxl_based_tester/ultraflex/jobs.rb +10 -10
  116. data/lib/origen_testers/igxl_based_tester/ultraflex/level_io_se.rb +9 -9
  117. data/lib/origen_testers/igxl_based_tester/ultraflex/level_supply.rb +9 -9
  118. data/lib/origen_testers/igxl_based_tester/ultraflex/levels.rb +9 -9
  119. data/lib/origen_testers/igxl_based_tester/ultraflex/levelset.rb +10 -10
  120. data/lib/origen_testers/igxl_based_tester/ultraflex/patgroup.rb +9 -9
  121. data/lib/origen_testers/igxl_based_tester/ultraflex/patgroups.rb +10 -10
  122. data/lib/origen_testers/igxl_based_tester/ultraflex/patset.rb +9 -9
  123. data/lib/origen_testers/igxl_based_tester/ultraflex/patset_pattern.rb +18 -18
  124. data/lib/origen_testers/igxl_based_tester/ultraflex/patsets.rb +10 -10
  125. data/lib/origen_testers/igxl_based_tester/ultraflex/patsubr.rb +9 -9
  126. data/lib/origen_testers/igxl_based_tester/ultraflex/patsubr_pattern.rb +18 -18
  127. data/lib/origen_testers/igxl_based_tester/ultraflex/patsubrs.rb +10 -10
  128. data/lib/origen_testers/igxl_based_tester/ultraflex/pinmap.rb +10 -10
  129. data/lib/origen_testers/igxl_based_tester/ultraflex/references.rb +10 -10
  130. data/lib/origen_testers/igxl_based_tester/ultraflex/templates/ac_specsets.txt.erb +0 -0
  131. data/lib/origen_testers/igxl_based_tester/ultraflex/templates/dc_specsets.txt.erb +0 -0
  132. data/lib/origen_testers/igxl_based_tester/ultraflex/templates/edgesets.txt.erb +0 -0
  133. data/lib/origen_testers/igxl_based_tester/ultraflex/templates/global_specs.txt.erb +0 -0
  134. data/lib/origen_testers/igxl_based_tester/ultraflex/templates/jobs.txt.erb +0 -0
  135. data/lib/origen_testers/igxl_based_tester/ultraflex/templates/levelset.txt.erb +0 -0
  136. data/lib/origen_testers/igxl_based_tester/ultraflex/templates/pinmap.txt.erb +0 -0
  137. data/lib/origen_testers/igxl_based_tester/ultraflex/templates/references.txt.erb +0 -0
  138. data/lib/origen_testers/igxl_based_tester/ultraflex/templates/timesets.txt.erb +0 -0
  139. data/lib/origen_testers/igxl_based_tester/ultraflex/templates/timesets_basic.txt.erb +0 -0
  140. data/lib/origen_testers/igxl_based_tester/ultraflex/test_instance.rb +315 -315
  141. data/lib/origen_testers/igxl_based_tester/ultraflex/test_instance_group.rb +9 -9
  142. data/lib/origen_testers/igxl_based_tester/ultraflex/test_instances.rb +10 -10
  143. data/lib/origen_testers/igxl_based_tester/ultraflex/timeset.rb +9 -9
  144. data/lib/origen_testers/igxl_based_tester/ultraflex/timesets.rb +10 -10
  145. data/lib/origen_testers/igxl_based_tester/ultraflex/timesets_basic.rb +10 -10
  146. data/lib/origen_testers/interface.rb +345 -324
  147. data/lib/origen_testers/memory_style.rb +77 -77
  148. data/lib/origen_testers/no_interface.rb +7 -7
  149. data/lib/origen_testers/origen_ext/application/runner.rb +25 -25
  150. data/lib/origen_testers/origen_ext/generator.rb +54 -54
  151. data/lib/origen_testers/origen_ext/generator/flow.rb +91 -77
  152. data/lib/origen_testers/origen_ext/generator/resources.rb +21 -21
  153. data/lib/origen_testers/origen_ext/pins/pin.rb +78 -78
  154. data/lib/origen_testers/origen_ext/pins/pin_collection.rb +84 -84
  155. data/lib/origen_testers/parser.rb +22 -22
  156. data/lib/origen_testers/parser/description_lookup.rb +62 -62
  157. data/lib/origen_testers/parser/searchable_array.rb +30 -30
  158. data/lib/origen_testers/parser/searchable_hash.rb +30 -30
  159. data/lib/origen_testers/pattern_compilers.rb +116 -116
  160. data/lib/origen_testers/pattern_compilers/assembler.rb +88 -88
  161. data/lib/origen_testers/pattern_compilers/job.rb +96 -96
  162. data/lib/origen_testers/pattern_compilers/ultraflex_pattern_compiler.rb +599 -599
  163. data/lib/origen_testers/program_generators.rb +62 -62
  164. data/lib/origen_testers/smartest_based_tester.rb +8 -8
  165. data/lib/origen_testers/smartest_based_tester/base.rb +576 -567
  166. data/lib/origen_testers/smartest_based_tester/base/flow.rb +296 -291
  167. data/lib/origen_testers/smartest_based_tester/base/generator.rb +207 -194
  168. data/lib/origen_testers/smartest_based_tester/base/pattern_compiler.rb +32 -32
  169. data/lib/origen_testers/smartest_based_tester/base/pattern_master.rb +69 -69
  170. data/lib/origen_testers/smartest_based_tester/base/processors.rb +16 -16
  171. data/lib/origen_testers/smartest_based_tester/base/processors/adjacent_if_combiner.rb +106 -106
  172. data/lib/origen_testers/smartest_based_tester/base/processors/continue_implementer.rb +39 -39
  173. data/lib/origen_testers/smartest_based_tester/base/processors/empty_branch_cleaner.rb +21 -21
  174. data/lib/origen_testers/smartest_based_tester/base/processors/extract_run_flag_table.rb +33 -33
  175. data/lib/origen_testers/smartest_based_tester/base/processors/extract_set_variables.rb +22 -22
  176. data/lib/origen_testers/smartest_based_tester/base/processors/flag_optimizer.rb +188 -188
  177. data/lib/origen_testers/smartest_based_tester/base/processors/if_ran_cleaner.rb +34 -34
  178. data/lib/origen_testers/smartest_based_tester/base/test_method.rb +178 -164
  179. data/lib/origen_testers/smartest_based_tester/base/test_methods.rb +77 -73
  180. data/lib/origen_testers/smartest_based_tester/base/test_methods/ac_tml.rb +33 -33
  181. data/lib/origen_testers/smartest_based_tester/base/test_methods/base_tml.rb +38 -38
  182. data/lib/origen_testers/smartest_based_tester/base/test_methods/custom_tml.rb +19 -19
  183. data/lib/origen_testers/smartest_based_tester/base/test_methods/dc_tml.rb +147 -147
  184. data/lib/origen_testers/smartest_based_tester/base/test_methods/limits.rb +65 -65
  185. data/lib/origen_testers/smartest_based_tester/base/test_suite.rb +208 -193
  186. data/lib/origen_testers/smartest_based_tester/base/test_suites.rb +58 -54
  187. data/lib/origen_testers/smartest_based_tester/base/variables_file.rb +38 -38
  188. data/lib/origen_testers/smartest_based_tester/v93k.rb +8 -8
  189. data/lib/origen_testers/smartest_based_tester/v93k/builder.rb +89 -89
  190. data/lib/origen_testers/smartest_based_tester/v93k/builder/flow.rb +181 -181
  191. data/lib/origen_testers/smartest_based_tester/v93k/builder/pattern_master.rb +54 -54
  192. data/lib/origen_testers/smartest_based_tester/v93k/flow.rb +10 -10
  193. data/lib/origen_testers/smartest_based_tester/v93k/generator.rb +19 -19
  194. data/lib/origen_testers/smartest_based_tester/v93k/pattern_compiler.rb +10 -10
  195. data/lib/origen_testers/smartest_based_tester/v93k/pattern_master.rb +10 -10
  196. data/lib/origen_testers/smartest_based_tester/v93k/templates/template.aiv.erb +17 -17
  197. data/lib/origen_testers/smartest_based_tester/v93k/templates/template.pmfl.erb +13 -13
  198. data/lib/origen_testers/smartest_based_tester/v93k/templates/template.tf.erb +236 -214
  199. data/lib/origen_testers/smartest_based_tester/v93k/templates/vars.tf.erb +48 -48
  200. data/lib/origen_testers/smartest_based_tester/v93k/test_method.rb +9 -9
  201. data/lib/origen_testers/smartest_based_tester/v93k/test_methods.rb +9 -9
  202. data/lib/origen_testers/smartest_based_tester/v93k/test_suite.rb +9 -9
  203. data/lib/origen_testers/smartest_based_tester/v93k/test_suites.rb +9 -9
  204. data/lib/origen_testers/smartest_based_tester/v93k/variables_file.rb +10 -10
  205. data/lib/origen_testers/test/basic_interface.rb +17 -17
  206. data/lib/origen_testers/test/block.rb +21 -21
  207. data/lib/origen_testers/test/custom_test_interface.rb +111 -111
  208. data/lib/origen_testers/test/dut.rb +295 -295
  209. data/lib/origen_testers/test/dut2.rb +76 -76
  210. data/lib/origen_testers/test/dut3.rb +244 -244
  211. data/lib/origen_testers/test/interface.rb +503 -503
  212. data/lib/origen_testers/test/nvm.rb +94 -94
  213. data/lib/origen_testers/timing.rb +368 -368
  214. data/lib/origen_testers/vector.rb +207 -207
  215. data/lib/origen_testers/vector_based_tester.rb +41 -41
  216. data/lib/origen_testers/vector_generator.rb +655 -655
  217. data/lib/origen_testers/vector_pipeline.rb +302 -302
  218. data/pattern/bitmap.rb +7 -7
  219. data/pattern/dc_instr.rb +7 -7
  220. data/pattern/delay.rb +7 -7
  221. data/pattern/freq_counter.rb +6 -6
  222. data/pattern/mem_test.rb +8 -8
  223. data/pattern/multi_vector.rb +122 -122
  224. data/pattern/multi_vector_plus1.rb +125 -125
  225. data/pattern/nvm/j750/add_late_pins.rb +3 -3
  226. data/pattern/nvm/j750/iterator_postfix_test_x_bx.rb +8 -8
  227. data/pattern/nvm/j750/iterator_test_x_bx.rb +8 -8
  228. data/pattern/nvm/j750/j750_halt.rb +159 -159
  229. data/pattern/nvm/j750/j750_workout.rb +209 -209
  230. data/pattern/nvm/j750/timing.rb +73 -73
  231. data/pattern/read_write_reg.rb +61 -61
  232. data/pattern/reset.rb +4 -4
  233. data/pattern/subroutines.rb +69 -69
  234. data/pattern/tester_overlay.rb +61 -52
  235. data/pattern/tester_store.rb +28 -28
  236. data/program/_additional_erase.rb +7 -7
  237. data/program/_efa_resources.rb +7 -7
  238. data/program/_erase.rb +25 -25
  239. data/program/_erase_vfy.rb +5 -5
  240. data/program/_iv_resources.rb +10 -10
  241. data/program/basic_interface.rb +5 -5
  242. data/program/components/_prb1_main.rb +222 -222
  243. data/program/components/_temp.rb +6 -6
  244. data/program/custom_tests.rb +10 -10
  245. data/program/flow_control.rb +422 -422
  246. data/program/prb1.rb +11 -11
  247. data/program/prb1_resources.rb +28 -28
  248. data/program/prb2.rb +27 -27
  249. data/program/test.rb +29 -29
  250. data/program/uflex_resources.rb +199 -199
  251. data/templates/example.txt.erb +53 -53
  252. data/templates/j750/program_sheet.txt.erb +9 -9
  253. data/templates/manifest/v93k.yaml.erb +22 -22
  254. data/templates/web/index.md.erb +51 -51
  255. data/templates/web/layouts/_basic.html.erb +15 -15
  256. data/templates/web/partials/_navbar.html.erb +22 -22
  257. data/templates/web/release_notes.md.erb +5 -5
  258. metadata +2 -2
@@ -1,32 +1,32 @@
1
- module OrigenTesters
2
- module IGXLBasedTester
3
- class J750
4
- require 'origen_testers/igxl_based_tester/base/custom_test_instance'
5
- class CustomTestInstance < Base::CustomTestInstance
6
- # Attributes for each test instance line, first few are named directly
7
- TEST_INSTANCE_ATTRS = %w(
8
- test_name proc_type proc_name proc_called_as dc_category
9
- dc_selector ac_category ac_selector
10
- time_sets edge_sets pin_levels overlay
11
- )
12
-
13
- # Attributes for additional test instance arguments beyond those described above
14
- TEST_INSTANCE_EXTRA_ARGS = 80
15
-
16
- TEST_INSTANCE_DEFAULTS = {
17
- proc_type: 'Other',
18
- proc_called_as: 'VB DLL'
19
- }
20
-
21
- TEST_INSTANCE_ALIASES = {
22
- name: :test_name,
23
- time_set: :time_sets,
24
- timeset: :time_sets,
25
- timesets: :time_sets
26
- }
27
-
28
- define
29
- end
30
- end
31
- end
32
- end
1
+ module OrigenTesters
2
+ module IGXLBasedTester
3
+ class J750
4
+ require 'origen_testers/igxl_based_tester/base/custom_test_instance'
5
+ class CustomTestInstance < Base::CustomTestInstance
6
+ # Attributes for each test instance line, first few are named directly
7
+ TEST_INSTANCE_ATTRS = %w(
8
+ test_name proc_type proc_name proc_called_as dc_category
9
+ dc_selector ac_category ac_selector
10
+ time_sets edge_sets pin_levels overlay
11
+ )
12
+
13
+ # Attributes for additional test instance arguments beyond those described above
14
+ TEST_INSTANCE_EXTRA_ARGS = 80
15
+
16
+ TEST_INSTANCE_DEFAULTS = {
17
+ proc_type: 'Other',
18
+ proc_called_as: 'VB DLL'
19
+ }
20
+
21
+ TEST_INSTANCE_ALIASES = {
22
+ name: :test_name,
23
+ time_set: :time_sets,
24
+ timeset: :time_sets,
25
+ timesets: :time_sets
26
+ }
27
+
28
+ define
29
+ end
30
+ end
31
+ end
32
+ end
@@ -1,10 +1,10 @@
1
- module OrigenTesters
2
- module IGXLBasedTester
3
- class J750
4
- require 'origen_testers/igxl_based_tester/base/flow'
5
- class Flow < Base::Flow
6
- TEMPLATE = "#{Origen.root!}/lib/origen_testers/igxl_based_tester/j750/templates/flow.txt.erb"
7
- end
8
- end
9
- end
10
- end
1
+ module OrigenTesters
2
+ module IGXLBasedTester
3
+ class J750
4
+ require 'origen_testers/igxl_based_tester/base/flow'
5
+ class Flow < Base::Flow
6
+ TEMPLATE = "#{Origen.root!}/lib/origen_testers/igxl_based_tester/j750/templates/flow.txt.erb"
7
+ end
8
+ end
9
+ end
10
+ end
@@ -1,19 +1,19 @@
1
- module OrigenTesters
2
- module IGXLBasedTester
3
- class J750
4
- require 'origen_testers/igxl_based_tester/base/flow_line'
5
- class FlowLine < Base::FlowLine
6
- # Attributes for each flow line, these must be declared in the order they are to be output
7
- TESTER_FLOWLINE_ATTRS = %w(label enable job part env opcode parameter tname tnum bin_pass bin_fail
8
- sort_pass sort_fail result flag_pass flag_fail state
9
- group_specifier group_sense group_condition group_name
10
- device_sense device_condition device_name
11
- debug_assume debug_sites comment
12
- )
13
-
14
- # Generate the instance method definitions based on the above
15
- define
16
- end
17
- end
18
- end
19
- end
1
+ module OrigenTesters
2
+ module IGXLBasedTester
3
+ class J750
4
+ require 'origen_testers/igxl_based_tester/base/flow_line'
5
+ class FlowLine < Base::FlowLine
6
+ # Attributes for each flow line, these must be declared in the order they are to be output
7
+ TESTER_FLOWLINE_ATTRS = %w(label enable job part env opcode parameter tname tnum bin_pass bin_fail
8
+ sort_pass sort_fail result flag_pass flag_fail state
9
+ group_specifier group_sense group_condition group_name
10
+ device_sense device_condition device_name
11
+ debug_assume debug_sites comment
12
+ )
13
+
14
+ # Generate the instance method definitions based on the above
15
+ define
16
+ end
17
+ end
18
+ end
19
+ end
@@ -1,19 +1,19 @@
1
- module OrigenTesters
2
- module IGXLBasedTester
3
- class J750
4
- # Include this module in an interface class to make it a J750 interface and to give
5
- # access to the J750 program generator API
6
- module Generator
7
- extend ActiveSupport::Concern
8
-
9
- require_all "#{Origen.root!}/lib/origen_testers/igxl_based_tester/j750"
10
- require 'origen_testers/igxl_based_tester/base/generator'
11
-
12
- included do
13
- include Base::Generator
14
- PLATFORM = J750
15
- end
16
- end
17
- end
18
- end
19
- end
1
+ module OrigenTesters
2
+ module IGXLBasedTester
3
+ class J750
4
+ # Include this module in an interface class to make it a J750 interface and to give
5
+ # access to the J750 program generator API
6
+ module Generator
7
+ extend ActiveSupport::Concern
8
+
9
+ require_all "#{Origen.root!}/lib/origen_testers/igxl_based_tester/j750"
10
+ require 'origen_testers/igxl_based_tester/base/generator'
11
+
12
+ included do
13
+ include Base::Generator
14
+ PLATFORM = J750
15
+ end
16
+ end
17
+ end
18
+ end
19
+ end
@@ -1,9 +1,9 @@
1
- module OrigenTesters
2
- module IGXLBasedTester
3
- class J750
4
- require 'origen_testers/igxl_based_tester/base/patgroup'
5
- class Patgroup < Base::Patgroup
6
- end
7
- end
8
- end
9
- end
1
+ module OrigenTesters
2
+ module IGXLBasedTester
3
+ class J750
4
+ require 'origen_testers/igxl_based_tester/base/patgroup'
5
+ class Patgroup < Base::Patgroup
6
+ end
7
+ end
8
+ end
9
+ end
@@ -1,10 +1,10 @@
1
- module OrigenTesters
2
- module IGXLBasedTester
3
- class J750
4
- require 'origen_testers/igxl_based_tester/base/patgroups'
5
- class Patgroups < Base::Patgroups
6
- TEMPLATE = "#{Origen.root!}/lib/origen_testers/igxl_based_tester/j750/templates/patgroups.txt.erb"
7
- end
8
- end
9
- end
10
- end
1
+ module OrigenTesters
2
+ module IGXLBasedTester
3
+ class J750
4
+ require 'origen_testers/igxl_based_tester/base/patgroups'
5
+ class Patgroups < Base::Patgroups
6
+ TEMPLATE = "#{Origen.root!}/lib/origen_testers/igxl_based_tester/j750/templates/patgroups.txt.erb"
7
+ end
8
+ end
9
+ end
10
+ end
@@ -1,9 +1,9 @@
1
- module OrigenTesters
2
- module IGXLBasedTester
3
- class J750
4
- require 'origen_testers/igxl_based_tester/base/patset'
5
- class Patset < Base::Patset
6
- end
7
- end
8
- end
9
- end
1
+ module OrigenTesters
2
+ module IGXLBasedTester
3
+ class J750
4
+ require 'origen_testers/igxl_based_tester/base/patset'
5
+ class Patset < Base::Patset
6
+ end
7
+ end
8
+ end
9
+ end
@@ -1,18 +1,18 @@
1
- module OrigenTesters
2
- module IGXLBasedTester
3
- class J750
4
- require 'origen_testers/igxl_based_tester/base/patset_pattern'
5
- class PatsetPattern < Base::PatsetPattern
6
- # Attributes for each pattern set line
7
- PATSET_ATTRS = %w(pattern_set file_name start_label stop_label comment)
8
-
9
- # Pattern set defaults
10
- PATSET_DEFAULTS = {
11
- }
12
-
13
- # Generate the instance method definitions based on the above
14
- define
15
- end
16
- end
17
- end
18
- end
1
+ module OrigenTesters
2
+ module IGXLBasedTester
3
+ class J750
4
+ require 'origen_testers/igxl_based_tester/base/patset_pattern'
5
+ class PatsetPattern < Base::PatsetPattern
6
+ # Attributes for each pattern set line
7
+ PATSET_ATTRS = %w(pattern_set file_name start_label stop_label comment)
8
+
9
+ # Pattern set defaults
10
+ PATSET_DEFAULTS = {
11
+ }
12
+
13
+ # Generate the instance method definitions based on the above
14
+ define
15
+ end
16
+ end
17
+ end
18
+ end
@@ -1,10 +1,10 @@
1
- module OrigenTesters
2
- module IGXLBasedTester
3
- class J750
4
- require 'origen_testers/igxl_based_tester/base/patsets'
5
- class Patsets < Base::Patsets
6
- TEMPLATE = "#{Origen.root!}/lib/origen_testers/igxl_based_tester/j750/templates/patsets.txt.erb"
7
- end
8
- end
9
- end
10
- end
1
+ module OrigenTesters
2
+ module IGXLBasedTester
3
+ class J750
4
+ require 'origen_testers/igxl_based_tester/base/patsets'
5
+ class Patsets < Base::Patsets
6
+ TEMPLATE = "#{Origen.root!}/lib/origen_testers/igxl_based_tester/j750/templates/patsets.txt.erb"
7
+ end
8
+ end
9
+ end
10
+ end
@@ -1,9 +1,9 @@
1
- module OrigenTesters
2
- module IGXLBasedTester
3
- class J750
4
- require 'origen_testers/igxl_based_tester/base/patsubr'
5
- class Patsubr < Base::Patsubr
6
- end
7
- end
8
- end
9
- end
1
+ module OrigenTesters
2
+ module IGXLBasedTester
3
+ class J750
4
+ require 'origen_testers/igxl_based_tester/base/patsubr'
5
+ class Patsubr < Base::Patsubr
6
+ end
7
+ end
8
+ end
9
+ end
@@ -1,18 +1,18 @@
1
- module OrigenTesters
2
- module IGXLBasedTester
3
- class J750
4
- require 'origen_testers/igxl_based_tester/base/patsubr_pattern'
5
- class PatsubrPattern < Base::PatsubrPattern
6
- # Attributes for each pattern subroutine line
7
- PATSUBR_ATTRS = %w(file_name comment)
8
-
9
- # Pattern subroutine defaults
10
- PATSUBR_DEFAULTS = {
11
- }
12
-
13
- # Generate the instance method definitions based on the above
14
- define
15
- end
16
- end
17
- end
18
- end
1
+ module OrigenTesters
2
+ module IGXLBasedTester
3
+ class J750
4
+ require 'origen_testers/igxl_based_tester/base/patsubr_pattern'
5
+ class PatsubrPattern < Base::PatsubrPattern
6
+ # Attributes for each pattern subroutine line
7
+ PATSUBR_ATTRS = %w(file_name comment)
8
+
9
+ # Pattern subroutine defaults
10
+ PATSUBR_DEFAULTS = {
11
+ }
12
+
13
+ # Generate the instance method definitions based on the above
14
+ define
15
+ end
16
+ end
17
+ end
18
+ end
@@ -1,10 +1,10 @@
1
- module OrigenTesters
2
- module IGXLBasedTester
3
- class J750
4
- require 'origen_testers/igxl_based_tester/base/patsubrs'
5
- class Patsubrs < Base::Patsubrs
6
- TEMPLATE = "#{Origen.root!}/lib/origen_testers/igxl_based_tester/j750/templates/patsubrs.txt.erb"
7
- end
8
- end
9
- end
10
- end
1
+ module OrigenTesters
2
+ module IGXLBasedTester
3
+ class J750
4
+ require 'origen_testers/igxl_based_tester/base/patsubrs'
5
+ class Patsubrs < Base::Patsubrs
6
+ TEMPLATE = "#{Origen.root!}/lib/origen_testers/igxl_based_tester/j750/templates/patsubrs.txt.erb"
7
+ end
8
+ end
9
+ end
10
+ end
@@ -1,746 +1,746 @@
1
- module OrigenTesters
2
- module IGXLBasedTester
3
- class J750
4
- require 'origen_testers/igxl_based_tester/base/test_instance'
5
- class TestInstance < Base::TestInstance
6
- # Attributes for each test instance line, first few are named directly
7
- TEST_INSTANCE_ATTRS = %w(
8
- test_name proc_type proc_name proc_called_as dc_category
9
- dc_selector ac_category ac_selector
10
- time_sets edge_sets pin_levels overlay
11
- )
12
-
13
- # Attributes for additional test instance arguments beyond those described above
14
- TEST_INSTANCE_EXTRA_ARGS = 80
15
-
16
- TEST_INSTANCE_ALIASES = {
17
- name: :test_name,
18
- time_set: :time_sets,
19
- timeset: :time_sets,
20
- timesets: :time_sets,
21
-
22
- other: {
23
- },
24
-
25
- empty: {
26
- start_func: :arg0,
27
- start_of_body_f: :arg0,
28
- pre_pat_func: :arg1,
29
- pre_pat_f: :arg1,
30
- pre_test_func: :arg2,
31
- pre_test_f: :arg2,
32
- post_test_func: :arg3,
33
- post_test_f: :arg3,
34
- post_pat_func: :arg4,
35
- post_pat_f: :arg4,
36
- end_func: :arg5,
37
- end_of_body_f: :arg5,
38
- start_func_args: :arg6,
39
- start_of_body_f_args: :arg6,
40
- pre_pat_func_args: :arg7,
41
- pre_pat_f_args: :arg7,
42
- pre_test_func_args: :arg8,
43
- pre_test_f_args: :arg8,
44
- post_test_func_args: :arg9,
45
- post_test_f_args: :arg9,
46
- post_pat_func_args: :arg10,
47
- post_pat_f_args: :arg10,
48
- end_func_args: :arg11,
49
- end_of_body_f_args: :arg11,
50
- utility_pins_1: :arg12,
51
- utility_pins_0: :arg13,
52
- init_lo: :arg14,
53
- start_lo: :arg14,
54
- init_hi: :arg15,
55
- start_hi: :arg15,
56
- init_hiz: :arg16,
57
- start_hiz: :arg16,
58
- float_pins: :arg17
59
- },
60
-
61
- # Functional test instances
62
- functional: {
63
- pattern: :arg0,
64
- patterns: :arg0,
65
- start_func: :arg1,
66
- start_of_body_f: :arg1,
67
- pre_pat_func: :arg2,
68
- pre_pat_f: :arg2,
69
- pre_test_func: :arg3,
70
- pre_test_f: :arg3,
71
- post_test_func: :arg4,
72
- post_test_f: :arg4,
73
- post_pat_func: :arg5,
74
- post_pat_f: :arg5,
75
- end_func: :arg6,
76
- end_of_body_f: :arg6,
77
- set_pass_fail: :arg7,
78
- init_lo: :arg8,
79
- start_lo: :arg8,
80
- init_hi: :arg9,
81
- start_hi: :arg9,
82
- init_hiz: :arg10,
83
- start_hiz: :arg10,
84
- float_pins: :arg11,
85
- start_func_args: :arg13,
86
- start_of_body_f_args: :arg13,
87
- pre_pat_func_args: :arg14,
88
- pre_pat_f_args: :arg14,
89
- pre_test_func_args: :arg15,
90
- pre_test_f_args: :arg15,
91
- post_test_func_args: :arg16,
92
- post_test_f_args: :arg16,
93
- post_pat_func_args: :arg17,
94
- post_pat_f_args: :arg17,
95
- end_func_args: :arg18,
96
- end_of_body_f_args: :arg18,
97
- utility_pins_1: :arg19,
98
- utility_pins_0: :arg20,
99
- wait_flags: :arg21,
100
- wait_time: :arg22,
101
- pattern_timeout: :arg22,
102
- pat_flag_func: :arg23,
103
- pat_flag_f: :arg23,
104
- PatFlagF: :arg23,
105
- pat_flag_func_args: :arg24,
106
- pat_flag_f_args: :arg24,
107
- relay_mode: :arg25,
108
- threading: :arg26,
109
- match_all_sites: :arg27,
110
- capture_mode: :arg30,
111
- capture_what: :arg31,
112
- capture_memory: :arg32,
113
- capture_size: :arg33,
114
- datalog_mode: :arg34,
115
- data_type: :arg35
116
- },
117
-
118
- board_pmu: {
119
- hsp_start: :arg0,
120
- start_func: :arg1,
121
- start_of_body_f: :arg1,
122
- pre_pat_func: :arg2,
123
- pre_pat_f: :arg2,
124
- pre_test_func: :arg3,
125
- pre_test_f: :arg3,
126
- post_test_func: :arg4,
127
- post_test_f: :arg4,
128
- post_pat_func: :arg5,
129
- post_pat_f: :arg5,
130
- end_func: :arg6,
131
- end_of_body_f: :arg6,
132
- precond_pat: :arg7,
133
- hold_state_pat: :arg8,
134
- holdstate_pat: :arg8,
135
- pattern: :arg8,
136
- pcp_stop: :arg9,
137
- wait_flags: :arg10,
138
- start_lo: :arg11,
139
- init_lo: :arg11,
140
- start_hi: :arg12,
141
- init_hi: :arg12,
142
- start_hiz: :arg13,
143
- init_hiz: :arg13,
144
- float_pins: :arg14,
145
- pinlist: :arg15,
146
- pin: :arg15,
147
- pin_list: :arg15,
148
- measure_mode: :arg16,
149
- irange: :arg17,
150
- clamp: :arg18,
151
- vrange: :arg19,
152
- sampling_time: :arg20,
153
- samples: :arg21,
154
- settling_time: :arg22,
155
- hi_lo_lim_valid: :arg23,
156
- hi_lo_limit_valid: :arg23,
157
- hi_limit: :arg24,
158
- lo_limit: :arg25,
159
- force_cond_1: :arg26,
160
- force_cond: :arg26,
161
- force_condition: :arg26,
162
- force_cond_2: :arg27,
163
- gang_pins_tested: :arg28,
164
- relay_mode: :arg29,
165
- wait_time_out: :arg30,
166
- start_func_args: :arg31,
167
- start_of_body_f_args: :arg31,
168
- pre_pat_func_args: :arg32,
169
- pre_pat_f_args: :arg32,
170
- pre_test_func_args: :arg33,
171
- pre_test_f_args: :arg33,
172
- post_test_func_args: :arg34,
173
- post_test_f_args: :arg34,
174
- post_pat_func_args: :arg35,
175
- post_pat_f_args: :arg35,
176
- end_func_args: :arg36,
177
- end_of_body_f_args: :arg36,
178
- pcp_start: :arg37,
179
- pcp_check_pg: :arg38,
180
- hsp_stop: :arg39,
181
- hsp_check_pg: :arg40,
182
- resume_pat: :arg41,
183
- utility_pins_1: :arg42,
184
- utility_pins_0: :arg43,
185
- pre_charge_enable: :arg44,
186
- pre_charge: :arg45,
187
- threading: :arg46
188
- },
189
-
190
- pin_pmu: {
191
- hsp_start: :arg0,
192
- start_func: :arg1,
193
- start_of_body_f: :arg1,
194
- pre_pat_func: :arg2,
195
- pre_pat_f: :arg2,
196
- pre_test_func: :arg3,
197
- pre_test_f: :arg3,
198
- post_test_func: :arg4,
199
- post_test_f: :arg4,
200
- post_pat_func: :arg5,
201
- post_pat_f: :arg5,
202
- end_func: :arg6,
203
- end_of_body_f: :arg6,
204
- precond_pat: :arg7,
205
- hold_state_pat: :arg8,
206
- holdstate_pat: :arg8,
207
- pattern: :arg8,
208
- pcp_stop: :arg9,
209
- wait_flags: :arg10,
210
- start_lo: :arg11,
211
- init_lo: :arg11,
212
- start_hi: :arg12,
213
- init_hi: :arg12,
214
- start_hiz: :arg13,
215
- init_hiz: :arg13,
216
- float_pins: :arg14,
217
- pinlist: :arg15,
218
- pin: :arg15,
219
- pin_list: :arg15,
220
- measure_mode: :arg16,
221
- irange: :arg17,
222
- settling_time: :arg18,
223
- hi_lo_lim_valid: :arg19,
224
- hi_lo_limit_valid: :arg19,
225
- hi_limit: :arg20,
226
- lo_limit: :arg21,
227
- force_cond_1: :arg22,
228
- force_cond: :arg22,
229
- force_condition: :arg22,
230
- force_cond_2: :arg23,
231
- fload: :arg24,
232
- relay_mode: :arg25,
233
- wait_time_out: :arg26,
234
- start_func_args: :arg27,
235
- start_of_body_f_args: :arg27,
236
- pre_pat_func_args: :arg28,
237
- pre_pat_f_args: :arg28,
238
- pre_test_func_args: :arg29,
239
- pre_test_f_args: :arg29,
240
- post_test_func_args: :arg30,
241
- post_test_f_args: :arg30,
242
- post_pat_func_args: :arg31,
243
- post_pat_f_args: :arg31,
244
- end_func_args: :arg32,
245
- end_of_body_f_args: :arg32,
246
- pcp_start: :arg33,
247
- pcp_check_pg: :arg34,
248
- hsp_stop: :arg35,
249
- hsp_check_pg: :arg36,
250
- sampling_time: :arg37,
251
- samples: :arg38,
252
- resume_pat: :arg39,
253
- vcl: :arg40,
254
- vch: :arg41,
255
- utility_pins_1: :arg42,
256
- utility_pins_0: :arg43,
257
- pre_charge_enable: :arg44,
258
- pre_charge: :arg45,
259
- threading: :arg46
260
- },
261
-
262
- apmu_powersupply: {
263
- precond_pat: :arg0,
264
- pre_cond_pat: :arg0,
265
- start_func: :arg1,
266
- start_of_body_f: :arg1,
267
- pre_pat_func: :arg2,
268
- pre_pat_f: :arg2,
269
- pre_test_func: :arg3,
270
- pre_test_f: :arg3,
271
- post_test_func: :arg4,
272
- post_test_f: :arg4,
273
- post_pat_func: :arg5,
274
- post_pat_f: :arg5,
275
- end_func: :arg6,
276
- end_of_body_f: :arg6,
277
- pattern: :arg7,
278
- hold_state_pat: :arg7,
279
- holdstate_pat: :arg7,
280
- wait_flags: :arg8,
281
- wait_time_out: :arg9,
282
- start_lo: :arg10,
283
- start_init_lo: :arg10,
284
- init_lo: :arg10,
285
- start_hi: :arg11,
286
- start_init_hi: :arg11,
287
- init_hi: :arg11,
288
- start_hiz: :arg12,
289
- start_init_hiz: :arg12,
290
- init_hiz: :arg12,
291
- float_pins: :arg13,
292
- irange: :arg14,
293
- sampling_time: :arg15,
294
- samples: :arg16,
295
- settling_time: :arg17,
296
- hi_lo_lim_valid: :arg18,
297
- hi_lo_limit_valid: :arg18,
298
- hi_limit: :arg19,
299
- lo_limit: :arg20,
300
- force_cond_1: :arg21,
301
- force_cond: :arg21,
302
- force_condition: :arg21,
303
- force_condition_1: :arg21,
304
- force_cond_2: :arg22,
305
- force_condition_2: :arg22,
306
- power_pins: :arg23,
307
- pins: :arg23,
308
- pin: :arg23,
309
- force_source: :arg24,
310
- pcp_start: :arg25,
311
- pcp_stop: :arg26,
312
- start_func_args: :arg27,
313
- start_of_body_f_args: :arg27,
314
- pre_pat_func_args: :arg28,
315
- pre_pat_f_args: :arg28,
316
- pre_test_func_args: :arg29,
317
- pre_test_f_args: :arg29,
318
- post_test_func_args: :arg30,
319
- post_test_f_args: :arg30,
320
- post_pat_func_args: :arg31,
321
- post_pat_f_args: :arg31,
322
- end_func_args: :arg32,
323
- end_of_body_f_args: :arg32,
324
- hsp_start: :arg33,
325
- hsp_stop: :arg34,
326
- pcp_check_pg: :arg35,
327
- clamp: :arg36,
328
- hsp_check_pg: :arg37,
329
- resume_pat: :arg38,
330
- relay_mode: :arg39,
331
- utility_pins_1: :arg40,
332
- utility_pins_0: :arg41,
333
- test_control: :arg42,
334
- serialize_meas: :arg43,
335
- serialize_meas_func: :arg44,
336
- serialize_meas_f: :arg44,
337
- serialize_meas_func_args: :arg45,
338
- serialize_meas_f_args: :arg45
339
- },
340
-
341
- powersupply: {
342
- precond_pat: :arg0,
343
- pre_cond_pat: :arg0,
344
- start_func: :arg1,
345
- start_of_body_f: :arg1,
346
- pre_pat_func: :arg2,
347
- pre_pat_f: :arg2,
348
- pre_test_func: :arg3,
349
- pre_test_f: :arg3,
350
- post_test_func: :arg4,
351
- post_test_f: :arg4,
352
- post_pat_func: :arg5,
353
- post_pat_f: :arg5,
354
- end_func: :arg6,
355
- end_of_body_f: :arg6,
356
- pattern: :arg7,
357
- hold_state_pat: :arg7,
358
- holdstate_pat: :arg7,
359
- wait_flags: :arg8,
360
- wait_time_out: :arg9,
361
- start_lo: :arg10,
362
- start_init_lo: :arg10,
363
- init_lo: :arg10,
364
- start_hi: :arg11,
365
- start_init_hi: :arg11,
366
- init_hi: :arg11,
367
- start_hiz: :arg12,
368
- start_init_hiz: :arg12,
369
- init_hiz: :arg12,
370
- float_pins: :arg13,
371
- irange: :arg14,
372
- sampling_time: :arg15,
373
- samples: :arg16,
374
- settling_time: :arg17,
375
- hi_lo_lim_valid: :arg18,
376
- hi_lo_limit_valid: :arg18,
377
- hi_limit: :arg19,
378
- lo_limit: :arg20,
379
- force_cond_1: :arg21,
380
- force_cond: :arg21,
381
- force_condition: :arg21,
382
- force_condition_1: :arg21,
383
- force_cond_2: :arg22,
384
- force_condition_2: :arg22,
385
- power_pins: :arg23,
386
- pins: :arg23,
387
- pin: :arg23,
388
- force_source: :arg24,
389
- pcp_start: :arg25,
390
- pcp_stop: :arg26,
391
- start_func_args: :arg27,
392
- start_of_body_f_args: :arg27,
393
- pre_pat_func_args: :arg28,
394
- pre_pat_f_args: :arg28,
395
- pre_test_func_args: :arg29,
396
- pre_test_f_args: :arg29,
397
- post_test_func_args: :arg30,
398
- post_test_f_args: :arg30,
399
- post_pat_func_args: :arg31,
400
- post_pat_f_args: :arg31,
401
- end_func_args: :arg32,
402
- end_of_body_f_args: :arg32,
403
- hsp_start: :arg33,
404
- hsp_stop: :arg34,
405
- pcp_check_pg: :arg35,
406
- clamp: :arg36,
407
- hsp_check_pg: :arg37,
408
- resume_pat: :arg38,
409
- relay_mode: :arg39,
410
- utility_pins_1: :arg40,
411
- utility_pins_0: :arg41,
412
- test_control: :arg42,
413
- serialize_meas: :arg43,
414
- serialize_meas_func: :arg44,
415
- serialize_meas_f: :arg44,
416
- serialize_meas_func_args: :arg45,
417
- serialize_meas_f_args: :arg45,
418
- precond_pat_clamp: :arg46,
419
- threading: :arg47
420
- },
421
-
422
- mto_memory: {
423
- patterns: :arg0,
424
- pattern: :arg0,
425
- start_func: :arg1,
426
- start_of_body_f: :arg1,
427
- pre_pat_func: :arg2,
428
- pre_pat_f: :arg2,
429
- pre_test_func: :arg3,
430
- pre_test_f: :arg3,
431
- post_test_func: :arg4,
432
- post_test_f: :arg4,
433
- post_pat_func: :arg5,
434
- post_pat_f: :arg5,
435
- end_of_body_func: :arg6,
436
- end_of_body_f: :arg6,
437
- set_pass_fail: :arg7,
438
- init_lo: :arg8,
439
- start_lo: :arg8,
440
- init_hi: :arg9,
441
- start_hi: :arg9,
442
- init_hiz: :arg10,
443
- start_hiz: :arg10,
444
- float_pins: :arg11,
445
- start_of_body_func_args: :arg12,
446
- start_of_body_f_args: :arg12,
447
- pre_pat_func_args: :arg13,
448
- pre_pat_f_args: :arg13,
449
- pre_test_func_args: :arg14,
450
- pre_test_f_args: :arg14,
451
- post_test_func_args: :arg15,
452
- post_test_f_args: :arg15,
453
- post_pat_f_args: :arg16,
454
- end_of_body_func_args: :arg17,
455
- end_of_body_f_args: :arg17,
456
- utility_pins_1: :arg18,
457
- utility_pins_0: :arg19,
458
- wait_flags: :arg20,
459
- wait_time_out: :arg21,
460
- PatFlagF: :arg22,
461
- pat_flag_f: :arg22,
462
- pat_flag_func_args: :arg23,
463
- pat_flag_f_args: :arg23,
464
- relay_mode: :arg24,
465
- x_enable_mask: :arg29,
466
- x_shift_direction: :arg30,
467
- x_shift_input: :arg31,
468
- y_enable_mask: :arg36,
469
- y_shift_direction: :arg37,
470
- y_shift_input: :arg38,
471
- dga: :arg39,
472
- dgb: :arg40,
473
- dgc: :arg41,
474
- dgd: :arg42,
475
- dg_enable_mask: :arg43,
476
- dg_shift_direction: :arg44,
477
- dg_shift_input: :arg45,
478
- x_coincidence_enable_mask: :arg46,
479
- y_coincidence_enable_mask: :arg47,
480
- two_bit_dg_setup: :arg48,
481
- x_scramble_algorithm: :arg49,
482
- y_scramble_algorithm: :arg50,
483
- topo_inversion_algorithm: :arg51,
484
- utility_counter_a: :arg52,
485
- utility_counter_b: :arg53,
486
- utility_counter_c: :arg54,
487
- dut_data_source: :arg55,
488
- scramble_addr: :arg56,
489
- speed_mode: :arg57,
490
- resource_map: :arg58,
491
- receive_data: :arg59,
492
- data_to_capture: :arg60,
493
- capture_marker: :arg61,
494
- enable_wrapping: :arg62,
495
- capture_scrambled_address: :arg63,
496
- mapmem_0_input_set: :arg64,
497
- mapmem_1_input_set: :arg65,
498
- threading: :arg69,
499
- match_all_sites: :arg70
500
- }
501
- }
502
-
503
- TEST_INSTANCE_DEFAULTS = {
504
- empty: {
505
- proc_type: 'IG-XL Template',
506
- proc_name: 'Empty_T',
507
- proc_called_as: 'Excel Macro'
508
- },
509
- other: {
510
- proc_type: 'Other',
511
- proc_called_as: 'Excel Macro'
512
- },
513
- functional: {
514
- proc_type: 'IG-XL Template',
515
- proc_name: 'Functional_T',
516
- proc_called_as: 'VB DLL',
517
- set_pass_fail: 1,
518
- wait_flags: 'XXXX',
519
- wait_time: 30,
520
- relay_mode: 1,
521
- threading: 0,
522
- match_all_sites: 0,
523
- capture_mode: 0,
524
- capture_what: 0,
525
- capture_memory: 0,
526
- capture_size: 256,
527
- datalog_mode: 0,
528
- data_type: 0
529
- },
530
- board_pmu: {
531
- proc_type: 'IG-XL Template',
532
- proc_name: 'BoardPmu_T',
533
- proc_called_as: 'VB DLL',
534
- wait_flags: 'XXXX',
535
- measure_mode: 1,
536
- irange: 5,
537
- vrange: 3,
538
- settling_time: 0,
539
- hi_lo_lim_valid: 3,
540
- gang_pins_tested: 0,
541
- relay_mode: 0,
542
- wait_time_out: 30,
543
- pcp_check_pg: 1,
544
- hsp_check_pg: 1,
545
- resume_pat: 0,
546
- threading: 0
547
- },
548
- pin_pmu: {
549
- proc_type: 'IG-XL Template',
550
- proc_name: 'PinPmu_T',
551
- proc_called_as: 'VB DLL',
552
- wait_flags: 'XXXX',
553
- measure_mode: 1,
554
- irange: 2,
555
- settling_time: 0,
556
- hi_lo_lim_valid: 3,
557
- fload: 0,
558
- relay_mode: 0,
559
- wait_time_out: 30,
560
- pcp_check_pg: 1,
561
- hsp_check_pg: 1,
562
- resume_pat: 0,
563
- threading: 0
564
- },
565
- apmu_powersupply: {
566
- proc_type: 'IG-XL Template',
567
- proc_name: 'ApmuPowerSupply_T',
568
- proc_called_as: 'VB DLL',
569
- wait_flags: 'XXXX',
570
- irange: 1,
571
- settling_time: 0,
572
- hi_lo_lim_valid: 3,
573
- relay_mode: 0,
574
- wait_time_out: 30,
575
- pcp_check_pg: 1,
576
- hsp_check_pg: 1,
577
- resume_pat: 0,
578
- test_control: 0
579
- },
580
- powersupply: {
581
- proc_type: 'IG-XL Template',
582
- proc_name: 'PowerSupply_T',
583
- proc_called_as: 'VB DLL',
584
- wait_flags: 'XXXX',
585
- irange: 1,
586
- settling_time: 0,
587
- hi_lo_lim_valid: 3,
588
- relay_mode: 0,
589
- wait_time_out: 30,
590
- pcp_check_pg: 1,
591
- hsp_check_pg: 1,
592
- resume_pat: 0,
593
- test_control: 0
594
- },
595
- mto_memory: {
596
- proc_type: 'IG-XL Template',
597
- proc_name: 'MtoMemory_T',
598
- proc_called_as: 'VB DLL',
599
- set_pass_fail: 1,
600
- wait_flags: 'XXXX',
601
- wait_time: 30,
602
- relay_mode: 1,
603
- threading: 0,
604
- match_all_sites: 0,
605
- dut_data_source: 0,
606
- scramble_addr: 0,
607
- speed_mode: 0,
608
- resource_map: 'MAP_1M_2BIT',
609
- receive_data: 0,
610
- data_to_capture: 1,
611
- capture_marker: 1,
612
- enable_wrapping: 0,
613
- capture_scrambled_address: 0,
614
- mapmem_0_input_set: 'Map_By16',
615
- mapmem_1_input_set: 'Map_By16',
616
- x_scramble_algorithm: 'X_NO_SCRAMBLE',
617
- y_scramble_algorithm: 'Y_NO_SCRAMBLE',
618
- topo_inversion_algorithm: 'NO_TOPO',
619
- x_shift_direction: 0,
620
- x_shift_input: 0,
621
- y_shift_direction: 0,
622
- y_shift_input: 0,
623
- x_coincidence_enable_mask: 0,
624
- y_coincidence_enable_mask: 0,
625
- dg_shift_direction: 0,
626
- dg_shift_input: 0
627
- }
628
- }
629
-
630
- # Generate the instance method definitions based on the above
631
- define
632
-
633
- # Set the cpu wait flags for the given test instance
634
- # instance.set_wait_flags(:a)
635
- # instance.set_wait_flags(:a, :c)
636
- def set_wait_flags(*flags)
637
- a = (flags.include?(:a) || flags.include?(:a)) ? '1' : 'X'
638
- b = (flags.include?(:b) || flags.include?(:b)) ? '1' : 'X'
639
- c = (flags.include?(:c) || flags.include?(:c)) ? '1' : 'X'
640
- d = (flags.include?(:d) || flags.include?(:d)) ? '1' : 'X'
641
- self.wait_flags = d + c + b + a
642
- self
643
- end
644
-
645
- # Set and enable the pre-charge voltage of a parametric test instance.
646
- def set_pre_charge(val)
647
- if val
648
- self.pre_charge_enable = 1
649
- self.pre_charge = val
650
- else
651
- self.pre_charge_enable = 0
652
- end
653
- self
654
- end
655
- alias_method :set_precharge, :set_pre_charge
656
-
657
- # Returns a hash containing key meta data about the test instance, this is
658
- # intended to be used in documentation
659
- def to_meta
660
- return @meta if @meta
661
- m = { 'Test' => name,
662
- 'Type' => type
663
- }
664
- if type == :functional
665
- m['Pattern'] = pattern
666
- elsif type == :board_pmu || type == :pin_pmu
667
- m['Measure'] = fvmi? ? 'current' : 'voltage'
668
- if hi_lo_limit_valid & 2 != 0
669
- m['Hi'] = hi_limit
670
- end
671
- if hi_lo_limit_valid & 1 != 0
672
- m['Lo'] = lo_limit
673
- end
674
- m['Hi'] = hi_limit
675
- m['Lo'] = lo_limit
676
- if force_cond
677
- m['Force'] = force_cond
678
- end
679
- elsif type == :powersupply
680
- if hi_lo_limit_valid & 2 != 0
681
- m['Hi'] = hi_limit
682
- end
683
- if hi_lo_limit_valid & 1 != 0
684
- m['Lo'] = lo_limit
685
- end
686
- m['Hi'] = hi_limit
687
- m['Lo'] = lo_limit
688
- if force_cond
689
- m['Force'] = force_cond
690
- end
691
- end
692
- m['DC'] = "#{dc_category} (#{dc_selector})"
693
- m['AC'] = "#{ac_category} (#{ac_selector})"
694
- m
695
- end
696
-
697
- # Set the meaure mode of a parametric test instance, either:
698
- # * :voltage / :fimv
699
- # * :current / :fvmi
700
- def set_measure_mode(mode)
701
- if mode == :current || mode == :fvmi
702
- self.measure_mode = 0
703
- elsif mode == :voltage || mode == :fimv
704
- self.measure_mode = 1
705
- else
706
- fail "Unknown measure mode: #{mode}"
707
- end
708
- end
709
-
710
- # Set and enable the hi limit of a parametric test instance, passing in
711
- # nil or false as the lim parameter will disable the hi limit.
712
- def set_hi_limit(lim)
713
- if lim
714
- if $tester.j750?
715
- self.hi_lo_limit_valid = hi_lo_limit_valid | 2
716
- end
717
- self.hi_limit = lim
718
- else
719
- if $tester.j750?
720
- self.hi_lo_limit_valid = hi_lo_limit_valid & 1
721
- end
722
- end
723
- self
724
- end
725
- alias_method :hi_limit=, :set_hi_limit
726
-
727
- # Set and enable the hi limit of a parametric test instance, passing in
728
- # nil or false as the lim parameter will disable the hi limit.
729
- def set_lo_limit(lim)
730
- if lim
731
- if $tester.j750?
732
- self.hi_lo_limit_valid = hi_lo_limit_valid | 1
733
- end
734
- self.lo_limit = lim
735
- else
736
- if $tester.j750?
737
- self.hi_lo_limit_valid = hi_lo_limit_valid & 2
738
- end
739
- end
740
- self
741
- end
742
- alias_method :lo_limit=, :set_lo_limit
743
- end
744
- end
745
- end
746
- end
1
+ module OrigenTesters
2
+ module IGXLBasedTester
3
+ class J750
4
+ require 'origen_testers/igxl_based_tester/base/test_instance'
5
+ class TestInstance < Base::TestInstance
6
+ # Attributes for each test instance line, first few are named directly
7
+ TEST_INSTANCE_ATTRS = %w(
8
+ test_name proc_type proc_name proc_called_as dc_category
9
+ dc_selector ac_category ac_selector
10
+ time_sets edge_sets pin_levels overlay
11
+ )
12
+
13
+ # Attributes for additional test instance arguments beyond those described above
14
+ TEST_INSTANCE_EXTRA_ARGS = 80
15
+
16
+ TEST_INSTANCE_ALIASES = {
17
+ name: :test_name,
18
+ time_set: :time_sets,
19
+ timeset: :time_sets,
20
+ timesets: :time_sets,
21
+
22
+ other: {
23
+ },
24
+
25
+ empty: {
26
+ start_func: :arg0,
27
+ start_of_body_f: :arg0,
28
+ pre_pat_func: :arg1,
29
+ pre_pat_f: :arg1,
30
+ pre_test_func: :arg2,
31
+ pre_test_f: :arg2,
32
+ post_test_func: :arg3,
33
+ post_test_f: :arg3,
34
+ post_pat_func: :arg4,
35
+ post_pat_f: :arg4,
36
+ end_func: :arg5,
37
+ end_of_body_f: :arg5,
38
+ start_func_args: :arg6,
39
+ start_of_body_f_args: :arg6,
40
+ pre_pat_func_args: :arg7,
41
+ pre_pat_f_args: :arg7,
42
+ pre_test_func_args: :arg8,
43
+ pre_test_f_args: :arg8,
44
+ post_test_func_args: :arg9,
45
+ post_test_f_args: :arg9,
46
+ post_pat_func_args: :arg10,
47
+ post_pat_f_args: :arg10,
48
+ end_func_args: :arg11,
49
+ end_of_body_f_args: :arg11,
50
+ utility_pins_1: :arg12,
51
+ utility_pins_0: :arg13,
52
+ init_lo: :arg14,
53
+ start_lo: :arg14,
54
+ init_hi: :arg15,
55
+ start_hi: :arg15,
56
+ init_hiz: :arg16,
57
+ start_hiz: :arg16,
58
+ float_pins: :arg17
59
+ },
60
+
61
+ # Functional test instances
62
+ functional: {
63
+ pattern: :arg0,
64
+ patterns: :arg0,
65
+ start_func: :arg1,
66
+ start_of_body_f: :arg1,
67
+ pre_pat_func: :arg2,
68
+ pre_pat_f: :arg2,
69
+ pre_test_func: :arg3,
70
+ pre_test_f: :arg3,
71
+ post_test_func: :arg4,
72
+ post_test_f: :arg4,
73
+ post_pat_func: :arg5,
74
+ post_pat_f: :arg5,
75
+ end_func: :arg6,
76
+ end_of_body_f: :arg6,
77
+ set_pass_fail: :arg7,
78
+ init_lo: :arg8,
79
+ start_lo: :arg8,
80
+ init_hi: :arg9,
81
+ start_hi: :arg9,
82
+ init_hiz: :arg10,
83
+ start_hiz: :arg10,
84
+ float_pins: :arg11,
85
+ start_func_args: :arg13,
86
+ start_of_body_f_args: :arg13,
87
+ pre_pat_func_args: :arg14,
88
+ pre_pat_f_args: :arg14,
89
+ pre_test_func_args: :arg15,
90
+ pre_test_f_args: :arg15,
91
+ post_test_func_args: :arg16,
92
+ post_test_f_args: :arg16,
93
+ post_pat_func_args: :arg17,
94
+ post_pat_f_args: :arg17,
95
+ end_func_args: :arg18,
96
+ end_of_body_f_args: :arg18,
97
+ utility_pins_1: :arg19,
98
+ utility_pins_0: :arg20,
99
+ wait_flags: :arg21,
100
+ wait_time: :arg22,
101
+ pattern_timeout: :arg22,
102
+ pat_flag_func: :arg23,
103
+ pat_flag_f: :arg23,
104
+ PatFlagF: :arg23,
105
+ pat_flag_func_args: :arg24,
106
+ pat_flag_f_args: :arg24,
107
+ relay_mode: :arg25,
108
+ threading: :arg26,
109
+ match_all_sites: :arg27,
110
+ capture_mode: :arg30,
111
+ capture_what: :arg31,
112
+ capture_memory: :arg32,
113
+ capture_size: :arg33,
114
+ datalog_mode: :arg34,
115
+ data_type: :arg35
116
+ },
117
+
118
+ board_pmu: {
119
+ hsp_start: :arg0,
120
+ start_func: :arg1,
121
+ start_of_body_f: :arg1,
122
+ pre_pat_func: :arg2,
123
+ pre_pat_f: :arg2,
124
+ pre_test_func: :arg3,
125
+ pre_test_f: :arg3,
126
+ post_test_func: :arg4,
127
+ post_test_f: :arg4,
128
+ post_pat_func: :arg5,
129
+ post_pat_f: :arg5,
130
+ end_func: :arg6,
131
+ end_of_body_f: :arg6,
132
+ precond_pat: :arg7,
133
+ hold_state_pat: :arg8,
134
+ holdstate_pat: :arg8,
135
+ pattern: :arg8,
136
+ pcp_stop: :arg9,
137
+ wait_flags: :arg10,
138
+ start_lo: :arg11,
139
+ init_lo: :arg11,
140
+ start_hi: :arg12,
141
+ init_hi: :arg12,
142
+ start_hiz: :arg13,
143
+ init_hiz: :arg13,
144
+ float_pins: :arg14,
145
+ pinlist: :arg15,
146
+ pin: :arg15,
147
+ pin_list: :arg15,
148
+ measure_mode: :arg16,
149
+ irange: :arg17,
150
+ clamp: :arg18,
151
+ vrange: :arg19,
152
+ sampling_time: :arg20,
153
+ samples: :arg21,
154
+ settling_time: :arg22,
155
+ hi_lo_lim_valid: :arg23,
156
+ hi_lo_limit_valid: :arg23,
157
+ hi_limit: :arg24,
158
+ lo_limit: :arg25,
159
+ force_cond_1: :arg26,
160
+ force_cond: :arg26,
161
+ force_condition: :arg26,
162
+ force_cond_2: :arg27,
163
+ gang_pins_tested: :arg28,
164
+ relay_mode: :arg29,
165
+ wait_time_out: :arg30,
166
+ start_func_args: :arg31,
167
+ start_of_body_f_args: :arg31,
168
+ pre_pat_func_args: :arg32,
169
+ pre_pat_f_args: :arg32,
170
+ pre_test_func_args: :arg33,
171
+ pre_test_f_args: :arg33,
172
+ post_test_func_args: :arg34,
173
+ post_test_f_args: :arg34,
174
+ post_pat_func_args: :arg35,
175
+ post_pat_f_args: :arg35,
176
+ end_func_args: :arg36,
177
+ end_of_body_f_args: :arg36,
178
+ pcp_start: :arg37,
179
+ pcp_check_pg: :arg38,
180
+ hsp_stop: :arg39,
181
+ hsp_check_pg: :arg40,
182
+ resume_pat: :arg41,
183
+ utility_pins_1: :arg42,
184
+ utility_pins_0: :arg43,
185
+ pre_charge_enable: :arg44,
186
+ pre_charge: :arg45,
187
+ threading: :arg46
188
+ },
189
+
190
+ pin_pmu: {
191
+ hsp_start: :arg0,
192
+ start_func: :arg1,
193
+ start_of_body_f: :arg1,
194
+ pre_pat_func: :arg2,
195
+ pre_pat_f: :arg2,
196
+ pre_test_func: :arg3,
197
+ pre_test_f: :arg3,
198
+ post_test_func: :arg4,
199
+ post_test_f: :arg4,
200
+ post_pat_func: :arg5,
201
+ post_pat_f: :arg5,
202
+ end_func: :arg6,
203
+ end_of_body_f: :arg6,
204
+ precond_pat: :arg7,
205
+ hold_state_pat: :arg8,
206
+ holdstate_pat: :arg8,
207
+ pattern: :arg8,
208
+ pcp_stop: :arg9,
209
+ wait_flags: :arg10,
210
+ start_lo: :arg11,
211
+ init_lo: :arg11,
212
+ start_hi: :arg12,
213
+ init_hi: :arg12,
214
+ start_hiz: :arg13,
215
+ init_hiz: :arg13,
216
+ float_pins: :arg14,
217
+ pinlist: :arg15,
218
+ pin: :arg15,
219
+ pin_list: :arg15,
220
+ measure_mode: :arg16,
221
+ irange: :arg17,
222
+ settling_time: :arg18,
223
+ hi_lo_lim_valid: :arg19,
224
+ hi_lo_limit_valid: :arg19,
225
+ hi_limit: :arg20,
226
+ lo_limit: :arg21,
227
+ force_cond_1: :arg22,
228
+ force_cond: :arg22,
229
+ force_condition: :arg22,
230
+ force_cond_2: :arg23,
231
+ fload: :arg24,
232
+ relay_mode: :arg25,
233
+ wait_time_out: :arg26,
234
+ start_func_args: :arg27,
235
+ start_of_body_f_args: :arg27,
236
+ pre_pat_func_args: :arg28,
237
+ pre_pat_f_args: :arg28,
238
+ pre_test_func_args: :arg29,
239
+ pre_test_f_args: :arg29,
240
+ post_test_func_args: :arg30,
241
+ post_test_f_args: :arg30,
242
+ post_pat_func_args: :arg31,
243
+ post_pat_f_args: :arg31,
244
+ end_func_args: :arg32,
245
+ end_of_body_f_args: :arg32,
246
+ pcp_start: :arg33,
247
+ pcp_check_pg: :arg34,
248
+ hsp_stop: :arg35,
249
+ hsp_check_pg: :arg36,
250
+ sampling_time: :arg37,
251
+ samples: :arg38,
252
+ resume_pat: :arg39,
253
+ vcl: :arg40,
254
+ vch: :arg41,
255
+ utility_pins_1: :arg42,
256
+ utility_pins_0: :arg43,
257
+ pre_charge_enable: :arg44,
258
+ pre_charge: :arg45,
259
+ threading: :arg46
260
+ },
261
+
262
+ apmu_powersupply: {
263
+ precond_pat: :arg0,
264
+ pre_cond_pat: :arg0,
265
+ start_func: :arg1,
266
+ start_of_body_f: :arg1,
267
+ pre_pat_func: :arg2,
268
+ pre_pat_f: :arg2,
269
+ pre_test_func: :arg3,
270
+ pre_test_f: :arg3,
271
+ post_test_func: :arg4,
272
+ post_test_f: :arg4,
273
+ post_pat_func: :arg5,
274
+ post_pat_f: :arg5,
275
+ end_func: :arg6,
276
+ end_of_body_f: :arg6,
277
+ pattern: :arg7,
278
+ hold_state_pat: :arg7,
279
+ holdstate_pat: :arg7,
280
+ wait_flags: :arg8,
281
+ wait_time_out: :arg9,
282
+ start_lo: :arg10,
283
+ start_init_lo: :arg10,
284
+ init_lo: :arg10,
285
+ start_hi: :arg11,
286
+ start_init_hi: :arg11,
287
+ init_hi: :arg11,
288
+ start_hiz: :arg12,
289
+ start_init_hiz: :arg12,
290
+ init_hiz: :arg12,
291
+ float_pins: :arg13,
292
+ irange: :arg14,
293
+ sampling_time: :arg15,
294
+ samples: :arg16,
295
+ settling_time: :arg17,
296
+ hi_lo_lim_valid: :arg18,
297
+ hi_lo_limit_valid: :arg18,
298
+ hi_limit: :arg19,
299
+ lo_limit: :arg20,
300
+ force_cond_1: :arg21,
301
+ force_cond: :arg21,
302
+ force_condition: :arg21,
303
+ force_condition_1: :arg21,
304
+ force_cond_2: :arg22,
305
+ force_condition_2: :arg22,
306
+ power_pins: :arg23,
307
+ pins: :arg23,
308
+ pin: :arg23,
309
+ force_source: :arg24,
310
+ pcp_start: :arg25,
311
+ pcp_stop: :arg26,
312
+ start_func_args: :arg27,
313
+ start_of_body_f_args: :arg27,
314
+ pre_pat_func_args: :arg28,
315
+ pre_pat_f_args: :arg28,
316
+ pre_test_func_args: :arg29,
317
+ pre_test_f_args: :arg29,
318
+ post_test_func_args: :arg30,
319
+ post_test_f_args: :arg30,
320
+ post_pat_func_args: :arg31,
321
+ post_pat_f_args: :arg31,
322
+ end_func_args: :arg32,
323
+ end_of_body_f_args: :arg32,
324
+ hsp_start: :arg33,
325
+ hsp_stop: :arg34,
326
+ pcp_check_pg: :arg35,
327
+ clamp: :arg36,
328
+ hsp_check_pg: :arg37,
329
+ resume_pat: :arg38,
330
+ relay_mode: :arg39,
331
+ utility_pins_1: :arg40,
332
+ utility_pins_0: :arg41,
333
+ test_control: :arg42,
334
+ serialize_meas: :arg43,
335
+ serialize_meas_func: :arg44,
336
+ serialize_meas_f: :arg44,
337
+ serialize_meas_func_args: :arg45,
338
+ serialize_meas_f_args: :arg45
339
+ },
340
+
341
+ powersupply: {
342
+ precond_pat: :arg0,
343
+ pre_cond_pat: :arg0,
344
+ start_func: :arg1,
345
+ start_of_body_f: :arg1,
346
+ pre_pat_func: :arg2,
347
+ pre_pat_f: :arg2,
348
+ pre_test_func: :arg3,
349
+ pre_test_f: :arg3,
350
+ post_test_func: :arg4,
351
+ post_test_f: :arg4,
352
+ post_pat_func: :arg5,
353
+ post_pat_f: :arg5,
354
+ end_func: :arg6,
355
+ end_of_body_f: :arg6,
356
+ pattern: :arg7,
357
+ hold_state_pat: :arg7,
358
+ holdstate_pat: :arg7,
359
+ wait_flags: :arg8,
360
+ wait_time_out: :arg9,
361
+ start_lo: :arg10,
362
+ start_init_lo: :arg10,
363
+ init_lo: :arg10,
364
+ start_hi: :arg11,
365
+ start_init_hi: :arg11,
366
+ init_hi: :arg11,
367
+ start_hiz: :arg12,
368
+ start_init_hiz: :arg12,
369
+ init_hiz: :arg12,
370
+ float_pins: :arg13,
371
+ irange: :arg14,
372
+ sampling_time: :arg15,
373
+ samples: :arg16,
374
+ settling_time: :arg17,
375
+ hi_lo_lim_valid: :arg18,
376
+ hi_lo_limit_valid: :arg18,
377
+ hi_limit: :arg19,
378
+ lo_limit: :arg20,
379
+ force_cond_1: :arg21,
380
+ force_cond: :arg21,
381
+ force_condition: :arg21,
382
+ force_condition_1: :arg21,
383
+ force_cond_2: :arg22,
384
+ force_condition_2: :arg22,
385
+ power_pins: :arg23,
386
+ pins: :arg23,
387
+ pin: :arg23,
388
+ force_source: :arg24,
389
+ pcp_start: :arg25,
390
+ pcp_stop: :arg26,
391
+ start_func_args: :arg27,
392
+ start_of_body_f_args: :arg27,
393
+ pre_pat_func_args: :arg28,
394
+ pre_pat_f_args: :arg28,
395
+ pre_test_func_args: :arg29,
396
+ pre_test_f_args: :arg29,
397
+ post_test_func_args: :arg30,
398
+ post_test_f_args: :arg30,
399
+ post_pat_func_args: :arg31,
400
+ post_pat_f_args: :arg31,
401
+ end_func_args: :arg32,
402
+ end_of_body_f_args: :arg32,
403
+ hsp_start: :arg33,
404
+ hsp_stop: :arg34,
405
+ pcp_check_pg: :arg35,
406
+ clamp: :arg36,
407
+ hsp_check_pg: :arg37,
408
+ resume_pat: :arg38,
409
+ relay_mode: :arg39,
410
+ utility_pins_1: :arg40,
411
+ utility_pins_0: :arg41,
412
+ test_control: :arg42,
413
+ serialize_meas: :arg43,
414
+ serialize_meas_func: :arg44,
415
+ serialize_meas_f: :arg44,
416
+ serialize_meas_func_args: :arg45,
417
+ serialize_meas_f_args: :arg45,
418
+ precond_pat_clamp: :arg46,
419
+ threading: :arg47
420
+ },
421
+
422
+ mto_memory: {
423
+ patterns: :arg0,
424
+ pattern: :arg0,
425
+ start_func: :arg1,
426
+ start_of_body_f: :arg1,
427
+ pre_pat_func: :arg2,
428
+ pre_pat_f: :arg2,
429
+ pre_test_func: :arg3,
430
+ pre_test_f: :arg3,
431
+ post_test_func: :arg4,
432
+ post_test_f: :arg4,
433
+ post_pat_func: :arg5,
434
+ post_pat_f: :arg5,
435
+ end_of_body_func: :arg6,
436
+ end_of_body_f: :arg6,
437
+ set_pass_fail: :arg7,
438
+ init_lo: :arg8,
439
+ start_lo: :arg8,
440
+ init_hi: :arg9,
441
+ start_hi: :arg9,
442
+ init_hiz: :arg10,
443
+ start_hiz: :arg10,
444
+ float_pins: :arg11,
445
+ start_of_body_func_args: :arg12,
446
+ start_of_body_f_args: :arg12,
447
+ pre_pat_func_args: :arg13,
448
+ pre_pat_f_args: :arg13,
449
+ pre_test_func_args: :arg14,
450
+ pre_test_f_args: :arg14,
451
+ post_test_func_args: :arg15,
452
+ post_test_f_args: :arg15,
453
+ post_pat_f_args: :arg16,
454
+ end_of_body_func_args: :arg17,
455
+ end_of_body_f_args: :arg17,
456
+ utility_pins_1: :arg18,
457
+ utility_pins_0: :arg19,
458
+ wait_flags: :arg20,
459
+ wait_time_out: :arg21,
460
+ PatFlagF: :arg22,
461
+ pat_flag_f: :arg22,
462
+ pat_flag_func_args: :arg23,
463
+ pat_flag_f_args: :arg23,
464
+ relay_mode: :arg24,
465
+ x_enable_mask: :arg29,
466
+ x_shift_direction: :arg30,
467
+ x_shift_input: :arg31,
468
+ y_enable_mask: :arg36,
469
+ y_shift_direction: :arg37,
470
+ y_shift_input: :arg38,
471
+ dga: :arg39,
472
+ dgb: :arg40,
473
+ dgc: :arg41,
474
+ dgd: :arg42,
475
+ dg_enable_mask: :arg43,
476
+ dg_shift_direction: :arg44,
477
+ dg_shift_input: :arg45,
478
+ x_coincidence_enable_mask: :arg46,
479
+ y_coincidence_enable_mask: :arg47,
480
+ two_bit_dg_setup: :arg48,
481
+ x_scramble_algorithm: :arg49,
482
+ y_scramble_algorithm: :arg50,
483
+ topo_inversion_algorithm: :arg51,
484
+ utility_counter_a: :arg52,
485
+ utility_counter_b: :arg53,
486
+ utility_counter_c: :arg54,
487
+ dut_data_source: :arg55,
488
+ scramble_addr: :arg56,
489
+ speed_mode: :arg57,
490
+ resource_map: :arg58,
491
+ receive_data: :arg59,
492
+ data_to_capture: :arg60,
493
+ capture_marker: :arg61,
494
+ enable_wrapping: :arg62,
495
+ capture_scrambled_address: :arg63,
496
+ mapmem_0_input_set: :arg64,
497
+ mapmem_1_input_set: :arg65,
498
+ threading: :arg69,
499
+ match_all_sites: :arg70
500
+ }
501
+ }
502
+
503
+ TEST_INSTANCE_DEFAULTS = {
504
+ empty: {
505
+ proc_type: 'IG-XL Template',
506
+ proc_name: 'Empty_T',
507
+ proc_called_as: 'Excel Macro'
508
+ },
509
+ other: {
510
+ proc_type: 'Other',
511
+ proc_called_as: 'Excel Macro'
512
+ },
513
+ functional: {
514
+ proc_type: 'IG-XL Template',
515
+ proc_name: 'Functional_T',
516
+ proc_called_as: 'VB DLL',
517
+ set_pass_fail: 1,
518
+ wait_flags: 'XXXX',
519
+ wait_time: 30,
520
+ relay_mode: 1,
521
+ threading: 0,
522
+ match_all_sites: 0,
523
+ capture_mode: 0,
524
+ capture_what: 0,
525
+ capture_memory: 0,
526
+ capture_size: 256,
527
+ datalog_mode: 0,
528
+ data_type: 0
529
+ },
530
+ board_pmu: {
531
+ proc_type: 'IG-XL Template',
532
+ proc_name: 'BoardPmu_T',
533
+ proc_called_as: 'VB DLL',
534
+ wait_flags: 'XXXX',
535
+ measure_mode: 1,
536
+ irange: 5,
537
+ vrange: 3,
538
+ settling_time: 0,
539
+ hi_lo_lim_valid: 3,
540
+ gang_pins_tested: 0,
541
+ relay_mode: 0,
542
+ wait_time_out: 30,
543
+ pcp_check_pg: 1,
544
+ hsp_check_pg: 1,
545
+ resume_pat: 0,
546
+ threading: 0
547
+ },
548
+ pin_pmu: {
549
+ proc_type: 'IG-XL Template',
550
+ proc_name: 'PinPmu_T',
551
+ proc_called_as: 'VB DLL',
552
+ wait_flags: 'XXXX',
553
+ measure_mode: 1,
554
+ irange: 2,
555
+ settling_time: 0,
556
+ hi_lo_lim_valid: 3,
557
+ fload: 0,
558
+ relay_mode: 0,
559
+ wait_time_out: 30,
560
+ pcp_check_pg: 1,
561
+ hsp_check_pg: 1,
562
+ resume_pat: 0,
563
+ threading: 0
564
+ },
565
+ apmu_powersupply: {
566
+ proc_type: 'IG-XL Template',
567
+ proc_name: 'ApmuPowerSupply_T',
568
+ proc_called_as: 'VB DLL',
569
+ wait_flags: 'XXXX',
570
+ irange: 1,
571
+ settling_time: 0,
572
+ hi_lo_lim_valid: 3,
573
+ relay_mode: 0,
574
+ wait_time_out: 30,
575
+ pcp_check_pg: 1,
576
+ hsp_check_pg: 1,
577
+ resume_pat: 0,
578
+ test_control: 0
579
+ },
580
+ powersupply: {
581
+ proc_type: 'IG-XL Template',
582
+ proc_name: 'PowerSupply_T',
583
+ proc_called_as: 'VB DLL',
584
+ wait_flags: 'XXXX',
585
+ irange: 1,
586
+ settling_time: 0,
587
+ hi_lo_lim_valid: 3,
588
+ relay_mode: 0,
589
+ wait_time_out: 30,
590
+ pcp_check_pg: 1,
591
+ hsp_check_pg: 1,
592
+ resume_pat: 0,
593
+ test_control: 0
594
+ },
595
+ mto_memory: {
596
+ proc_type: 'IG-XL Template',
597
+ proc_name: 'MtoMemory_T',
598
+ proc_called_as: 'VB DLL',
599
+ set_pass_fail: 1,
600
+ wait_flags: 'XXXX',
601
+ wait_time: 30,
602
+ relay_mode: 1,
603
+ threading: 0,
604
+ match_all_sites: 0,
605
+ dut_data_source: 0,
606
+ scramble_addr: 0,
607
+ speed_mode: 0,
608
+ resource_map: 'MAP_1M_2BIT',
609
+ receive_data: 0,
610
+ data_to_capture: 1,
611
+ capture_marker: 1,
612
+ enable_wrapping: 0,
613
+ capture_scrambled_address: 0,
614
+ mapmem_0_input_set: 'Map_By16',
615
+ mapmem_1_input_set: 'Map_By16',
616
+ x_scramble_algorithm: 'X_NO_SCRAMBLE',
617
+ y_scramble_algorithm: 'Y_NO_SCRAMBLE',
618
+ topo_inversion_algorithm: 'NO_TOPO',
619
+ x_shift_direction: 0,
620
+ x_shift_input: 0,
621
+ y_shift_direction: 0,
622
+ y_shift_input: 0,
623
+ x_coincidence_enable_mask: 0,
624
+ y_coincidence_enable_mask: 0,
625
+ dg_shift_direction: 0,
626
+ dg_shift_input: 0
627
+ }
628
+ }
629
+
630
+ # Generate the instance method definitions based on the above
631
+ define
632
+
633
+ # Set the cpu wait flags for the given test instance
634
+ # instance.set_wait_flags(:a)
635
+ # instance.set_wait_flags(:a, :c)
636
+ def set_wait_flags(*flags)
637
+ a = (flags.include?(:a) || flags.include?(:a)) ? '1' : 'X'
638
+ b = (flags.include?(:b) || flags.include?(:b)) ? '1' : 'X'
639
+ c = (flags.include?(:c) || flags.include?(:c)) ? '1' : 'X'
640
+ d = (flags.include?(:d) || flags.include?(:d)) ? '1' : 'X'
641
+ self.wait_flags = d + c + b + a
642
+ self
643
+ end
644
+
645
+ # Set and enable the pre-charge voltage of a parametric test instance.
646
+ def set_pre_charge(val)
647
+ if val
648
+ self.pre_charge_enable = 1
649
+ self.pre_charge = val
650
+ else
651
+ self.pre_charge_enable = 0
652
+ end
653
+ self
654
+ end
655
+ alias_method :set_precharge, :set_pre_charge
656
+
657
+ # Returns a hash containing key meta data about the test instance, this is
658
+ # intended to be used in documentation
659
+ def to_meta
660
+ return @meta if @meta
661
+ m = { 'Test' => name,
662
+ 'Type' => type
663
+ }
664
+ if type == :functional
665
+ m['Pattern'] = pattern
666
+ elsif type == :board_pmu || type == :pin_pmu
667
+ m['Measure'] = fvmi? ? 'current' : 'voltage'
668
+ if hi_lo_limit_valid & 2 != 0
669
+ m['Hi'] = hi_limit
670
+ end
671
+ if hi_lo_limit_valid & 1 != 0
672
+ m['Lo'] = lo_limit
673
+ end
674
+ m['Hi'] = hi_limit
675
+ m['Lo'] = lo_limit
676
+ if force_cond
677
+ m['Force'] = force_cond
678
+ end
679
+ elsif type == :powersupply
680
+ if hi_lo_limit_valid & 2 != 0
681
+ m['Hi'] = hi_limit
682
+ end
683
+ if hi_lo_limit_valid & 1 != 0
684
+ m['Lo'] = lo_limit
685
+ end
686
+ m['Hi'] = hi_limit
687
+ m['Lo'] = lo_limit
688
+ if force_cond
689
+ m['Force'] = force_cond
690
+ end
691
+ end
692
+ m['DC'] = "#{dc_category} (#{dc_selector})"
693
+ m['AC'] = "#{ac_category} (#{ac_selector})"
694
+ m
695
+ end
696
+
697
+ # Set the meaure mode of a parametric test instance, either:
698
+ # * :voltage / :fimv
699
+ # * :current / :fvmi
700
+ def set_measure_mode(mode)
701
+ if mode == :current || mode == :fvmi
702
+ self.measure_mode = 0
703
+ elsif mode == :voltage || mode == :fimv
704
+ self.measure_mode = 1
705
+ else
706
+ fail "Unknown measure mode: #{mode}"
707
+ end
708
+ end
709
+
710
+ # Set and enable the hi limit of a parametric test instance, passing in
711
+ # nil or false as the lim parameter will disable the hi limit.
712
+ def set_hi_limit(lim)
713
+ if lim
714
+ if $tester.j750?
715
+ self.hi_lo_limit_valid = hi_lo_limit_valid | 2
716
+ end
717
+ self.hi_limit = lim
718
+ else
719
+ if $tester.j750?
720
+ self.hi_lo_limit_valid = hi_lo_limit_valid & 1
721
+ end
722
+ end
723
+ self
724
+ end
725
+ alias_method :hi_limit=, :set_hi_limit
726
+
727
+ # Set and enable the hi limit of a parametric test instance, passing in
728
+ # nil or false as the lim parameter will disable the hi limit.
729
+ def set_lo_limit(lim)
730
+ if lim
731
+ if $tester.j750?
732
+ self.hi_lo_limit_valid = hi_lo_limit_valid | 1
733
+ end
734
+ self.lo_limit = lim
735
+ else
736
+ if $tester.j750?
737
+ self.hi_lo_limit_valid = hi_lo_limit_valid & 2
738
+ end
739
+ end
740
+ self
741
+ end
742
+ alias_method :lo_limit=, :set_lo_limit
743
+ end
744
+ end
745
+ end
746
+ end