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,65 +1,65 @@
1
- module OrigenTesters
2
- module SmartestBasedTester
3
- class Base
4
- class TestMethods
5
- class Limits
6
- attr_reader :test_method
7
- attr_accessor :lo_limit, :hi_limit
8
- attr_accessor :unit
9
- attr_accessor :tnum
10
- alias_method :lo, :lo_limit
11
- alias_method :lo=, :lo_limit=
12
- alias_method :hi, :hi_limit
13
- alias_method :hi=, :hi_limit=
14
-
15
- def initialize(test_method)
16
- @test_method = test_method
17
- @tnum = ''
18
- end
19
-
20
- def unit=(val)
21
- case val.to_s.downcase
22
- when 'v', 'volts'
23
- @unit = 'V'
24
- when 'a', 'amps'
25
- @unit = 'A'
26
- else
27
- fail "Limit unit of #{val} not implemented yet!"
28
- end
29
- end
30
-
31
- def to_s
32
- if !lo_limit && !hi_limit
33
- if tnum == ''
34
- "\"#{test_name}\"" + ' = "":"NA":"":"NA":"":"":""'
35
- else
36
- "\"#{test_name}\"" + " = \"\":\"NA\":\"\":\"NA\":\"\":\"#{tnum}\":\"0\""
37
- end
38
- elsif !lo_limit
39
- "\"#{test_name}\"" + " = \"\":\"NA\":\"#{hi_limit}\":\"LE\":\"#{unit}\":\"#{tnum}\":\"0\""
40
- elsif !hi_limit
41
- "\"#{test_name}\"" + " = \"#{lo_limit}\":\"GE\":\"\":\"NA\":\"#{unit}\":\"#{tnum}\":\"0\""
42
- else
43
- "\"#{test_name}\"" + " = \"#{lo_limit}\":\"GE\":\"#{hi_limit}\":\"LE\":\"#{unit}\":\"#{tnum}\":\"0\""
44
- end
45
- end
46
-
47
- def set_lo_limit(val)
48
- self.lo_limit = val
49
- end
50
-
51
- def set_hi_limit(val)
52
- self.hi_limit = val
53
- end
54
-
55
- private
56
-
57
- def test_name
58
- name = test_method.test_name if test_method.respond_to?(:test_name)
59
- name || 'Functional'
60
- end
61
- end
62
- end
63
- end
64
- end
65
- end
1
+ module OrigenTesters
2
+ module SmartestBasedTester
3
+ class Base
4
+ class TestMethods
5
+ class Limits
6
+ attr_reader :test_method
7
+ attr_accessor :lo_limit, :hi_limit
8
+ attr_accessor :unit
9
+ attr_accessor :tnum
10
+ alias_method :lo, :lo_limit
11
+ alias_method :lo=, :lo_limit=
12
+ alias_method :hi, :hi_limit
13
+ alias_method :hi=, :hi_limit=
14
+
15
+ def initialize(test_method)
16
+ @test_method = test_method
17
+ @tnum = ''
18
+ end
19
+
20
+ def unit=(val)
21
+ case val.to_s.downcase
22
+ when 'v', 'volts'
23
+ @unit = 'V'
24
+ when 'a', 'amps'
25
+ @unit = 'A'
26
+ else
27
+ fail "Limit unit of #{val} not implemented yet!"
28
+ end
29
+ end
30
+
31
+ def to_s
32
+ if !lo_limit && !hi_limit
33
+ if tnum == ''
34
+ "\"#{test_name}\"" + ' = "":"NA":"":"NA":"":"":""'
35
+ else
36
+ "\"#{test_name}\"" + " = \"\":\"NA\":\"\":\"NA\":\"\":\"#{tnum}\":\"0\""
37
+ end
38
+ elsif !lo_limit
39
+ "\"#{test_name}\"" + " = \"\":\"NA\":\"#{hi_limit}\":\"LE\":\"#{unit}\":\"#{tnum}\":\"0\""
40
+ elsif !hi_limit
41
+ "\"#{test_name}\"" + " = \"#{lo_limit}\":\"GE\":\"\":\"NA\":\"#{unit}\":\"#{tnum}\":\"0\""
42
+ else
43
+ "\"#{test_name}\"" + " = \"#{lo_limit}\":\"GE\":\"#{hi_limit}\":\"LE\":\"#{unit}\":\"#{tnum}\":\"0\""
44
+ end
45
+ end
46
+
47
+ def set_lo_limit(val)
48
+ self.lo_limit = val
49
+ end
50
+
51
+ def set_hi_limit(val)
52
+ self.hi_limit = val
53
+ end
54
+
55
+ private
56
+
57
+ def test_name
58
+ name = test_method.test_name if test_method.respond_to?(:test_name)
59
+ name || 'Functional'
60
+ end
61
+ end
62
+ end
63
+ end
64
+ end
65
+ end
@@ -1,193 +1,208 @@
1
- module OrigenTesters
2
- module SmartestBasedTester
3
- class Base
4
- class TestSuite
5
- attr_accessor :meta
6
-
7
- ATTRS =
8
- %w(name
9
- comment
10
-
11
- timing_equation timing_spec timing_set
12
- level_equation level_spec level_set
13
- analog_set
14
- pattern
15
- context
16
- test_type
17
- test_method
18
-
19
- test_number
20
- test_level
21
-
22
- bypass
23
- set_pass
24
- set_fail
25
- hold
26
- hold_on_fail
27
- output_on_pass
28
- output_on_fail
29
- pass_value
30
- fail_value
31
- per_pin_on_pass
32
- per_pin_on_fail
33
- log_mixed_signal_waveform
34
- fail_per_label
35
- ffc_enable
36
- log_first
37
- ffv_enable
38
- frg_enable
39
- hardware_dsp_disable
40
- )
41
-
42
- ALIASES = {
43
- tim_equ_set: :timing_equation,
44
- tim_spec_set: :timing_spec,
45
- timset: :timing_set,
46
- timeset: :timing_set,
47
- time_set: :timing_set,
48
- lev_equ_set: :level_equation,
49
- lev_spec_set: :level_spec,
50
- levset: :level_set,
51
- levels: :level_set,
52
- pin_levels: :level_set,
53
- anaset: :analog_set,
54
- test_num: :test_number,
55
- test_function: :test_method,
56
- value_on_pass: :pass_value,
57
- value_on_fail: :fail_value,
58
- seqlbl: :pattern,
59
- mx_waves_enable: :log_mixed_signal_waveform,
60
- hw_dsp_disable: :hardware_dsp_disable,
61
- ffc_on_fail: :log_first
62
- }
63
-
64
- DEFAULTS = {
65
- output_on_pass: true,
66
- output_on_fail: true,
67
- pass_value: true,
68
- fail_value: true,
69
- per_pin_on_pass: true,
70
- per_pin_on_fail: true
71
- }
72
-
73
- # Generate accessors for all attributes and their aliases
74
- ATTRS.each do |attr|
75
- attr_accessor attr.to_sym
76
- end
77
-
78
- # Define the aliases
79
- ALIASES.each do |_alias, val|
80
- define_method("#{_alias}=") do |v|
81
- send("#{val}=", v)
82
- end
83
- define_method("#{_alias}") do
84
- send(val)
85
- end
86
- end
87
-
88
- def initialize(name, attrs = {})
89
- @name = name
90
- if interface.flow.sig
91
- @name = "#{name}_#{interface.flow.sig}"
92
- end
93
- # Set the defaults
94
- DEFAULTS.each do |k, v|
95
- send("#{k}=", v)
96
- end
97
- # Then the values that have been supplied
98
- attrs.each do |k, v|
99
- send("#{k}=", v) if respond_to?("#{k}=") && k.to_sym != :name
100
- end
101
- end
102
-
103
- def pattern=(name)
104
- Origen.interface.record_pattern_reference(name) if name
105
- @pattern = name
106
- end
107
-
108
- def inspect
109
- "<TestSuite: #{name}>"
110
- end
111
-
112
- # The name is immutable once the test_suite is created, this will raise an error when called
113
- def name=(val, options = {})
114
- fail 'Once assigned the name of a test suite cannot be changed!'
115
- end
116
-
117
- def lines
118
- l = []
119
- l << ' override = 1;'
120
- l << " override_tim_equ_set = #{wrap_if_string(timing_equation)};" if timing_equation
121
- l << " override_lev_equ_set = #{wrap_if_string(level_equation)};" if level_equation
122
- l << " override_tim_spec_set = #{wrap_if_string(timing_spec)};" if timing_spec
123
- l << " override_lev_spec_set = #{wrap_if_string(level_spec)};" if level_spec
124
- l << " override_anaset = #{wrap_if_string(analog_set)};" if analog_set
125
- l << " override_timset = #{wrap_if_string(timing_set)};" if timing_set
126
- l << " override_levset = #{wrap_if_string(level_set)};" if level_set
127
- l << " override_seqlbl = #{wrap_if_string(pattern)};" if pattern
128
- l << " override_test_number = #{test_number};" if test_number
129
- l << " override_testf = #{test_method.id};" if test_method
130
- l << " test_level = #{test_level};" if test_level
131
- l << " ffc_on_fail = #{wrap_if_string(log_first)};" if log_first
132
- l << " comment = \"#{comment}\";" if comment
133
- l << "local_flags = #{flags};"
134
- l << ' site_match = 2;'
135
- l << ' site_control = "parallel:";'
136
- l
137
- end
138
-
139
- def method_missing(method, *args, &block)
140
- if test_method && test_method.respond_to?(method)
141
- test_method.send(method, *args, &block)
142
- else
143
- super
144
- end
145
- end
146
-
147
- def respond_to?(method)
148
- (test_method && test_method.respond_to?(method)) || super
149
- end
150
-
151
- def interface
152
- Origen.interface
153
- end
154
-
155
- def to_meta
156
- meta || {}
157
- end
158
-
159
- private
160
-
161
- def flags
162
- f = []
163
- f << 'bypass' if bypass
164
- f << 'set_pass' if set_pass
165
- f << 'set_fail' if set_fail
166
- f << 'hold' if hold
167
- f << 'hold_on_fail' if hold_on_fail
168
- f << 'output_on_pass' if output_on_pass
169
- f << 'output_on_fail' if output_on_fail
170
- f << 'value_on_pass' if pass_value
171
- f << 'value_on_fail' if fail_value
172
- f << 'per_pin_on_pass' if per_pin_on_pass
173
- f << 'per_pin_on_fail' if per_pin_on_fail
174
- f << 'mx_waves_enable' if log_mixed_signal_waveform
175
- f << 'fail_per_label' if fail_per_label
176
- f << 'ffc_enable' if ffc_enable
177
- f << 'ffv_enable' if ffv_enable
178
- f << 'frg_enable' if frg_enable
179
- f << 'hw_dsp_disable' if hardware_dsp_disable
180
- f.join(', ')
181
- end
182
-
183
- def wrap_if_string(value)
184
- if value.is_a?(String)
185
- "\"#{value}\""
186
- else
187
- value
188
- end
189
- end
190
- end
191
- end
192
- end
193
- end
1
+ module OrigenTesters
2
+ module SmartestBasedTester
3
+ class Base
4
+ class TestSuite
5
+ attr_accessor :meta
6
+
7
+ ATTRS =
8
+ %w(name
9
+ comment
10
+
11
+ timing_equation timing_spec timing_set
12
+ level_equation level_spec level_set
13
+ analog_set
14
+ pattern
15
+ context
16
+ test_type
17
+ test_method
18
+
19
+ test_number
20
+ test_level
21
+
22
+ bypass
23
+ set_pass
24
+ set_fail
25
+ hold
26
+ hold_on_fail
27
+ output_on_pass
28
+ output_on_fail
29
+ pass_value
30
+ fail_value
31
+ per_pin_on_pass
32
+ per_pin_on_fail
33
+ log_mixed_signal_waveform
34
+ fail_per_label
35
+ ffc_enable
36
+ log_first
37
+ ffv_enable
38
+ frg_enable
39
+ hardware_dsp_disable
40
+ )
41
+
42
+ ALIASES = {
43
+ tim_equ_set: :timing_equation,
44
+ tim_spec_set: :timing_spec,
45
+ timset: :timing_set,
46
+ timeset: :timing_set,
47
+ time_set: :timing_set,
48
+ lev_equ_set: :level_equation,
49
+ lev_spec_set: :level_spec,
50
+ levset: :level_set,
51
+ levels: :level_set,
52
+ pin_levels: :level_set,
53
+ anaset: :analog_set,
54
+ test_num: :test_number,
55
+ test_function: :test_method,
56
+ value_on_pass: :pass_value,
57
+ value_on_fail: :fail_value,
58
+ seqlbl: :pattern,
59
+ mx_waves_enable: :log_mixed_signal_waveform,
60
+ hw_dsp_disable: :hardware_dsp_disable,
61
+ ffc_on_fail: :log_first
62
+ }
63
+
64
+ DEFAULTS = {
65
+ output_on_pass: true,
66
+ output_on_fail: true,
67
+ pass_value: true,
68
+ fail_value: true,
69
+ per_pin_on_pass: true,
70
+ per_pin_on_fail: true
71
+ }
72
+
73
+ # Generate accessors for all attributes and their aliases
74
+ ATTRS.each do |attr|
75
+ attr_accessor attr.to_sym
76
+ end
77
+
78
+ # Define the aliases
79
+ ALIASES.each do |_alias, val|
80
+ define_method("#{_alias}=") do |v|
81
+ send("#{val}=", v)
82
+ end
83
+ define_method("#{_alias}") do
84
+ send(val)
85
+ end
86
+ end
87
+
88
+ def initialize(name, attrs = {})
89
+ @name = name
90
+ if interface.unique_test_names == :signature
91
+ if interface.flow.sig
92
+ @name = "#{name}_#{interface.flow.sig}"
93
+ end
94
+ elsif interface.unique_test_names == :flowname || interface.unique_test_names == :flow_name
95
+ @name = "#{name}_#{interface.flow.name.to_s.symbolize}"
96
+ elsif interface.unique_test_names == :preflowname || interface.unique_test_names == :pre_flow_name
97
+ @name = "#{interface.flow.name.to_s.symbolize}_#{name}"
98
+ elsif interface.unique_test_names
99
+ utn_string = interface.unique_test_names.to_s
100
+ if utn_string =~ /^prepend_/
101
+ utn_string = utn_string.gsub(/^prepend_/, '')
102
+ @name = "#{utn_string}_#{name}"
103
+ else
104
+ utn_string = utn_string.gsub(/^append_/, '')
105
+ @name = "#{name}_#{utn_string}"
106
+ end
107
+ end
108
+ # Set the defaults
109
+ DEFAULTS.each do |k, v|
110
+ send("#{k}=", v)
111
+ end
112
+ # Then the values that have been supplied
113
+ attrs.each do |k, v|
114
+ send("#{k}=", v) if respond_to?("#{k}=") && k.to_sym != :name
115
+ end
116
+ end
117
+
118
+ def pattern=(name)
119
+ Origen.interface.record_pattern_reference(name) if name
120
+ @pattern = name
121
+ end
122
+
123
+ def inspect
124
+ "<TestSuite: #{name}>"
125
+ end
126
+
127
+ # The name is immutable once the test_suite is created, this will raise an error when called
128
+ def name=(val, options = {})
129
+ fail 'Once assigned the name of a test suite cannot be changed!'
130
+ end
131
+
132
+ def lines
133
+ l = []
134
+ l << " comment = \"#{comment}\";" if comment
135
+ l << " ffc_on_fail = #{wrap_if_string(log_first)};" if log_first
136
+ l << " local_flags = #{flags};"
137
+ l << ' override = 1;'
138
+ l << " override_anaset = #{wrap_if_string(analog_set)};" if analog_set
139
+ l << " override_lev_equ_set = #{wrap_if_string(level_equation)};" if level_equation
140
+ l << " override_lev_spec_set = #{wrap_if_string(level_spec)};" if level_spec
141
+ l << " override_levset = #{wrap_if_string(level_set)};" if level_set
142
+ l << " override_seqlbl = #{wrap_if_string(pattern)};" if pattern
143
+ l << " override_test_number = #{test_number};" if test_number
144
+ l << " override_testf = #{test_method.id};" if test_method
145
+ l << " override_tim_equ_set = #{wrap_if_string(timing_equation)};" if timing_equation
146
+ l << " override_tim_spec_set = #{wrap_if_string(timing_spec)};" if timing_spec
147
+ l << " override_timset = #{wrap_if_string(timing_set)};" if timing_set
148
+ l << ' site_control = "parallel:";'
149
+ l << ' site_match = 2;'
150
+ l << " test_level = #{test_level};" if test_level
151
+ l
152
+ end
153
+
154
+ def method_missing(method, *args, &block)
155
+ if test_method && test_method.respond_to?(method)
156
+ test_method.send(method, *args, &block)
157
+ else
158
+ super
159
+ end
160
+ end
161
+
162
+ def respond_to?(method)
163
+ (test_method && test_method.respond_to?(method)) || super
164
+ end
165
+
166
+ def interface
167
+ Origen.interface
168
+ end
169
+
170
+ def to_meta
171
+ meta || {}
172
+ end
173
+
174
+ private
175
+
176
+ def flags
177
+ f = []
178
+ f << 'bypass' if bypass
179
+ f << 'set_pass' if set_pass
180
+ f << 'set_fail' if set_fail
181
+ f << 'hold' if hold
182
+ f << 'hold_on_fail' if hold_on_fail
183
+ f << 'output_on_pass' if output_on_pass
184
+ f << 'output_on_fail' if output_on_fail
185
+ f << 'value_on_pass' if pass_value
186
+ f << 'value_on_fail' if fail_value
187
+ f << 'per_pin_on_pass' if per_pin_on_pass
188
+ f << 'per_pin_on_fail' if per_pin_on_fail
189
+ f << 'mx_waves_enable' if log_mixed_signal_waveform
190
+ f << 'fail_per_label' if fail_per_label
191
+ f << 'ffc_enable' if ffc_enable
192
+ f << 'ffv_enable' if ffv_enable
193
+ f << 'frg_enable' if frg_enable
194
+ f << 'hw_dsp_disable' if hardware_dsp_disable
195
+ f.join(', ')
196
+ end
197
+
198
+ def wrap_if_string(value)
199
+ if value.is_a?(String)
200
+ "\"#{value}\""
201
+ else
202
+ value
203
+ end
204
+ end
205
+ end
206
+ end
207
+ end
208
+ end