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,29 +1,29 @@
1
- Pattern.create(name: "test_store") do
2
- tester.capture_style = :digcap
3
- # configure tdo to non-default settings
4
- tester.capture_memory :digcap do |mem|
5
- mem.pin :tdo, size: 8
6
- end
7
-
8
- tester.cycle
9
-
10
- dut.pin(:tclk).drive(1)
11
- dut.pin(:tdi).drive(1)
12
- dut.pin(:tdo).assert(1)
13
- dut.pin(:tms).drive(1)
14
-
15
- cc 'should get a repeat 5 vector'
16
- tester.cycle repeat: 5
17
- tester.cycle
18
- tester.store(dut.pin(:tdo))
19
-
20
- tester.cycle
21
- tester.cycle
22
-
23
- dut.pin(:tclk).drive(0)
24
- tester.store!(dut.pin(:tdo))
25
- tester.cycle
26
- tester.cycle
27
- tester.store!(dut.pin(:pa))
28
- tester.cycle
1
+ Pattern.create(name: "test_store") do
2
+ tester.capture_style = :digcap
3
+ # configure tdo to non-default settings
4
+ tester.capture_memory :digcap do |mem|
5
+ mem.pin :tdo, size: 8
6
+ end
7
+
8
+ tester.cycle
9
+
10
+ dut.pin(:tclk).drive(1)
11
+ dut.pin(:tdi).drive(1)
12
+ dut.pin(:tdo).assert(1)
13
+ dut.pin(:tms).drive(1)
14
+
15
+ cc 'should get a repeat 5 vector'
16
+ tester.cycle repeat: 5
17
+ tester.cycle
18
+ tester.store(dut.pin(:tdo))
19
+
20
+ tester.cycle
21
+ tester.cycle
22
+
23
+ dut.pin(:tclk).drive(0)
24
+ tester.store!(dut.pin(:tdo))
25
+ tester.cycle
26
+ tester.cycle
27
+ tester.store!(dut.pin(:pa))
28
+ tester.cycle
29
29
  end
@@ -1,7 +1,7 @@
1
- Flow.create do |options|
2
-
3
- if_enable 'additional_erase', :or => options[:force] do
4
- func :erase_all
5
- end
6
-
7
- end
1
+ Flow.create do |options|
2
+
3
+ if_enable 'additional_erase', :or => options[:force] do
4
+ func :erase_all
5
+ end
6
+
7
+ end
@@ -1,7 +1,7 @@
1
- Resources.create do |options|
2
-
3
- func :bitmap_all0
4
-
5
- import 'iv_resources', :number => 3
6
-
7
- end
1
+ Resources.create do |options|
2
+
3
+ func :bitmap_all0
4
+
5
+ import 'iv_resources', :number => 3
6
+
7
+ end
data/program/_erase.rb CHANGED
@@ -1,25 +1,25 @@
1
- # A sub flow is a flow like any other.
2
- # However the name should begin with
3
- # _ to indicate that it is a sub
4
- # flow this will prevent it being
5
- # generated as a top-level flow by
6
- # Origen.
7
- # Any arguments passed in when
8
- # instantiating this flow will be available via a hash as the second
9
- # argument, here called options, although the naming is arbitrary.
10
- Flow.create do |options|
11
-
12
- # Define default options
13
- options = { :pulses => 4,
14
- :post_verify => true,
15
- }.merge(options)
16
-
17
- options[:pulses].times do
18
- func :erase_all
19
- end
20
-
21
- if options[:post_verify]
22
- import 'erase_vfy'
23
- end
24
-
25
- end
1
+ # A sub flow is a flow like any other.
2
+ # However the name should begin with
3
+ # _ to indicate that it is a sub
4
+ # flow this will prevent it being
5
+ # generated as a top-level flow by
6
+ # Origen.
7
+ # Any arguments passed in when
8
+ # instantiating this flow will be available via a hash as the second
9
+ # argument, here called options, although the naming is arbitrary.
10
+ Flow.create do |options|
11
+
12
+ # Define default options
13
+ options = { :pulses => 4,
14
+ :post_verify => true,
15
+ }.merge(options)
16
+
17
+ options[:pulses].times do
18
+ func :erase_all
19
+ end
20
+
21
+ if options[:post_verify]
22
+ import 'erase_vfy'
23
+ end
24
+
25
+ end
@@ -1,5 +1,5 @@
1
- Flow.create do |options|
2
-
3
- func :margin_read1_all1
4
-
5
- end
1
+ Flow.create do |options|
2
+
3
+ func :margin_read1_all1
4
+
5
+ end
@@ -1,10 +1,10 @@
1
- Resources.create do |options|
2
-
3
- options = { :number => 2,
4
- }.merge(options)
5
-
6
- options[:number].times do |x|
7
- func "bitcell_iv_#{x}"
8
- end
9
-
10
- end
1
+ Resources.create do |options|
2
+
3
+ options = { :number => 2,
4
+ }.merge(options)
5
+
6
+ options[:number].times do |x|
7
+ func "bitcell_iv_#{x}"
8
+ end
9
+
10
+ end
@@ -1,5 +1,5 @@
1
- Flow.create interface: 'OrigenTesters::Test::BasicInterface' do
2
-
3
- functional :test1, sbin: 100
4
-
5
- end
1
+ Flow.create interface: 'OrigenTesters::Test::BasicInterface' do
2
+
3
+ functional :test1, sbin: 100
4
+
5
+ end
@@ -1,222 +1,222 @@
1
- Flow.create do |options|
2
- # Instantiate tests via the
3
- # interface
4
- func 'program_ckbd', :tname => 'PGM_CKBD', :tnum => 1000, :bin => 100, :soft_bin => 1100
5
- func 'margin_read1_ckbd'
6
-
7
- # Control the build process based on
8
- # the current target
9
- if $dut.has_margin0_bug?
10
- func 'normal_read_ckbd'
11
- else
12
- func 'margin_read0_ckbd'
13
- end
14
-
15
- # Include a sub flow, example of
16
- # parameter passing
17
- import '../erase', :pulses => 6
18
-
19
- # Render an ERB template, or raw
20
- # text file
21
- if $tester.j750?
22
- flow.render 'templates/j750/vt_flow', :include_tifr => true
23
- end
24
-
25
- log 'Should be v1'
26
- func :program_ckbd
27
- log 'Should be v2'
28
- func :program_ckbd, :duration => :dynamic
29
- log 'Should be v1'
30
- func :program_ckbd
31
- log 'Should be v2'
32
- func :program_ckbd, :duration => :dynamic
33
-
34
- log 'Should be a v1 test instance group'
35
- func :program_ckbd, :by_block => true
36
- log 'Should be a v2 test instance group'
37
- func :program_ckbd, :by_block => true, :duration => :dynamic
38
- log 'Should be a v1 test instance group'
39
- func :program_ckbd, :by_block => true
40
- log 'Should be a v2 test instance group'
41
- func :program_ckbd, :by_block => true, :duration => :dynamic
42
-
43
- # Test job conditions
44
- func :p1_only_test, :if_job => :p1
45
- if_job [:p1, :p2] do
46
- func :p1_or_p2_only_test
47
- end
48
- func :not_p1_test, :unless_job => :p1
49
- func :not_p1_or_p2_test, :unless_job => [:p1, :p2]
50
- unless_job [:p1, :p2] do
51
- func :another_not_p1_or_p2_test
52
- end
53
-
54
- log 'Verify that a test with an external instance works'
55
- por
56
-
57
- log 'Verify that a request to use the current context works'
58
- func :erase_all, :if_job => :p1 # Job should be P1
59
- func :erase_all, :context => :current # Job should be P1
60
- unless_job :p2 do
61
- func :erase_all, :context => :current # Job should be P1
62
- func :erase_all # Job should be !P2
63
- end
64
-
65
- # Deliver an initial erase pulse
66
- func :erase_all
67
-
68
- # Deliver additional erase pulses as required until it verifies, maximum of 5 additional pulses
69
- 5.times do |x|
70
- # Assign a unique id attribute to each verify so that we know which one we are talking about when
71
- # making other tests dependent on it.
72
- # When Origen sees the if_failed dependency on a future test it will be smart enough to inhibit the binning
73
- # on this test without having to explicitly declare that.
74
- func :margin_read1_all1, :id => "erase_vfy_#{x}"
75
- # Run this test only if the given verify failed
76
- func :erase_all, :if_failed => "erase_vfy_#{x}"
77
- end
78
-
79
- # A final verify to set the binning
80
- func :margin_read1_all1
81
-
82
- log 'Test if enable'
83
- func :erase_all, :if_enable => 'do_erase'
84
-
85
- if_enable 'do_erase' do
86
- func :erase_all
87
- end
88
-
89
- log 'Test unless enable'
90
- func :erase_all, :unless_enable => 'no_extra_erase'
91
-
92
- unless_enable 'no_extra_erase' do
93
- func :erase_all
94
- func :erase_all
95
- end
96
-
97
- func :erase_all
98
- func :erase_all
99
-
100
- log 'Test if_passed'
101
- func :erase_all, :id => 'erase_passed_1'
102
- func :erase_all, :id => 'erase_passed_2'
103
-
104
- func :margin_read1_all1, :if_passed => 'erase_passed_1'
105
- if_passed 'erase_passed_2' do
106
- func :margin_read1_all1
107
- end
108
-
109
- log 'Test unless_passed'
110
- func :erase_all, :id => 'erase_passed_3'
111
- func :erase_all, :id => 'erase_passed_4'
112
-
113
- func :margin_read1_all1, :unless_passed => 'erase_passed_3'
114
- unless_passed 'erase_passed_4' do
115
- func :margin_read1_all1
116
- end
117
-
118
- log 'Test if_failed'
119
- func :erase_all, :id => 'erase_failed_1'
120
- func :erase_all, :id => 'erase_failed_2'
121
-
122
- func :margin_read1_all1, :if_failed => 'erase_failed_1'
123
- if_failed 'erase_failed_2' do
124
- func :margin_read1_all1
125
- end
126
-
127
- log 'Test unless_failed'
128
- func :erase_all, :id => 'erase_failed_3'
129
- func :erase_all, :id => 'erase_failed_4'
130
-
131
- func :margin_read1_all1, :unless_failed => 'erase_failed_3'
132
- unless_failed 'erase_failed_4' do
133
- func :margin_read1_all1
134
- end
135
-
136
- log 'Test if_ran'
137
- func :erase_all, :id => 'erase_ran_1'
138
- func :erase_all, :id => 'erase_ran_2'
139
-
140
- func :margin_read1_all1, :if_ran => 'erase_ran_1'
141
- if_ran 'erase_ran_2' do
142
- func :margin_read1_all1
143
- end
144
-
145
- log 'Test unless_ran'
146
- func :erase_all, :id => 'erase_ran_3'
147
- func :erase_all, :id => 'erase_ran_4'
148
-
149
- func :margin_read1_all1, :unless_ran => 'erase_ran_3'
150
- unless_ran 'erase_ran_4' do
151
- func :margin_read1_all1
152
- end
153
-
154
- log 'Verify that job context wraps import'
155
- if_job :fr do
156
- import '../erase'
157
- end
158
-
159
- log 'Verify that job context wraps enable block within an import'
160
- if_job :fr do
161
- import '../additional_erase'
162
- import '../additional_erase', :force => true
163
- end
164
-
165
- log 'Verify that flow.cz works...'
166
- func :margin_read1_all1, :pin_levels => :cz, :cz_setup => 'vbplus_sweep'
167
-
168
- log 'Verify that flow.cz works with enable words'
169
- if_enable 'usb_xcvr_cz' do
170
- func :xcvr_fs_vilvih, cz_setup: 'usb_fs_vil_cz'
171
- func :xcvr_fs_vilvih, cz_setup: 'usb_fs_vih_cz'
172
- end
173
-
174
- func :xcvr_fs_vilvih, cz_setup: 'usb_fs_vil_cz', if_enable: 'usb_xcvr_cz'
175
- func :xcvr_fs_vilvih, cz_setup: 'usb_fs_vih_cz', if_enable: 'usb_xcvr_cz'
176
-
177
- log 'Verify that MTO template works...'
178
- mto_memory :mto_read1_all1
179
-
180
- if tester.uflex?
181
- log 'import statement'
182
- import 'temp'
183
-
184
- log 'direct call'
185
-
186
- meas :bgap_voltage_meas, tnum: 1050, bin: 119, soft_bin: 2, hi_limit: 45
187
- meas :bgap_voltage_meas1
188
- end
189
-
190
- if tester.j750?
191
- meas :lo_voltage, tnum: 1150, bin: 95, soft_bin: 5
192
- meas :hi_voltage, pins: :hi_v, tnum: 1160, bin: 96, soft_bin: 6
193
- meas :ps_leakage, pins: :power, tnum: 1170, bin: 97, soft_bin: 6
194
- end
195
-
196
- log 'Speed binning example bug from video 5'
197
- group "200Mhz Tests", id: :g200 do
198
- test :test200_1
199
- test :test200_2
200
- test :test200_3
201
- end
202
-
203
- group "100Mhz Tests", if_failed: :g200, id: :g100 do
204
- test :test100_1, bin: 5
205
- test :test100_2, bin: 5
206
- test :test100_3, bin: 5
207
- end
208
-
209
- pass 2, if_ran: :g100
210
-
211
- log 'Test node optimization within an if_failed branch'
212
- func :some_func_test, id: :sft1
213
-
214
- if_failed :sft1 do
215
- bin 10, if_flag: "Alarm"
216
- bin 11, unless_flag: "Alarm"
217
- bin 12, if_enable: "AlarmEnabled"
218
- bin 13, unless_enable: "AlarmEnabled"
219
- end
220
-
221
- pass 1, description: "Good die!", softbin: 1
222
- end
1
+ Flow.create do |options|
2
+ # Instantiate tests via the
3
+ # interface
4
+ func 'program_ckbd', :tname => 'PGM_CKBD', :tnum => 1000, :bin => 100, :soft_bin => 1100
5
+ func 'margin_read1_ckbd'
6
+
7
+ # Control the build process based on
8
+ # the current target
9
+ if $dut.has_margin0_bug?
10
+ func 'normal_read_ckbd'
11
+ else
12
+ func 'margin_read0_ckbd'
13
+ end
14
+
15
+ # Include a sub flow, example of
16
+ # parameter passing
17
+ import '../erase', :pulses => 6
18
+
19
+ # Render an ERB template, or raw
20
+ # text file
21
+ if $tester.j750?
22
+ flow.render 'templates/j750/vt_flow', :include_tifr => true
23
+ end
24
+
25
+ log 'Should be v1'
26
+ func :program_ckbd
27
+ log 'Should be v2'
28
+ func :program_ckbd, :duration => :dynamic
29
+ log 'Should be v1'
30
+ func :program_ckbd
31
+ log 'Should be v2'
32
+ func :program_ckbd, :duration => :dynamic
33
+
34
+ log 'Should be a v1 test instance group'
35
+ func :program_ckbd, :by_block => true
36
+ log 'Should be a v2 test instance group'
37
+ func :program_ckbd, :by_block => true, :duration => :dynamic
38
+ log 'Should be a v1 test instance group'
39
+ func :program_ckbd, :by_block => true
40
+ log 'Should be a v2 test instance group'
41
+ func :program_ckbd, :by_block => true, :duration => :dynamic
42
+
43
+ # Test job conditions
44
+ func :p1_only_test, :if_job => :p1
45
+ if_job [:p1, :p2] do
46
+ func :p1_or_p2_only_test
47
+ end
48
+ func :not_p1_test, :unless_job => :p1
49
+ func :not_p1_or_p2_test, :unless_job => [:p1, :p2]
50
+ unless_job [:p1, :p2] do
51
+ func :another_not_p1_or_p2_test
52
+ end
53
+
54
+ log 'Verify that a test with an external instance works'
55
+ por
56
+
57
+ log 'Verify that a request to use the current context works'
58
+ func :erase_all, :if_job => :p1 # Job should be P1
59
+ func :erase_all, :context => :current # Job should be P1
60
+ unless_job :p2 do
61
+ func :erase_all, :context => :current # Job should be P1
62
+ func :erase_all # Job should be !P2
63
+ end
64
+
65
+ # Deliver an initial erase pulse
66
+ func :erase_all
67
+
68
+ # Deliver additional erase pulses as required until it verifies, maximum of 5 additional pulses
69
+ 5.times do |x|
70
+ # Assign a unique id attribute to each verify so that we know which one we are talking about when
71
+ # making other tests dependent on it.
72
+ # When Origen sees the if_failed dependency on a future test it will be smart enough to inhibit the binning
73
+ # on this test without having to explicitly declare that.
74
+ func :margin_read1_all1, :id => "erase_vfy_#{x}"
75
+ # Run this test only if the given verify failed
76
+ func :erase_all, :if_failed => "erase_vfy_#{x}"
77
+ end
78
+
79
+ # A final verify to set the binning
80
+ func :margin_read1_all1
81
+
82
+ log 'Test if enable'
83
+ func :erase_all, :if_enable => 'do_erase'
84
+
85
+ if_enable 'do_erase' do
86
+ func :erase_all
87
+ end
88
+
89
+ log 'Test unless enable'
90
+ func :erase_all, :unless_enable => 'no_extra_erase'
91
+
92
+ unless_enable 'no_extra_erase' do
93
+ func :erase_all
94
+ func :erase_all
95
+ end
96
+
97
+ func :erase_all
98
+ func :erase_all
99
+
100
+ log 'Test if_passed'
101
+ func :erase_all, :id => 'erase_passed_1'
102
+ func :erase_all, :id => 'erase_passed_2'
103
+
104
+ func :margin_read1_all1, :if_passed => 'erase_passed_1'
105
+ if_passed 'erase_passed_2' do
106
+ func :margin_read1_all1
107
+ end
108
+
109
+ log 'Test unless_passed'
110
+ func :erase_all, :id => 'erase_passed_3'
111
+ func :erase_all, :id => 'erase_passed_4'
112
+
113
+ func :margin_read1_all1, :unless_passed => 'erase_passed_3'
114
+ unless_passed 'erase_passed_4' do
115
+ func :margin_read1_all1
116
+ end
117
+
118
+ log 'Test if_failed'
119
+ func :erase_all, :id => 'erase_failed_1'
120
+ func :erase_all, :id => 'erase_failed_2'
121
+
122
+ func :margin_read1_all1, :if_failed => 'erase_failed_1'
123
+ if_failed 'erase_failed_2' do
124
+ func :margin_read1_all1
125
+ end
126
+
127
+ log 'Test unless_failed'
128
+ func :erase_all, :id => 'erase_failed_3'
129
+ func :erase_all, :id => 'erase_failed_4'
130
+
131
+ func :margin_read1_all1, :unless_failed => 'erase_failed_3'
132
+ unless_failed 'erase_failed_4' do
133
+ func :margin_read1_all1
134
+ end
135
+
136
+ log 'Test if_ran'
137
+ func :erase_all, :id => 'erase_ran_1'
138
+ func :erase_all, :id => 'erase_ran_2'
139
+
140
+ func :margin_read1_all1, :if_ran => 'erase_ran_1'
141
+ if_ran 'erase_ran_2' do
142
+ func :margin_read1_all1
143
+ end
144
+
145
+ log 'Test unless_ran'
146
+ func :erase_all, :id => 'erase_ran_3'
147
+ func :erase_all, :id => 'erase_ran_4'
148
+
149
+ func :margin_read1_all1, :unless_ran => 'erase_ran_3'
150
+ unless_ran 'erase_ran_4' do
151
+ func :margin_read1_all1
152
+ end
153
+
154
+ log 'Verify that job context wraps import'
155
+ if_job :fr do
156
+ import '../erase'
157
+ end
158
+
159
+ log 'Verify that job context wraps enable block within an import'
160
+ if_job :fr do
161
+ import '../additional_erase'
162
+ import '../additional_erase', :force => true
163
+ end
164
+
165
+ log 'Verify that flow.cz works...'
166
+ func :margin_read1_all1, :pin_levels => :cz, :cz_setup => 'vbplus_sweep'
167
+
168
+ log 'Verify that flow.cz works with enable words'
169
+ if_enable 'usb_xcvr_cz' do
170
+ func :xcvr_fs_vilvih, cz_setup: 'usb_fs_vil_cz'
171
+ func :xcvr_fs_vilvih, cz_setup: 'usb_fs_vih_cz'
172
+ end
173
+
174
+ func :xcvr_fs_vilvih, cz_setup: 'usb_fs_vil_cz', if_enable: 'usb_xcvr_cz'
175
+ func :xcvr_fs_vilvih, cz_setup: 'usb_fs_vih_cz', if_enable: 'usb_xcvr_cz'
176
+
177
+ log 'Verify that MTO template works...'
178
+ mto_memory :mto_read1_all1
179
+
180
+ if tester.uflex?
181
+ log 'import statement'
182
+ import 'temp'
183
+
184
+ log 'direct call'
185
+
186
+ meas :bgap_voltage_meas, tnum: 1050, bin: 119, soft_bin: 2, hi_limit: 45
187
+ meas :bgap_voltage_meas1
188
+ end
189
+
190
+ if tester.j750?
191
+ meas :lo_voltage, tnum: 1150, bin: 95, soft_bin: 5
192
+ meas :hi_voltage, pins: :hi_v, tnum: 1160, bin: 96, soft_bin: 6
193
+ meas :ps_leakage, pins: :power, tnum: 1170, bin: 97, soft_bin: 6
194
+ end
195
+
196
+ log 'Speed binning example bug from video 5'
197
+ group "200Mhz Tests", id: :g200 do
198
+ test :test200_1
199
+ test :test200_2
200
+ test :test200_3
201
+ end
202
+
203
+ group "100Mhz Tests", if_failed: :g200, id: :g100 do
204
+ test :test100_1, bin: 5
205
+ test :test100_2, bin: 5
206
+ test :test100_3, bin: 5
207
+ end
208
+
209
+ pass 2, if_ran: :g100
210
+
211
+ log 'Test node optimization within an if_failed branch'
212
+ func :some_func_test, id: :sft1
213
+
214
+ if_failed :sft1 do
215
+ bin 10, if_flag: "Alarm"
216
+ bin 11, unless_flag: "Alarm"
217
+ bin 12, if_enable: "AlarmEnabled"
218
+ bin 13, unless_enable: "AlarmEnabled"
219
+ end
220
+
221
+ pass 1, description: "Good die!", softbin: 1
222
+ end