ruby-vpi 8.1.0 → 8.2.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 (221) hide show
  1. data/HISTORY +17 -0
  2. data/bin/generate_test_tpl/bench.v +1 -1
  3. data/bin/generate_test_tpl/runner.rake +3 -1
  4. data/doc/background.organization.html +1 -1
  5. data/doc/index.html +2 -2
  6. data/doc/manual.txt +2 -2
  7. data/doc/src/manual.xml +2 -2
  8. data/doc/usage.tutorial.html +1 -1
  9. data/history.html +27 -0
  10. data/history.part.html +27 -0
  11. data/lib/ruby-vpi/runner.rb +29 -12
  12. data/ref/c/annotated.html +1 -6
  13. data/ref/c/common_8h.html +1 -1
  14. data/ref/c/files.html +1 -3
  15. data/ref/c/functions.html +24 -44
  16. data/ref/c/functions_vars.html +24 -44
  17. data/ref/c/globals.html +5 -211
  18. data/ref/c/globals_0x63.html +32 -49
  19. data/ref/c/globals_0x65.html +3 -10
  20. data/ref/c/globals_0x66.html +3 -20
  21. data/ref/c/globals_0x70.html +19 -26
  22. data/ref/c/globals_0x72.html +4 -15
  23. data/ref/c/globals_0x73.html +13 -199
  24. data/ref/c/globals_0x74.html +2 -9
  25. data/ref/c/globals_0x76.html +415 -426
  26. data/ref/c/globals_0x78.html +3 -10
  27. data/ref/c/globals_defs.html +30 -35
  28. data/ref/c/globals_defs_0x65.html +2 -7
  29. data/ref/c/globals_defs_0x70.html +3 -8
  30. data/ref/c/globals_defs_0x76.html +413 -420
  31. data/ref/c/globals_defs_0x78.html +2 -7
  32. data/ref/c/globals_enum.html +1 -1
  33. data/ref/c/globals_eval.html +1 -1
  34. data/ref/c/globals_func.html +14 -173
  35. data/ref/c/globals_type.html +26 -29
  36. data/ref/c/globals_vars.html +4 -88
  37. data/ref/c/index.html +1 -1
  38. data/ref/c/relay_8cin.html +1 -1
  39. data/ref/c/relay_8hin.html +1 -1
  40. data/ref/c/ruby-vpi_8c.html +1 -1
  41. data/ref/c/structrelay____RubyOptions____def.html +1 -1
  42. data/ref/c/structt__cb__data.html +6 -23
  43. data/ref/c/structt__vpi__delay.html +3 -20
  44. data/ref/c/structt__vpi__error__info.html +3 -71
  45. data/ref/c/structt__vpi__strengthval.html +3 -3
  46. data/ref/c/structt__vpi__systf__data.html +12 -46
  47. data/ref/c/structt__vpi__time.html +3 -3
  48. data/ref/c/structt__vpi__value.html +3 -113
  49. data/ref/c/structt__vpi__vecval.html +3 -3
  50. data/ref/c/structt__vpi__vlog__info.html +3 -54
  51. data/ref/c/swig_8cin.html +2 -2
  52. data/ref/c/swig_8hin.html +1 -1
  53. data/ref/c/verilog_8h.html +1 -1
  54. data/ref/c/vlog_8cin.html +1 -1
  55. data/ref/c/vlog_8hin.html +1 -1
  56. data/ref/c/vpi__user_8h.html +16 -16
  57. data/ref/ruby/classes/ERB.html +5 -5
  58. data/ref/ruby/classes/ERB.src/{M000032.html → M000033.html} +0 -0
  59. data/ref/ruby/classes/FileUtils.html +10 -10
  60. data/ref/ruby/classes/FileUtils.src/M000088.html +5 -5
  61. data/ref/ruby/classes/FileUtils.src/M000089.html +18 -0
  62. data/ref/ruby/classes/Integer.html +68 -68
  63. data/ref/ruby/classes/Integer.src/M000011.html +12 -5
  64. data/ref/ruby/classes/Integer.src/M000012.html +5 -5
  65. data/ref/ruby/classes/Integer.src/M000013.html +5 -5
  66. data/ref/ruby/classes/Integer.src/M000014.html +5 -5
  67. data/ref/ruby/classes/Integer.src/M000015.html +5 -5
  68. data/ref/ruby/classes/Integer.src/M000016.html +18 -0
  69. data/ref/ruby/classes/Integer.src/M000019.html +9 -9
  70. data/ref/ruby/classes/Integer.src/M000020.html +9 -12
  71. data/ref/ruby/classes/Integer.src/M000021.html +12 -18
  72. data/ref/ruby/classes/Integer.src/M000022.html +18 -12
  73. data/ref/ruby/classes/Integer.src/M000023.html +12 -17
  74. data/ref/ruby/classes/Integer.src/M000024.html +30 -0
  75. data/ref/ruby/classes/OutputInfo.html +5 -5
  76. data/ref/ruby/classes/OutputInfo.src/{M000028.html → M000029.html} +0 -0
  77. data/ref/ruby/classes/RDoc.html +5 -5
  78. data/ref/ruby/classes/RDoc.src/{M000091.html → M000092.html} +0 -0
  79. data/ref/ruby/classes/RubyVpi.html +10 -10
  80. data/ref/ruby/classes/RubyVpi.src/M000090.html +37 -7
  81. data/ref/ruby/classes/RubyVpi.src/M000091.html +20 -0
  82. data/ref/ruby/classes/SWIG/TYPE_p_unsigned_int.html +45 -45
  83. data/ref/ruby/classes/SWIG/TYPE_p_unsigned_int.src/M000080.html +5 -5
  84. data/ref/ruby/classes/SWIG/TYPE_p_unsigned_int.src/M000081.html +5 -9
  85. data/ref/ruby/classes/SWIG/TYPE_p_unsigned_int.src/M000082.html +9 -31
  86. data/ref/ruby/classes/SWIG/TYPE_p_unsigned_int.src/M000083.html +31 -69
  87. data/ref/ruby/classes/SWIG/TYPE_p_unsigned_int.src/M000084.html +69 -114
  88. data/ref/ruby/classes/SWIG/TYPE_p_unsigned_int.src/M000085.html +114 -13
  89. data/ref/ruby/classes/SWIG/TYPE_p_unsigned_int.src/M000086.html +13 -5
  90. data/ref/ruby/classes/SWIG/TYPE_p_unsigned_int.src/M000087.html +18 -0
  91. data/ref/ruby/classes/String.html +10 -10
  92. data/ref/ruby/classes/String.src/M000031.html +28 -5
  93. data/ref/ruby/classes/String.src/M000032.html +18 -0
  94. data/ref/ruby/classes/Table.html +20 -20
  95. data/ref/ruby/classes/Table.src/M000025.html +25 -5
  96. data/ref/ruby/classes/Table.src/M000026.html +5 -5
  97. data/ref/ruby/classes/Table.src/M000027.html +5 -5
  98. data/ref/ruby/classes/Table.src/M000028.html +18 -0
  99. data/ref/ruby/classes/Template.html +5 -5
  100. data/ref/ruby/classes/Template.src/{M000029.html → M000030.html} +0 -0
  101. data/ref/ruby/classes/VerilogParser/Module/Parameter.html +5 -5
  102. data/ref/ruby/classes/VerilogParser/Module/Parameter.src/{M000009.html → M000010.html} +0 -0
  103. data/ref/ruby/classes/VerilogParser/Module/Port.html +20 -20
  104. data/ref/ruby/classes/VerilogParser/Module/Port.src/M000006.html +8 -5
  105. data/ref/ruby/classes/VerilogParser/Module/Port.src/M000007.html +5 -5
  106. data/ref/ruby/classes/VerilogParser/Module/Port.src/M000008.html +5 -5
  107. data/ref/ruby/classes/VerilogParser/Module/Port.src/M000009.html +18 -0
  108. data/ref/ruby/classes/VerilogParser/Module.html +5 -5
  109. data/ref/ruby/classes/VerilogParser/Module.src/{M000004.html → M000005.html} +0 -0
  110. data/ref/ruby/classes/VerilogParser.html +5 -5
  111. data/ref/ruby/classes/VerilogParser.src/{M000003.html → M000004.html} +0 -0
  112. data/ref/ruby/classes/XX/Document.html +45 -45
  113. data/ref/ruby/classes/XX/Document.src/M000071.html +9 -7
  114. data/ref/ruby/classes/XX/Document.src/M000072.html +7 -7
  115. data/ref/ruby/classes/XX/Document.src/M000073.html +7 -7
  116. data/ref/ruby/classes/XX/Document.src/M000074.html +7 -9
  117. data/ref/ruby/classes/XX/Document.src/M000075.html +9 -8
  118. data/ref/ruby/classes/XX/Document.src/M000076.html +8 -8
  119. data/ref/ruby/classes/XX/Document.src/M000077.html +8 -21
  120. data/ref/ruby/classes/XX/Document.src/M000078.html +21 -85
  121. data/ref/ruby/classes/XX/Document.src/M000079.html +98 -0
  122. data/ref/ruby/classes/XX/HTML4/Strict.html +5 -5
  123. data/ref/ruby/classes/XX/HTML4/Strict.src/{M000036.html → M000037.html} +0 -0
  124. data/ref/ruby/classes/XX/HTML4/Transitional.html +5 -5
  125. data/ref/ruby/classes/XX/HTML4/Transitional.src/{M000035.html → M000036.html} +0 -0
  126. data/ref/ruby/classes/XX/HTML4.html +5 -5
  127. data/ref/ruby/classes/XX/HTML4.src/{M000034.html → M000035.html} +0 -0
  128. data/ref/ruby/classes/XX/Markup/ClassMethods.html +40 -40
  129. data/ref/ruby/classes/XX/Markup/ClassMethods.src/M000043.html +9 -7
  130. data/ref/ruby/classes/XX/Markup/ClassMethods.src/M000044.html +7 -12
  131. data/ref/ruby/classes/XX/Markup/ClassMethods.src/M000045.html +12 -7
  132. data/ref/ruby/classes/XX/Markup/ClassMethods.src/M000046.html +7 -14
  133. data/ref/ruby/classes/XX/Markup/ClassMethods.src/M000047.html +14 -7
  134. data/ref/ruby/classes/XX/Markup/ClassMethods.src/M000048.html +7 -14
  135. data/ref/ruby/classes/XX/Markup/ClassMethods.src/M000049.html +14 -9
  136. data/ref/ruby/classes/XX/Markup/ClassMethods.src/M000050.html +22 -0
  137. data/ref/ruby/classes/XX/Markup/InstanceMethods.html +100 -100
  138. data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000051.html +43 -20
  139. data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000052.html +20 -18
  140. data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000053.html +18 -35
  141. data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000054.html +35 -7
  142. data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000055.html +7 -18
  143. data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000056.html +18 -19
  144. data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000057.html +19 -19
  145. data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000058.html +19 -15
  146. data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000059.html +15 -10
  147. data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000060.html +10 -13
  148. data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000061.html +13 -7
  149. data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000062.html +7 -7
  150. data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000063.html +7 -7
  151. data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000064.html +7 -7
  152. data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000065.html +7 -7
  153. data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000066.html +7 -8
  154. data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000067.html +8 -7
  155. data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000068.html +7 -7
  156. data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000069.html +7 -7
  157. data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000070.html +20 -0
  158. data/ref/ruby/classes/XX/Markup.html +5 -5
  159. data/ref/ruby/classes/XX/Markup.src/{M000041.html → M000042.html} +0 -0
  160. data/ref/ruby/classes/XX/XHTML/Strict.html +5 -5
  161. data/ref/ruby/classes/XX/XHTML/Strict.src/{M000039.html → M000040.html} +0 -0
  162. data/ref/ruby/classes/XX/XHTML/Transitional.html +5 -5
  163. data/ref/ruby/classes/XX/XHTML/Transitional.src/{M000038.html → M000039.html} +0 -0
  164. data/ref/ruby/classes/XX/XHTML.html +5 -5
  165. data/ref/ruby/classes/XX/XHTML.src/{M000037.html → M000038.html} +0 -0
  166. data/ref/ruby/classes/XX/XML.html +5 -5
  167. data/ref/ruby/classes/XX/XML.src/{M000033.html → M000034.html} +0 -0
  168. data/ref/ruby/classes/XX/XMLish.html +5 -5
  169. data/ref/ruby/classes/XX/XMLish.src/{M000040.html → M000041.html} +0 -0
  170. data/ref/ruby/created.rid +1 -1
  171. data/ref/ruby/files/lib/ruby-vpi/runner_rb.html +29 -1
  172. data/ref/ruby/files/lib/ruby-vpi/runner_rb.src/M000002.html +6 -6
  173. data/ref/ruby/files/lib/ruby-vpi/runner_rb.src/M000003.html +26 -0
  174. data/ref/ruby/fr_method_index.html +90 -89
  175. data/samp/counter/counter_rspecTest_bench.v +3 -1
  176. data/samp/counter/counter_rspecTest_runner.rake +3 -1
  177. data/samp/counter/counter_unitTest_bench.v +2 -2
  178. data/samp/counter/counter_unitTest_runner.rake +3 -1
  179. data/samp/pipelined_alu/InputGenerator.rb +15 -40
  180. data/samp/pipelined_alu/hw5_unit_test_bench.v +2 -7
  181. data/samp/pipelined_alu/hw5_unit_test_proto.rb +8 -3
  182. data/samp/pipelined_alu/hw5_unit_test_runner.rake +3 -1
  183. data/samp/pipelined_alu/hw5_unit_test_spec.rb +4 -4
  184. metadata +30 -55
  185. data/ref/c/globals_0x62.html +0 -62
  186. data/ref/c/globals_0x67.html +0 -64
  187. data/ref/c/globals_0x69.html +0 -62
  188. data/ref/c/globals_0x6c.html +0 -64
  189. data/ref/c/globals_0x6d.html +0 -62
  190. data/ref/c/globals_0x6e.html +0 -63
  191. data/ref/c/globals_0x75.html +0 -63
  192. data/ref/c/globals_defs_0x6c.html +0 -57
  193. data/ref/c/globals_defs_0x6e.html +0 -56
  194. data/ref/c/globals_defs_0x72.html +0 -57
  195. data/ref/c/globals_defs_0x73.html +0 -164
  196. data/ref/c/globals_defs_0x75.html +0 -56
  197. data/ref/c/globals_func_0x66.html +0 -62
  198. data/ref/c/globals_func_0x67.html +0 -55
  199. data/ref/c/globals_func_0x69.html +0 -53
  200. data/ref/c/globals_func_0x70.html +0 -53
  201. data/ref/c/globals_func_0x72.html +0 -57
  202. data/ref/c/globals_func_0x73.html +0 -114
  203. data/ref/c/globals_func_0x76.html +0 -57
  204. data/ref/c/structswig__cast__info.html +0 -98
  205. data/ref/c/structswig__class.html +0 -115
  206. data/ref/c/structswig__module__info.html +0 -132
  207. data/ref/c/structswig__type__info.html +0 -132
  208. data/ref/c/swig__vpi_8h.html +0 -8739
  209. data/ref/c/swig__wrap_8cin.html +0 -11556
  210. data/ref/c/unions__vpi__value__value.html +0 -166
  211. data/ref/ruby/classes/FileUtils.src/M000087.html +0 -18
  212. data/ref/ruby/classes/Integer.src/M000010.html +0 -25
  213. data/ref/ruby/classes/Integer.src/M000018.html +0 -22
  214. data/ref/ruby/classes/RubyVpi.src/M000089.html +0 -50
  215. data/ref/ruby/classes/SWIG/TYPE_p_unsigned_int.src/M000079.html +0 -18
  216. data/ref/ruby/classes/String.src/M000030.html +0 -41
  217. data/ref/ruby/classes/Table.src/M000024.html +0 -38
  218. data/ref/ruby/classes/VerilogParser/Module/Port.src/M000005.html +0 -21
  219. data/ref/ruby/classes/XX/Document.src/M000070.html +0 -22
  220. data/ref/ruby/classes/XX/Markup/ClassMethods.src/M000042.html +0 -22
  221. data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000050.html +0 -56
@@ -5,123 +5,78 @@
5
5
 
6
6
  <html>
7
7
  <head>
8
- <title>method_missing (SWIG::TYPE_p_unsigned_int)</title>
8
+ <title>put_value (SWIG::TYPE_p_unsigned_int)</title>
9
9
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
10
10
  <link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
11
11
  </head>
12
12
  <body class="standalone-code">
13
- <pre> <span class="ruby-comment cmt"># File lib/ruby-vpi/vpi.rb, line 189</span>
14
- 189: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">method_missing</span> <span class="ruby-identifier">aMsg</span>, <span class="ruby-operator">*</span><span class="ruby-identifier">aArgs</span>, <span class="ruby-operator">&amp;</span><span class="ruby-identifier">aBlockArg</span>
15
- 190: <span class="ruby-identifier">methName</span> = <span class="ruby-identifier">aMsg</span>.<span class="ruby-identifier">to_s</span>
16
- 191:
17
- 192: <span class="ruby-comment cmt"># determine if property is being written</span>
18
- 193: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">isAssign</span> = <span class="ruby-identifier">methName</span> <span class="ruby-operator">=~</span> <span class="ruby-constant">ASSIGN_REGEXP</span>
19
- 194: <span class="ruby-identifier">methName</span>.<span class="ruby-identifier">sub!</span> <span class="ruby-constant">ASSIGN_REGEXP</span>, <span class="ruby-value str">''</span>
20
- 195: <span class="ruby-keyword kw">end</span>
21
- 196:
22
- 197: <span class="ruby-comment cmt"># determine if property is being queried</span>
23
- 198: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">isQuery</span> = <span class="ruby-identifier">methName</span> <span class="ruby-operator">=~</span> <span class="ruby-constant">QUERY_REGEXP</span>
24
- 199: <span class="ruby-identifier">methName</span>.<span class="ruby-identifier">sub!</span> <span class="ruby-constant">QUERY_REGEXP</span>, <span class="ruby-value str">''</span>
25
- 200: <span class="ruby-keyword kw">end</span>
26
- 201:
27
- 202: <span class="ruby-comment cmt"># parse Accessor parameter</span>
28
- 203: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">accessor</span> = <span class="ruby-identifier">methName</span>[<span class="ruby-constant">HINT_REGEXP</span>, <span class="ruby-value">1</span>]
29
- 204: <span class="ruby-identifier">methName</span>.<span class="ruby-identifier">sub!</span> <span class="ruby-constant">HINT_REGEXP</span>, <span class="ruby-value str">''</span>
30
- 205: <span class="ruby-keyword kw">end</span>
31
- 206:
32
- 207: <span class="ruby-comment cmt"># parse Operation parameter</span>
33
- 208: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">operation</span> = <span class="ruby-identifier">methName</span>[<span class="ruby-constant">PREFIX_REGEXP</span>, <span class="ruby-value">1</span>]
34
- 209: <span class="ruby-identifier">methName</span>.<span class="ruby-identifier">sub!</span> <span class="ruby-constant">PREFIX_REGEXP</span>, <span class="ruby-value str">''</span>
35
- 210: <span class="ruby-keyword kw">end</span>
36
- 211:
37
- 212: <span class="ruby-comment cmt"># resolve Property parameter into a valid VPI property</span>
38
- 213: <span class="ruby-identifier">propName</span> = <span class="ruby-identifier">methName</span>[<span class="ruby-value">0</span>, <span class="ruby-value">1</span>].<span class="ruby-identifier">upcase</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">methName</span>[<span class="ruby-value">1</span><span class="ruby-operator">..</span><span class="ruby-value">-1</span>]
39
- 214: <span class="ruby-identifier">propName</span>.<span class="ruby-identifier">insert</span>(<span class="ruby-value">0</span>, <span class="ruby-value str">'Vpi'</span>) <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">methName</span> <span class="ruby-operator">=~</span> <span class="ruby-regexp re">/^vpi/</span>
40
- 215:
41
- 216: <span class="ruby-identifier">puts</span> <span class="ruby-value str">''</span>, <span class="ruby-constant">Kernel</span>.<span class="ruby-identifier">caller</span>.<span class="ruby-identifier">join</span>(<span class="ruby-value str">&quot;\n&quot;</span>), <span class="ruby-value str">''</span>, <span class="ruby-node">&quot;operation: #{operation}&quot;</span>, <span class="ruby-node">&quot;meth: #{aMsg}&quot;</span>, <span class="ruby-node">&quot;args: #{aArgs.inspect}&quot;</span>, <span class="ruby-node">&quot;name: #{methName}&quot;</span>, <span class="ruby-node">&quot;prop: #{propName}&quot;</span>, <span class="ruby-node">&quot;assign: #{isAssign}&quot;</span>, <span class="ruby-node">&quot;query: #{isQuery}&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">$DEBUG</span>
42
- 217:
43
- 218: <span class="ruby-keyword kw">begin</span>
44
- 219: <span class="ruby-identifier">prop</span> = <span class="ruby-constant">Vpi</span>.<span class="ruby-identifier">const_get</span>(<span class="ruby-identifier">propName</span>)
45
- 220: <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">NameError</span>
46
- 221: <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>, <span class="ruby-node">&quot;invalid VPI property #{propName.inspect}&quot;</span>
47
- 222: <span class="ruby-keyword kw">end</span>
48
- 223:
49
- 224: <span class="ruby-comment cmt"># access the VPI property</span>
50
- 225: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">operation</span>
51
- 226: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">send</span>(<span class="ruby-identifier">operation</span>.<span class="ruby-identifier">to_sym</span>, <span class="ruby-identifier">prop</span>, <span class="ruby-operator">*</span><span class="ruby-identifier">aArgs</span>, <span class="ruby-operator">&amp;</span><span class="ruby-identifier">aBlockArg</span>)
52
- 227: <span class="ruby-keyword kw">else</span>
53
- 228: <span class="ruby-identifier">loop</span> <span class="ruby-keyword kw">do</span>
54
- 229: <span class="ruby-identifier">puts</span> <span class="ruby-node">&quot;looping, accessor: #{accessor}&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">$DEBUG</span>
55
- 230:
56
- 231: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">accessor</span>
57
- 232: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'d'</span> <span class="ruby-comment cmt"># delay values</span>
58
- 233: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">isAssign</span>
59
- 234: <span class="ruby-comment cmt"># TODO: vpi_put_delays</span>
60
- 235: <span class="ruby-keyword kw">else</span>
61
- 236: <span class="ruby-comment cmt"># TODO: vpi_get_delays</span>
62
- 237: <span class="ruby-keyword kw">end</span>
63
- 238:
64
- 239: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'l'</span> <span class="ruby-comment cmt"># logic values</span>
65
- 240: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">isAssign</span>
66
- 241: <span class="ruby-identifier">value</span> = <span class="ruby-identifier">aArgs</span>.<span class="ruby-identifier">shift</span>
67
- 242: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">put_value</span>(<span class="ruby-identifier">value</span>, <span class="ruby-identifier">prop</span>, <span class="ruby-operator">*</span><span class="ruby-identifier">aArgs</span>)
68
- 243: <span class="ruby-keyword kw">else</span>
69
- 244: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">get_value</span>(<span class="ruby-identifier">prop</span>)
70
- 245: <span class="ruby-keyword kw">end</span>
71
- 246:
72
- 247: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'i'</span> <span class="ruby-comment cmt"># integer values</span>
73
- 248: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">vpi_get</span>(<span class="ruby-identifier">prop</span>, <span class="ruby-keyword kw">self</span>) <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">isAssign</span>
74
- 249:
75
- 250: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'b'</span> <span class="ruby-comment cmt"># boolean values</span>
76
- 251: <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">isAssign</span>
77
- 252: <span class="ruby-identifier">value</span> = <span class="ruby-identifier">vpi_get</span>(<span class="ruby-identifier">prop</span>, <span class="ruby-keyword kw">self</span>)
78
- 253: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">value</span> <span class="ruby-operator">&amp;&amp;</span> (<span class="ruby-identifier">value</span> <span class="ruby-operator">!=</span> <span class="ruby-value">0</span>) <span class="ruby-comment cmt"># zero is false in C</span>
79
- 254: <span class="ruby-keyword kw">end</span>
80
- 255:
81
- 256: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'s'</span> <span class="ruby-comment cmt"># string values</span>
82
- 257: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">vpi_get_str</span>(<span class="ruby-identifier">prop</span>, <span class="ruby-keyword kw">self</span>) <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">isAssign</span>
83
- 258:
84
- 259: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'h'</span> <span class="ruby-comment cmt"># handle values</span>
85
- 260: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">vpi_handle</span>(<span class="ruby-identifier">prop</span>, <span class="ruby-keyword kw">self</span>) <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">isAssign</span>
86
- 261:
87
- 262: <span class="ruby-keyword kw">else</span> <span class="ruby-comment cmt"># accessor not specified. guess its value from property name</span>
88
- 263: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">isQuery</span>
89
- 264: <span class="ruby-identifier">accessor</span> = <span class="ruby-value str">'b'</span>
90
- 265: <span class="ruby-keyword kw">redo</span>
91
- 266: <span class="ruby-keyword kw">end</span>
92
- 267:
93
- 268: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">propName</span>
94
- 269: <span class="ruby-keyword kw">when</span> <span class="ruby-regexp re">/Time$/</span>
95
- 270: <span class="ruby-identifier">accessor</span> = <span class="ruby-value str">'d'</span>
96
- 271: <span class="ruby-keyword kw">redo</span>
97
- 272:
98
- 273: <span class="ruby-keyword kw">when</span> <span class="ruby-regexp re">/Val$/</span>
99
- 274: <span class="ruby-identifier">accessor</span> = <span class="ruby-value str">'l'</span>
100
- 275: <span class="ruby-keyword kw">redo</span>
101
- 276:
102
- 277: <span class="ruby-keyword kw">when</span> <span class="ruby-regexp re">/Type$/</span>, <span class="ruby-regexp re">/Direction$/</span>, <span class="ruby-regexp re">/Index$/</span>, <span class="ruby-regexp re">/Size$/</span>, <span class="ruby-regexp re">/Strength\d?$/</span>, <span class="ruby-regexp re">/Polarity$/</span>, <span class="ruby-regexp re">/Edge$/</span>, <span class="ruby-regexp re">/Offset$/</span>, <span class="ruby-regexp re">/Mode$/</span>
103
- 278: <span class="ruby-identifier">accessor</span> = <span class="ruby-value str">'i'</span>
104
- 279: <span class="ruby-keyword kw">redo</span>
105
- 280:
106
- 281: <span class="ruby-keyword kw">when</span> <span class="ruby-regexp re">/Is[A-Z]/</span>, <span class="ruby-regexp re">/ed$/</span>
107
- 282: <span class="ruby-identifier">accessor</span> = <span class="ruby-value str">'b'</span>
108
- 283: <span class="ruby-keyword kw">redo</span>
109
- 284:
110
- 285: <span class="ruby-keyword kw">when</span> <span class="ruby-regexp re">/Name$/</span>, <span class="ruby-regexp re">/File$/</span>, <span class="ruby-regexp re">/Decompile$/</span>
111
- 286: <span class="ruby-identifier">accessor</span> = <span class="ruby-value str">'s'</span>
112
- 287: <span class="ruby-keyword kw">redo</span>
113
- 288:
114
- 289: <span class="ruby-keyword kw">when</span> <span class="ruby-regexp re">/Parent$/</span>, <span class="ruby-regexp re">/Inst$/</span>, <span class="ruby-regexp re">/Range$/</span>, <span class="ruby-regexp re">/Driver$/</span>, <span class="ruby-regexp re">/Net$/</span>, <span class="ruby-regexp re">/Load$/</span>, <span class="ruby-regexp re">/Conn$/</span>, <span class="ruby-regexp re">/Bit$/</span>, <span class="ruby-regexp re">/Word$/</span>, <span class="ruby-regexp re">/[LR]hs$/</span>, <span class="ruby-regexp re">/(In|Out)$/</span>, <span class="ruby-regexp re">/Term$/</span>, <span class="ruby-regexp re">/Argument$/</span>, <span class="ruby-regexp re">/Condition$/</span>, <span class="ruby-regexp re">/Use$/</span>, <span class="ruby-regexp re">/Operand$/</span>, <span class="ruby-regexp re">/Stmt$/</span>, <span class="ruby-regexp re">/Expr$/</span>, <span class="ruby-regexp re">/Scope$/</span>, <span class="ruby-regexp re">/Memory$/</span>, <span class="ruby-regexp re">/Delay$/</span>
115
- 290: <span class="ruby-identifier">accessor</span> = <span class="ruby-value str">'h'</span>
116
- 291: <span class="ruby-keyword kw">redo</span>
117
- 292: <span class="ruby-keyword kw">end</span>
118
- 293: <span class="ruby-keyword kw">end</span>
119
- 294:
120
- 295: <span class="ruby-keyword kw">break</span>
121
- 296: <span class="ruby-keyword kw">end</span>
122
- 297: <span class="ruby-keyword kw">end</span>
123
- 298:
124
- 299: <span class="ruby-identifier">raise</span> <span class="ruby-constant">NoMethodError</span>, <span class="ruby-node">&quot;unable to access VPI property #{propName.inspect} through method #{aMsg.inspect} with arguments #{aArgs.inspect} for handle #{self}&quot;</span>
125
- 300: <span class="ruby-keyword kw">end</span></pre>
13
+ <pre> <span class="ruby-comment cmt"># File lib/ruby-vpi/vpi.rb, line 115</span>
14
+ 115: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">put_value</span> <span class="ruby-identifier">aValue</span>, <span class="ruby-identifier">aFormat</span> = <span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">aTime</span> = <span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">aDelay</span> = <span class="ruby-constant">VpiNoDelay</span>
15
+ 116: <span class="ruby-identifier">aFormat</span> <span class="ruby-operator">||=</span> <span class="ruby-identifier">get_value_wrapper</span>(<span class="ruby-constant">VpiObjTypeVal</span>).<span class="ruby-identifier">format</span>
16
+ 117:
17
+ 118: <span class="ruby-identifier">newVal</span> = <span class="ruby-constant">S_vpi_value</span>.<span class="ruby-identifier">new</span>
18
+ 119: <span class="ruby-identifier">newVal</span>.<span class="ruby-identifier">format</span> = <span class="ruby-identifier">aFormat</span>
19
+ 120:
20
+ 121: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">aFormat</span>
21
+ 122: <span class="ruby-keyword kw">when</span> <span class="ruby-constant">VpiBinStrVal</span>, <span class="ruby-constant">VpiOctStrVal</span>, <span class="ruby-constant">VpiDecStrVal</span>, <span class="ruby-constant">VpiHexStrVal</span>, <span class="ruby-constant">VpiStringVal</span>
22
+ 123: <span class="ruby-identifier">newVal</span>.<span class="ruby-identifier">value</span>.<span class="ruby-identifier">str</span> = <span class="ruby-identifier">aValue</span>.<span class="ruby-identifier">to_s</span>
23
+ 124:
24
+ 125: <span class="ruby-keyword kw">when</span> <span class="ruby-constant">VpiScalarVal</span>
25
+ 126: <span class="ruby-identifier">newVal</span>.<span class="ruby-identifier">value</span>.<span class="ruby-identifier">scalar</span> = <span class="ruby-identifier">aValue</span>
26
+ 127:
27
+ 128: <span class="ruby-keyword kw">when</span> <span class="ruby-constant">VpiIntVal</span>
28
+ 129: <span class="ruby-identifier">newVal</span>.<span class="ruby-identifier">format</span> = <span class="ruby-constant">VpiHexStrVal</span>
29
+ 130: <span class="ruby-identifier">newVal</span>.<span class="ruby-identifier">value</span>.<span class="ruby-identifier">str</span> = <span class="ruby-identifier">aValue</span>.<span class="ruby-identifier">to_i</span>.<span class="ruby-identifier">to_s</span>(<span class="ruby-value">16</span>)
30
+ 131:
31
+ 132: <span class="ruby-keyword kw">when</span> <span class="ruby-constant">VpiRealVal</span>
32
+ 133: <span class="ruby-identifier">newVal</span>.<span class="ruby-identifier">value</span>.<span class="ruby-identifier">real</span> = <span class="ruby-identifier">aValue</span>.<span class="ruby-identifier">to_f</span>
33
+ 134:
34
+ 135: <span class="ruby-keyword kw">when</span> <span class="ruby-constant">VpiTimeVal</span>
35
+ 136: <span class="ruby-identifier">newVal</span>.<span class="ruby-identifier">value</span>.<span class="ruby-identifier">time</span> = <span class="ruby-identifier">aValue</span>
36
+ 137:
37
+ 138: <span class="ruby-keyword kw">when</span> <span class="ruby-constant">VpiVectorVal</span>
38
+ 139: <span class="ruby-identifier">newVal</span>.<span class="ruby-identifier">value</span>.<span class="ruby-identifier">vector</span> = <span class="ruby-identifier">aValue</span>
39
+ 140:
40
+ 141: <span class="ruby-keyword kw">when</span> <span class="ruby-constant">VpiStrengthVal</span>
41
+ 142: <span class="ruby-identifier">newVal</span>.<span class="ruby-identifier">value</span>.<span class="ruby-identifier">strength</span> = <span class="ruby-identifier">aValue</span>
42
+ 143:
43
+ 144: <span class="ruby-keyword kw">else</span>
44
+ 145: <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;unknown S_vpi_value.format: #{newVal.format}&quot;</span>
45
+ 146: <span class="ruby-keyword kw">end</span>
46
+ 147:
47
+ 148: <span class="ruby-identifier">vpi_put_value</span> <span class="ruby-keyword kw">self</span>, <span class="ruby-identifier">newVal</span>, <span class="ruby-identifier">aTime</span>, <span class="ruby-identifier">aDelay</span>
48
+ 149:
49
+ 150: <span class="ruby-comment cmt"># ensure that value was written correctly</span>
50
+ 151: <span class="ruby-identifier">readenVal</span> = <span class="ruby-identifier">get_value</span>(<span class="ruby-identifier">aFormat</span>)
51
+ 152:
52
+ 153: <span class="ruby-identifier">writtenCorrectly</span> =
53
+ 154: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">aFormat</span>
54
+ 155: <span class="ruby-keyword kw">when</span> <span class="ruby-constant">VpiBinStrVal</span>, <span class="ruby-constant">VpiOctStrVal</span>, <span class="ruby-constant">VpiDecStrVal</span>, <span class="ruby-constant">VpiHexStrVal</span>
55
+ 156: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">aValue</span> <span class="ruby-operator">=~</span> <span class="ruby-regexp re">/[xz]/i</span> <span class="ruby-comment cmt"># TODO: verify 'z' behavior</span>
56
+ 157: <span class="ruby-identifier">readenVal</span> <span class="ruby-operator">=~</span> <span class="ruby-regexp re">/[xz]/i</span>
57
+ 158: <span class="ruby-keyword kw">else</span>
58
+ 159: <span class="ruby-identifier">readenVal</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">aValue</span>.<span class="ruby-identifier">to_s</span>
59
+ 160: <span class="ruby-keyword kw">end</span>
60
+ 161:
61
+ 162: <span class="ruby-keyword kw">when</span> <span class="ruby-constant">VpiStringVal</span>
62
+ 163: <span class="ruby-identifier">readenVal</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">aValue</span>.<span class="ruby-identifier">to_s</span>
63
+ 164:
64
+ 165: <span class="ruby-keyword kw">when</span> <span class="ruby-constant">VpiIntVal</span>
65
+ 166: <span class="ruby-comment cmt"># allow for register overflow when limit reached</span>
66
+ 167: <span class="ruby-identifier">readenVal</span> <span class="ruby-operator">==</span> (<span class="ruby-identifier">aValue</span>.<span class="ruby-identifier">to_i</span> <span class="ruby-operator">%</span> (<span class="ruby-value">2</span> <span class="ruby-operator">**</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">vpiSize</span>))
67
+ 168:
68
+ 169: <span class="ruby-keyword kw">when</span> <span class="ruby-constant">VpiRealVal</span>
69
+ 170: <span class="ruby-identifier">readenVal</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">aValue</span>.<span class="ruby-identifier">to_f</span>
70
+ 171:
71
+ 172: <span class="ruby-keyword kw">else</span>
72
+ 173: <span class="ruby-keyword kw">true</span>
73
+ 174: <span class="ruby-keyword kw">end</span>
74
+ 175:
75
+ 176: <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">writtenCorrectly</span>
76
+ 177: <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;value written (#{aValue.inspect}) does not match value read (#{readenVal.inspect}) from handle #{self}&quot;</span>
77
+ 178: <span class="ruby-keyword kw">end</span>
78
+ 179:
79
+ 180: <span class="ruby-identifier">aValue</span>
80
+ 181: <span class="ruby-keyword kw">end</span></pre>
126
81
  </body>
127
82
  </html>
@@ -5,22 +5,123 @@
5
5
 
6
6
  <html>
7
7
  <head>
8
- <title>[] (SWIG::TYPE_p_unsigned_int)</title>
8
+ <title>method_missing (SWIG::TYPE_p_unsigned_int)</title>
9
9
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
10
10
  <link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
11
11
  </head>
12
12
  <body class="standalone-code">
13
- <pre> <span class="ruby-comment cmt"># File lib/ruby-vpi/vpi.rb, line 303</span>
14
- 303: <span class="ruby-keyword kw">def</span> <span class="ruby-operator">[]</span> <span class="ruby-identifier">aType</span>
15
- 304: <span class="ruby-identifier">handles</span> = []
16
- 305:
17
- 306: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">itr</span> = <span class="ruby-identifier">vpi_iterate</span>(<span class="ruby-identifier">aType</span>, <span class="ruby-keyword kw">self</span>)
18
- 307: <span class="ruby-keyword kw">while</span> <span class="ruby-identifier">h</span> = <span class="ruby-identifier">vpi_scan</span>(<span class="ruby-identifier">itr</span>)
19
- 308: <span class="ruby-identifier">handles</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">h</span>
20
- 309: <span class="ruby-keyword kw">end</span>
21
- 310: <span class="ruby-keyword kw">end</span>
22
- 311:
23
- 312: <span class="ruby-identifier">handles</span>
24
- 313: <span class="ruby-keyword kw">end</span></pre>
13
+ <pre> <span class="ruby-comment cmt"># File lib/ruby-vpi/vpi.rb, line 189</span>
14
+ 189: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">method_missing</span> <span class="ruby-identifier">aMsg</span>, <span class="ruby-operator">*</span><span class="ruby-identifier">aArgs</span>, <span class="ruby-operator">&amp;</span><span class="ruby-identifier">aBlockArg</span>
15
+ 190: <span class="ruby-identifier">methName</span> = <span class="ruby-identifier">aMsg</span>.<span class="ruby-identifier">to_s</span>
16
+ 191:
17
+ 192: <span class="ruby-comment cmt"># determine if property is being written</span>
18
+ 193: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">isAssign</span> = <span class="ruby-identifier">methName</span> <span class="ruby-operator">=~</span> <span class="ruby-constant">ASSIGN_REGEXP</span>
19
+ 194: <span class="ruby-identifier">methName</span>.<span class="ruby-identifier">sub!</span> <span class="ruby-constant">ASSIGN_REGEXP</span>, <span class="ruby-value str">''</span>
20
+ 195: <span class="ruby-keyword kw">end</span>
21
+ 196:
22
+ 197: <span class="ruby-comment cmt"># determine if property is being queried</span>
23
+ 198: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">isQuery</span> = <span class="ruby-identifier">methName</span> <span class="ruby-operator">=~</span> <span class="ruby-constant">QUERY_REGEXP</span>
24
+ 199: <span class="ruby-identifier">methName</span>.<span class="ruby-identifier">sub!</span> <span class="ruby-constant">QUERY_REGEXP</span>, <span class="ruby-value str">''</span>
25
+ 200: <span class="ruby-keyword kw">end</span>
26
+ 201:
27
+ 202: <span class="ruby-comment cmt"># parse Accessor parameter</span>
28
+ 203: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">accessor</span> = <span class="ruby-identifier">methName</span>[<span class="ruby-constant">HINT_REGEXP</span>, <span class="ruby-value">1</span>]
29
+ 204: <span class="ruby-identifier">methName</span>.<span class="ruby-identifier">sub!</span> <span class="ruby-constant">HINT_REGEXP</span>, <span class="ruby-value str">''</span>
30
+ 205: <span class="ruby-keyword kw">end</span>
31
+ 206:
32
+ 207: <span class="ruby-comment cmt"># parse Operation parameter</span>
33
+ 208: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">operation</span> = <span class="ruby-identifier">methName</span>[<span class="ruby-constant">PREFIX_REGEXP</span>, <span class="ruby-value">1</span>]
34
+ 209: <span class="ruby-identifier">methName</span>.<span class="ruby-identifier">sub!</span> <span class="ruby-constant">PREFIX_REGEXP</span>, <span class="ruby-value str">''</span>
35
+ 210: <span class="ruby-keyword kw">end</span>
36
+ 211:
37
+ 212: <span class="ruby-comment cmt"># resolve Property parameter into a valid VPI property</span>
38
+ 213: <span class="ruby-identifier">propName</span> = <span class="ruby-identifier">methName</span>[<span class="ruby-value">0</span>, <span class="ruby-value">1</span>].<span class="ruby-identifier">upcase</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">methName</span>[<span class="ruby-value">1</span><span class="ruby-operator">..</span><span class="ruby-value">-1</span>]
39
+ 214: <span class="ruby-identifier">propName</span>.<span class="ruby-identifier">insert</span>(<span class="ruby-value">0</span>, <span class="ruby-value str">'Vpi'</span>) <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">methName</span> <span class="ruby-operator">=~</span> <span class="ruby-regexp re">/^vpi/</span>
40
+ 215:
41
+ 216: <span class="ruby-identifier">puts</span> <span class="ruby-value str">''</span>, <span class="ruby-constant">Kernel</span>.<span class="ruby-identifier">caller</span>.<span class="ruby-identifier">join</span>(<span class="ruby-value str">&quot;\n&quot;</span>), <span class="ruby-value str">''</span>, <span class="ruby-node">&quot;operation: #{operation}&quot;</span>, <span class="ruby-node">&quot;meth: #{aMsg}&quot;</span>, <span class="ruby-node">&quot;args: #{aArgs.inspect}&quot;</span>, <span class="ruby-node">&quot;name: #{methName}&quot;</span>, <span class="ruby-node">&quot;prop: #{propName}&quot;</span>, <span class="ruby-node">&quot;assign: #{isAssign}&quot;</span>, <span class="ruby-node">&quot;query: #{isQuery}&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">$DEBUG</span>
42
+ 217:
43
+ 218: <span class="ruby-keyword kw">begin</span>
44
+ 219: <span class="ruby-identifier">prop</span> = <span class="ruby-constant">Vpi</span>.<span class="ruby-identifier">const_get</span>(<span class="ruby-identifier">propName</span>)
45
+ 220: <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">NameError</span>
46
+ 221: <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>, <span class="ruby-node">&quot;invalid VPI property #{propName.inspect}&quot;</span>
47
+ 222: <span class="ruby-keyword kw">end</span>
48
+ 223:
49
+ 224: <span class="ruby-comment cmt"># access the VPI property</span>
50
+ 225: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">operation</span>
51
+ 226: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">send</span>(<span class="ruby-identifier">operation</span>.<span class="ruby-identifier">to_sym</span>, <span class="ruby-identifier">prop</span>, <span class="ruby-operator">*</span><span class="ruby-identifier">aArgs</span>, <span class="ruby-operator">&amp;</span><span class="ruby-identifier">aBlockArg</span>)
52
+ 227: <span class="ruby-keyword kw">else</span>
53
+ 228: <span class="ruby-identifier">loop</span> <span class="ruby-keyword kw">do</span>
54
+ 229: <span class="ruby-identifier">puts</span> <span class="ruby-node">&quot;looping, accessor: #{accessor}&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">$DEBUG</span>
55
+ 230:
56
+ 231: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">accessor</span>
57
+ 232: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'d'</span> <span class="ruby-comment cmt"># delay values</span>
58
+ 233: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">isAssign</span>
59
+ 234: <span class="ruby-comment cmt"># TODO: vpi_put_delays</span>
60
+ 235: <span class="ruby-keyword kw">else</span>
61
+ 236: <span class="ruby-comment cmt"># TODO: vpi_get_delays</span>
62
+ 237: <span class="ruby-keyword kw">end</span>
63
+ 238:
64
+ 239: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'l'</span> <span class="ruby-comment cmt"># logic values</span>
65
+ 240: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">isAssign</span>
66
+ 241: <span class="ruby-identifier">value</span> = <span class="ruby-identifier">aArgs</span>.<span class="ruby-identifier">shift</span>
67
+ 242: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">put_value</span>(<span class="ruby-identifier">value</span>, <span class="ruby-identifier">prop</span>, <span class="ruby-operator">*</span><span class="ruby-identifier">aArgs</span>)
68
+ 243: <span class="ruby-keyword kw">else</span>
69
+ 244: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">get_value</span>(<span class="ruby-identifier">prop</span>)
70
+ 245: <span class="ruby-keyword kw">end</span>
71
+ 246:
72
+ 247: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'i'</span> <span class="ruby-comment cmt"># integer values</span>
73
+ 248: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">vpi_get</span>(<span class="ruby-identifier">prop</span>, <span class="ruby-keyword kw">self</span>) <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">isAssign</span>
74
+ 249:
75
+ 250: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'b'</span> <span class="ruby-comment cmt"># boolean values</span>
76
+ 251: <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">isAssign</span>
77
+ 252: <span class="ruby-identifier">value</span> = <span class="ruby-identifier">vpi_get</span>(<span class="ruby-identifier">prop</span>, <span class="ruby-keyword kw">self</span>)
78
+ 253: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">value</span> <span class="ruby-operator">&amp;&amp;</span> (<span class="ruby-identifier">value</span> <span class="ruby-operator">!=</span> <span class="ruby-value">0</span>) <span class="ruby-comment cmt"># zero is false in C</span>
79
+ 254: <span class="ruby-keyword kw">end</span>
80
+ 255:
81
+ 256: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'s'</span> <span class="ruby-comment cmt"># string values</span>
82
+ 257: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">vpi_get_str</span>(<span class="ruby-identifier">prop</span>, <span class="ruby-keyword kw">self</span>) <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">isAssign</span>
83
+ 258:
84
+ 259: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'h'</span> <span class="ruby-comment cmt"># handle values</span>
85
+ 260: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">vpi_handle</span>(<span class="ruby-identifier">prop</span>, <span class="ruby-keyword kw">self</span>) <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">isAssign</span>
86
+ 261:
87
+ 262: <span class="ruby-keyword kw">else</span> <span class="ruby-comment cmt"># accessor not specified. guess its value from property name</span>
88
+ 263: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">isQuery</span>
89
+ 264: <span class="ruby-identifier">accessor</span> = <span class="ruby-value str">'b'</span>
90
+ 265: <span class="ruby-keyword kw">redo</span>
91
+ 266: <span class="ruby-keyword kw">end</span>
92
+ 267:
93
+ 268: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">propName</span>
94
+ 269: <span class="ruby-keyword kw">when</span> <span class="ruby-regexp re">/Time$/</span>
95
+ 270: <span class="ruby-identifier">accessor</span> = <span class="ruby-value str">'d'</span>
96
+ 271: <span class="ruby-keyword kw">redo</span>
97
+ 272:
98
+ 273: <span class="ruby-keyword kw">when</span> <span class="ruby-regexp re">/Val$/</span>
99
+ 274: <span class="ruby-identifier">accessor</span> = <span class="ruby-value str">'l'</span>
100
+ 275: <span class="ruby-keyword kw">redo</span>
101
+ 276:
102
+ 277: <span class="ruby-keyword kw">when</span> <span class="ruby-regexp re">/Type$/</span>, <span class="ruby-regexp re">/Direction$/</span>, <span class="ruby-regexp re">/Index$/</span>, <span class="ruby-regexp re">/Size$/</span>, <span class="ruby-regexp re">/Strength\d?$/</span>, <span class="ruby-regexp re">/Polarity$/</span>, <span class="ruby-regexp re">/Edge$/</span>, <span class="ruby-regexp re">/Offset$/</span>, <span class="ruby-regexp re">/Mode$/</span>
103
+ 278: <span class="ruby-identifier">accessor</span> = <span class="ruby-value str">'i'</span>
104
+ 279: <span class="ruby-keyword kw">redo</span>
105
+ 280:
106
+ 281: <span class="ruby-keyword kw">when</span> <span class="ruby-regexp re">/Is[A-Z]/</span>, <span class="ruby-regexp re">/ed$/</span>
107
+ 282: <span class="ruby-identifier">accessor</span> = <span class="ruby-value str">'b'</span>
108
+ 283: <span class="ruby-keyword kw">redo</span>
109
+ 284:
110
+ 285: <span class="ruby-keyword kw">when</span> <span class="ruby-regexp re">/Name$/</span>, <span class="ruby-regexp re">/File$/</span>, <span class="ruby-regexp re">/Decompile$/</span>
111
+ 286: <span class="ruby-identifier">accessor</span> = <span class="ruby-value str">'s'</span>
112
+ 287: <span class="ruby-keyword kw">redo</span>
113
+ 288:
114
+ 289: <span class="ruby-keyword kw">when</span> <span class="ruby-regexp re">/Parent$/</span>, <span class="ruby-regexp re">/Inst$/</span>, <span class="ruby-regexp re">/Range$/</span>, <span class="ruby-regexp re">/Driver$/</span>, <span class="ruby-regexp re">/Net$/</span>, <span class="ruby-regexp re">/Load$/</span>, <span class="ruby-regexp re">/Conn$/</span>, <span class="ruby-regexp re">/Bit$/</span>, <span class="ruby-regexp re">/Word$/</span>, <span class="ruby-regexp re">/[LR]hs$/</span>, <span class="ruby-regexp re">/(In|Out)$/</span>, <span class="ruby-regexp re">/Term$/</span>, <span class="ruby-regexp re">/Argument$/</span>, <span class="ruby-regexp re">/Condition$/</span>, <span class="ruby-regexp re">/Use$/</span>, <span class="ruby-regexp re">/Operand$/</span>, <span class="ruby-regexp re">/Stmt$/</span>, <span class="ruby-regexp re">/Expr$/</span>, <span class="ruby-regexp re">/Scope$/</span>, <span class="ruby-regexp re">/Memory$/</span>, <span class="ruby-regexp re">/Delay$/</span>
115
+ 290: <span class="ruby-identifier">accessor</span> = <span class="ruby-value str">'h'</span>
116
+ 291: <span class="ruby-keyword kw">redo</span>
117
+ 292: <span class="ruby-keyword kw">end</span>
118
+ 293: <span class="ruby-keyword kw">end</span>
119
+ 294:
120
+ 295: <span class="ruby-keyword kw">break</span>
121
+ 296: <span class="ruby-keyword kw">end</span>
122
+ 297: <span class="ruby-keyword kw">end</span>
123
+ 298:
124
+ 299: <span class="ruby-identifier">raise</span> <span class="ruby-constant">NoMethodError</span>, <span class="ruby-node">&quot;unable to access VPI property #{propName.inspect} through method #{aMsg.inspect} with arguments #{aArgs.inspect} for handle #{self}&quot;</span>
125
+ 300: <span class="ruby-keyword kw">end</span></pre>
25
126
  </body>
26
127
  </html>
@@ -5,14 +5,22 @@
5
5
 
6
6
  <html>
7
7
  <head>
8
- <title>each (SWIG::TYPE_p_unsigned_int)</title>
8
+ <title>[] (SWIG::TYPE_p_unsigned_int)</title>
9
9
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
10
10
  <link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
11
11
  </head>
12
12
  <body class="standalone-code">
13
- <pre> <span class="ruby-comment cmt"># File lib/ruby-vpi/vpi.rb, line 316</span>
14
- 316: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">each</span> <span class="ruby-identifier">aType</span>, <span class="ruby-operator">&amp;</span><span class="ruby-identifier">aBlock</span> <span class="ruby-comment cmt"># :yields: handle</span>
15
- 317: <span class="ruby-keyword kw">self</span>[<span class="ruby-identifier">aType</span>].<span class="ruby-identifier">each</span>(<span class="ruby-operator">&amp;</span><span class="ruby-identifier">aBlock</span>)
16
- 318: <span class="ruby-keyword kw">end</span></pre>
13
+ <pre> <span class="ruby-comment cmt"># File lib/ruby-vpi/vpi.rb, line 303</span>
14
+ 303: <span class="ruby-keyword kw">def</span> <span class="ruby-operator">[]</span> <span class="ruby-identifier">aType</span>
15
+ 304: <span class="ruby-identifier">handles</span> = []
16
+ 305:
17
+ 306: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">itr</span> = <span class="ruby-identifier">vpi_iterate</span>(<span class="ruby-identifier">aType</span>, <span class="ruby-keyword kw">self</span>)
18
+ 307: <span class="ruby-keyword kw">while</span> <span class="ruby-identifier">h</span> = <span class="ruby-identifier">vpi_scan</span>(<span class="ruby-identifier">itr</span>)
19
+ 308: <span class="ruby-identifier">handles</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">h</span>
20
+ 309: <span class="ruby-keyword kw">end</span>
21
+ 310: <span class="ruby-keyword kw">end</span>
22
+ 311:
23
+ 312: <span class="ruby-identifier">handles</span>
24
+ 313: <span class="ruby-keyword kw">end</span></pre>
17
25
  </body>
18
26
  </html>
@@ -0,0 +1,18 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
+
6
+ <html>
7
+ <head>
8
+ <title>each (SWIG::TYPE_p_unsigned_int)</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
10
+ <link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
11
+ </head>
12
+ <body class="standalone-code">
13
+ <pre> <span class="ruby-comment cmt"># File lib/ruby-vpi/vpi.rb, line 316</span>
14
+ 316: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">each</span> <span class="ruby-identifier">aType</span>, <span class="ruby-operator">&amp;</span><span class="ruby-identifier">aBlock</span> <span class="ruby-comment cmt"># :yields: handle</span>
15
+ 317: <span class="ruby-keyword kw">self</span>[<span class="ruby-identifier">aType</span>].<span class="ruby-identifier">each</span>(<span class="ruby-operator">&amp;</span><span class="ruby-identifier">aBlock</span>)
16
+ 318: <span class="ruby-keyword kw">end</span></pre>
17
+ </body>
18
+ </html>
@@ -86,8 +86,8 @@
86
86
  <h3 class="section-bar">Methods</h3>
87
87
 
88
88
  <div class="name-list">
89
- <a href="#M000031">to_ruby_const_name</a>&nbsp;&nbsp;
90
- <a href="#M000030">verilog_to_ruby</a>&nbsp;&nbsp;
89
+ <a href="#M000032">to_ruby_const_name</a>&nbsp;&nbsp;
90
+ <a href="#M000031">verilog_to_ruby</a>&nbsp;&nbsp;
91
91
  </div>
92
92
  </div>
93
93
 
@@ -109,12 +109,12 @@
109
109
  <div id="methods">
110
110
  <h3 class="section-bar">Public Instance methods</h3>
111
111
 
112
- <div id="method-M000031" class="method-detail">
113
- <a name="M000031"></a>
112
+ <div id="method-M000032" class="method-detail">
113
+ <a name="M000032"></a>
114
114
 
115
115
  <div class="method-heading">
116
- <a href="String.src/M000031.html" target="Code" class="method-signature"
117
- onclick="popupCode('String.src/M000031.html');return false;">
116
+ <a href="String.src/M000032.html" target="Code" class="method-signature"
117
+ onclick="popupCode('String.src/M000032.html');return false;">
118
118
  <span class="method-name">to_ruby_const_name</span><span class="method-args">()</span>
119
119
  </a>
120
120
  </div>
@@ -126,12 +126,12 @@ Converts this string into a valid Ruby constant name.
126
126
  </div>
127
127
  </div>
128
128
 
129
- <div id="method-M000030" class="method-detail">
130
- <a name="M000030"></a>
129
+ <div id="method-M000031" class="method-detail">
130
+ <a name="M000031"></a>
131
131
 
132
132
  <div class="method-heading">
133
- <a href="String.src/M000030.html" target="Code" class="method-signature"
134
- onclick="popupCode('String.src/M000030.html');return false;">
133
+ <a href="String.src/M000031.html" target="Code" class="method-signature"
134
+ onclick="popupCode('String.src/M000031.html');return false;">
135
135
  <span class="method-name">verilog_to_ruby</span><span class="method-args">()</span>
136
136
  </a>
137
137
  </div>
@@ -5,14 +5,37 @@
5
5
 
6
6
  <html>
7
7
  <head>
8
- <title>to_ruby_const_name (String)</title>
8
+ <title>verilog_to_ruby (String)</title>
9
9
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
10
10
  <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
11
11
  </head>
12
12
  <body class="standalone-code">
13
- <pre> <span class="ruby-comment cmt"># File lib/ruby-vpi/verilog_parser.rb, line 133</span>
14
- 133: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_ruby_const_name</span>
15
- 134: <span class="ruby-keyword kw">self</span>[<span class="ruby-value">0</span>, <span class="ruby-value">1</span>].<span class="ruby-identifier">upcase</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-keyword kw">self</span>[<span class="ruby-value">1</span><span class="ruby-operator">..</span><span class="ruby-value">-1</span>]
16
- 135: <span class="ruby-keyword kw">end</span></pre>
13
+ <pre> <span class="ruby-comment cmt"># File lib/ruby-vpi/verilog_parser.rb, line 105</span>
14
+ 105: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">verilog_to_ruby</span>
15
+ 106: <span class="ruby-identifier">content</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">dup</span>
16
+ 107:
17
+ 108: <span class="ruby-comment cmt"># single-line comments</span>
18
+ 109: <span class="ruby-identifier">content</span>.<span class="ruby-identifier">gsub!</span> <span class="ruby-regexp re">%r{//(.*)$}</span>, <span class="ruby-value str">'#\1'</span>
19
+ 110:
20
+ 111: <span class="ruby-comment cmt"># multi-line comments</span>
21
+ 112: <span class="ruby-identifier">content</span>.<span class="ruby-identifier">gsub!</span> <span class="ruby-regexp re">%r{/\*.*?\*/}</span><span class="ruby-identifier">m</span>, <span class="ruby-value str">&quot;\n=begin\n\\0\n=end\n&quot;</span>
22
+ 113:
23
+ 114: <span class="ruby-comment cmt"># preprocessor directives</span>
24
+ 115: <span class="ruby-identifier">content</span>.<span class="ruby-identifier">gsub!</span> <span class="ruby-regexp re">%r{`include}</span>, <span class="ruby-value str">'#\0'</span>
25
+ 116:
26
+ 117: <span class="ruby-identifier">content</span>.<span class="ruby-identifier">gsub!</span> <span class="ruby-regexp re">%r{`define\s+(\w+)\s+(.+)}</span> <span class="ruby-keyword kw">do</span>
27
+ 118: <span class="ruby-node">&quot;#{$1.to_ruby_const_name} = #{$2}&quot;</span>
28
+ 119: <span class="ruby-keyword kw">end</span>
29
+ 120:
30
+ 121: <span class="ruby-identifier">content</span>.<span class="ruby-identifier">gsub!</span> <span class="ruby-regexp re">%r{`+}</span>, <span class="ruby-value str">''</span>
31
+ 122:
32
+ 123: <span class="ruby-comment cmt"># numbers</span>
33
+ 124: <span class="ruby-identifier">content</span>.<span class="ruby-identifier">gsub!</span> <span class="ruby-regexp re">%r{\d*\'([dohb]\w+)}</span>, <span class="ruby-value str">'0\1'</span>
34
+ 125:
35
+ 126: <span class="ruby-comment cmt"># ranges</span>
36
+ 127: <span class="ruby-identifier">content</span>.<span class="ruby-identifier">gsub!</span> <span class="ruby-regexp re">%r{(\S)\s*:\s*(\S)}</span>, <span class="ruby-value str">'\1..\2'</span>
37
+ 128:
38
+ 129: <span class="ruby-identifier">content</span>
39
+ 130: <span class="ruby-keyword kw">end</span></pre>
17
40
  </body>
18
41
  </html>
@@ -0,0 +1,18 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
+
6
+ <html>
7
+ <head>
8
+ <title>to_ruby_const_name (String)</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
10
+ <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
11
+ </head>
12
+ <body class="standalone-code">
13
+ <pre> <span class="ruby-comment cmt"># File lib/ruby-vpi/verilog_parser.rb, line 133</span>
14
+ 133: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_ruby_const_name</span>
15
+ 134: <span class="ruby-keyword kw">self</span>[<span class="ruby-value">0</span>, <span class="ruby-value">1</span>].<span class="ruby-identifier">upcase</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-keyword kw">self</span>[<span class="ruby-value">1</span><span class="ruby-operator">..</span><span class="ruby-value">-1</span>]
16
+ 135: <span class="ruby-keyword kw">end</span></pre>
17
+ </body>
18
+ </html>