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,194 +1,207 @@
1
- module OrigenTesters
2
- module SmartestBasedTester
3
- class Base
4
- module Generator
5
- extend ActiveSupport::Concern
6
-
7
- autoload :Placeholder, 'origen_testers/generator/placeholder'
8
-
9
- included do
10
- include Interface # adds the interface helpers/Origen hook-up
11
- end
12
-
13
- # This is just to give all interfaces an initialize that takes
14
- # one argument. The super is important for cases where this module
15
- # is included late via Testers::ProgramGenerators
16
- def initialize(options = {})
17
- super
18
- @initialized = true
19
- end
20
-
21
- def add_tml(name, methods)
22
- methods[:class_name] ||= name.to_s.camelize
23
- custom_tmls[name] = methods
24
- end
25
- alias_method :add_test_method_library, :add_tml
26
-
27
- # @api private
28
- def at_flow_start
29
- f = flow
30
- f.at_flow_start
31
- # Initialize this to the value currently set on the tester, any further setting of
32
- # this by the interface will override
33
- flow.add_flow_enable = tester.add_flow_enable
34
- @pattern_master_filename = nil
35
- end
36
-
37
- # @api private
38
- def at_flow_end
39
- flow.at_flow_end
40
- end
41
-
42
- # @api private
43
- def at_run_start
44
- flow.at_run_start
45
- @@flow_sheets = nil
46
- @@pattern_masters = nil
47
- @@pattern_compilers = nil
48
- @@variables_files = nil
49
- end
50
- alias_method :reset_globals, :at_run_start
51
-
52
- def resources_filename=(name)
53
- self.pattern_master_filename = name
54
- self.pattern_references_name = name
55
- flow.var_filename = name
56
- end
57
-
58
- def pattern_master_filename=(name)
59
- @pattern_master_filename = name
60
- end
61
-
62
- def pattern_master_filename
63
- @pattern_master_filename || 'global'
64
- end
65
-
66
- def flow(filename = Origen.file_handler.current_file.basename('.rb').to_s)
67
- f = filename.to_sym
68
- f = f.to_s.sub(/_resources?/, '').to_sym
69
- return flow_sheets[f] if flow_sheets[f] # will return flow if already existing
70
- p = platform::Flow.new
71
- p.inhibit_output if Origen.interface.resources_mode?
72
- p.filename = f
73
- p.test_suites ||= platform::TestSuites.new(p)
74
- p.test_methods ||= platform::TestMethods.new(p)
75
- flow_sheets[f] = p
76
- end
77
-
78
- # Returns the pattern master file (.pmfl) for the current flow, by default a common pattern
79
- # master file called 'global' will be used for all flows.
80
- # To use a different one set the resources_filename at the start of the flow.
81
- def pattern_master
82
- pattern_masters[pattern_master_filename] ||= begin
83
- m = platform::PatternMaster.new(manually_register: true)
84
- name = "#{pattern_master_filename}.pmfl"
85
- name = "#{Origen.config.program_prefix}_#{name}" if Origen.config.program_prefix
86
- m.filename = name
87
- m.id = pattern_master_filename
88
- m
89
- end
90
- end
91
-
92
- # Returns a hash containing all pattern master generators
93
- def pattern_masters
94
- @@pattern_masters ||= {}
95
- end
96
-
97
- # Returns the pattern compiler file (.aiv) for the current flow, by default a common pattern
98
- # compiler file called 'global' will be used for all flows.
99
- # To use a different one set the resources_filename at the start of the flow.
100
- def pattern_compiler
101
- pattern_compilers[pattern_master_filename] ||= begin
102
- m = platform::PatternCompiler.new(manually_register: true)
103
- name = "#{pattern_master_filename}.aiv"
104
- name = "#{Origen.config.program_prefix}_#{name}" if Origen.config.program_prefix
105
- m.filename = name
106
- m.id = pattern_master_filename
107
- m
108
- end
109
- end
110
-
111
- # Returns a hash containing all pattern compiler generators
112
- def pattern_compilers
113
- @@pattern_compilers ||= {}
114
- end
115
-
116
- # Returns the variables file for the current or given flow, by default a common variable
117
- # file called 'global' will be used for all flows.
118
- # To use a different one set the resources_filename at the start of the flow.
119
- def variables_file(flw = nil)
120
- name = (flw || flow).var_filename
121
- variables_files[name] ||= begin
122
- m = platform::VariablesFile.new(manually_register: true)
123
- filename = "#{name}_vars.tf"
124
- filename = "#{Origen.config.program_prefix}_#{filename}" if Origen.config.program_prefix
125
- m.filename = filename
126
- m.id = name
127
- m
128
- end
129
- end
130
-
131
- # Returns a hash containing all variables file generators
132
- def variables_files
133
- @@variables_files ||= {}
134
- end
135
-
136
- # @api private
137
- def pattern_reference_recorded(name, options = {})
138
- # Will be called everytime a pattern reference is made that the ATE should be aware of,
139
- # don't need to remember it as it can be fetched from all_pattern_references later, but
140
- # need to instantiate a pattern master and compiler to handle it later
141
- pattern_master
142
- pattern_compiler
143
- end
144
-
145
- def test_suites
146
- flow.test_suites
147
- end
148
-
149
- def test_methods
150
- flow.test_methods
151
- end
152
-
153
- def flow_sheets
154
- @@flow_sheets ||= {}
155
- end
156
-
157
- # Returns an array containing all sheet generators.
158
- # All Origen program generators must implement this method
159
- def sheet_generators # :nodoc:
160
- g = []
161
- flow_sheets.each do |_name, sheet|
162
- g << sheet
163
- end
164
- pattern_masters.each do |name, sheet|
165
- g << sheet
166
- end
167
- pattern_compilers.each do |name, sheet|
168
- g << sheet
169
- end
170
- variables_files.each do |name, sheet|
171
- g << sheet
172
- end
173
- g
174
- end
175
-
176
- # Returns an array containing all flow sheet generators.
177
- # All Origen program generators must implement this method
178
- def flow_generators
179
- g = []
180
- flow_sheets.each do |_name, sheet|
181
- g << sheet
182
- end
183
- g
184
- end
185
-
186
- private
187
-
188
- def custom_tmls
189
- @custom_tmls ||= {}
190
- end
191
- end
192
- end
193
- end
194
- end
1
+ module OrigenTesters
2
+ module SmartestBasedTester
3
+ class Base
4
+ module Generator
5
+ extend ActiveSupport::Concern
6
+
7
+ autoload :Placeholder, 'origen_testers/generator/placeholder'
8
+
9
+ included do
10
+ include Interface # adds the interface helpers/Origen hook-up
11
+ end
12
+
13
+ # This is just to give all interfaces an initialize that takes
14
+ # one argument. The super is important for cases where this module
15
+ # is included late via Testers::ProgramGenerators
16
+ def initialize(options = {})
17
+ super
18
+ @initialized = true
19
+ end
20
+
21
+ # @api private
22
+ # This will be called at the start of every Flow.create block, :top_level will be
23
+ # true when it is a top-level Flow.create block
24
+ def _internal_startup(options)
25
+ if options[:top_level]
26
+ if options.key?(:unique_test_names)
27
+ self.unique_test_names = options[:unique_test_names]
28
+ end
29
+ flow.flow_name = options[:flow_name]
30
+ end
31
+ end
32
+
33
+ def add_tml(name, methods)
34
+ methods[:class_name] ||= name.to_s.camelize
35
+ custom_tmls[name] = methods
36
+ end
37
+ alias_method :add_test_method_library, :add_tml
38
+
39
+ # @api private
40
+ def at_flow_start
41
+ f = flow
42
+ f.at_flow_start
43
+ # Initialize this to the value currently set on the tester, any further setting of
44
+ # this by the interface will override
45
+ flow.add_flow_enable = tester.add_flow_enable
46
+ self.unique_test_names = tester.unique_test_names
47
+ @pattern_master_filename = nil
48
+ end
49
+
50
+ # @api private
51
+ def at_flow_end
52
+ flow.at_flow_end
53
+ end
54
+
55
+ # @api private
56
+ def at_run_start
57
+ flow.at_run_start
58
+ @@flow_sheets = nil
59
+ @@pattern_masters = nil
60
+ @@pattern_compilers = nil
61
+ @@variables_files = nil
62
+ end
63
+ alias_method :reset_globals, :at_run_start
64
+
65
+ def resources_filename=(name)
66
+ self.pattern_master_filename = name
67
+ self.pattern_references_name = name
68
+ flow.var_filename = name
69
+ end
70
+
71
+ def pattern_master_filename=(name)
72
+ @pattern_master_filename = name
73
+ end
74
+
75
+ def pattern_master_filename
76
+ @pattern_master_filename || 'global'
77
+ end
78
+
79
+ def flow(filename = Origen.file_handler.current_file.basename('.rb').to_s)
80
+ f = filename.to_sym
81
+ f = f.to_s.sub(/_resources?/, '').to_sym
82
+ return flow_sheets[f] if flow_sheets[f] # will return flow if already existing
83
+ p = platform::Flow.new
84
+ p.inhibit_output if Origen.interface.resources_mode?
85
+ p.filename = f
86
+ p.test_suites ||= platform::TestSuites.new(p)
87
+ p.test_methods ||= platform::TestMethods.new(p)
88
+ flow_sheets[f] = p
89
+ end
90
+
91
+ # Returns the pattern master file (.pmfl) for the current flow, by default a common pattern
92
+ # master file called 'global' will be used for all flows.
93
+ # To use a different one set the resources_filename at the start of the flow.
94
+ def pattern_master
95
+ pattern_masters[pattern_master_filename] ||= begin
96
+ m = platform::PatternMaster.new(manually_register: true)
97
+ name = "#{pattern_master_filename}.pmfl"
98
+ name = "#{Origen.config.program_prefix}_#{name}" if Origen.config.program_prefix
99
+ m.filename = name
100
+ m.id = pattern_master_filename
101
+ m
102
+ end
103
+ end
104
+
105
+ # Returns a hash containing all pattern master generators
106
+ def pattern_masters
107
+ @@pattern_masters ||= {}
108
+ end
109
+
110
+ # Returns the pattern compiler file (.aiv) for the current flow, by default a common pattern
111
+ # compiler file called 'global' will be used for all flows.
112
+ # To use a different one set the resources_filename at the start of the flow.
113
+ def pattern_compiler
114
+ pattern_compilers[pattern_master_filename] ||= begin
115
+ m = platform::PatternCompiler.new(manually_register: true)
116
+ name = "#{pattern_master_filename}.aiv"
117
+ name = "#{Origen.config.program_prefix}_#{name}" if Origen.config.program_prefix
118
+ m.filename = name
119
+ m.id = pattern_master_filename
120
+ m
121
+ end
122
+ end
123
+
124
+ # Returns a hash containing all pattern compiler generators
125
+ def pattern_compilers
126
+ @@pattern_compilers ||= {}
127
+ end
128
+
129
+ # Returns the variables file for the current or given flow, by default a common variable
130
+ # file called 'global' will be used for all flows.
131
+ # To use a different one set the resources_filename at the start of the flow.
132
+ def variables_file(flw = nil)
133
+ name = (flw || flow).var_filename
134
+ variables_files[name] ||= begin
135
+ m = platform::VariablesFile.new(manually_register: true)
136
+ filename = "#{name}_vars.tf"
137
+ filename = "#{Origen.config.program_prefix}_#{filename}" if Origen.config.program_prefix
138
+ m.filename = filename
139
+ m.id = name
140
+ m
141
+ end
142
+ end
143
+
144
+ # Returns a hash containing all variables file generators
145
+ def variables_files
146
+ @@variables_files ||= {}
147
+ end
148
+
149
+ # @api private
150
+ def pattern_reference_recorded(name, options = {})
151
+ # Will be called everytime a pattern reference is made that the ATE should be aware of,
152
+ # don't need to remember it as it can be fetched from all_pattern_references later, but
153
+ # need to instantiate a pattern master and compiler to handle it later
154
+ pattern_master
155
+ pattern_compiler
156
+ end
157
+
158
+ def test_suites
159
+ flow.test_suites
160
+ end
161
+
162
+ def test_methods
163
+ flow.test_methods
164
+ end
165
+
166
+ def flow_sheets
167
+ @@flow_sheets ||= {}
168
+ end
169
+
170
+ # Returns an array containing all sheet generators.
171
+ # All Origen program generators must implement this method
172
+ def sheet_generators # :nodoc:
173
+ g = []
174
+ flow_sheets.each do |_name, sheet|
175
+ g << sheet
176
+ end
177
+ pattern_masters.each do |name, sheet|
178
+ g << sheet
179
+ end
180
+ pattern_compilers.each do |name, sheet|
181
+ g << sheet
182
+ end
183
+ variables_files.each do |name, sheet|
184
+ g << sheet
185
+ end
186
+ g
187
+ end
188
+
189
+ # Returns an array containing all flow sheet generators.
190
+ # All Origen program generators must implement this method
191
+ def flow_generators
192
+ g = []
193
+ flow_sheets.each do |_name, sheet|
194
+ g << sheet
195
+ end
196
+ g
197
+ end
198
+
199
+ private
200
+
201
+ def custom_tmls
202
+ @custom_tmls ||= {}
203
+ end
204
+ end
205
+ end
206
+ end
207
+ end
@@ -1,32 +1,32 @@
1
- require 'pathname'
2
- module OrigenTesters
3
- module SmartestBasedTester
4
- class Base
5
- class PatternCompiler
6
- include OrigenTesters::Generator
7
-
8
- attr_accessor :filename, :part_patterns, :id
9
-
10
- def initialize(flow = nil)
11
- @part_patterns = []
12
- end
13
-
14
- def subroutines
15
- (references[:subroutine][:all] + references[:subroutine][:ate]).map do |p|
16
- p.strip.sub(/\..*/, '')
17
- end.uniq.sort
18
- end
19
-
20
- def patterns
21
- (references[:main][:all] + references[:main][:ate]).map do |p|
22
- p.strip.sub(/\..*/, '')
23
- end.uniq.sort
24
- end
25
-
26
- def references
27
- Origen.interface.all_pattern_references[id]
28
- end
29
- end
30
- end
31
- end
32
- end
1
+ require 'pathname'
2
+ module OrigenTesters
3
+ module SmartestBasedTester
4
+ class Base
5
+ class PatternCompiler
6
+ include OrigenTesters::Generator
7
+
8
+ attr_accessor :filename, :part_patterns, :id
9
+
10
+ def initialize(flow = nil)
11
+ @part_patterns = []
12
+ end
13
+
14
+ def subroutines
15
+ (references[:subroutine][:all] + references[:subroutine][:ate]).map do |p|
16
+ p.strip.sub(/\..*/, '')
17
+ end.uniq.sort
18
+ end
19
+
20
+ def patterns
21
+ (references[:main][:all] + references[:main][:ate]).map do |p|
22
+ p.strip.sub(/\..*/, '')
23
+ end.uniq.sort
24
+ end
25
+
26
+ def references
27
+ Origen.interface.all_pattern_references[id]
28
+ end
29
+ end
30
+ end
31
+ end
32
+ end