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,39 +1,39 @@
1
- module OrigenTesters
2
- module IGXLBasedTester
3
- class Base
4
- class SupplyLevel
5
- attr_accessor :vmain, :valt # Supply level information
6
- attr_accessor :ifold # Clamp current information
7
- attr_accessor :delay # Supply power-up delay
8
-
9
- def initialize(options = {}) # :nodoc:
10
- options = {
11
- vmain: 1.8, # Main supply voltage
12
- valt: 1.8, # Alternate supply voltage
13
- ifold: 1, # Supply clamp current
14
- delay: 0 # Supply power-up delay
15
- }.merge(options)
16
- @vmain = options[:vmain]
17
- @valt = options[:valt]
18
- @ifold = options[:ifold]
19
- @delay = options[:delay]
20
- end
21
-
22
- def ==(level)
23
- if level.is_a? PinLevelSingle
24
- vmain == level.vmain &&
25
- valt == level.valt &&
26
- ifold == level.ifold &&
27
- delay == level.delay
28
- else
29
- super
30
- end
31
- end
32
-
33
- def platform
34
- Origen.interface.platform
35
- end
36
- end
37
- end
38
- end
39
- end
1
+ module OrigenTesters
2
+ module IGXLBasedTester
3
+ class Base
4
+ class SupplyLevel
5
+ attr_accessor :vmain, :valt # Supply level information
6
+ attr_accessor :ifold # Clamp current information
7
+ attr_accessor :delay # Supply power-up delay
8
+
9
+ def initialize(options = {}) # :nodoc:
10
+ options = {
11
+ vmain: 1.8, # Main supply voltage
12
+ valt: 1.8, # Alternate supply voltage
13
+ ifold: 1, # Supply clamp current
14
+ delay: 0 # Supply power-up delay
15
+ }.merge(options)
16
+ @vmain = options[:vmain]
17
+ @valt = options[:valt]
18
+ @ifold = options[:ifold]
19
+ @delay = options[:delay]
20
+ end
21
+
22
+ def ==(level)
23
+ if level.is_a? PinLevelSingle
24
+ vmain == level.vmain &&
25
+ valt == level.valt &&
26
+ ifold == level.ifold &&
27
+ delay == level.delay
28
+ else
29
+ super
30
+ end
31
+ end
32
+
33
+ def platform
34
+ Origen.interface.platform
35
+ end
36
+ end
37
+ end
38
+ end
39
+ end
@@ -1,31 +1,31 @@
1
- module OrigenTesters
2
- module IGXLBasedTester
3
- class Base
4
- class Levels
5
- include ::OrigenTesters::Generator
6
-
7
- # If levels are defined for a power group then this will return the level object
8
- attr_accessor :pwr_group
9
- # If levels are defined for a pin group then this will return the level object
10
- attr_accessor :pin_group
11
-
12
- def initialize(options = {}) # :nodoc:
13
- @pwr_group = Hash.new { |h, k| h[k] = {} }
14
- @pin_group = Hash.new { |h, k| h[k] = {} }
15
- end
16
-
17
- # Defines a new Power Level category for the given pin/group
18
- def add_power_level(cat, options = {})
19
- cat = cat.to_sym unless cat.is_a? Symbol
20
- pwr_group[cat] = platform::SupplyLevel.new(options)
21
- end
22
-
23
- # Defines a new Single-Ended Pin Level category for the given pin/group
24
- def add_se_pin_level(cat, options = {})
25
- cat = cat.to_sym unless cat.is_a? Symbol
26
- pin_group[cat] = platform::PinLevelSingle.new(options)
27
- end
28
- end
29
- end
30
- end
31
- end
1
+ module OrigenTesters
2
+ module IGXLBasedTester
3
+ class Base
4
+ class Levels
5
+ include ::OrigenTesters::Generator
6
+
7
+ # If levels are defined for a power group then this will return the level object
8
+ attr_accessor :pwr_group
9
+ # If levels are defined for a pin group then this will return the level object
10
+ attr_accessor :pin_group
11
+
12
+ def initialize(options = {}) # :nodoc:
13
+ @pwr_group = Hash.new { |h, k| h[k] = {} }
14
+ @pin_group = Hash.new { |h, k| h[k] = {} }
15
+ end
16
+
17
+ # Defines a new Power Level category for the given pin/group
18
+ def add_power_level(cat, options = {})
19
+ cat = cat.to_sym unless cat.is_a? Symbol
20
+ pwr_group[cat] = platform::SupplyLevel.new(options)
21
+ end
22
+
23
+ # Defines a new Single-Ended Pin Level category for the given pin/group
24
+ def add_se_pin_level(cat, options = {})
25
+ cat = cat.to_sym unless cat.is_a? Symbol
26
+ pin_group[cat] = platform::PinLevelSingle.new(options)
27
+ end
28
+ end
29
+ end
30
+ end
31
+ end
@@ -1,110 +1,110 @@
1
- module OrigenTesters
2
- module IGXLBasedTester
3
- class Base
4
- class Levelset
5
- include ::OrigenTesters::Generator
6
-
7
- attr_accessor :pins
8
- attr_accessor :spec_sheet
9
- attr_accessor :ls_sheet_pins
10
-
11
- # Levelset name
12
- attr_accessor :name
13
-
14
- OUTPUT_PREFIX = 'LV'
15
- # OUTPUT_POSTFIX = 'LV'
16
-
17
- def initialize(options = {}) # :nodoc:
18
- @pins = {}
19
- end
20
-
21
- # rubocop:disable Metrics/ParameterLists
22
-
23
- # Adds a pin level to the given levelset
24
- def add(lsname, pin, level, options = {})
25
- options = {
26
- spec_sheet: 'default' # defines which specset sheet to put variables in (e.g. func, scan) when generating specset files
27
- }.merge(options)
28
- lsname = lsname.to_sym unless lsname.is_a? Symbol
29
- pin = pin.to_sym unless pin.is_a? Symbol
30
-
31
- add_level(pin, level)
32
- @name = lsname
33
- @spec_sheet = options[:spec_sheet]
34
- @ls_sheet_pins = options[:ls_sheet_pins] unless @ls_sheet_pins
35
- end
36
-
37
- # Assigns a level object to the given pin for this levelset
38
- def add_level(pin, level)
39
- if @pins.key?(pin)
40
- Origen.log.error "Pin #{pin} already exists in levelset"
41
- else
42
- @pins[pin] = level
43
- end
44
- end
45
-
46
- def finalize(options = {})
47
- end
48
-
49
- # Populate an array of pins based on the pin or pingroup
50
- def get_pin_objects(grp)
51
- pins = []
52
- if Origen.top_level.pin(grp).is_a?(Origen::Pins::Pin) ||
53
- Origen.top_level.pin(grp).is_a?(Origen::Pins::FunctionProxy)
54
- pins << Origen.top_level.pin(grp)
55
- elsif Origen.top_level.pin(grp).is_a?(Origen::Pins::PinCollection)
56
- Origen.top_level.pin(grp).each do |pin|
57
- pins << pin
58
- end
59
- else
60
- Origen.log.error "Could not find pin class: #{grp} #{Origen.top_level.pin(grp).class}"
61
- end
62
- pins
63
- end
64
-
65
- # Equality check to compare full contents of 2 level objects
66
- def levels_eql?(level1, level2)
67
- level1 == level2
68
- end
69
-
70
- # Globally modify text within the level object
71
- def gsub_levels!(level, old_val, new_val)
72
- # determine if object is a power level (conatins :vmain) or a SE pin level (:vil)
73
- if level.respond_to?(:vmain)
74
- level.vmain = level.vmain.gsub(/#{Regexp.escape(old_val)}/, new_val)
75
- level.valt = level.valt.gsub(/#{Regexp.escape(old_val)}/, new_val)
76
- level.ifold = level.ifold.gsub(/#{Regexp.escape(old_val)}/, new_val)
77
- # level.delay = level.delay.gsub(/#{Regexp.escape(old_val)}/, new_val)
78
- elsif level.respond_to?(:vil)
79
- level.vil = level.vil.gsub(/#{Regexp.escape(old_val)}/, new_val)
80
- level.vih = level.vih.gsub(/#{Regexp.escape(old_val)}/, new_val)
81
- level.vol = level.vol.gsub(/#{Regexp.escape(old_val)}/, new_val)
82
- level.voh = level.voh.gsub(/#{Regexp.escape(old_val)}/, new_val)
83
- level.vcl = level.vcl.gsub(/#{Regexp.escape(old_val)}/, new_val)
84
- level.vch = level.vch.gsub(/#{Regexp.escape(old_val)}/, new_val)
85
- level.vt = level.vt.gsub(/#{Regexp.escape(old_val)}/, new_val)
86
- level.voutlotyp = level.voutlotyp.gsub(/#{Regexp.escape(old_val)}/, new_val)
87
- level.vouthityp = level.vouthityp.gsub(/#{Regexp.escape(old_val)}/, new_val)
88
- level.dmode = level.dmode.gsub(/#{Regexp.escape(old_val)}/, new_val)
89
- end
90
- end
91
-
92
- def format_uflex_level(data, options = {})
93
- options = {
94
- }.merge(options)
95
-
96
- if data !~ /^\s*$/
97
- data = data.gsub(/^/, '=')
98
- end
99
- data = data.gsub(/(\W)([a-zA-Z])/, '\1_\2')
100
- data = data.gsub(/(\*\s*)_([kmun]{0,1}[AVs]{1}\W)/, '\1\2')
101
- data = data.gsub(/(\*\s*)_([kmun]{0,1}[AVs]{1})$/, '\1\2')
102
- end
103
-
104
- def platform
105
- Origen.interface.platform
106
- end
107
- end
108
- end
109
- end
110
- end
1
+ module OrigenTesters
2
+ module IGXLBasedTester
3
+ class Base
4
+ class Levelset
5
+ include ::OrigenTesters::Generator
6
+
7
+ attr_accessor :pins
8
+ attr_accessor :spec_sheet
9
+ attr_accessor :ls_sheet_pins
10
+
11
+ # Levelset name
12
+ attr_accessor :name
13
+
14
+ OUTPUT_PREFIX = 'LV'
15
+ # OUTPUT_POSTFIX = 'LV'
16
+
17
+ def initialize(options = {}) # :nodoc:
18
+ @pins = {}
19
+ end
20
+
21
+ # rubocop:disable Metrics/ParameterLists
22
+
23
+ # Adds a pin level to the given levelset
24
+ def add(lsname, pin, level, options = {})
25
+ options = {
26
+ spec_sheet: 'default' # defines which specset sheet to put variables in (e.g. func, scan) when generating specset files
27
+ }.merge(options)
28
+ lsname = lsname.to_sym unless lsname.is_a? Symbol
29
+ pin = pin.to_sym unless pin.is_a? Symbol
30
+
31
+ add_level(pin, level)
32
+ @name = lsname
33
+ @spec_sheet = options[:spec_sheet]
34
+ @ls_sheet_pins = options[:ls_sheet_pins] unless @ls_sheet_pins
35
+ end
36
+
37
+ # Assigns a level object to the given pin for this levelset
38
+ def add_level(pin, level)
39
+ if @pins.key?(pin)
40
+ Origen.log.error "Pin #{pin} already exists in levelset"
41
+ else
42
+ @pins[pin] = level
43
+ end
44
+ end
45
+
46
+ def finalize(options = {})
47
+ end
48
+
49
+ # Populate an array of pins based on the pin or pingroup
50
+ def get_pin_objects(grp)
51
+ pins = []
52
+ if Origen.top_level.pin(grp).is_a?(Origen::Pins::Pin) ||
53
+ Origen.top_level.pin(grp).is_a?(Origen::Pins::FunctionProxy)
54
+ pins << Origen.top_level.pin(grp)
55
+ elsif Origen.top_level.pin(grp).is_a?(Origen::Pins::PinCollection)
56
+ Origen.top_level.pin(grp).each do |pin|
57
+ pins << pin
58
+ end
59
+ else
60
+ Origen.log.error "Could not find pin class: #{grp} #{Origen.top_level.pin(grp).class}"
61
+ end
62
+ pins
63
+ end
64
+
65
+ # Equality check to compare full contents of 2 level objects
66
+ def levels_eql?(level1, level2)
67
+ level1 == level2
68
+ end
69
+
70
+ # Globally modify text within the level object
71
+ def gsub_levels!(level, old_val, new_val)
72
+ # determine if object is a power level (conatins :vmain) or a SE pin level (:vil)
73
+ if level.respond_to?(:vmain)
74
+ level.vmain = level.vmain.gsub(/#{Regexp.escape(old_val)}/, new_val)
75
+ level.valt = level.valt.gsub(/#{Regexp.escape(old_val)}/, new_val)
76
+ level.ifold = level.ifold.gsub(/#{Regexp.escape(old_val)}/, new_val)
77
+ # level.delay = level.delay.gsub(/#{Regexp.escape(old_val)}/, new_val)
78
+ elsif level.respond_to?(:vil)
79
+ level.vil = level.vil.gsub(/#{Regexp.escape(old_val)}/, new_val)
80
+ level.vih = level.vih.gsub(/#{Regexp.escape(old_val)}/, new_val)
81
+ level.vol = level.vol.gsub(/#{Regexp.escape(old_val)}/, new_val)
82
+ level.voh = level.voh.gsub(/#{Regexp.escape(old_val)}/, new_val)
83
+ level.vcl = level.vcl.gsub(/#{Regexp.escape(old_val)}/, new_val)
84
+ level.vch = level.vch.gsub(/#{Regexp.escape(old_val)}/, new_val)
85
+ level.vt = level.vt.gsub(/#{Regexp.escape(old_val)}/, new_val)
86
+ level.voutlotyp = level.voutlotyp.gsub(/#{Regexp.escape(old_val)}/, new_val)
87
+ level.vouthityp = level.vouthityp.gsub(/#{Regexp.escape(old_val)}/, new_val)
88
+ level.dmode = level.dmode.gsub(/#{Regexp.escape(old_val)}/, new_val)
89
+ end
90
+ end
91
+
92
+ def format_uflex_level(data, options = {})
93
+ options = {
94
+ }.merge(options)
95
+
96
+ if data !~ /^\s*$/
97
+ data = data.gsub(/^/, '=')
98
+ end
99
+ data = data.gsub(/(\W)([a-zA-Z])/, '\1_\2')
100
+ data = data.gsub(/(\*\s*)_([kmun]{0,1}[AVs]{1}\W)/, '\1\2')
101
+ data = data.gsub(/(\*\s*)_([kmun]{0,1}[AVs]{1})$/, '\1\2')
102
+ end
103
+
104
+ def platform
105
+ Origen.interface.platform
106
+ end
107
+ end
108
+ end
109
+ end
110
+ end
@@ -1,109 +1,109 @@
1
- module OrigenTesters
2
- module IGXLBasedTester
3
- class Base
4
- class Patgroup
5
- attr_accessor :index
6
-
7
- class Pattern
8
- ATTRS = %w(group_name pattern_file comment)
9
-
10
- ALIASES = {
11
- pattern: :pattern_file
12
- }
13
-
14
- DEFAULTS = {
15
- }
16
-
17
- # Generate accessors for all attributes and their aliases
18
- ATTRS.each do |attr|
19
- attr_accessor attr.to_sym
20
- end
21
-
22
- ALIASES.each do |_alias, val|
23
- define_method("#{_alias}=") do |v|
24
- send("#{val}=", v)
25
- end
26
- define_method("#{_alias}") do
27
- send(val)
28
- end
29
- end
30
-
31
- def initialize(patgroup, attrs = {})
32
- # Set the defaults
33
- DEFAULTS.each do |k, v|
34
- send("#{k}=", v)
35
- end
36
- # Then the values that have been supplied
37
- self.group_name = patgroup
38
- attrs.each do |k, v|
39
- send("#{k}=", v)
40
- end
41
- end
42
-
43
- def to_s
44
- l = "\t"
45
- ATTRS.each do |attr|
46
- l += "#{send(attr)}\t"
47
- end
48
- "#{l}"
49
- end
50
- end
51
-
52
- # Specify multiple patterns by passing an array of attributes
53
- # as the 2nd argument:
54
- #
55
- # Patset.new("mrd1_pgrp", :pattern => "nvm_mrd1.PAT")
56
- #
57
- # Patset.new("mrd1_pgrp", [{:pattern => "nvm_mrd1.PAT"},
58
- # {:pattern => "nvm_global_subs.PAT},
59
- # ])
60
- def initialize(name, attrs = {})
61
- attrs = [attrs] unless attrs.is_a? Array
62
- attrs.each do |pattrs|
63
- if pattrs[:pattern]
64
- pat = Pathname.new(pattrs[:pattern].gsub('\\', '/')).basename('.*').to_s
65
- Origen.interface.referenced_patterns << pat
66
- end
67
- lines << Pattern.new(name, pattrs)
68
- end
69
- self.name = name
70
- end
71
-
72
- def ==(other_patgroup)
73
- self.class == other_patgroup.class &&
74
- name.to_s == other_patgroup.name.to_s &&
75
- sorted_pattern_files == other_patgroup.sorted_pattern_files
76
- end
77
-
78
- def name
79
- @name
80
- end
81
-
82
- def name=(n)
83
- @name = n
84
- lines.each { |l| l.group_name = n }
85
- n
86
- end
87
-
88
- # Returns all lines in the pattern set
89
- def lines
90
- @lines ||= []
91
- end
92
-
93
- # Returns all pattern files in the pattern set in alphabetical order
94
- def sorted_pattern_files
95
- @lines.map(&:file_name).sort
96
- end
97
-
98
- # Returns the fully formatted pattern group for insertion into a patgroups sheet
99
- def to_s
100
- l = ''
101
- lines.each do |line|
102
- l += "#{line}\r\n"
103
- end
104
- l.chomp
105
- end
106
- end
107
- end
108
- end
109
- end
1
+ module OrigenTesters
2
+ module IGXLBasedTester
3
+ class Base
4
+ class Patgroup
5
+ attr_accessor :index
6
+
7
+ class Pattern
8
+ ATTRS = %w(group_name pattern_file comment)
9
+
10
+ ALIASES = {
11
+ pattern: :pattern_file
12
+ }
13
+
14
+ DEFAULTS = {
15
+ }
16
+
17
+ # Generate accessors for all attributes and their aliases
18
+ ATTRS.each do |attr|
19
+ attr_accessor attr.to_sym
20
+ end
21
+
22
+ ALIASES.each do |_alias, val|
23
+ define_method("#{_alias}=") do |v|
24
+ send("#{val}=", v)
25
+ end
26
+ define_method("#{_alias}") do
27
+ send(val)
28
+ end
29
+ end
30
+
31
+ def initialize(patgroup, attrs = {})
32
+ # Set the defaults
33
+ DEFAULTS.each do |k, v|
34
+ send("#{k}=", v)
35
+ end
36
+ # Then the values that have been supplied
37
+ self.group_name = patgroup
38
+ attrs.each do |k, v|
39
+ send("#{k}=", v)
40
+ end
41
+ end
42
+
43
+ def to_s
44
+ l = "\t"
45
+ ATTRS.each do |attr|
46
+ l += "#{send(attr)}\t"
47
+ end
48
+ "#{l}"
49
+ end
50
+ end
51
+
52
+ # Specify multiple patterns by passing an array of attributes
53
+ # as the 2nd argument:
54
+ #
55
+ # Patset.new("mrd1_pgrp", :pattern => "nvm_mrd1.PAT")
56
+ #
57
+ # Patset.new("mrd1_pgrp", [{:pattern => "nvm_mrd1.PAT"},
58
+ # {:pattern => "nvm_global_subs.PAT},
59
+ # ])
60
+ def initialize(name, attrs = {})
61
+ attrs = [attrs] unless attrs.is_a? Array
62
+ attrs.each do |pattrs|
63
+ if pattrs[:pattern]
64
+ pat = Pathname.new(pattrs[:pattern].gsub('\\', '/')).basename('.*').to_s
65
+ Origen.interface.referenced_patterns << pat
66
+ end
67
+ lines << Pattern.new(name, pattrs)
68
+ end
69
+ self.name = name
70
+ end
71
+
72
+ def ==(other_patgroup)
73
+ self.class == other_patgroup.class &&
74
+ name.to_s == other_patgroup.name.to_s &&
75
+ sorted_pattern_files == other_patgroup.sorted_pattern_files
76
+ end
77
+
78
+ def name
79
+ @name
80
+ end
81
+
82
+ def name=(n)
83
+ @name = n
84
+ lines.each { |l| l.group_name = n }
85
+ n
86
+ end
87
+
88
+ # Returns all lines in the pattern set
89
+ def lines
90
+ @lines ||= []
91
+ end
92
+
93
+ # Returns all pattern files in the pattern set in alphabetical order
94
+ def sorted_pattern_files
95
+ @lines.map(&:file_name).sort
96
+ end
97
+
98
+ # Returns the fully formatted pattern group for insertion into a patgroups sheet
99
+ def to_s
100
+ l = ''
101
+ lines.each do |line|
102
+ l += "#{line}\r\n"
103
+ end
104
+ l.chomp
105
+ end
106
+ end
107
+ end
108
+ end
109
+ end