origen_testers 0.41.0 → 0.42.0

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 (347) hide show
  1. checksums.yaml +4 -4
  2. data/approved/j750/decompiler/sample/sample.atp +16 -0
  3. data/config/application.rb +6 -0
  4. data/config/boot.rb +3 -0
  5. data/config/commands.rb +148 -3
  6. data/config/global_commands.rb +0 -0
  7. data/config/shared_commands.rb +0 -0
  8. data/config/users.rb +0 -0
  9. data/config/version.rb +1 -1
  10. data/lib/commands/build.rb +0 -0
  11. data/lib/commands/convert.rb +16 -10
  12. data/lib/commands/run.rb +0 -0
  13. data/lib/origen_testers.rb +5 -0
  14. data/lib/origen_testers/api.rb +4 -0
  15. data/lib/origen_testers/atp.rb +0 -0
  16. data/lib/origen_testers/atp/ast/extractor.rb +0 -0
  17. data/lib/origen_testers/atp/ast/node.rb +0 -0
  18. data/lib/origen_testers/atp/flow.rb +0 -0
  19. data/lib/origen_testers/atp/flow_api.rb +0 -0
  20. data/lib/origen_testers/atp/formatter.rb +0 -0
  21. data/lib/origen_testers/atp/formatters/basic.rb +0 -0
  22. data/lib/origen_testers/atp/formatters/datalog.rb +0 -0
  23. data/lib/origen_testers/atp/parser.rb +0 -0
  24. data/lib/origen_testers/atp/processor.rb +0 -0
  25. data/lib/origen_testers/atp/processors/add_ids.rb +0 -0
  26. data/lib/origen_testers/atp/processors/add_set_result.rb +0 -0
  27. data/lib/origen_testers/atp/processors/adjacent_if_combiner.rb +0 -0
  28. data/lib/origen_testers/atp/processors/append_to.rb +0 -0
  29. data/lib/origen_testers/atp/processors/apply_post_group_actions.rb +0 -0
  30. data/lib/origen_testers/atp/processors/condition.rb +0 -0
  31. data/lib/origen_testers/atp/processors/continue_implementer.rb +0 -0
  32. data/lib/origen_testers/atp/processors/else_remover.rb +0 -0
  33. data/lib/origen_testers/atp/processors/empty_branch_remover.rb +0 -0
  34. data/lib/origen_testers/atp/processors/extract_set_flags.rb +0 -0
  35. data/lib/origen_testers/atp/processors/flag_optimizer.rb +0 -0
  36. data/lib/origen_testers/atp/processors/flattener.rb +0 -0
  37. data/lib/origen_testers/atp/processors/flow_id.rb +0 -0
  38. data/lib/origen_testers/atp/processors/marshal.rb +0 -0
  39. data/lib/origen_testers/atp/processors/on_pass_fail_remover.rb +0 -0
  40. data/lib/origen_testers/atp/processors/one_flag_per_test.rb +0 -0
  41. data/lib/origen_testers/atp/processors/pre_cleaner.rb +0 -0
  42. data/lib/origen_testers/atp/processors/redundant_condition_remover.rb +0 -0
  43. data/lib/origen_testers/atp/processors/relationship.rb +0 -0
  44. data/lib/origen_testers/atp/processors/sub_flow_remover.rb +0 -0
  45. data/lib/origen_testers/atp/program.rb +0 -0
  46. data/lib/origen_testers/atp/runner.rb +0 -0
  47. data/lib/origen_testers/atp/validator.rb +0 -0
  48. data/lib/origen_testers/atp/validators/condition.rb +0 -0
  49. data/lib/origen_testers/atp/validators/duplicate_ids.rb +0 -0
  50. data/lib/origen_testers/atp/validators/flags.rb +0 -0
  51. data/lib/origen_testers/atp/validators/jobs.rb +0 -0
  52. data/lib/origen_testers/atp/validators/missing_ids.rb +0 -0
  53. data/lib/origen_testers/atp_deprecation.rb +0 -0
  54. data/lib/origen_testers/basic_test_setups.rb +0 -0
  55. data/lib/origen_testers/callback_handlers.rb +0 -0
  56. data/lib/origen_testers/command_based_tester.rb +0 -0
  57. data/lib/origen_testers/decompiler.rb +9 -0
  58. data/lib/origen_testers/decompiler/decompiler_api.rb +163 -0
  59. data/lib/origen_testers/decompiler/nodes.rb +141 -0
  60. data/lib/origen_testers/decompiler/pattern.rb +304 -0
  61. data/lib/origen_testers/decompiler/pattern/elements/base.rb +44 -0
  62. data/lib/origen_testers/decompiler/pattern/elements/comment_block.rb +28 -0
  63. data/lib/origen_testers/decompiler/pattern/elements/frontmatter.rb +42 -0
  64. data/lib/origen_testers/decompiler/pattern/elements/pinlist.rb +44 -0
  65. data/lib/origen_testers/decompiler/pattern/elements/vector.rb +59 -0
  66. data/lib/origen_testers/decompiler/pattern/elements/vector_body_element.rb +105 -0
  67. data/lib/origen_testers/decompiler/pattern/enumerable_ext.rb +173 -0
  68. data/lib/origen_testers/decompiler/pattern/parsers.rb +111 -0
  69. data/lib/origen_testers/decompiler/pattern/spec_helpers.rb +41 -0
  70. data/lib/origen_testers/decompiler/pattern/splitter.rb +166 -0
  71. data/lib/origen_testers/decompiler/pattern/vector_delimiter_base.rb +70 -0
  72. data/lib/origen_testers/flow.rb +0 -0
  73. data/lib/origen_testers/generator/identity_map.rb +0 -0
  74. data/lib/origen_testers/generator/placeholder.rb +0 -0
  75. data/lib/origen_testers/generator/test_numberer.rb +0 -0
  76. data/lib/origen_testers/igxl_based_tester.rb +3 -0
  77. data/lib/origen_testers/igxl_based_tester/base.rb +8 -1
  78. data/lib/origen_testers/igxl_based_tester/base/custom_test_instance.rb +0 -0
  79. data/lib/origen_testers/igxl_based_tester/base/flow.rb +0 -0
  80. data/lib/origen_testers/igxl_based_tester/base/flow_line.rb +0 -0
  81. data/lib/origen_testers/igxl_based_tester/base/patgroup.rb +0 -0
  82. data/lib/origen_testers/igxl_based_tester/base/patgroups.rb +0 -0
  83. data/lib/origen_testers/igxl_based_tester/base/patset.rb +0 -0
  84. data/lib/origen_testers/igxl_based_tester/base/patset_pattern.rb +0 -0
  85. data/lib/origen_testers/igxl_based_tester/base/patsets.rb +0 -0
  86. data/lib/origen_testers/igxl_based_tester/base/patsubr.rb +0 -0
  87. data/lib/origen_testers/igxl_based_tester/base/patsubr_pattern.rb +0 -0
  88. data/lib/origen_testers/igxl_based_tester/base/patsubrs.rb +0 -0
  89. data/lib/origen_testers/igxl_based_tester/base/test_instance_group.rb +0 -0
  90. data/lib/origen_testers/igxl_based_tester/base/test_instances.rb +0 -0
  91. data/lib/origen_testers/igxl_based_tester/base/test_instances/custom_til.rb +0 -0
  92. data/lib/origen_testers/igxl_based_tester/decompiler.rb +72 -0
  93. data/lib/origen_testers/igxl_based_tester/decompiler/atp.rb +98 -0
  94. data/lib/origen_testers/igxl_based_tester/decompiler/nodes.rb +77 -0
  95. data/lib/origen_testers/igxl_based_tester/files.rb +0 -0
  96. data/lib/origen_testers/igxl_based_tester/j750.rb +1 -1
  97. data/lib/origen_testers/igxl_based_tester/j750/custom_test_instance.rb +0 -0
  98. data/lib/origen_testers/igxl_based_tester/j750/flow.rb +0 -0
  99. data/lib/origen_testers/igxl_based_tester/j750/flow_line.rb +0 -0
  100. data/lib/origen_testers/igxl_based_tester/j750/generator.rb +0 -0
  101. data/lib/origen_testers/igxl_based_tester/j750/patgroup.rb +0 -0
  102. data/lib/origen_testers/igxl_based_tester/j750/patgroups.rb +0 -0
  103. data/lib/origen_testers/igxl_based_tester/j750/patset.rb +0 -0
  104. data/lib/origen_testers/igxl_based_tester/j750/patset_pattern.rb +0 -0
  105. data/lib/origen_testers/igxl_based_tester/j750/patsets.rb +0 -0
  106. data/lib/origen_testers/igxl_based_tester/j750/patsubr.rb +0 -0
  107. data/lib/origen_testers/igxl_based_tester/j750/patsubr_pattern.rb +0 -0
  108. data/lib/origen_testers/igxl_based_tester/j750/patsubrs.rb +0 -0
  109. data/lib/origen_testers/igxl_based_tester/j750/templates/flow.txt.erb +0 -0
  110. data/lib/origen_testers/igxl_based_tester/j750/templates/instances.txt.erb +0 -0
  111. data/lib/origen_testers/igxl_based_tester/j750/templates/patgroups.txt.erb +0 -0
  112. data/lib/origen_testers/igxl_based_tester/j750/templates/patsets.txt.erb +0 -0
  113. data/lib/origen_testers/igxl_based_tester/j750/templates/patsubrs.txt.erb +0 -0
  114. data/lib/origen_testers/igxl_based_tester/j750/test_instance.rb +0 -0
  115. data/lib/origen_testers/igxl_based_tester/j750/test_instance_group.rb +0 -0
  116. data/lib/origen_testers/igxl_based_tester/j750/test_instances.rb +0 -0
  117. data/lib/origen_testers/igxl_based_tester/j750_hpt.rb +0 -0
  118. data/lib/origen_testers/igxl_based_tester/j750_hpt/custom_test_instance.rb +0 -0
  119. data/lib/origen_testers/igxl_based_tester/j750_hpt/flow.rb +0 -0
  120. data/lib/origen_testers/igxl_based_tester/j750_hpt/flow_line.rb +0 -0
  121. data/lib/origen_testers/igxl_based_tester/j750_hpt/generator.rb +0 -0
  122. data/lib/origen_testers/igxl_based_tester/j750_hpt/patgroup.rb +0 -0
  123. data/lib/origen_testers/igxl_based_tester/j750_hpt/patgroups.rb +0 -0
  124. data/lib/origen_testers/igxl_based_tester/j750_hpt/patset.rb +0 -0
  125. data/lib/origen_testers/igxl_based_tester/j750_hpt/patset_pattern.rb +0 -0
  126. data/lib/origen_testers/igxl_based_tester/j750_hpt/patsets.rb +0 -0
  127. data/lib/origen_testers/igxl_based_tester/j750_hpt/patsubr.rb +0 -0
  128. data/lib/origen_testers/igxl_based_tester/j750_hpt/patsubr_pattern.rb +0 -0
  129. data/lib/origen_testers/igxl_based_tester/j750_hpt/patsubrs.rb +0 -0
  130. data/lib/origen_testers/igxl_based_tester/j750_hpt/test_instance.rb +0 -0
  131. data/lib/origen_testers/igxl_based_tester/j750_hpt/test_instance_group.rb +0 -0
  132. data/lib/origen_testers/igxl_based_tester/j750_hpt/test_instances.rb +0 -0
  133. data/lib/origen_testers/igxl_based_tester/parser.rb +0 -0
  134. data/lib/origen_testers/igxl_based_tester/parser/ac_spec.rb +0 -0
  135. data/lib/origen_testers/igxl_based_tester/parser/ac_specs.rb +0 -0
  136. data/lib/origen_testers/igxl_based_tester/parser/dc_spec.rb +0 -0
  137. data/lib/origen_testers/igxl_based_tester/parser/dc_specs.rb +0 -0
  138. data/lib/origen_testers/igxl_based_tester/parser/descriptions.rb +0 -0
  139. data/lib/origen_testers/igxl_based_tester/parser/flow.rb +0 -0
  140. data/lib/origen_testers/igxl_based_tester/parser/flow_line.rb +0 -0
  141. data/lib/origen_testers/igxl_based_tester/parser/flows.rb +0 -0
  142. data/lib/origen_testers/igxl_based_tester/parser/pattern_set.rb +0 -0
  143. data/lib/origen_testers/igxl_based_tester/parser/pattern_sets.rb +0 -0
  144. data/lib/origen_testers/igxl_based_tester/parser/test_instance.rb +0 -0
  145. data/lib/origen_testers/igxl_based_tester/parser/test_instances.rb +0 -0
  146. data/lib/origen_testers/igxl_based_tester/parser/timeset.rb +0 -0
  147. data/lib/origen_testers/igxl_based_tester/parser/timesets.rb +0 -0
  148. data/lib/origen_testers/igxl_based_tester/ultraflex/flow_line.rb +0 -0
  149. data/lib/origen_testers/igxl_based_tester/ultraflex/generator.rb +0 -0
  150. data/lib/origen_testers/igxl_based_tester/ultraflex/patgroup.rb +0 -0
  151. data/lib/origen_testers/igxl_based_tester/ultraflex/patgroups.rb +0 -0
  152. data/lib/origen_testers/igxl_based_tester/ultraflex/patset.rb +0 -0
  153. data/lib/origen_testers/igxl_based_tester/ultraflex/patset_pattern.rb +0 -0
  154. data/lib/origen_testers/igxl_based_tester/ultraflex/patsets.rb +0 -0
  155. data/lib/origen_testers/igxl_based_tester/ultraflex/patsubr.rb +0 -0
  156. data/lib/origen_testers/igxl_based_tester/ultraflex/patsubr_pattern.rb +0 -0
  157. data/lib/origen_testers/igxl_based_tester/ultraflex/patsubrs.rb +0 -0
  158. data/lib/origen_testers/igxl_based_tester/ultraflex/pinmap.rb +0 -0
  159. data/lib/origen_testers/igxl_based_tester/ultraflex/templates/flow.txt.erb +0 -0
  160. data/lib/origen_testers/igxl_based_tester/ultraflex/templates/instances.txt.erb +0 -0
  161. data/lib/origen_testers/igxl_based_tester/ultraflex/templates/patgroups.txt.erb +0 -0
  162. data/lib/origen_testers/igxl_based_tester/ultraflex/templates/patsets.txt.erb +0 -0
  163. data/lib/origen_testers/igxl_based_tester/ultraflex/templates/patsubrs.txt.erb +0 -0
  164. data/lib/origen_testers/igxl_based_tester/ultraflex/test_instance_group.rb +0 -0
  165. data/lib/origen_testers/igxl_based_tester/ultraflex/test_instances.rb +0 -0
  166. data/lib/origen_testers/labview_based_tester.rb +0 -0
  167. data/lib/origen_testers/memory_style.rb +0 -0
  168. data/lib/origen_testers/no_interface.rb +0 -0
  169. data/lib/origen_testers/origen_ext/application/runner.rb +0 -0
  170. data/lib/origen_testers/origen_ext/generator.rb +0 -0
  171. data/lib/origen_testers/origen_ext/generator/flow.rb +0 -0
  172. data/lib/origen_testers/origen_ext/generator/pattern.rb +0 -0
  173. data/lib/origen_testers/origen_ext/generator/resources.rb +0 -0
  174. data/lib/origen_testers/origen_ext/pins/timing.rb +57 -0
  175. data/lib/origen_testers/origen_ext/pins/timing/timeset.rb +29 -0
  176. data/lib/origen_testers/parser.rb +0 -0
  177. data/lib/origen_testers/parser/description_lookup.rb +0 -0
  178. data/lib/origen_testers/parser/searchable_array.rb +0 -0
  179. data/lib/origen_testers/parser/searchable_hash.rb +0 -0
  180. data/lib/origen_testers/pattern_compilers.rb +0 -0
  181. data/lib/origen_testers/pattern_compilers/assembler.rb +0 -0
  182. data/lib/origen_testers/pattern_compilers/base.rb +0 -0
  183. data/lib/origen_testers/pattern_compilers/igxl_based.rb +0 -0
  184. data/lib/origen_testers/pattern_compilers/j750.rb +0 -0
  185. data/lib/origen_testers/pattern_compilers/job.rb +0 -0
  186. data/lib/origen_testers/pattern_compilers/runner.rb +0 -0
  187. data/lib/origen_testers/pattern_compilers/templates/template.aiv.erb +0 -0
  188. data/lib/origen_testers/pattern_compilers/ultraflex.rb +0 -0
  189. data/lib/origen_testers/pattern_compilers/v93k.rb +0 -0
  190. data/lib/origen_testers/pattern_compilers/v93k/digcap.rb +13 -8
  191. data/lib/origen_testers/pattern_compilers/v93k/multiport.rb +0 -0
  192. data/lib/origen_testers/program_generators.rb +0 -0
  193. data/lib/origen_testers/smartest_based_tester.rb +2 -0
  194. data/lib/origen_testers/smartest_based_tester/base.rb +2 -2
  195. data/lib/origen_testers/smartest_based_tester/base/flow.rb +0 -0
  196. data/lib/origen_testers/smartest_based_tester/base/generator.rb +0 -0
  197. data/lib/origen_testers/smartest_based_tester/base/limits_file.rb +0 -0
  198. data/lib/origen_testers/smartest_based_tester/base/pattern_compiler.rb +0 -0
  199. data/lib/origen_testers/smartest_based_tester/base/pattern_master.rb +0 -0
  200. data/lib/origen_testers/smartest_based_tester/base/processors/extract_bin_names.rb +0 -0
  201. data/lib/origen_testers/smartest_based_tester/base/processors/extract_flow_vars.rb +0 -0
  202. data/lib/origen_testers/smartest_based_tester/base/test_method.rb +0 -0
  203. data/lib/origen_testers/smartest_based_tester/base/test_methods.rb +0 -0
  204. data/lib/origen_testers/smartest_based_tester/base/test_methods/ac_tml.rb +0 -0
  205. data/lib/origen_testers/smartest_based_tester/base/test_methods/base_tml.rb +0 -0
  206. data/lib/origen_testers/smartest_based_tester/base/test_methods/custom_tml.rb +0 -0
  207. data/lib/origen_testers/smartest_based_tester/base/test_methods/dc_tml.rb +0 -0
  208. data/lib/origen_testers/smartest_based_tester/base/test_methods/limits.rb +0 -0
  209. data/lib/origen_testers/smartest_based_tester/base/test_suites.rb +0 -0
  210. data/lib/origen_testers/smartest_based_tester/base/variables_file.rb +0 -0
  211. data/lib/origen_testers/smartest_based_tester/decompiler.rb +43 -0
  212. data/lib/origen_testers/smartest_based_tester/decompiler/avc.rb +76 -0
  213. data/lib/origen_testers/smartest_based_tester/decompiler/nodes.rb +23 -0
  214. data/lib/origen_testers/smartest_based_tester/smt7.rb +0 -0
  215. data/lib/origen_testers/smartest_based_tester/smt8.rb +0 -0
  216. data/lib/origen_testers/smartest_based_tester/v93k.rb +0 -0
  217. data/lib/origen_testers/smartest_based_tester/v93k/builder.rb +0 -0
  218. data/lib/origen_testers/smartest_based_tester/v93k/builder/flow.rb +0 -0
  219. data/lib/origen_testers/smartest_based_tester/v93k/builder/pattern_master.rb +0 -0
  220. data/lib/origen_testers/smartest_based_tester/v93k/flow.rb +0 -0
  221. data/lib/origen_testers/smartest_based_tester/v93k/generator.rb +0 -0
  222. data/lib/origen_testers/smartest_based_tester/v93k/limits_file.rb +0 -0
  223. data/lib/origen_testers/smartest_based_tester/v93k/pattern_compiler.rb +0 -0
  224. data/lib/origen_testers/smartest_based_tester/v93k/pattern_master.rb +0 -0
  225. data/lib/origen_testers/smartest_based_tester/v93k/templates/limits.csv.erb +0 -0
  226. data/lib/origen_testers/smartest_based_tester/v93k/templates/template.aiv.erb +0 -0
  227. data/lib/origen_testers/smartest_based_tester/v93k/templates/template.pmfl.erb +0 -0
  228. data/lib/origen_testers/smartest_based_tester/v93k/templates/template.tf.erb +0 -0
  229. data/lib/origen_testers/smartest_based_tester/v93k/templates/vars.tf.erb +0 -0
  230. data/lib/origen_testers/smartest_based_tester/v93k/test_method.rb +0 -0
  231. data/lib/origen_testers/smartest_based_tester/v93k/test_methods.rb +0 -0
  232. data/lib/origen_testers/smartest_based_tester/v93k/test_suites.rb +0 -0
  233. data/lib/origen_testers/smartest_based_tester/v93k/variables_file.rb +0 -0
  234. data/lib/origen_testers/smartest_based_tester/v93k_smt8.rb +0 -0
  235. data/lib/origen_testers/smartest_based_tester/v93k_smt8/flow.rb +0 -0
  236. data/lib/origen_testers/smartest_based_tester/v93k_smt8/generator.rb +0 -0
  237. data/lib/origen_testers/smartest_based_tester/v93k_smt8/limits_file.rb +0 -0
  238. data/lib/origen_testers/smartest_based_tester/v93k_smt8/limits_workbook.rb +0 -0
  239. data/lib/origen_testers/smartest_based_tester/v93k_smt8/templates/limits.csv.erb +0 -0
  240. data/lib/origen_testers/smartest_based_tester/v93k_smt8/templates/template.flow.erb +0 -0
  241. data/lib/origen_testers/smartest_based_tester/v93k_smt8/test_suite.rb +0 -0
  242. data/lib/origen_testers/stil_based_tester.rb +0 -0
  243. data/lib/origen_testers/stil_based_tester/base.rb +6 -6
  244. data/lib/origen_testers/stil_based_tester/d10.rb +0 -0
  245. data/lib/origen_testers/stil_based_tester/stil.rb +0 -0
  246. data/lib/origen_testers/test/basic_interface.rb +0 -0
  247. data/lib/origen_testers/test/block.rb +0 -0
  248. data/lib/origen_testers/test/complex_timing.rb +22 -0
  249. data/lib/origen_testers/test/custom_test_interface.rb +0 -0
  250. data/lib/origen_testers/test/dummy_decompiler.rb +106 -0
  251. data/lib/origen_testers/test/dut.rb +12 -0
  252. data/lib/origen_testers/test/dut2.rb +19 -6
  253. data/lib/origen_testers/test/dut_adv_timing.rb +0 -0
  254. data/lib/origen_testers/test/empty_dut.rb +12 -0
  255. data/lib/origen_testers/test/interface.rb +0 -0
  256. data/lib/origen_testers/test/nvm.rb +0 -0
  257. data/lib/origen_testers/timing.rb +108 -305
  258. data/lib/origen_testers/timing/timeset.rb +141 -0
  259. data/lib/origen_testers/timing/timing_api.rb +307 -0
  260. data/lib/origen_testers/vector.rb +0 -0
  261. data/lib/origen_testers/vector_based_tester.rb +0 -0
  262. data/lib/origen_testers/vector_generator.rb +1 -0
  263. data/lib/origen_testers/vector_pipeline.rb +0 -0
  264. data/pattern/bitmap.rb +0 -0
  265. data/pattern/dc_instr.rb +0 -0
  266. data/pattern/decompile.rb +4 -0
  267. data/pattern/delay.rb +0 -0
  268. data/pattern/freq_counter.rb +0 -0
  269. data/pattern/mem_test.rb +0 -0
  270. data/pattern/multi_vector.rb +0 -0
  271. data/pattern/multi_vector_plus1.rb +0 -0
  272. data/pattern/nvm/j750/add_late_pins.rb +0 -0
  273. data/pattern/nvm/j750/iterator_postfix_test_x_bx.rb +0 -0
  274. data/pattern/nvm/j750/iterator_test_x_bx.rb +0 -0
  275. data/pattern/nvm/j750/j750_halt.rb +0 -0
  276. data/pattern/nvm/j750/j750_workout.rb +0 -0
  277. data/pattern/nvm/j750/timing.rb +4 -4
  278. data/pattern/nvm/v93k/v93k_workout.rb +0 -0
  279. data/pattern/pin_flip.rb +9 -0
  280. data/pattern/read_write_reg.rb +0 -0
  281. data/pattern/reset.rb +0 -0
  282. data/pattern/simple.rb +4 -0
  283. data/pattern/single_overlay_store.rb +0 -0
  284. data/pattern/subroutines.rb +0 -0
  285. data/pattern/tester_overlay.rb +0 -0
  286. data/pattern/tester_store.rb +0 -0
  287. data/program/_additional_erase.rb +0 -0
  288. data/program/_efa_resources.rb +0 -0
  289. data/program/_erase.rb +0 -0
  290. data/program/_erase_vfy.rb +0 -0
  291. data/program/_iv_resources.rb +0 -0
  292. data/program/basic_interface.rb +0 -0
  293. data/program/components/_deep_nested.rb +0 -0
  294. data/program/components/_prb2_main.rb +0 -0
  295. data/program/components/_small.rb +0 -0
  296. data/program/components/_temp.rb +0 -0
  297. data/program/custom_tests.rb +0 -0
  298. data/program/flow_control.rb +0 -0
  299. data/program/prb1.rb +0 -0
  300. data/program/prb1_resources.rb +0 -0
  301. data/program/prb2.rb +0 -0
  302. data/program/test.rb +0 -0
  303. data/templates/example.txt.erb +0 -0
  304. data/templates/j750/_vt_flow.txt.erb +0 -0
  305. data/templates/j750/_vt_instances.txt.erb +0 -0
  306. data/templates/j750/program_sheet.txt.erb +0 -0
  307. data/templates/manifest/v93k.yaml.erb +0 -0
  308. data/templates/origen_guides/decompilation/decompilerapi.md.erb +192 -0
  309. data/templates/origen_guides/decompilation/overview.md.erb +214 -0
  310. data/templates/origen_guides/decompilation/platformspecifics.md.erb +291 -0
  311. data/templates/origen_guides/decompilation/universalapi.md.erb +598 -0
  312. data/templates/origen_guides/pattern/common.md.erb +0 -0
  313. data/templates/origen_guides/pattern/creating.md.erb +0 -0
  314. data/templates/origen_guides/pattern/custom.md.erb +0 -0
  315. data/templates/origen_guides/pattern/documenting.md.erb +0 -0
  316. data/templates/origen_guides/pattern/introduction.md.erb +0 -0
  317. data/templates/origen_guides/pattern/j750.md.erb +0 -0
  318. data/templates/origen_guides/pattern/name.md.erb +0 -0
  319. data/templates/origen_guides/pattern/pins.md.erb +0 -0
  320. data/templates/origen_guides/pattern/registers.md.erb +0 -0
  321. data/templates/origen_guides/pattern/running.md.erb +0 -0
  322. data/templates/origen_guides/pattern/stil.md.erb +0 -0
  323. data/templates/origen_guides/pattern/timing.md.erb +205 -2
  324. data/templates/origen_guides/pattern/ultraflex.md.erb +0 -0
  325. data/templates/origen_guides/pattern/v93k.md.erb +0 -0
  326. data/templates/origen_guides/program/code.md.erb +0 -0
  327. data/templates/origen_guides/program/custom.md.erb +0 -0
  328. data/templates/origen_guides/program/doc.md.erb +0 -0
  329. data/templates/origen_guides/program/flowapi.md.erb +0 -0
  330. data/templates/origen_guides/program/flows.md.erb +0 -0
  331. data/templates/origen_guides/program/generating.md.erb +0 -0
  332. data/templates/origen_guides/program/interface.md.erb +0 -0
  333. data/templates/origen_guides/program/introduction.md.erb +0 -0
  334. data/templates/origen_guides/program/j750.md.erb +0 -0
  335. data/templates/origen_guides/program/philosophy.md.erb +0 -0
  336. data/templates/origen_guides/program/resources.md.erb +0 -0
  337. data/templates/origen_guides/program/ultraflex.md.erb +0 -0
  338. data/templates/origen_guides/program/v93k.md.erb +0 -0
  339. data/templates/origen_guides/program/v93ksmt7.md.erb +0 -0
  340. data/templates/origen_guides/program/v93ksmt8.md.erb +0 -0
  341. data/templates/web/index.md.erb +0 -0
  342. data/templates/web/layouts/_basic.html.erb +0 -0
  343. data/templates/web/layouts/_guides.html.erb +0 -0
  344. data/templates/web/partials/_navbar.html.erb +0 -0
  345. data/templates/web/partials/_placeholder.md.erb +0 -0
  346. data/templates/web/release_notes.md.erb +0 -0
  347. metadata +61 -3
@@ -1,5 +1,11 @@
1
1
  % render "layouts/guides.html" do
2
2
 
3
+ % Origen.load_target('default')
4
+ % dut.timeset(:func) do |t|
5
+ % t.period_in_ns = 10
6
+ % end
7
+ % tester.set_timeset(:func)
8
+
3
9
  A common workflow is to have a tester timing file defined and managed outside of Origen, in
4
10
  which case the main concern within your Origen source code is simply to refer to required
5
11
  timeset(s) by name.
@@ -8,7 +14,6 @@ However, Origen does also support a more complex timing definition where wavefor
8
14
  can be defined and mastered in Origen source code. That is discussed later on in the
9
15
  [Complex Timing](<%= path "guides/pattern/timing/#Complex_Timing" %>) section.
10
16
 
11
-
12
17
  ### Simple Timing
13
18
 
14
19
  This guide gives an overview of some of the most common timing related
@@ -214,15 +219,68 @@ timeset :func do |t|
214
219
  end
215
220
  ~~~
216
221
 
222
+ Complex waveforms also support an initial, or default, `period_in_ns`, allowing
223
+ `set_timeset` to be used without providing a `period_in_ns`:
224
+
225
+ ~~~ruby
226
+ dut.timeset :func do |t|
227
+ t.period_in_ns = 10
228
+ end
229
+
230
+ tester.set_timeset(:func)
231
+ tester.timeset.period_in_ns
232
+ #=> <%= tester.timeset.period_in_ns %>
233
+
234
+ dut.timesets[:func].period_in_ns = 11
235
+ % dut.timesets[:func].period_in_ns = 11
236
+ tester.timeset.period_in_ns
237
+ #=> <%= tester.timeset.period_in_ns %>
238
+ ~~~
239
+
240
+ <!-- This was originally planned, but causes some examples in Origen to fail.
241
+ This `period_in_ns` can still changed prior to pattern execution, but the defining
242
+ timeset can lock this value, disallowing other parts of the application or
243
+ plugins to change the `period_in_ns`:
244
+
245
+ ~~~ruby
246
+ timeset :func do |t|
247
+ t.period_in_ns = 10
248
+ t.lock!
249
+ end
250
+
251
+ tester.set_timeset(:func)
252
+ tester.timeset.period_in_ns
253
+ #=> 10
254
+
255
+ timesets[:func].period_in_ns = 11
256
+ #=> OrigenTester::Timing::InvalidModification
257
+ ~~~
258
+ -->
259
+
217
260
  #### Consuming Timeset Data
218
261
 
262
+ ##### Waveform Details
263
+
219
264
  The currently selected timeset can be retrieved via the following methods which are aliases:
220
265
 
221
266
  ~~~ruby
222
- dut.timeset # => instance of Origen::Pins::Timing::Timeset
267
+ dut.timeset # => instance of OrigenTesters::Timing::Timeset
223
268
  dut.current_timeset
224
269
  ~~~
225
270
 
271
+ Even though this returns a `OrigenTesters::Timing::Timeset` object, its linked
272
+ back to the corresponding `Origen::Pins::Timing::Timeset` object underneath. To
273
+ access it directly:
274
+
275
+ ~~~ruby
276
+ dut.timeset.dut_timeset #=> instance of Origen::Pins::Timing::Timeset
277
+
278
+ tester.timeset.dut_timeset #=> instance of Origen::Pins::Timing::Timeset
279
+ ~~~
280
+
281
+ However, this is generally not needed, as anything that the `OrigenTesters::Timing::Timeset`
282
+ cannot do is given to the corresponding `Origen::Pins::Timing::Timeset` instance.
283
+
226
284
  Using the plural returns a hash containing all timesets, thereby allowing access to specific timesets
227
285
  regardless of the current selection:
228
286
 
@@ -277,5 +335,150 @@ dut.pin(:clk).drive_wave(1).events # => [[0, 1], [20, 0]]
277
335
  dut.pin(:clk).drive_wave('T').events # => [[0, 1], [10, 0], [20, 1], [30, 0]]
278
336
  ~~~
279
337
 
338
+ ##### Timeset Details
339
+
340
+ You can retrieve the same `current period` information from this scope as from
341
+ the `tester.timeset` scope:
342
+
343
+ ~~~ruby
344
+ tester.set_timeset(:test, 10)
345
+ % tester.set_timeset(:test, 10)
346
+
347
+ tester.current_period
348
+ #=> <%= tester.current_period %>
349
+
350
+ dut.current_timeset_period
351
+ #=> <%= dut.current_timeset_period %>
352
+
353
+ dut.current_period_in_ns
354
+ #=> <%= dut.current_period_in_ns %>
355
+
356
+ dut.current_period_in_seconds
357
+ #=> <%= dut.current_period_in_seconds %>
358
+ ~~~
359
+
360
+ ### Timing During Execution
361
+
362
+ You can freely swap between timesets during pattern execution. For example,
363
+ a sequence resembling below is perfectly valid:
364
+
365
+ ~~~ruby
366
+ # Start with an initial timeset for pattern startup
367
+ tester.set_timeset("timing_for_startup", 100)
368
+ tester.cycle
369
+ # ...
370
+
371
+ # Switch to a timeset for ramloading
372
+ tester.set_timeset("timing_for_ramload", 200)
373
+ tester.cycle
374
+ # ...
375
+
376
+ # Switch to a timeset for actual execution
377
+ tester.set_timeset("timing_for_execution", 100)
378
+ tester.cycle
379
+ # ...
380
+ ~~~
381
+
382
+ The period for that timeset will be remembered, allowing simpler timeset switches
383
+ back to existing ones:
384
+
385
+ ~~~ruby
386
+ # Execute using timing for SWD
387
+ % tester.set_timeset("timing_for_swd", 40)
388
+ tester.set_timeset("timing_for_swd", 40)
389
+ tester.timeset.period_in_ns
390
+ #=> <%= tester.timeset.period_in_ns %>
391
+ # ...
392
+
393
+ # Execute using timing for an APB protocol
394
+ % tester.set_timeset("timing_for_apb", 80)
395
+ tester.set_timeset("timing_for_apb", 80)
396
+ tester.timeset.period_in_ns
397
+ #=> <%= tester.timeset.period_in_ns %>
398
+ # ...
399
+
400
+ # Switch back to using SWD
401
+ % tester.set_timeset("timing_for_swd")
402
+ tester.set_timeset("timing_for_swd")
403
+ tester.timeset.period_in_ns
404
+ #=> <%= tester.timeset.period_in_ns %>
405
+ # ...
406
+
407
+ # Switch back to using APB
408
+ % tester.set_timeset("timing_for_apb")
409
+ tester.set_timeset("timing_for_apb")
410
+ tester.timeset.period_in_ns
411
+ #=> <%= tester.timeset.period_in_ns %>
412
+ # ...
413
+
414
+ # End the pattern using SWD
415
+ % tester.set_timeset("timing_for_swd")
416
+ tester.set_timeset("timing_for_swd")
417
+ tester.timeset.period_in_ns
418
+ #=> <%= tester.timeset.period_in_ns %>
419
+ # ...
420
+ ~~~
421
+
422
+ <!--
423
+ Notice that the `period_in_ns` is only defined once per timeset. Swiching
424
+ the `period_in_ns` of a timeset _during_ execution is explicitly blocked
425
+ by `OrigenTesters`:
426
+
427
+ ~~~ruby
428
+ tester.set_timeset(:func, 10)
429
+
430
+ tester.cycle
431
+ tester.set_timeset(:func, 11)
432
+ #=> OrigenTester::Timing::InvalidModification
433
+ ~~~
434
+
435
+ In this context, _during execution_ is defined as after a vector has been
436
+ generated with the timeset in question; in other words, after the tester
437
+ has been cycled. Up to the point of cycling though, timeset periods can be
438
+ freely modified:
439
+
440
+ ~~~ruby
441
+ tester.set_timeset(:func, 10)
442
+ tester.timeset.period_in_ns
443
+ #=> 10
444
+
445
+ tester.timeset.period_in_ns = 11
446
+ tester.timeset.period_in_ns
447
+ #=> 11
448
+
449
+ tester.set_timeset(:func, 12)
450
+ tester.timeset.period_in_ns
451
+ #=> 12
452
+
453
+ tester.cycle
454
+ tester.timeset.period_in_ns = 13
455
+ #=> OrigenTester::Timing::InvalidModification
456
+ ~~~
457
+ -->
458
+ The `#cycled?` method to denotes if the timeset has been cycled or not:
459
+
460
+ ~~~ruby
461
+ tester.set_timeset(:cycle_test, 10)
462
+ % tester.set_timeset(:cycle_test, 10)
463
+ tester.timeset.name
464
+ #=> "<%= tester.timeset.name %>"
465
+ tester.timeset.cycled?
466
+ #=> <%= tester.timeset.cycled? %>
467
+
468
+ tester.cycle
469
+ tester.timeset.cycled?
470
+ % tester.cycle
471
+ #=> <%= tester.timeset.cycled? %>
472
+
473
+ tester.set_timeset(:cycle_test_2, 11)
474
+ tester.timeset.cycled?
475
+ % tester.set_timeset(:cycle_test_2, 11)
476
+ #=> <%= tester.timeset.cycled? %>
477
+
478
+ tester.timesets[:cycle_test].cycled?
479
+ #=> <%= tester.timesets[:cycle_test].cycled? %>
480
+ tester.timesets[:cycle_test_2].cycled?
481
+ #=> <%= tester.timesets[:cycle_test_2].cycled? %>
482
+ ~~~
280
483
 
281
484
  % end
File without changes
File without changes
File without changes
File without changes
File without changes
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: origen_testers
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.41.0
4
+ version: 0.42.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Stephen McGinty
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-08-16 00:00:00.000000000 Z
11
+ date: 2019-09-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: origen
@@ -38,6 +38,26 @@ dependencies:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
40
  version: '1'
41
+ - !ruby/object:Gem::Dependency
42
+ name: atp
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '1.1'
48
+ - - ">="
49
+ - !ruby/object:Gem::Version
50
+ version: 1.1.3
51
+ type: :runtime
52
+ prerelease: false
53
+ version_requirements: !ruby/object:Gem::Requirement
54
+ requirements:
55
+ - - "~>"
56
+ - !ruby/object:Gem::Version
57
+ version: '1.1'
58
+ - - ">="
59
+ - !ruby/object:Gem::Version
60
+ version: 1.1.3
41
61
  - !ruby/object:Gem::Dependency
42
62
  name: rodf
43
63
  requirement: !ruby/object:Gem::Requirement
@@ -101,6 +121,7 @@ executables: []
101
121
  extensions: []
102
122
  extra_rdoc_files: []
103
123
  files:
124
+ - approved/j750/decompiler/sample/sample.atp
104
125
  - config/application.rb
105
126
  - config/boot.rb
106
127
  - config/commands.rb
@@ -155,6 +176,21 @@ files:
155
176
  - lib/origen_testers/basic_test_setups.rb
156
177
  - lib/origen_testers/callback_handlers.rb
157
178
  - lib/origen_testers/command_based_tester.rb
179
+ - lib/origen_testers/decompiler.rb
180
+ - lib/origen_testers/decompiler/decompiler_api.rb
181
+ - lib/origen_testers/decompiler/nodes.rb
182
+ - lib/origen_testers/decompiler/pattern.rb
183
+ - lib/origen_testers/decompiler/pattern/elements/base.rb
184
+ - lib/origen_testers/decompiler/pattern/elements/comment_block.rb
185
+ - lib/origen_testers/decompiler/pattern/elements/frontmatter.rb
186
+ - lib/origen_testers/decompiler/pattern/elements/pinlist.rb
187
+ - lib/origen_testers/decompiler/pattern/elements/vector.rb
188
+ - lib/origen_testers/decompiler/pattern/elements/vector_body_element.rb
189
+ - lib/origen_testers/decompiler/pattern/enumerable_ext.rb
190
+ - lib/origen_testers/decompiler/pattern/parsers.rb
191
+ - lib/origen_testers/decompiler/pattern/spec_helpers.rb
192
+ - lib/origen_testers/decompiler/pattern/splitter.rb
193
+ - lib/origen_testers/decompiler/pattern/vector_delimiter_base.rb
158
194
  - lib/origen_testers/flow.rb
159
195
  - lib/origen_testers/generator.rb
160
196
  - lib/origen_testers/generator/identity_map.rb
@@ -196,6 +232,9 @@ files:
196
232
  - lib/origen_testers/igxl_based_tester/base/timeset.rb
197
233
  - lib/origen_testers/igxl_based_tester/base/timesets.rb
198
234
  - lib/origen_testers/igxl_based_tester/base/timesets_basic.rb
235
+ - lib/origen_testers/igxl_based_tester/decompiler.rb
236
+ - lib/origen_testers/igxl_based_tester/decompiler/atp.rb
237
+ - lib/origen_testers/igxl_based_tester/decompiler/nodes.rb
199
238
  - lib/origen_testers/igxl_based_tester/files.rb
200
239
  - lib/origen_testers/igxl_based_tester/j750.rb
201
240
  - lib/origen_testers/igxl_based_tester/j750/custom_test_instance.rb
@@ -311,6 +350,8 @@ files:
311
350
  - lib/origen_testers/origen_ext/generator/resources.rb
312
351
  - lib/origen_testers/origen_ext/pins/pin.rb
313
352
  - lib/origen_testers/origen_ext/pins/pin_collection.rb
353
+ - lib/origen_testers/origen_ext/pins/timing.rb
354
+ - lib/origen_testers/origen_ext/pins/timing/timeset.rb
314
355
  - lib/origen_testers/parser.rb
315
356
  - lib/origen_testers/parser/description_lookup.rb
316
357
  - lib/origen_testers/parser/searchable_array.rb
@@ -347,6 +388,9 @@ files:
347
388
  - lib/origen_testers/smartest_based_tester/base/test_suite.rb
348
389
  - lib/origen_testers/smartest_based_tester/base/test_suites.rb
349
390
  - lib/origen_testers/smartest_based_tester/base/variables_file.rb
391
+ - lib/origen_testers/smartest_based_tester/decompiler.rb
392
+ - lib/origen_testers/smartest_based_tester/decompiler/avc.rb
393
+ - lib/origen_testers/smartest_based_tester/decompiler/nodes.rb
350
394
  - lib/origen_testers/smartest_based_tester/smt7.rb
351
395
  - lib/origen_testers/smartest_based_tester/smt8.rb
352
396
  - lib/origen_testers/smartest_based_tester/v93k.rb
@@ -382,18 +426,25 @@ files:
382
426
  - lib/origen_testers/stil_based_tester/stil.rb
383
427
  - lib/origen_testers/test/basic_interface.rb
384
428
  - lib/origen_testers/test/block.rb
429
+ - lib/origen_testers/test/complex_timing.rb
385
430
  - lib/origen_testers/test/custom_test_interface.rb
431
+ - lib/origen_testers/test/dummy_decompiler.rb
386
432
  - lib/origen_testers/test/dut.rb
387
433
  - lib/origen_testers/test/dut2.rb
434
+ - lib/origen_testers/test/dut_adv_timing.rb
435
+ - lib/origen_testers/test/empty_dut.rb
388
436
  - lib/origen_testers/test/interface.rb
389
437
  - lib/origen_testers/test/nvm.rb
390
438
  - lib/origen_testers/timing.rb
439
+ - lib/origen_testers/timing/timeset.rb
440
+ - lib/origen_testers/timing/timing_api.rb
391
441
  - lib/origen_testers/vector.rb
392
442
  - lib/origen_testers/vector_based_tester.rb
393
443
  - lib/origen_testers/vector_generator.rb
394
444
  - lib/origen_testers/vector_pipeline.rb
395
445
  - pattern/bitmap.rb
396
446
  - pattern/dc_instr.rb
447
+ - pattern/decompile.rb
397
448
  - pattern/delay.rb
398
449
  - pattern/freq_counter.rb
399
450
  - pattern/mem_test.rb
@@ -406,8 +457,10 @@ files:
406
457
  - pattern/nvm/j750/j750_workout.rb
407
458
  - pattern/nvm/j750/timing.rb
408
459
  - pattern/nvm/v93k/v93k_workout.rb
460
+ - pattern/pin_flip.rb
409
461
  - pattern/read_write_reg.rb
410
462
  - pattern/reset.rb
463
+ - pattern/simple.rb
411
464
  - pattern/single_overlay_store.rb
412
465
  - pattern/subroutines.rb
413
466
  - pattern/tester_overlay.rb
@@ -435,6 +488,10 @@ files:
435
488
  - templates/j750/_vt_instances.txt.erb
436
489
  - templates/j750/program_sheet.txt.erb
437
490
  - templates/manifest/v93k.yaml.erb
491
+ - templates/origen_guides/decompilation/decompilerapi.md.erb
492
+ - templates/origen_guides/decompilation/overview.md.erb
493
+ - templates/origen_guides/decompilation/platformspecifics.md.erb
494
+ - templates/origen_guides/decompilation/universalapi.md.erb
438
495
  - templates/origen_guides/pattern/common.md.erb
439
496
  - templates/origen_guides/pattern/creating.md.erb
440
497
  - templates/origen_guides/pattern/custom.md.erb
@@ -488,7 +545,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
488
545
  - !ruby/object:Gem::Version
489
546
  version: '0'
490
547
  requirements: []
491
- rubygems_version: 3.0.4
548
+ rubyforge_project:
549
+ rubygems_version: 2.7.7
492
550
  signing_key:
493
551
  specification_version: 4
494
552
  summary: This plugin provides Origen tester models to drive ATE type testers like