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,10 +1,10 @@
1
- module OrigenTesters
2
- module IGXLBasedTester
3
- class UltraFLEX
4
- require 'origen_testers/igxl_based_tester/base/references'
5
- class References < Base::References
6
- TEMPLATE = "#{Origen.root!}/lib/origen_testers/igxl_based_tester/ultraflex/templates/references.txt.erb"
7
- end
8
- end
9
- end
10
- end
1
+ module OrigenTesters
2
+ module IGXLBasedTester
3
+ class UltraFLEX
4
+ require 'origen_testers/igxl_based_tester/base/references'
5
+ class References < Base::References
6
+ TEMPLATE = "#{Origen.root!}/lib/origen_testers/igxl_based_tester/ultraflex/templates/references.txt.erb"
7
+ end
8
+ end
9
+ end
10
+ end
@@ -1,315 +1,315 @@
1
- module OrigenTesters
2
- module IGXLBasedTester
3
- class UltraFLEX
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 mixedsignal_timing overlay
11
- )
12
-
13
- # Give all UltraFLEX test instances the ability to contain limits, these will
14
- # be rendered to Use-limit lines in the flow
15
- attr_accessor :lo_limit, :hi_limit, :scale, :units, :defer_limits, :lo, :hi
16
-
17
- # Attributes for additional test instance arguments beyond those described above
18
- TEST_INSTANCE_EXTRA_ARGS = 130
19
-
20
- TEST_INSTANCE_ALIASES = {
21
- name: :test_name,
22
- time_set: :time_sets,
23
- timeset: :time_sets,
24
- timesets: :time_sets,
25
-
26
- other: {
27
- },
28
-
29
- empty: {
30
- arg_list: :arg0,
31
- start_func: :arg1,
32
- start_of_body_f: :arg1,
33
- pre_pat_func: :arg2,
34
- pre_pat_f: :arg2,
35
- pre_test_func: :arg3,
36
- pre_test_f: :arg3,
37
- post_test_func: :arg4,
38
- post_test_f: :arg4,
39
- post_pat_func: :arg5,
40
- post_pat_f: :arg5,
41
- end_func: :arg6,
42
- end_of_body_f: :arg6,
43
- start_func_args: :arg7,
44
- start_of_body_f_args: :arg7,
45
- pre_pat_func_args: :arg8,
46
- pre_pat_f_args: :arg8,
47
- pre_test_func_args: :arg9,
48
- pre_test_f_args: :arg9,
49
- post_test_func_args: :arg10,
50
- post_test_f_args: :arg10,
51
- post_pat_func_args: :arg11,
52
- post_pat_f_args: :arg11,
53
- end_func_args: :arg12,
54
- end_of_body_f_args: :arg12,
55
- utility_pins_1: :arg13,
56
- utility_pins_0: :arg14,
57
- init_lo: :arg15,
58
- start_lo: :arg15,
59
- init_hi: :arg16,
60
- start_hi: :arg16,
61
- init_hiz: :arg17,
62
- start_hiz: :arg17,
63
- float_pins: :arg18,
64
- disable_pins: :arg19
65
- },
66
-
67
- # Functional test instances
68
- functional: {
69
- arg_list: :arg0,
70
- pattern: :arg1,
71
- patterns: :arg1,
72
- start_func: :arg2,
73
- start_of_body_f: :arg2,
74
- pre_pat_func: :arg3,
75
- pre_pat_f: :arg3,
76
- pre_test_func: :arg4,
77
- pre_test_f: :arg4,
78
- post_test_func: :arg5,
79
- post_test_f: :arg5,
80
- post_pat_func: :arg6,
81
- post_pat_f: :arg6,
82
- end_func: :arg7,
83
- end_of_body_f: :arg7,
84
- set_pass_fail: :arg8,
85
- report_result: :arg8,
86
- result_mode: :arg9,
87
- init_lo: :arg10,
88
- start_lo: :arg10,
89
- init_hi: :arg11,
90
- start_hi: :arg11,
91
- init_hiz: :arg12,
92
- start_hiz: :arg12,
93
- disable_pins: :arg13,
94
- float_pins: :arg14,
95
- start_func_args: :arg15,
96
- start_of_body_f_args: :arg15,
97
- pre_pat_func_args: :arg16,
98
- pre_pat_f_args: :arg16,
99
- pre_test_func_args: :arg17,
100
- pre_test_f_args: :arg17,
101
- post_test_func_args: :arg18,
102
- post_test_f_args: :arg18,
103
- post_pat_func_args: :arg19,
104
- post_pat_f_args: :arg19,
105
- end_func_args: :arg20,
106
- end_of_body_f_args: :arg20,
107
- utility_pins_1: :arg21,
108
- utility_pins_0: :arg22,
109
- pat_flag_func: :arg23,
110
- pat_flag_f: :arg23,
111
- PatFlagF: :arg23,
112
- pat_flag_func_args: :arg24,
113
- pat_flag_f_args: :arg24,
114
- relay_mode: :arg25,
115
- threading: :arg26,
116
- match_all_sites: :arg27,
117
- wait_flag1: :arg28,
118
- wait_flag2: :arg29,
119
- wait_flag3: :arg30,
120
- wait_flag4: :arg31,
121
- validating: :arg32,
122
- wait_time: :arg33,
123
- pattern_timeout: :arg33,
124
- wait_time_domain: :arg34,
125
- concurrent_mode: :arg35
126
- },
127
-
128
- pin_pmu: {
129
- arg_list: :arg0,
130
- hsp_start: :arg1,
131
- start_func: :arg2,
132
- start_of_body_f: :arg2,
133
- pre_pat_func: :arg3,
134
- pre_pat_f: :arg3,
135
- pre_test_func: :arg4,
136
- pre_test_f: :arg4,
137
- post_test_func: :arg5,
138
- post_test_f: :arg5,
139
- post_pat_func: :arg6,
140
- post_pat_f: :arg6,
141
- end_func: :arg7,
142
- end_of_body_f: :arg7,
143
- precond_pat: :arg8,
144
- hold_state_pat: :arg9,
145
- holdstate_pat: :arg9,
146
- pattern: :arg9,
147
- pcp_stop: :arg10,
148
- start_lo: :arg11,
149
- init_lo: :arg11,
150
- start_hi: :arg12,
151
- init_hi: :arg12,
152
- start_hiz: :arg13,
153
- init_hiz: :arg13,
154
- disable_pins: :arg14,
155
- float_pins: :arg15,
156
- pinlist: :arg16,
157
- pin: :arg16,
158
- pin_list: :arg16,
159
- measure_mode: :arg17,
160
- settling_time: :arg18,
161
- force_cond_1: :arg19,
162
- force_cond: :arg19,
163
- force_condition: :arg19,
164
- force_cond_2: :arg20,
165
- relay_mode: :arg21,
166
- start_func_args: :arg22,
167
- start_of_body_f_args: :arg22,
168
- pre_pat_func_args: :arg23,
169
- pre_pat_f_args: :arg23,
170
- pre_test_func_args: :arg24,
171
- pre_test_f_args: :arg24,
172
- post_test_func_args: :arg25,
173
- post_test_f_args: :arg25,
174
- post_pat_func_args: :arg26,
175
- post_pat_f_args: :arg26,
176
- end_func_args: :arg27,
177
- end_of_body_f_args: :arg27,
178
- pcp_start: :arg28,
179
- pcp_check_pg: :arg29,
180
- hsp_stop: :arg30,
181
- hsp_check_pg: :arg31,
182
- sampling_time: :arg32,
183
- samples: :arg33,
184
- resume_pat: :arg34,
185
- vcl: :arg35,
186
- vch: :arg36,
187
- utility_pins_1: :arg37,
188
- utility_pins_0: :arg38,
189
- wait_flag1: :arg39,
190
- wait_flag2: :arg40,
191
- wait_flag3: :arg41,
192
- wait_flag4: :arg42,
193
- validating: :arg43,
194
- force_irange: :arg44,
195
- meas_irange: :arg45,
196
- wait_time_out: :arg46,
197
- pcp_disable_alarm_check: :arg47,
198
- hsp_disable_alarm_check: :arg48,
199
- testing_in_series: :arg49,
200
- background_meas_mode: :arg50,
201
- background_force_irange: :arg51,
202
- background_meas_irange: :arg52,
203
- background_force_cond: :arg53,
204
- pins_alt: :arg54,
205
- measure_mode_alt: :arg55,
206
- force_cond_alt: :arg56,
207
- force_irange_alt: :arg57,
208
- meas_irange_alt: :arg58
209
- }
210
-
211
- }
212
-
213
- TEST_INSTANCE_DEFAULTS = {
214
- empty: {
215
- arg_list: 'StartOfBodyF,PrePatF,PreTestF,PostTestF,PostPatF,EndOfBodyF,StartOfBodyFArgs,PrePatFArgs,PreTestFArgs,PostTestFArgs,PostPatFArgs,EndOfBodyFArgs,Util1Pins,Util0Pins,DriveLoPins,DriveHiPins,DriveZPins,FloatPins,DisablePins',
216
- proc_type: 'VBT',
217
- proc_name: 'Empty_T',
218
- proc_called_as: 'Excel Macro'
219
- },
220
- other: {
221
- proc_type: 'Other',
222
- proc_called_as: 'Excel Macro'
223
- },
224
- functional: {
225
- arg_list: 'Patterns,StartOfBodyF,PrePatF,PreTestF,PostTestF,PostPatF,EndOfBodyF,ReportResult,ResultMode,DriveLoPins,DriveHiPins,DriveZPins,DisablePins,FloatPins,StartOfBodyFArgs,PrePatFArgs,PreTestFArgs,PostTestFArgs,PostPatFArgs,EndOfBodyFArgs,Util1Pins,Util0Pins,PatFlagF,PatFlagFArgs,RelayMode,PatThreading,MatchAllSites,WaitFlagA,WaitFlagB,WaitFlagC,WaitFlagD,Validating_,PatternTimeout,WaitTimeDomain,ConcurrentMode',
226
- proc_type: 'VBT',
227
- proc_name: 'Functional_T',
228
- proc_called_as: 'Excel Macro',
229
- set_pass_fail: 1,
230
- relay_mode: 1,
231
- threading: 0,
232
- match_all_sites: 0,
233
- wait_flag1: -2, # waitoff
234
- wait_flag2: -2, # waitoff
235
- wait_flag3: -2, # waitoff
236
- wait_flag4: -2, # waitoff
237
- wait_time: 30
238
- },
239
- pin_pmu: {
240
- arg_list: 'HspStartLabel,StartOfBodyF,PrePatF,PreTestF,PostTestF,PostPatF,EndOfBodyF,PreconditionPat,HoldStatePat,PcpStopLabel,DriveLoPins,DriveHiPins,DriveZPins,DisablePins,FloatPins,Pins,MeasureMode,SettlingTime,ForceCond1,ForceCond2,RelayMode,StartOfBodyFArgs,PrePatFArgs,PreTestFArgs,PostTestFArgs,PostPatFArgs,EndOfBodyFArgs,PcpStartLabel,PcpCheckPatGen,HspStopLabel,HspCheckPatGen,SamplingTime,SampleCount,HspResumePat,VClampLo,VClampHi,Util1Pins,Util0Pins,WaitFlagA,WaitFlagB,WaitFlagC,WaitFlagD,Validating_,ForceIRange,MeasIRange,PatternTimeout,PcpDisableAlarmCheck,HspDisableAlarmCheck,TestingInSeries,BackgroundMeasureMode,BackgroundForceIRange,BackgroundMeasIRange,BackgroundForceCond,PinsAlt,MeasureModeAlt,ForceCondAlt,ForceIRangeAlt,MeasIRangeAlt',
241
- proc_type: 'VBT',
242
- proc_name: 'PinPmu_T',
243
- proc_called_as: 'Excel Macro',
244
- wait_flag1: -2, # waitoff
245
- wait_flag2: -2, # waitoff
246
- wait_flag3: -2, # waitoff
247
- wait_flag4: -2, # waitoff
248
- }
249
- }
250
-
251
- # Generate the instance method definitions based on the above
252
- define
253
-
254
- # Set the cpu wait flags for the given test instance
255
- # instance.set_wait_flags(:a)
256
- # instance.set_wait_flags(:a, :c)
257
- # assumes set flag means to set it high (waithi = -1 )
258
- # assumes clr flag means to set it off (waitoff = -2)
259
- # does not yet support waitlo = 0
260
- def set_wait_flags(*flags)
261
- a = (flags.include?(:a) || flags.include?(:a)) ? '-1' : '-2'
262
- b = (flags.include?(:b) || flags.include?(:b)) ? '-1' : '-2'
263
- c = (flags.include?(:c) || flags.include?(:c)) ? '-1' : '-2'
264
- d = (flags.include?(:d) || flags.include?(:d)) ? '-1' : '-2'
265
- self.wait_flag1 = a
266
- self.wait_flag2 = b
267
- self.wait_flag3 = c
268
- self.wait_flag4 = d
269
- self
270
- end
271
-
272
- # Set and enable the pre-charge voltage of a parametric test instance.
273
- def set_pre_charge(val)
274
- self
275
- end
276
- alias_method :set_precharge, :set_pre_charge
277
-
278
- # Returns a hash containing key meta data about the test instance, this is
279
- # intended to be used in documentation
280
- def to_meta
281
- return @meta if @meta
282
- m = { 'Test' => name,
283
- 'Type' => type
284
- }
285
- if type == :functional
286
- m['Pattern'] = pattern
287
- elsif type == :board_pmu || type == :pin_pmu
288
- m['Measure'] = fvmi? ? 'current' : 'voltage'
289
- m['Hi'] = hi_limit
290
- m['Lo'] = lo_limit
291
- if force_cond
292
- m['Force'] = force_cond
293
- end
294
- end
295
- m['DC'] = "#{dc_category} (#{dc_selector})"
296
- m['AC'] = "#{ac_category} (#{ac_selector})"
297
- m
298
- end
299
-
300
- # Set the meaure mode of a parametric test instance, either:
301
- # * :voltage / :fimv
302
- # * :current / :fvmi
303
- def set_measure_mode(mode)
304
- if mode == :current || mode == :fvmi
305
- self.measure_mode = 2
306
- elsif mode == :voltage || mode == :fimv
307
- self.measure_mode = 1
308
- else
309
- fail "Unknown measure mode: #{mode}"
310
- end
311
- end
312
- end
313
- end
314
- end
315
- end
1
+ module OrigenTesters
2
+ module IGXLBasedTester
3
+ class UltraFLEX
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 mixedsignal_timing overlay
11
+ )
12
+
13
+ # Give all UltraFLEX test instances the ability to contain limits, these will
14
+ # be rendered to Use-limit lines in the flow
15
+ attr_accessor :lo_limit, :hi_limit, :scale, :units, :defer_limits, :lo, :hi
16
+
17
+ # Attributes for additional test instance arguments beyond those described above
18
+ TEST_INSTANCE_EXTRA_ARGS = 130
19
+
20
+ TEST_INSTANCE_ALIASES = {
21
+ name: :test_name,
22
+ time_set: :time_sets,
23
+ timeset: :time_sets,
24
+ timesets: :time_sets,
25
+
26
+ other: {
27
+ },
28
+
29
+ empty: {
30
+ arg_list: :arg0,
31
+ start_func: :arg1,
32
+ start_of_body_f: :arg1,
33
+ pre_pat_func: :arg2,
34
+ pre_pat_f: :arg2,
35
+ pre_test_func: :arg3,
36
+ pre_test_f: :arg3,
37
+ post_test_func: :arg4,
38
+ post_test_f: :arg4,
39
+ post_pat_func: :arg5,
40
+ post_pat_f: :arg5,
41
+ end_func: :arg6,
42
+ end_of_body_f: :arg6,
43
+ start_func_args: :arg7,
44
+ start_of_body_f_args: :arg7,
45
+ pre_pat_func_args: :arg8,
46
+ pre_pat_f_args: :arg8,
47
+ pre_test_func_args: :arg9,
48
+ pre_test_f_args: :arg9,
49
+ post_test_func_args: :arg10,
50
+ post_test_f_args: :arg10,
51
+ post_pat_func_args: :arg11,
52
+ post_pat_f_args: :arg11,
53
+ end_func_args: :arg12,
54
+ end_of_body_f_args: :arg12,
55
+ utility_pins_1: :arg13,
56
+ utility_pins_0: :arg14,
57
+ init_lo: :arg15,
58
+ start_lo: :arg15,
59
+ init_hi: :arg16,
60
+ start_hi: :arg16,
61
+ init_hiz: :arg17,
62
+ start_hiz: :arg17,
63
+ float_pins: :arg18,
64
+ disable_pins: :arg19
65
+ },
66
+
67
+ # Functional test instances
68
+ functional: {
69
+ arg_list: :arg0,
70
+ pattern: :arg1,
71
+ patterns: :arg1,
72
+ start_func: :arg2,
73
+ start_of_body_f: :arg2,
74
+ pre_pat_func: :arg3,
75
+ pre_pat_f: :arg3,
76
+ pre_test_func: :arg4,
77
+ pre_test_f: :arg4,
78
+ post_test_func: :arg5,
79
+ post_test_f: :arg5,
80
+ post_pat_func: :arg6,
81
+ post_pat_f: :arg6,
82
+ end_func: :arg7,
83
+ end_of_body_f: :arg7,
84
+ set_pass_fail: :arg8,
85
+ report_result: :arg8,
86
+ result_mode: :arg9,
87
+ init_lo: :arg10,
88
+ start_lo: :arg10,
89
+ init_hi: :arg11,
90
+ start_hi: :arg11,
91
+ init_hiz: :arg12,
92
+ start_hiz: :arg12,
93
+ disable_pins: :arg13,
94
+ float_pins: :arg14,
95
+ start_func_args: :arg15,
96
+ start_of_body_f_args: :arg15,
97
+ pre_pat_func_args: :arg16,
98
+ pre_pat_f_args: :arg16,
99
+ pre_test_func_args: :arg17,
100
+ pre_test_f_args: :arg17,
101
+ post_test_func_args: :arg18,
102
+ post_test_f_args: :arg18,
103
+ post_pat_func_args: :arg19,
104
+ post_pat_f_args: :arg19,
105
+ end_func_args: :arg20,
106
+ end_of_body_f_args: :arg20,
107
+ utility_pins_1: :arg21,
108
+ utility_pins_0: :arg22,
109
+ pat_flag_func: :arg23,
110
+ pat_flag_f: :arg23,
111
+ PatFlagF: :arg23,
112
+ pat_flag_func_args: :arg24,
113
+ pat_flag_f_args: :arg24,
114
+ relay_mode: :arg25,
115
+ threading: :arg26,
116
+ match_all_sites: :arg27,
117
+ wait_flag1: :arg28,
118
+ wait_flag2: :arg29,
119
+ wait_flag3: :arg30,
120
+ wait_flag4: :arg31,
121
+ validating: :arg32,
122
+ wait_time: :arg33,
123
+ pattern_timeout: :arg33,
124
+ wait_time_domain: :arg34,
125
+ concurrent_mode: :arg35
126
+ },
127
+
128
+ pin_pmu: {
129
+ arg_list: :arg0,
130
+ hsp_start: :arg1,
131
+ start_func: :arg2,
132
+ start_of_body_f: :arg2,
133
+ pre_pat_func: :arg3,
134
+ pre_pat_f: :arg3,
135
+ pre_test_func: :arg4,
136
+ pre_test_f: :arg4,
137
+ post_test_func: :arg5,
138
+ post_test_f: :arg5,
139
+ post_pat_func: :arg6,
140
+ post_pat_f: :arg6,
141
+ end_func: :arg7,
142
+ end_of_body_f: :arg7,
143
+ precond_pat: :arg8,
144
+ hold_state_pat: :arg9,
145
+ holdstate_pat: :arg9,
146
+ pattern: :arg9,
147
+ pcp_stop: :arg10,
148
+ start_lo: :arg11,
149
+ init_lo: :arg11,
150
+ start_hi: :arg12,
151
+ init_hi: :arg12,
152
+ start_hiz: :arg13,
153
+ init_hiz: :arg13,
154
+ disable_pins: :arg14,
155
+ float_pins: :arg15,
156
+ pinlist: :arg16,
157
+ pin: :arg16,
158
+ pin_list: :arg16,
159
+ measure_mode: :arg17,
160
+ settling_time: :arg18,
161
+ force_cond_1: :arg19,
162
+ force_cond: :arg19,
163
+ force_condition: :arg19,
164
+ force_cond_2: :arg20,
165
+ relay_mode: :arg21,
166
+ start_func_args: :arg22,
167
+ start_of_body_f_args: :arg22,
168
+ pre_pat_func_args: :arg23,
169
+ pre_pat_f_args: :arg23,
170
+ pre_test_func_args: :arg24,
171
+ pre_test_f_args: :arg24,
172
+ post_test_func_args: :arg25,
173
+ post_test_f_args: :arg25,
174
+ post_pat_func_args: :arg26,
175
+ post_pat_f_args: :arg26,
176
+ end_func_args: :arg27,
177
+ end_of_body_f_args: :arg27,
178
+ pcp_start: :arg28,
179
+ pcp_check_pg: :arg29,
180
+ hsp_stop: :arg30,
181
+ hsp_check_pg: :arg31,
182
+ sampling_time: :arg32,
183
+ samples: :arg33,
184
+ resume_pat: :arg34,
185
+ vcl: :arg35,
186
+ vch: :arg36,
187
+ utility_pins_1: :arg37,
188
+ utility_pins_0: :arg38,
189
+ wait_flag1: :arg39,
190
+ wait_flag2: :arg40,
191
+ wait_flag3: :arg41,
192
+ wait_flag4: :arg42,
193
+ validating: :arg43,
194
+ force_irange: :arg44,
195
+ meas_irange: :arg45,
196
+ wait_time_out: :arg46,
197
+ pcp_disable_alarm_check: :arg47,
198
+ hsp_disable_alarm_check: :arg48,
199
+ testing_in_series: :arg49,
200
+ background_meas_mode: :arg50,
201
+ background_force_irange: :arg51,
202
+ background_meas_irange: :arg52,
203
+ background_force_cond: :arg53,
204
+ pins_alt: :arg54,
205
+ measure_mode_alt: :arg55,
206
+ force_cond_alt: :arg56,
207
+ force_irange_alt: :arg57,
208
+ meas_irange_alt: :arg58
209
+ }
210
+
211
+ }
212
+
213
+ TEST_INSTANCE_DEFAULTS = {
214
+ empty: {
215
+ arg_list: 'StartOfBodyF,PrePatF,PreTestF,PostTestF,PostPatF,EndOfBodyF,StartOfBodyFArgs,PrePatFArgs,PreTestFArgs,PostTestFArgs,PostPatFArgs,EndOfBodyFArgs,Util1Pins,Util0Pins,DriveLoPins,DriveHiPins,DriveZPins,FloatPins,DisablePins',
216
+ proc_type: 'VBT',
217
+ proc_name: 'Empty_T',
218
+ proc_called_as: 'Excel Macro'
219
+ },
220
+ other: {
221
+ proc_type: 'Other',
222
+ proc_called_as: 'Excel Macro'
223
+ },
224
+ functional: {
225
+ arg_list: 'Patterns,StartOfBodyF,PrePatF,PreTestF,PostTestF,PostPatF,EndOfBodyF,ReportResult,ResultMode,DriveLoPins,DriveHiPins,DriveZPins,DisablePins,FloatPins,StartOfBodyFArgs,PrePatFArgs,PreTestFArgs,PostTestFArgs,PostPatFArgs,EndOfBodyFArgs,Util1Pins,Util0Pins,PatFlagF,PatFlagFArgs,RelayMode,PatThreading,MatchAllSites,WaitFlagA,WaitFlagB,WaitFlagC,WaitFlagD,Validating_,PatternTimeout,WaitTimeDomain,ConcurrentMode',
226
+ proc_type: 'VBT',
227
+ proc_name: 'Functional_T',
228
+ proc_called_as: 'Excel Macro',
229
+ set_pass_fail: 1,
230
+ relay_mode: 1,
231
+ threading: 0,
232
+ match_all_sites: 0,
233
+ wait_flag1: -2, # waitoff
234
+ wait_flag2: -2, # waitoff
235
+ wait_flag3: -2, # waitoff
236
+ wait_flag4: -2, # waitoff
237
+ wait_time: 30
238
+ },
239
+ pin_pmu: {
240
+ arg_list: 'HspStartLabel,StartOfBodyF,PrePatF,PreTestF,PostTestF,PostPatF,EndOfBodyF,PreconditionPat,HoldStatePat,PcpStopLabel,DriveLoPins,DriveHiPins,DriveZPins,DisablePins,FloatPins,Pins,MeasureMode,SettlingTime,ForceCond1,ForceCond2,RelayMode,StartOfBodyFArgs,PrePatFArgs,PreTestFArgs,PostTestFArgs,PostPatFArgs,EndOfBodyFArgs,PcpStartLabel,PcpCheckPatGen,HspStopLabel,HspCheckPatGen,SamplingTime,SampleCount,HspResumePat,VClampLo,VClampHi,Util1Pins,Util0Pins,WaitFlagA,WaitFlagB,WaitFlagC,WaitFlagD,Validating_,ForceIRange,MeasIRange,PatternTimeout,PcpDisableAlarmCheck,HspDisableAlarmCheck,TestingInSeries,BackgroundMeasureMode,BackgroundForceIRange,BackgroundMeasIRange,BackgroundForceCond,PinsAlt,MeasureModeAlt,ForceCondAlt,ForceIRangeAlt,MeasIRangeAlt',
241
+ proc_type: 'VBT',
242
+ proc_name: 'PinPmu_T',
243
+ proc_called_as: 'Excel Macro',
244
+ wait_flag1: -2, # waitoff
245
+ wait_flag2: -2, # waitoff
246
+ wait_flag3: -2, # waitoff
247
+ wait_flag4: -2, # waitoff
248
+ }
249
+ }
250
+
251
+ # Generate the instance method definitions based on the above
252
+ define
253
+
254
+ # Set the cpu wait flags for the given test instance
255
+ # instance.set_wait_flags(:a)
256
+ # instance.set_wait_flags(:a, :c)
257
+ # assumes set flag means to set it high (waithi = -1 )
258
+ # assumes clr flag means to set it off (waitoff = -2)
259
+ # does not yet support waitlo = 0
260
+ def set_wait_flags(*flags)
261
+ a = (flags.include?(:a) || flags.include?(:a)) ? '-1' : '-2'
262
+ b = (flags.include?(:b) || flags.include?(:b)) ? '-1' : '-2'
263
+ c = (flags.include?(:c) || flags.include?(:c)) ? '-1' : '-2'
264
+ d = (flags.include?(:d) || flags.include?(:d)) ? '-1' : '-2'
265
+ self.wait_flag1 = a
266
+ self.wait_flag2 = b
267
+ self.wait_flag3 = c
268
+ self.wait_flag4 = d
269
+ self
270
+ end
271
+
272
+ # Set and enable the pre-charge voltage of a parametric test instance.
273
+ def set_pre_charge(val)
274
+ self
275
+ end
276
+ alias_method :set_precharge, :set_pre_charge
277
+
278
+ # Returns a hash containing key meta data about the test instance, this is
279
+ # intended to be used in documentation
280
+ def to_meta
281
+ return @meta if @meta
282
+ m = { 'Test' => name,
283
+ 'Type' => type
284
+ }
285
+ if type == :functional
286
+ m['Pattern'] = pattern
287
+ elsif type == :board_pmu || type == :pin_pmu
288
+ m['Measure'] = fvmi? ? 'current' : 'voltage'
289
+ m['Hi'] = hi_limit
290
+ m['Lo'] = lo_limit
291
+ if force_cond
292
+ m['Force'] = force_cond
293
+ end
294
+ end
295
+ m['DC'] = "#{dc_category} (#{dc_selector})"
296
+ m['AC'] = "#{ac_category} (#{ac_selector})"
297
+ m
298
+ end
299
+
300
+ # Set the meaure mode of a parametric test instance, either:
301
+ # * :voltage / :fimv
302
+ # * :current / :fvmi
303
+ def set_measure_mode(mode)
304
+ if mode == :current || mode == :fvmi
305
+ self.measure_mode = 2
306
+ elsif mode == :voltage || mode == :fimv
307
+ self.measure_mode = 1
308
+ else
309
+ fail "Unknown measure mode: #{mode}"
310
+ end
311
+ end
312
+ end
313
+ end
314
+ end
315
+ end