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
data/pattern/bitmap.rb CHANGED
@@ -1,7 +1,7 @@
1
- # Pattern to exercise the keep alive of a pattern that needs reburst
2
- Pattern.create(end_in_ka: true) do
3
-
4
- ss 'Dummy write reg'
5
- $dut.reg(:testme32).write!(0xFFFFFFFF)
6
-
7
- end
1
+ # Pattern to exercise the keep alive of a pattern that needs reburst
2
+ Pattern.create(end_in_ka: true) do
3
+
4
+ ss 'Dummy write reg'
5
+ $dut.reg(:testme32).write!(0xFFFFFFFF)
6
+
7
+ end
data/pattern/dc_instr.rb CHANGED
@@ -1,7 +1,7 @@
1
- # Pattern to exercise the DC instrument test feature of tester
2
-
3
- Pattern.create() do
4
-
5
- # Execute standard soc method -- pins should magically get set with Pset if needed here
6
-
7
- end
1
+ # Pattern to exercise the DC instrument test feature of tester
2
+
3
+ Pattern.create() do
4
+
5
+ # Execute standard soc method -- pins should magically get set with Pset if needed here
6
+
7
+ end
data/pattern/delay.rb CHANGED
@@ -1,7 +1,7 @@
1
- # Pattern to exercise a simple time delay
2
-
3
- Pattern.create() do
4
-
5
- $tester.wait(:time_in_ms => 40)
6
-
7
- end
1
+ # Pattern to exercise a simple time delay
2
+
3
+ Pattern.create() do
4
+
5
+ $tester.wait(:time_in_ms => 40)
6
+
7
+ end
@@ -1,6 +1,6 @@
1
- # Pattern to exercise the Freq Counter feature
2
- unless $tester.v93k?
3
- Pattern.create do
4
- $dut.freq_count
5
- end
6
- end
1
+ # Pattern to exercise the Freq Counter feature
2
+ unless $tester.v93k?
3
+ Pattern.create do
4
+ $dut.freq_count
5
+ end
6
+ end
data/pattern/mem_test.rb CHANGED
@@ -1,8 +1,8 @@
1
- unless $tester.v93k?
2
- # Pattern to exercise the memory test feature of tester
3
- Pattern.create(:memory_test => true) do
4
-
5
- $dut.memory_test
6
-
7
- end
8
- end
1
+ unless $tester.v93k?
2
+ # Pattern to exercise the memory test feature of tester
3
+ Pattern.create(:memory_test => true) do
4
+
5
+ $dut.memory_test
6
+
7
+ end
8
+ end
@@ -1,122 +1,122 @@
1
- class SetupTester
2
- include Origen::PersistentCallbacks
3
-
4
- def before_pattern(pattern_name)
5
- case
6
- when pattern_name =~ /^mm_single\./
7
- $tester.vector_group_size = 1
8
- when pattern_name =~ /^mm_dual\./
9
- $tester.vector_group_size = 2
10
- when pattern_name =~ /^mm_quad\./
11
- $tester.vector_group_size = 4
12
- else
13
- # To avoid breaking later tests
14
- $tester.vector_group_size = 1
15
- end
16
- end
17
- end
18
- SetupTester.new
19
-
20
- [:single, :dual, :quad].each do |size|
21
- # Startup is being skipped here since it is currently a test of the ability
22
- # to render (i.e. paste) vectors, therefore they are not compressible by
23
- # Origen and which makes debugging this confusing!
24
- Pattern.create(name: "mm_#{size}", skip_startup: true) do
25
- $tester.set_timeset("nvmbist", 40)
26
-
27
- ss "$tester.cycle(repeat: 128)"
28
- $tester.cycle(repeat: 128)
29
-
30
- ss do
31
- cc "64.times do"
32
- cc " $dut.pin(:tclk).drive!(0)"
33
- cc " $dut.pin(:tclk).drive!(1)"
34
- cc "end"
35
- end
36
- 64.times do
37
- $dut.pin(:tclk).drive!(0)
38
- $dut.pin(:tclk).drive!(1)
39
- end
40
-
41
- ss do
42
- cc "64.times do"
43
- cc " $dut.pin(:tclk).drive!(0)"
44
- cc " $dut.pin(:tclk).drive!(0)"
45
- cc " $dut.pin(:tclk).drive!(1)"
46
- cc " $dut.pin(:tclk).drive!(1)"
47
- cc "end"
48
- end
49
- 64.times do
50
- $dut.pin(:tclk).drive!(0)
51
- $dut.pin(:tclk).drive!(0)
52
- $dut.pin(:tclk).drive!(1)
53
- $dut.pin(:tclk).drive!(1)
54
- end
55
-
56
- ss do
57
- cc "64.times do"
58
- cc " $dut.pin(:tclk).drive!(0)"
59
- cc " $dut.pin(:tclk).drive!(0)"
60
- cc " $dut.pin(:tclk).drive!(0)"
61
- cc " $dut.pin(:tclk).drive!(0)"
62
- cc " $dut.pin(:tclk).drive!(1)"
63
- cc " $dut.pin(:tclk).drive!(1)"
64
- cc " $dut.pin(:tclk).drive!(1)"
65
- cc " $dut.pin(:tclk).drive!(1)"
66
- cc "end"
67
- end
68
- 64.times do
69
- $dut.pin(:tclk).drive!(0)
70
- $dut.pin(:tclk).drive!(0)
71
- $dut.pin(:tclk).drive!(0)
72
- $dut.pin(:tclk).drive!(0)
73
- $dut.pin(:tclk).drive!(1)
74
- $dut.pin(:tclk).drive!(1)
75
- $dut.pin(:tclk).drive!(1)
76
- $dut.pin(:tclk).drive!(1)
77
- end
78
-
79
- ss do
80
- cc "Test of period levelling"
81
- end
82
- $tester.timing_toggled_pins << $dut.pin(:tclk)
83
- $dut.pin(:tdo).assert(0)
84
- 8.cycles
85
- $tester.set_timeset("nvmbist_readout", 160)
86
- 8.cycles
87
- ss "Test that additional stores are not injected, only 4 TDO vectors should be captured"
88
- 4.times do
89
- 1.cycle
90
- $tester.store($dut.pin(:tdo))
91
- end
92
- $dut.pin(:tdo).dont_care
93
- $tester.set_timeset("nvmbist", 40)
94
-
95
- if $tester.vector_group_size == 1
96
- ss do
97
- cc "Test that these collapse to a single repeat in the single vector case"
98
- end
99
- $dut.pin(:tdi).drive(1)
100
- $tester.wait cycles: 60000
101
- $tester.cycle
102
- $dut.pin(:tdi).dont_care
103
- end
104
-
105
- ss do
106
- cc "Test that these collapse to correct multiple repeats"
107
- end
108
- $dut.pin(:tdi).drive(1)
109
- $tester.wait cycles: 300000
110
- $dut.pin(:tdi).dont_care
111
-
112
- ss do
113
- cc "Verify that comments at the end of the pattern work OK"
114
- end
115
- $dut.pin(:tdi).drive(0)
116
- $tester.wait cycles: 1200
117
- cc "This comment should appear after the delay 1200"
118
-
119
- # Don't add anything new here, the above test should be last in this pattern
120
-
121
- end
122
- end
1
+ class SetupTester
2
+ include Origen::PersistentCallbacks
3
+
4
+ def before_pattern(pattern_name)
5
+ case
6
+ when pattern_name =~ /^mm_single\./
7
+ $tester.vector_group_size = 1
8
+ when pattern_name =~ /^mm_dual\./
9
+ $tester.vector_group_size = 2
10
+ when pattern_name =~ /^mm_quad\./
11
+ $tester.vector_group_size = 4
12
+ else
13
+ # To avoid breaking later tests
14
+ $tester.vector_group_size = 1
15
+ end
16
+ end
17
+ end
18
+ SetupTester.new
19
+
20
+ [:single, :dual, :quad].each do |size|
21
+ # Startup is being skipped here since it is currently a test of the ability
22
+ # to render (i.e. paste) vectors, therefore they are not compressible by
23
+ # Origen and which makes debugging this confusing!
24
+ Pattern.create(name: "mm_#{size}", skip_startup: true) do
25
+ $tester.set_timeset("nvmbist", 40)
26
+
27
+ ss "$tester.cycle(repeat: 128)"
28
+ $tester.cycle(repeat: 128)
29
+
30
+ ss do
31
+ cc "64.times do"
32
+ cc " $dut.pin(:tclk).drive!(0)"
33
+ cc " $dut.pin(:tclk).drive!(1)"
34
+ cc "end"
35
+ end
36
+ 64.times do
37
+ $dut.pin(:tclk).drive!(0)
38
+ $dut.pin(:tclk).drive!(1)
39
+ end
40
+
41
+ ss do
42
+ cc "64.times do"
43
+ cc " $dut.pin(:tclk).drive!(0)"
44
+ cc " $dut.pin(:tclk).drive!(0)"
45
+ cc " $dut.pin(:tclk).drive!(1)"
46
+ cc " $dut.pin(:tclk).drive!(1)"
47
+ cc "end"
48
+ end
49
+ 64.times do
50
+ $dut.pin(:tclk).drive!(0)
51
+ $dut.pin(:tclk).drive!(0)
52
+ $dut.pin(:tclk).drive!(1)
53
+ $dut.pin(:tclk).drive!(1)
54
+ end
55
+
56
+ ss do
57
+ cc "64.times do"
58
+ cc " $dut.pin(:tclk).drive!(0)"
59
+ cc " $dut.pin(:tclk).drive!(0)"
60
+ cc " $dut.pin(:tclk).drive!(0)"
61
+ cc " $dut.pin(:tclk).drive!(0)"
62
+ cc " $dut.pin(:tclk).drive!(1)"
63
+ cc " $dut.pin(:tclk).drive!(1)"
64
+ cc " $dut.pin(:tclk).drive!(1)"
65
+ cc " $dut.pin(:tclk).drive!(1)"
66
+ cc "end"
67
+ end
68
+ 64.times do
69
+ $dut.pin(:tclk).drive!(0)
70
+ $dut.pin(:tclk).drive!(0)
71
+ $dut.pin(:tclk).drive!(0)
72
+ $dut.pin(:tclk).drive!(0)
73
+ $dut.pin(:tclk).drive!(1)
74
+ $dut.pin(:tclk).drive!(1)
75
+ $dut.pin(:tclk).drive!(1)
76
+ $dut.pin(:tclk).drive!(1)
77
+ end
78
+
79
+ ss do
80
+ cc "Test of period levelling"
81
+ end
82
+ $tester.timing_toggled_pins << $dut.pin(:tclk)
83
+ $dut.pin(:tdo).assert(0)
84
+ 8.cycles
85
+ $tester.set_timeset("nvmbist_readout", 160)
86
+ 8.cycles
87
+ ss "Test that additional stores are not injected, only 4 TDO vectors should be captured"
88
+ 4.times do
89
+ 1.cycle
90
+ $tester.store($dut.pin(:tdo))
91
+ end
92
+ $dut.pin(:tdo).dont_care
93
+ $tester.set_timeset("nvmbist", 40)
94
+
95
+ if $tester.vector_group_size == 1
96
+ ss do
97
+ cc "Test that these collapse to a single repeat in the single vector case"
98
+ end
99
+ $dut.pin(:tdi).drive(1)
100
+ $tester.wait cycles: 60000
101
+ $tester.cycle
102
+ $dut.pin(:tdi).dont_care
103
+ end
104
+
105
+ ss do
106
+ cc "Test that these collapse to correct multiple repeats"
107
+ end
108
+ $dut.pin(:tdi).drive(1)
109
+ $tester.wait cycles: 300000
110
+ $dut.pin(:tdi).dont_care
111
+
112
+ ss do
113
+ cc "Verify that comments at the end of the pattern work OK"
114
+ end
115
+ $dut.pin(:tdi).drive(0)
116
+ $tester.wait cycles: 1200
117
+ cc "This comment should appear after the delay 1200"
118
+
119
+ # Don't add anything new here, the above test should be last in this pattern
120
+
121
+ end
122
+ end
@@ -1,125 +1,125 @@
1
- # This pattern is to test that patterns pad correctly when they end on an
2
- # odd number of vectors.
3
- # Don't add things to the main body, modify multi_vector.rb instead.
4
-
5
- class SetupTester
6
- include Origen::PersistentCallbacks
7
-
8
- def before_pattern(pattern_name)
9
- case
10
- when pattern_name =~ /^mm_single_plus1\./
11
- $tester.vector_group_size = 1
12
- when pattern_name =~ /^mm_dual_plus1\./
13
- $tester.vector_group_size = 2
14
- when pattern_name =~ /^mm_quad_plus1\./
15
- $tester.vector_group_size = 4
16
- else
17
- # To avoid breaking later tests
18
- $tester.vector_group_size = 1
19
- end
20
- end
21
- end
22
- SetupTester.new
23
-
24
- [:single, :dual, :quad].each do |size|
25
- # Startup is being skipped here since it is currently a test of the ability
26
- # to render (i.e. paste) vectors, therefore they are not compressible by
27
- # Origen and which makes debugging this confusing!
28
- Pattern.create(name: "mm_#{size}_plus1", skip_startup: true) do
29
- $tester.set_timeset("nvmbist", 40)
30
-
31
- ss "$tester.cycle(repeat: 128)"
32
- $tester.cycle(repeat: 128)
33
-
34
- ss do
35
- cc "64.times do"
36
- cc " $dut.pin(:tclk).drive!(0)"
37
- cc " $dut.pin(:tclk).drive!(1)"
38
- cc "end"
39
- end
40
- 64.times do
41
- $dut.pin(:tclk).drive!(0)
42
- $dut.pin(:tclk).drive!(1)
43
- end
44
-
45
- ss do
46
- cc "64.times do"
47
- cc " $dut.pin(:tclk).drive!(0)"
48
- cc " $dut.pin(:tclk).drive!(0)"
49
- cc " $dut.pin(:tclk).drive!(1)"
50
- cc " $dut.pin(:tclk).drive!(1)"
51
- cc "end"
52
- end
53
- 64.times do
54
- $dut.pin(:tclk).drive!(0)
55
- $dut.pin(:tclk).drive!(0)
56
- $dut.pin(:tclk).drive!(1)
57
- $dut.pin(:tclk).drive!(1)
58
- end
59
-
60
- ss do
61
- cc "64.times do"
62
- cc " $dut.pin(:tclk).drive!(0)"
63
- cc " $dut.pin(:tclk).drive!(0)"
64
- cc " $dut.pin(:tclk).drive!(0)"
65
- cc " $dut.pin(:tclk).drive!(0)"
66
- cc " $dut.pin(:tclk).drive!(1)"
67
- cc " $dut.pin(:tclk).drive!(1)"
68
- cc " $dut.pin(:tclk).drive!(1)"
69
- cc " $dut.pin(:tclk).drive!(1)"
70
- cc "end"
71
- end
72
- 64.times do
73
- $dut.pin(:tclk).drive!(0)
74
- $dut.pin(:tclk).drive!(0)
75
- $dut.pin(:tclk).drive!(0)
76
- $dut.pin(:tclk).drive!(0)
77
- $dut.pin(:tclk).drive!(1)
78
- $dut.pin(:tclk).drive!(1)
79
- $dut.pin(:tclk).drive!(1)
80
- $dut.pin(:tclk).drive!(1)
81
- end
82
-
83
- ss do
84
- cc "Test of period levelling"
85
- end
86
- 8.times do
87
- $dut.pin(:tclk).drive!(0)
88
- $dut.pin(:tclk).drive!(1)
89
- end
90
- $tester.set_timeset("nvmbist_readout", 80)
91
- 8.times do
92
- $dut.pin(:tclk).drive!(0)
93
- $dut.pin(:tclk).drive!(1)
94
- end
95
- $tester.set_timeset("nvmbist", 40)
96
-
97
- if $tester.vector_group_size == 1
98
- ss do
99
- cc "Test that these collapse to a single repeat in the single vector case"
100
- end
101
- $dut.pin(:tdi).drive(1)
102
- $tester.wait cycles: 60000
103
- $tester.cycle
104
- $dut.pin(:tdi).dont_care
105
- end
106
-
107
- ss do
108
- cc "Test that these collapse to correct multiple repeats"
109
- end
110
- $dut.pin(:tdi).drive(1)
111
- $tester.wait cycles: 300000
112
- $dut.pin(:tdi).dont_care
113
-
114
- ss do
115
- cc "Verify that comments at the end of the pattern work OK"
116
- end
117
- $dut.pin(:tdi).drive(0)
118
- $tester.wait cycles: 1200
119
- cc "This comment should appear after the delay 1200"
120
- $tester.cycle
121
-
122
- # Don't add anything new here, the above test should be last in this pattern
123
-
124
- end
125
- end
1
+ # This pattern is to test that patterns pad correctly when they end on an
2
+ # odd number of vectors.
3
+ # Don't add things to the main body, modify multi_vector.rb instead.
4
+
5
+ class SetupTester
6
+ include Origen::PersistentCallbacks
7
+
8
+ def before_pattern(pattern_name)
9
+ case
10
+ when pattern_name =~ /^mm_single_plus1\./
11
+ $tester.vector_group_size = 1
12
+ when pattern_name =~ /^mm_dual_plus1\./
13
+ $tester.vector_group_size = 2
14
+ when pattern_name =~ /^mm_quad_plus1\./
15
+ $tester.vector_group_size = 4
16
+ else
17
+ # To avoid breaking later tests
18
+ $tester.vector_group_size = 1
19
+ end
20
+ end
21
+ end
22
+ SetupTester.new
23
+
24
+ [:single, :dual, :quad].each do |size|
25
+ # Startup is being skipped here since it is currently a test of the ability
26
+ # to render (i.e. paste) vectors, therefore they are not compressible by
27
+ # Origen and which makes debugging this confusing!
28
+ Pattern.create(name: "mm_#{size}_plus1", skip_startup: true) do
29
+ $tester.set_timeset("nvmbist", 40)
30
+
31
+ ss "$tester.cycle(repeat: 128)"
32
+ $tester.cycle(repeat: 128)
33
+
34
+ ss do
35
+ cc "64.times do"
36
+ cc " $dut.pin(:tclk).drive!(0)"
37
+ cc " $dut.pin(:tclk).drive!(1)"
38
+ cc "end"
39
+ end
40
+ 64.times do
41
+ $dut.pin(:tclk).drive!(0)
42
+ $dut.pin(:tclk).drive!(1)
43
+ end
44
+
45
+ ss do
46
+ cc "64.times do"
47
+ cc " $dut.pin(:tclk).drive!(0)"
48
+ cc " $dut.pin(:tclk).drive!(0)"
49
+ cc " $dut.pin(:tclk).drive!(1)"
50
+ cc " $dut.pin(:tclk).drive!(1)"
51
+ cc "end"
52
+ end
53
+ 64.times do
54
+ $dut.pin(:tclk).drive!(0)
55
+ $dut.pin(:tclk).drive!(0)
56
+ $dut.pin(:tclk).drive!(1)
57
+ $dut.pin(:tclk).drive!(1)
58
+ end
59
+
60
+ ss do
61
+ cc "64.times do"
62
+ cc " $dut.pin(:tclk).drive!(0)"
63
+ cc " $dut.pin(:tclk).drive!(0)"
64
+ cc " $dut.pin(:tclk).drive!(0)"
65
+ cc " $dut.pin(:tclk).drive!(0)"
66
+ cc " $dut.pin(:tclk).drive!(1)"
67
+ cc " $dut.pin(:tclk).drive!(1)"
68
+ cc " $dut.pin(:tclk).drive!(1)"
69
+ cc " $dut.pin(:tclk).drive!(1)"
70
+ cc "end"
71
+ end
72
+ 64.times do
73
+ $dut.pin(:tclk).drive!(0)
74
+ $dut.pin(:tclk).drive!(0)
75
+ $dut.pin(:tclk).drive!(0)
76
+ $dut.pin(:tclk).drive!(0)
77
+ $dut.pin(:tclk).drive!(1)
78
+ $dut.pin(:tclk).drive!(1)
79
+ $dut.pin(:tclk).drive!(1)
80
+ $dut.pin(:tclk).drive!(1)
81
+ end
82
+
83
+ ss do
84
+ cc "Test of period levelling"
85
+ end
86
+ 8.times do
87
+ $dut.pin(:tclk).drive!(0)
88
+ $dut.pin(:tclk).drive!(1)
89
+ end
90
+ $tester.set_timeset("nvmbist_readout", 80)
91
+ 8.times do
92
+ $dut.pin(:tclk).drive!(0)
93
+ $dut.pin(:tclk).drive!(1)
94
+ end
95
+ $tester.set_timeset("nvmbist", 40)
96
+
97
+ if $tester.vector_group_size == 1
98
+ ss do
99
+ cc "Test that these collapse to a single repeat in the single vector case"
100
+ end
101
+ $dut.pin(:tdi).drive(1)
102
+ $tester.wait cycles: 60000
103
+ $tester.cycle
104
+ $dut.pin(:tdi).dont_care
105
+ end
106
+
107
+ ss do
108
+ cc "Test that these collapse to correct multiple repeats"
109
+ end
110
+ $dut.pin(:tdi).drive(1)
111
+ $tester.wait cycles: 300000
112
+ $dut.pin(:tdi).dont_care
113
+
114
+ ss do
115
+ cc "Verify that comments at the end of the pattern work OK"
116
+ end
117
+ $dut.pin(:tdi).drive(0)
118
+ $tester.wait cycles: 1200
119
+ cc "This comment should appear after the delay 1200"
120
+ $tester.cycle
121
+
122
+ # Don't add anything new here, the above test should be last in this pattern
123
+
124
+ end
125
+ end