origen_testers 0.4.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 (199) hide show
  1. checksums.yaml +7 -0
  2. data/config/application.rb +140 -0
  3. data/config/commands.rb +73 -0
  4. data/config/development.rb +12 -0
  5. data/config/environment.rb +1 -0
  6. data/config/shared_commands.rb +47 -0
  7. data/config/users.rb +18 -0
  8. data/config/version.rb +8 -0
  9. data/lib/commands/build.rb +69 -0
  10. data/lib/origen_testers.rb +23 -0
  11. data/lib/origen_testers/api.rb +258 -0
  12. data/lib/origen_testers/basic_test_setups.rb +105 -0
  13. data/lib/origen_testers/callback_handlers.rb +58 -0
  14. data/lib/origen_testers/generator.rb +279 -0
  15. data/lib/origen_testers/generator/flow_control_api.rb +611 -0
  16. data/lib/origen_testers/generator/identity_map.rb +23 -0
  17. data/lib/origen_testers/generator/placeholder.rb +11 -0
  18. data/lib/origen_testers/generator/test_numberer.rb +23 -0
  19. data/lib/origen_testers/igxl_based_tester.rb +12 -0
  20. data/lib/origen_testers/igxl_based_tester/base.rb +641 -0
  21. data/lib/origen_testers/igxl_based_tester/base/flow.rb +171 -0
  22. data/lib/origen_testers/igxl_based_tester/base/flow_line.rb +322 -0
  23. data/lib/origen_testers/igxl_based_tester/base/generator.rb +217 -0
  24. data/lib/origen_testers/igxl_based_tester/base/patgroup.rb +109 -0
  25. data/lib/origen_testers/igxl_based_tester/base/patgroups.rb +38 -0
  26. data/lib/origen_testers/igxl_based_tester/base/patset.rb +68 -0
  27. data/lib/origen_testers/igxl_based_tester/base/patset_pattern.rb +56 -0
  28. data/lib/origen_testers/igxl_based_tester/base/patsets.rb +38 -0
  29. data/lib/origen_testers/igxl_based_tester/base/patsubr.rb +68 -0
  30. data/lib/origen_testers/igxl_based_tester/base/patsubr_pattern.rb +56 -0
  31. data/lib/origen_testers/igxl_based_tester/base/patsubrs.rb +38 -0
  32. data/lib/origen_testers/igxl_based_tester/base/test_instance.rb +326 -0
  33. data/lib/origen_testers/igxl_based_tester/base/test_instance_group.rb +58 -0
  34. data/lib/origen_testers/igxl_based_tester/base/test_instances.rb +179 -0
  35. data/lib/origen_testers/igxl_based_tester/files.rb +43 -0
  36. data/lib/origen_testers/igxl_based_tester/j750.rb +248 -0
  37. data/lib/origen_testers/igxl_based_tester/j750/flow.rb +10 -0
  38. data/lib/origen_testers/igxl_based_tester/j750/flow_line.rb +19 -0
  39. data/lib/origen_testers/igxl_based_tester/j750/generator.rb +19 -0
  40. data/lib/origen_testers/igxl_based_tester/j750/patgroup.rb +9 -0
  41. data/lib/origen_testers/igxl_based_tester/j750/patgroups.rb +10 -0
  42. data/lib/origen_testers/igxl_based_tester/j750/patset.rb +9 -0
  43. data/lib/origen_testers/igxl_based_tester/j750/patset_pattern.rb +18 -0
  44. data/lib/origen_testers/igxl_based_tester/j750/patsets.rb +10 -0
  45. data/lib/origen_testers/igxl_based_tester/j750/patsubr.rb +9 -0
  46. data/lib/origen_testers/igxl_based_tester/j750/patsubr_pattern.rb +18 -0
  47. data/lib/origen_testers/igxl_based_tester/j750/patsubrs.rb +10 -0
  48. data/lib/origen_testers/igxl_based_tester/j750/templates/flow.txt.erb +9 -0
  49. data/lib/origen_testers/igxl_based_tester/j750/templates/instances.txt.erb +16 -0
  50. data/lib/origen_testers/igxl_based_tester/j750/templates/patgroups.txt.erb +8 -0
  51. data/lib/origen_testers/igxl_based_tester/j750/templates/patsets.txt.erb +10 -0
  52. data/lib/origen_testers/igxl_based_tester/j750/templates/patsubrs.txt.erb +10 -0
  53. data/lib/origen_testers/igxl_based_tester/j750/test_instance.rb +547 -0
  54. data/lib/origen_testers/igxl_based_tester/j750/test_instance_group.rb +9 -0
  55. data/lib/origen_testers/igxl_based_tester/j750/test_instances.rb +10 -0
  56. data/lib/origen_testers/igxl_based_tester/j750_hpt.rb +34 -0
  57. data/lib/origen_testers/igxl_based_tester/j750_hpt/flow.rb +9 -0
  58. data/lib/origen_testers/igxl_based_tester/j750_hpt/flow_line.rb +9 -0
  59. data/lib/origen_testers/igxl_based_tester/j750_hpt/generator.rb +19 -0
  60. data/lib/origen_testers/igxl_based_tester/j750_hpt/patgroup.rb +9 -0
  61. data/lib/origen_testers/igxl_based_tester/j750_hpt/patgroups.rb +9 -0
  62. data/lib/origen_testers/igxl_based_tester/j750_hpt/patset.rb +9 -0
  63. data/lib/origen_testers/igxl_based_tester/j750_hpt/patset_pattern.rb +9 -0
  64. data/lib/origen_testers/igxl_based_tester/j750_hpt/patsets.rb +9 -0
  65. data/lib/origen_testers/igxl_based_tester/j750_hpt/patsubr.rb +9 -0
  66. data/lib/origen_testers/igxl_based_tester/j750_hpt/patsubr_pattern.rb +9 -0
  67. data/lib/origen_testers/igxl_based_tester/j750_hpt/patsubrs.rb +9 -0
  68. data/lib/origen_testers/igxl_based_tester/j750_hpt/test_instance.rb +515 -0
  69. data/lib/origen_testers/igxl_based_tester/j750_hpt/test_instance_group.rb +9 -0
  70. data/lib/origen_testers/igxl_based_tester/j750_hpt/test_instances.rb +9 -0
  71. data/lib/origen_testers/igxl_based_tester/parser.rb +102 -0
  72. data/lib/origen_testers/igxl_based_tester/parser/ac_spec.rb +9 -0
  73. data/lib/origen_testers/igxl_based_tester/parser/ac_specs.rb +0 -0
  74. data/lib/origen_testers/igxl_based_tester/parser/dc_spec.rb +33 -0
  75. data/lib/origen_testers/igxl_based_tester/parser/dc_specs.rb +48 -0
  76. data/lib/origen_testers/igxl_based_tester/parser/descriptions.rb +339 -0
  77. data/lib/origen_testers/igxl_based_tester/parser/flow.rb +109 -0
  78. data/lib/origen_testers/igxl_based_tester/parser/flow_line.rb +203 -0
  79. data/lib/origen_testers/igxl_based_tester/parser/flows.rb +21 -0
  80. data/lib/origen_testers/igxl_based_tester/parser/pattern_set.rb +92 -0
  81. data/lib/origen_testers/igxl_based_tester/parser/pattern_sets.rb +31 -0
  82. data/lib/origen_testers/igxl_based_tester/parser/test_instance.rb +341 -0
  83. data/lib/origen_testers/igxl_based_tester/parser/test_instances.rb +24 -0
  84. data/lib/origen_testers/igxl_based_tester/parser/timeset.rb +13 -0
  85. data/lib/origen_testers/igxl_based_tester/parser/timesets.rb +0 -0
  86. data/lib/origen_testers/igxl_based_tester/ultraflex.rb +477 -0
  87. data/lib/origen_testers/igxl_based_tester/ultraflex/flow.rb +10 -0
  88. data/lib/origen_testers/igxl_based_tester/ultraflex/flow_line.rb +19 -0
  89. data/lib/origen_testers/igxl_based_tester/ultraflex/generator.rb +19 -0
  90. data/lib/origen_testers/igxl_based_tester/ultraflex/patgroup.rb +9 -0
  91. data/lib/origen_testers/igxl_based_tester/ultraflex/patgroups.rb +10 -0
  92. data/lib/origen_testers/igxl_based_tester/ultraflex/patset.rb +9 -0
  93. data/lib/origen_testers/igxl_based_tester/ultraflex/patset_pattern.rb +18 -0
  94. data/lib/origen_testers/igxl_based_tester/ultraflex/patsets.rb +10 -0
  95. data/lib/origen_testers/igxl_based_tester/ultraflex/patsubr.rb +9 -0
  96. data/lib/origen_testers/igxl_based_tester/ultraflex/patsubr_pattern.rb +18 -0
  97. data/lib/origen_testers/igxl_based_tester/ultraflex/patsubrs.rb +10 -0
  98. data/lib/origen_testers/igxl_based_tester/ultraflex/templates/flow.txt.erb +9 -0
  99. data/lib/origen_testers/igxl_based_tester/ultraflex/templates/instances.txt.erb +16 -0
  100. data/lib/origen_testers/igxl_based_tester/ultraflex/templates/patgroups.txt.erb +9 -0
  101. data/lib/origen_testers/igxl_based_tester/ultraflex/templates/patsets.txt.erb +10 -0
  102. data/lib/origen_testers/igxl_based_tester/ultraflex/templates/patsubrs.txt.erb +10 -0
  103. data/lib/origen_testers/igxl_based_tester/ultraflex/test_instance.rb +270 -0
  104. data/lib/origen_testers/igxl_based_tester/ultraflex/test_instance_group.rb +9 -0
  105. data/lib/origen_testers/igxl_based_tester/ultraflex/test_instances.rb +10 -0
  106. data/lib/origen_testers/interface.rb +183 -0
  107. data/lib/origen_testers/parser.rb +22 -0
  108. data/lib/origen_testers/parser/description_lookup.rb +62 -0
  109. data/lib/origen_testers/parser/searchable_array.rb +30 -0
  110. data/lib/origen_testers/parser/searchable_hash.rb +30 -0
  111. data/lib/origen_testers/pattern_compilers.rb +116 -0
  112. data/lib/origen_testers/pattern_compilers/assembler.rb +88 -0
  113. data/lib/origen_testers/pattern_compilers/job.rb +96 -0
  114. data/lib/origen_testers/pattern_compilers/ultraflex_pattern_compiler.rb +599 -0
  115. data/lib/origen_testers/program_generators.rb +55 -0
  116. data/lib/origen_testers/smartest_based_tester.rb +8 -0
  117. data/lib/origen_testers/smartest_based_tester/base.rb +411 -0
  118. data/lib/origen_testers/smartest_based_tester/base/flow.rb +188 -0
  119. data/lib/origen_testers/smartest_based_tester/base/flow_node.rb +476 -0
  120. data/lib/origen_testers/smartest_based_tester/base/generator.rb +123 -0
  121. data/lib/origen_testers/smartest_based_tester/base/pattern_compiler.rb +23 -0
  122. data/lib/origen_testers/smartest_based_tester/base/pattern_master.rb +47 -0
  123. data/lib/origen_testers/smartest_based_tester/base/test_method.rb +143 -0
  124. data/lib/origen_testers/smartest_based_tester/base/test_methods.rb +73 -0
  125. data/lib/origen_testers/smartest_based_tester/base/test_methods/ac_tml.rb +33 -0
  126. data/lib/origen_testers/smartest_based_tester/base/test_methods/base_tml.rb +38 -0
  127. data/lib/origen_testers/smartest_based_tester/base/test_methods/custom_tml.rb +19 -0
  128. data/lib/origen_testers/smartest_based_tester/base/test_methods/dc_tml.rb +147 -0
  129. data/lib/origen_testers/smartest_based_tester/base/test_methods/limits.rb +43 -0
  130. data/lib/origen_testers/smartest_based_tester/base/test_suite.rb +166 -0
  131. data/lib/origen_testers/smartest_based_tester/base/test_suites.rb +58 -0
  132. data/lib/origen_testers/smartest_based_tester/v93k.rb +8 -0
  133. data/lib/origen_testers/smartest_based_tester/v93k/builder.rb +89 -0
  134. data/lib/origen_testers/smartest_based_tester/v93k/builder/flow.rb +169 -0
  135. data/lib/origen_testers/smartest_based_tester/v93k/builder/pattern_master.rb +54 -0
  136. data/lib/origen_testers/smartest_based_tester/v93k/flow.rb +10 -0
  137. data/lib/origen_testers/smartest_based_tester/v93k/flow_node.rb +9 -0
  138. data/lib/origen_testers/smartest_based_tester/v93k/generator.rb +19 -0
  139. data/lib/origen_testers/smartest_based_tester/v93k/pattern_compiler.rb +10 -0
  140. data/lib/origen_testers/smartest_based_tester/v93k/pattern_master.rb +10 -0
  141. data/lib/origen_testers/smartest_based_tester/v93k/templates/template.aiv.erb +17 -0
  142. data/lib/origen_testers/smartest_based_tester/v93k/templates/template.flow.erb +201 -0
  143. data/lib/origen_testers/smartest_based_tester/v93k/templates/template.pmfl.erb +13 -0
  144. data/lib/origen_testers/smartest_based_tester/v93k/test_method.rb +9 -0
  145. data/lib/origen_testers/smartest_based_tester/v93k/test_methods.rb +9 -0
  146. data/lib/origen_testers/smartest_based_tester/v93k/test_suite.rb +9 -0
  147. data/lib/origen_testers/smartest_based_tester/v93k/test_suites.rb +9 -0
  148. data/lib/origen_testers/test/basic_interface.rb +17 -0
  149. data/lib/origen_testers/test/block.rb +21 -0
  150. data/lib/origen_testers/test/dut.rb +184 -0
  151. data/lib/origen_testers/test/dut2.rb +76 -0
  152. data/lib/origen_testers/test/j750_base_interface.rb +119 -0
  153. data/lib/origen_testers/test/j750_hpt_interface.rb +8 -0
  154. data/lib/origen_testers/test/j750_interface.rb +8 -0
  155. data/lib/origen_testers/test/nvm.rb +94 -0
  156. data/lib/origen_testers/test/ultraflex_interface.rb +110 -0
  157. data/lib/origen_testers/test/v93k_interface.rb +115 -0
  158. data/lib/origen_testers/timing.rb +362 -0
  159. data/lib/origen_testers/vector.rb +203 -0
  160. data/lib/origen_testers/vector_based_tester.rb +42 -0
  161. data/lib/origen_testers/vector_generator.rb +623 -0
  162. data/lib/origen_testers/vector_pipeline.rb +288 -0
  163. data/pattern/dc_instr.rb +7 -0
  164. data/pattern/delay.rb +7 -0
  165. data/pattern/mem_test.rb +8 -0
  166. data/pattern/multi_vector.rb +117 -0
  167. data/pattern/multi_vector_plus1.rb +125 -0
  168. data/pattern/nvm/j750/add_late_pins.rb +3 -0
  169. data/pattern/nvm/j750/iterator_postfix_test_x_bx.rb +8 -0
  170. data/pattern/nvm/j750/iterator_test_x_bx.rb +8 -0
  171. data/pattern/nvm/j750/j750_halt.rb +159 -0
  172. data/pattern/nvm/j750/j750_workout.rb +202 -0
  173. data/pattern/nvm/j750/timing.rb +73 -0
  174. data/pattern/nvm/v93k/v93k_workout.rb +136 -0
  175. data/pattern/read_write_reg.rb +58 -0
  176. data/pattern/reset.rb +4 -0
  177. data/pattern/subroutines.rb +38 -0
  178. data/program/_additional_erase.rb +7 -0
  179. data/program/_efa_resources.rb +7 -0
  180. data/program/_erase.rb +25 -0
  181. data/program/_erase_vfy.rb +5 -0
  182. data/program/_iv_resources.rb +10 -0
  183. data/program/basic_interface.rb +5 -0
  184. data/program/components/_prb2_main.rb +6 -0
  185. data/program/flow_control.rb +164 -0
  186. data/program/prb1.rb +226 -0
  187. data/program/prb1_resources.rb +28 -0
  188. data/program/prb2.rb +40 -0
  189. data/program/test.rb +20 -0
  190. data/templates/example.txt.erb +53 -0
  191. data/templates/j750/_vt_flow.txt.erb +8 -0
  192. data/templates/j750/_vt_instances.txt.erb +4 -0
  193. data/templates/j750/program_sheet.txt.erb +9 -0
  194. data/templates/manifest/v93k.yaml.erb +22 -0
  195. data/templates/web/index.md.erb +51 -0
  196. data/templates/web/layouts/_basic.html.erb +15 -0
  197. data/templates/web/partials/_navbar.html.erb +22 -0
  198. data/templates/web/release_notes.md.erb +5 -0
  199. metadata +332 -0
@@ -0,0 +1,10 @@
1
+ module OrigenTesters
2
+ module IGXLBasedTester
3
+ class UltraFLEX
4
+ require 'origen_testers/igxl_based_tester/base/flow'
5
+ class Flow < Base::Flow
6
+ TEMPLATE = "#{Origen.root!}/lib/origen_testers/igxl_based_tester/ultraflex/templates/flow.txt.erb"
7
+ end
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,19 @@
1
+ module OrigenTesters
2
+ module IGXLBasedTester
3
+ class UltraFLEX
4
+ require 'origen_testers/igxl_based_tester/base/flow_line'
5
+ class FlowLine < Base::FlowLine
6
+ # Attributes for each flow line, these must be declared in the order they are to be output
7
+ TESTER_FLOWLINE_ATTRS = %w(label enable job part env opcode parameter tname tnum lolim hilim scale units format
8
+ bin_pass bin_fail sort_pass sort_fail result flag_pass flag_fail state
9
+ group_specifier group_sense group_condition group_name
10
+ device_sense device_condition device_name
11
+ debug_assume debug_sites comment
12
+ )
13
+
14
+ # Generate the instance method definitions based on the above
15
+ define
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,19 @@
1
+ module OrigenTesters
2
+ module IGXLBasedTester
3
+ class UltraFLEX
4
+ # Include this module in an interface class to make it an UltraFLEX interface and to give
5
+ # access to the UltraFLEX program generator API
6
+ module Generator
7
+ extend ActiveSupport::Concern
8
+
9
+ require_all "#{Origen.root!}/lib/origen_testers/igxl_based_tester/ultraflex"
10
+ require 'origen_testers/igxl_based_tester/base/generator'
11
+
12
+ included do
13
+ include Base::Generator
14
+ PLATFORM = UltraFLEX
15
+ end
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,9 @@
1
+ module OrigenTesters
2
+ module IGXLBasedTester
3
+ class UltraFLEX
4
+ require 'origen_testers/igxl_based_tester/base/patgroup'
5
+ class Patgroup < Base::Patgroup
6
+ end
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,10 @@
1
+ module OrigenTesters
2
+ module IGXLBasedTester
3
+ class UltraFLEX
4
+ require 'origen_testers/igxl_based_tester/base/patgroups'
5
+ class Patgroups < Base::Patgroups
6
+ TEMPLATE = "#{Origen.root!}/lib/origen_testers/igxl_based_tester/ultraflex/templates/patgroups.txt.erb"
7
+ end
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,9 @@
1
+ module OrigenTesters
2
+ module IGXLBasedTester
3
+ class UltraFLEX
4
+ require 'origen_testers/igxl_based_tester/base/patset'
5
+ class Patset < Base::Patset
6
+ end
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,18 @@
1
+ module OrigenTesters
2
+ module IGXLBasedTester
3
+ class UltraFLEX
4
+ require 'origen_testers/igxl_based_tester/base/patset_pattern'
5
+ class PatsetPattern < Base::PatsetPattern
6
+ # Attributes for each pattern set line
7
+ PATSET_ATTRS = %w(pattern_set td_group time_domain file_name burst start_label stop_label comment)
8
+
9
+ PATSET_DEFAULTS = {
10
+ burst: 'Yes'
11
+ }
12
+
13
+ # Generate the instance method definitions based on the above
14
+ define
15
+ end
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,10 @@
1
+ module OrigenTesters
2
+ module IGXLBasedTester
3
+ class UltraFLEX
4
+ require 'origen_testers/igxl_based_tester/base/patsets'
5
+ class Patsets < Base::Patsets
6
+ TEMPLATE = "#{Origen.root!}/lib/origen_testers/igxl_based_tester/ultraflex/templates/patsets.txt.erb"
7
+ end
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,9 @@
1
+ module OrigenTesters
2
+ module IGXLBasedTester
3
+ class UltraFLEX
4
+ require 'origen_testers/igxl_based_tester/base/patsubr'
5
+ class Patsubr < Base::Patsubr
6
+ end
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,18 @@
1
+ module OrigenTesters
2
+ module IGXLBasedTester
3
+ class UltraFLEX
4
+ require 'origen_testers/igxl_based_tester/base/patsubr_pattern'
5
+ class PatsubrPattern < Base::PatsubrPattern
6
+ # Attributes for each pattern subroutine line
7
+ PATSUBR_ATTRS = %w(file_name comment)
8
+
9
+ # Pattern subroutine defaults
10
+ PATSUBR_DEFAULTS = {
11
+ }
12
+
13
+ # Generate the instance method definitions based on the above
14
+ define
15
+ end
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,10 @@
1
+ module OrigenTesters
2
+ module IGXLBasedTester
3
+ class UltraFLEX
4
+ require 'origen_testers/igxl_based_tester/base/patsubrs'
5
+ class Patsubrs < Base::Patsubrs
6
+ TEMPLATE = "#{Origen.root!}/lib/origen_testers/igxl_based_tester/ultraflex/templates/patsubrs.txt.erb"
7
+ end
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,9 @@
1
+ % unless @append
2
+ DTFlowtableSheet,version=2.2:platform=Jaguar:toprow=-1:leftcol=-1:rightcol=-1 Flow Table
3
+ Flow Domain:
4
+ Gate Command Limits Datalog Display Results Bin Number Sort Number Flag Group Device Debug
5
+ Label Enable Job Part Env Opcode Parameter TName TNum LoLim HiLim Scale Units Format Pass Fail Pass Fail Result Pass Fail State Specifier Sense Condition Name Sense Condition Name Assume Sites Comment
6
+ % end
7
+ % collection.each do |test|
8
+ <%= test %>
9
+ % end
@@ -0,0 +1,16 @@
1
+ % unless @append
2
+ DTTestInstancesSheet,version=2.4:platform=Jaguar:toprow=-1:leftcol=-1:rightcol=-1 Test Instances
3
+
4
+ Test Procedure DC Specs AC Specs Sheet Parameters Other Parameters
5
+ Test Name Type Name Called As Category Selector Category Selector Time Sets Edge Sets Pin Levels Mixed Signal Timing Overlay Arg0 Arg1 Arg2 Arg3 Arg4 Arg5 Arg6 Arg7 Arg8 Arg9 Arg10 Arg11 Arg12 Arg13 Arg14 Arg15 Arg16 Arg17 Arg18 Arg19 Arg20 Arg21 Arg22 Arg23 Arg24 Arg25 Arg26 Arg27 Arg28 Arg29 Arg30 Arg31 Arg32 Arg33 Arg34 Arg35 Arg36 Arg37 Arg38 Arg39 Arg40 Arg41 Arg42 Arg43 Arg44 Arg45 Arg46 Arg47 Arg48 Arg49 Arg50 Arg51 Arg52 Arg53 Arg54 Arg55 Arg56 Arg57 Arg58 Arg59 Arg60 Arg61 Arg62 Arg63 Arg64 Arg65 Arg66 Arg67 Arg68 Arg69 Arg70 Arg71 Arg72 Arg73 Arg74 Arg75 Arg76 Arg77 Arg78 Arg79 Arg80 Arg81 Arg82 Arg83 Arg84 Arg85 Arg86 Arg87 Arg88 Arg89 Arg90 Arg91 Arg92 Arg93 Arg94 Arg95 Arg96 Arg97 Arg98 Arg99 Arg100 Arg101 Arg102 Arg103 Arg104 Arg105 Arg106 Arg107 Arg108 Arg109 Arg110 Arg111 Arg112 Arg113 Arg114 Arg115 Arg116 Arg117 Arg118 Arg119 Arg120 Arg121 Arg122 Arg123 Arg124 Arg125 Arg126 Arg127 Arg128 Arg129 Comment
6
+ % end
7
+ % collection.each do |test_instance|
8
+ % if test_instance.respond_to?("each")
9
+ %# Instance group case...
10
+ % test_instance.each do |ins|
11
+ <%= ins.to_s(test_instance.name) %>
12
+ % end
13
+ % else
14
+ <%= test_instance %>
15
+ % end
16
+ % end
@@ -0,0 +1,9 @@
1
+ % unless @append
2
+ DFF 1.0 Pattern Groups
3
+ ULTRAFLEX DOES NOT SUPPORT PATTERN GROUP SHEETS!!
4
+
5
+ Group Name Pattern File Comment
6
+ % end
7
+ % collection.each do |patgroup|
8
+ <%= patgroup %>
9
+ % end
@@ -0,0 +1,10 @@
1
+ % unless @append
2
+ DTPatternSetSheet,version=2.1:platform=Jaguar:toprow=-1:leftcol=-1:rightcol=-1 Pattern Sets
3
+
4
+ Pattern Set TD Group Time Domain File/Group Name Burst Start Label Stop Label Comment
5
+ % end
6
+ % collection.each do |patset|
7
+ % patset.lines.each do |line|
8
+ <%= line %>
9
+ % end
10
+ % end
@@ -0,0 +1,10 @@
1
+ % unless @append
2
+ DTPatternSubroutineSheet,version=2.0:platform=Jaguar:toprow=-1:leftcol=-1:rightcol=-1 Pattern Subroutine
3
+
4
+ Pattern Filename Comment
5
+ % end
6
+ % collection.each do |patsubr|
7
+ % patsubr.lines.each do |line|
8
+ <%= line %>
9
+ % end
10
+ % end
@@ -0,0 +1,270 @@
1
+ module OrigenTesters
2
+ module IGXLBasedTester
3
+ class UltraFLEX
4
+ require 'origen_testers/igxl_based_tester/base/test_instance'
5
+ class TestInstance < Base::TestInstance
6
+ # Attributes for each test instance line, first few are named directly
7
+ TEST_INSTANCE_ATTRS = %w(
8
+ test_name proc_type proc_name proc_called_as dc_category
9
+ dc_selector ac_category ac_selector
10
+ time_sets edge_sets pin_levels mixedsignal_timing overlay
11
+ )
12
+
13
+ # Attributes for additional test instance arguments beyond those described above
14
+ TEST_INSTANCE_EXTRA_ARGS = 130
15
+
16
+ TEST_INSTANCE_ALIASES = {
17
+ name: :test_name,
18
+ time_set: :time_sets,
19
+ timeset: :time_sets,
20
+ timesets: :time_sets,
21
+
22
+ other: {
23
+ },
24
+
25
+ empty: {
26
+ arg_list: :arg0,
27
+ start_func: :arg1,
28
+ start_of_body_f: :arg1,
29
+ pre_pat_func: :arg2,
30
+ pre_pat_f: :arg2,
31
+ pre_test_func: :arg3,
32
+ pre_test_f: :arg3,
33
+ post_test_func: :arg4,
34
+ post_test_f: :arg4,
35
+ post_pat_func: :arg5,
36
+ post_pat_f: :arg5,
37
+ end_func: :arg6,
38
+ end_of_body_f: :arg6,
39
+ start_func_args: :arg7,
40
+ start_of_body_f_args: :arg7,
41
+ pre_pat_func_args: :arg8,
42
+ pre_pat_f_args: :arg8,
43
+ pre_test_func_args: :arg9,
44
+ pre_test_f_args: :arg9,
45
+ post_test_func_args: :arg10,
46
+ post_test_f_args: :arg10,
47
+ post_pat_func_args: :arg11,
48
+ post_pat_f_args: :arg11,
49
+ end_func_args: :arg12,
50
+ end_of_body_f_args: :arg12,
51
+ utility_pins_1: :arg13,
52
+ utility_pins_0: :arg14,
53
+ init_lo: :arg15,
54
+ start_lo: :arg15,
55
+ init_hi: :arg16,
56
+ start_hi: :arg16,
57
+ init_hiz: :arg17,
58
+ start_hiz: :arg17,
59
+ float_pins: :arg18,
60
+ disable_pins: :arg19
61
+ },
62
+
63
+ # Functional test instances
64
+ functional: {
65
+ arg_list: :arg0,
66
+ pattern: :arg1,
67
+ patterns: :arg1,
68
+ start_func: :arg2,
69
+ start_of_body_f: :arg2,
70
+ pre_pat_func: :arg3,
71
+ pre_pat_f: :arg3,
72
+ pre_test_func: :arg4,
73
+ pre_test_f: :arg4,
74
+ post_test_func: :arg5,
75
+ post_test_f: :arg5,
76
+ post_pat_func: :arg6,
77
+ post_pat_f: :arg6,
78
+ end_func: :arg7,
79
+ end_of_body_f: :arg7,
80
+ set_pass_fail: :arg8,
81
+ report_result: :arg8,
82
+ result_mode: :arg9,
83
+ init_lo: :arg10,
84
+ start_lo: :arg10,
85
+ init_hi: :arg11,
86
+ start_hi: :arg11,
87
+ init_hiz: :arg12,
88
+ start_hiz: :arg12,
89
+ disable_pins: :arg13,
90
+ float_pins: :arg14,
91
+ start_func_args: :arg15,
92
+ start_of_body_f_args: :arg15,
93
+ pre_pat_func_args: :arg16,
94
+ pre_pat_f_args: :arg16,
95
+ pre_test_func_args: :arg17,
96
+ pre_test_f_args: :arg17,
97
+ post_test_func_args: :arg18,
98
+ post_test_f_args: :arg18,
99
+ post_pat_func_args: :arg19,
100
+ post_pat_f_args: :arg19,
101
+ end_func_args: :arg20,
102
+ end_of_body_f_args: :arg20,
103
+ utility_pins_1: :arg21,
104
+ utility_pins_0: :arg22,
105
+ pat_flag_func: :arg23,
106
+ pat_flag_f: :arg23,
107
+ PatFlagF: :arg23,
108
+ pat_flag_func_args: :arg24,
109
+ pat_flag_f_args: :arg24,
110
+ relay_mode: :arg25,
111
+ threading: :arg26,
112
+ match_all_sites: :arg27,
113
+ wait_flag1: :arg28,
114
+ wait_flag2: :arg29,
115
+ wait_flag3: :arg30,
116
+ wait_flag4: :arg31,
117
+ validating: :arg32,
118
+ wait_time: :arg33,
119
+ pattern_timeout: :arg33,
120
+ wait_time_domain: :arg34,
121
+ concurrent_mode: :arg35
122
+ },
123
+
124
+ pin_pmu: {
125
+ arg_list: :arg0,
126
+ hsp_start: :arg1,
127
+ start_func: :arg2,
128
+ start_of_body_f: :arg2,
129
+ pre_pat_func: :arg3,
130
+ pre_pat_f: :arg3,
131
+ pre_test_func: :arg4,
132
+ pre_test_f: :arg4,
133
+ post_test_func: :arg5,
134
+ post_test_f: :arg5,
135
+ post_pat_func: :arg6,
136
+ post_pat_f: :arg6,
137
+ end_func: :arg7,
138
+ end_of_body_f: :arg7,
139
+ precond_pat: :arg8,
140
+ hold_state_pat: :arg9,
141
+ holdstate_pat: :arg9,
142
+ pattern: :arg9,
143
+ pcp_stop: :arg10,
144
+ start_lo: :arg11,
145
+ init_lo: :arg11,
146
+ start_hi: :arg12,
147
+ init_hi: :arg12,
148
+ start_hiz: :arg13,
149
+ init_hiz: :arg13,
150
+ disable_pins: :arg14,
151
+ float_pins: :arg15,
152
+ pinlist: :arg16,
153
+ pin: :arg16,
154
+ pin_list: :arg16,
155
+ measure_mode: :arg17,
156
+ settling_time: :arg18,
157
+ force_cond_1: :arg19,
158
+ force_cond: :arg19,
159
+ force_condition: :arg19,
160
+ force_cond_2: :arg20,
161
+ relay_mode: :arg21,
162
+ start_func_args: :arg22,
163
+ start_of_body_f_args: :arg22,
164
+ pre_pat_func_args: :arg23,
165
+ pre_pat_f_args: :arg23,
166
+ pre_test_func_args: :arg24,
167
+ pre_test_f_args: :arg24,
168
+ post_test_func_args: :arg25,
169
+ post_test_f_args: :arg25,
170
+ post_pat_func_args: :arg26,
171
+ post_pat_f_args: :arg26,
172
+ end_func_args: :arg27,
173
+ end_of_body_f_args: :arg27,
174
+ pcp_start: :arg28,
175
+ pcp_check_pg: :arg29,
176
+ hsp_stop: :arg30,
177
+ hsp_check_pg: :arg31,
178
+ sampling_time: :arg32,
179
+ samples: :arg33,
180
+ resume_pat: :arg34,
181
+ vcl: :arg35,
182
+ vch: :arg36,
183
+ utility_pins_1: :arg37,
184
+ utility_pins_0: :arg38,
185
+ wait_flag1: :arg39,
186
+ wait_flag2: :arg40,
187
+ wait_flag3: :arg41,
188
+ wait_flag4: :arg42,
189
+ validating: :arg43,
190
+ force_irange: :arg44,
191
+ meas_irange: :arg45,
192
+ wait_time_out: :arg46,
193
+ pcp_disable_alarm_check: :arg47,
194
+ hsp_disable_alarm_check: :arg48,
195
+ testing_in_series: :arg49,
196
+ background_meas_mode: :arg50,
197
+ background_force_irange: :arg51,
198
+ background_meas_irange: :arg52,
199
+ background_force_cond: :arg53,
200
+ pins_alt: :arg54,
201
+ measure_mode_alt: :arg55,
202
+ force_cond_alt: :arg56,
203
+ force_irange_alt: :arg57,
204
+ meas_irange_alt: :arg58
205
+ }
206
+
207
+ }
208
+
209
+ TEST_INSTANCE_DEFAULTS = {
210
+ empty: {
211
+ arg_list: 'StartOfBodyF,PrePatF,PreTestF,PostTestF,PostPatF,EndOfBodyF,StartOfBodyFArgs,PrePatFArgs,PreTestFArgs,PostTestFArgs,PostPatFArgs,EndOfBodyFArgs,Util1Pins,Util0Pins,DriveLoPins,DriveHiPins,DriveZPins,FloatPins,DisablePins',
212
+ proc_type: 'VBT',
213
+ proc_name: 'Empty_T',
214
+ proc_called_as: 'Excel Macro'
215
+ },
216
+ other: {
217
+ proc_type: 'Other',
218
+ proc_called_as: 'Excel Macro'
219
+ },
220
+ functional: {
221
+ arg_list: 'Patterns,StartOfBodyF,PrePatF,PreTestF,PostTestF,PostPatF,EndOfBodyF,ReportResult,ResultMode,DriveLoPins,DriveHiPins,DriveZPins,DisablePins,FloatPins,StartOfBodyFArgs,PrePatFArgs,PreTestFArgs,PostTestFArgs,PostPatFArgs,EndOfBodyFArgs,Util1Pins,Util0Pins,PatFlagF,PatFlagFArgs,RelayMode,PatThreading,MatchAllSites,WaitFlagA,WaitFlagB,WaitFlagC,WaitFlagD,Validating_,PatternTimeout,WaitTimeDomain,ConcurrentMode',
222
+ proc_type: 'VBT',
223
+ proc_name: 'Functional_T',
224
+ proc_called_as: 'Excel Macro',
225
+ set_pass_fail: 1,
226
+ relay_mode: 1,
227
+ threading: 0,
228
+ match_all_sites: 0,
229
+ wait_flag1: -2, # waitoff
230
+ wait_flag2: -2, # waitoff
231
+ wait_flag3: -2, # waitoff
232
+ wait_flag4: -2, # waitoff
233
+ wait_time: 30
234
+ },
235
+ pin_pmu: {
236
+ arg_list: 'HspStartLabel,StartOfBodyF,PrePatF,PreTestF,PostTestF,PostPatF,EndOfBodyF,PreconditionPat,HoldStatePat,PcpStopLabel,DriveLoPins,DriveHiPins,DriveZPins,DisablePins,FloatPins,Pins,MeasureMode,SettlingTime,ForceCond1,ForceCond2,RelayMode,StartOfBodyFArgs,PrePatFArgs,PreTestFArgs,PostTestFArgs,PostPatFArgs,EndOfBodyFArgs,PcpStartLabel,PcpCheckPatGen,HspStopLabel,HspCheckPatGen,SamplingTime,SampleCount,HspResumePat,VClampLo,VClampHi,Util1Pins,Util0Pins,WaitFlagA,WaitFlagB,WaitFlagC,WaitFlagD,Validating_,ForceIRange,MeasIRange,PatternTimeout,PcpDisableAlarmCheck,HspDisableAlarmCheck,TestingInSeries,BackgroundMeasureMode,BackgroundForceIRange,BackgroundMeasIRange,BackgroundForceCond,PinsAlt,MeasureModeAlt,ForceCondAlt,ForceIRangeAlt,MeasIRangeAlt',
237
+ proc_type: 'VBT',
238
+ proc_name: 'PinPmu_T',
239
+ proc_called_as: 'Excel Macro',
240
+ wait_flag1: -2, # waitoff
241
+ wait_flag2: -2, # waitoff
242
+ wait_flag3: -2, # waitoff
243
+ wait_flag4: -2, # waitoff
244
+ }
245
+ }
246
+
247
+ # Generate the instance method definitions based on the above
248
+ define
249
+
250
+ # Set the cpu wait flags for the given test instance
251
+ # instance.set_wait_flags(:a)
252
+ # instance.set_wait_flags(:a, :c)
253
+ # assumes set flag means to set it high (waithi = -1 )
254
+ # assumes clr flag means to set it off (waitoff = -2)
255
+ # does not yet support waitlo = 0
256
+ def set_wait_flags(*flags)
257
+ a = (flags.include?(:a) || flags.include?(:a)) ? '-1' : '-2'
258
+ b = (flags.include?(:b) || flags.include?(:b)) ? '-1' : '-2'
259
+ c = (flags.include?(:c) || flags.include?(:c)) ? '-1' : '-2'
260
+ d = (flags.include?(:d) || flags.include?(:d)) ? '-1' : '-2'
261
+ self.wait_flag1 = a
262
+ self.wait_flag2 = b
263
+ self.wait_flag3 = c
264
+ self.wait_flag4 = d
265
+ self
266
+ end
267
+ end
268
+ end
269
+ end
270
+ end