ruby-vpi 12.1.0 → 13.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (184) hide show
  1. data/bin/generate_test.rb +4 -5
  2. data/bin/generate_test_tpl/bench.rb +2 -0
  3. data/bin/generate_test_tpl/bench.v +4 -11
  4. data/bin/header_to_ruby.rb +0 -1
  5. data/doc/history.html +281 -206
  6. data/doc/history.rb +1 -1
  7. data/doc/history.yml +66 -35
  8. data/doc/manual.html +3 -3
  9. data/doc/memo.doc +2 -0
  10. data/doc/memo.html +5 -0
  11. data/doc/readme.doc +16 -8
  12. data/doc/readme.html +19 -13
  13. data/doc/rss.xml +7 -0
  14. data/ext/common.h +1 -0
  15. data/ext/{swig.c → main.c} +32 -6
  16. data/ext/{swig.h → main.h} +8 -7
  17. data/ext/relay.c +7 -83
  18. data/ext/relay.h +7 -5
  19. data/ext/swig_vpi.i +10 -3
  20. data/ext/swig_wrap.cin +4 -1
  21. data/ext/verilog.h +26 -10
  22. data/ext/vlog.c +16 -23
  23. data/ext/vlog.h +5 -19
  24. data/lib/ruby-vpi/rcov.rb +3 -3
  25. data/lib/ruby-vpi/runner.rb +5 -2
  26. data/lib/ruby-vpi/vpi.rb +1 -1
  27. data/lib/ruby-vpi.rb +57 -5
  28. data/ref/c/annotated.html +1 -7
  29. data/ref/c/common_8h.html +2 -1
  30. data/ref/c/files.html +3 -5
  31. data/ref/c/functions.html +24 -46
  32. data/ref/c/functions_vars.html +24 -46
  33. data/ref/c/globals.html +5 -210
  34. data/ref/c/globals_0x63.html +32 -48
  35. data/ref/c/globals_0x65.html +3 -9
  36. data/ref/c/globals_0x66.html +3 -19
  37. data/ref/c/globals_0x6d.html +5 -10
  38. data/ref/c/globals_0x70.html +19 -25
  39. data/ref/c/globals_0x72.html +8 -18
  40. data/ref/c/globals_0x73.html +11 -198
  41. data/ref/c/globals_0x74.html +2 -8
  42. data/ref/c/globals_0x76.html +419 -427
  43. data/ref/c/globals_0x78.html +3 -9
  44. data/ref/c/globals_defs.html +30 -35
  45. data/ref/c/globals_defs_0x65.html +2 -7
  46. data/ref/c/globals_defs_0x70.html +3 -8
  47. data/ref/c/globals_defs_0x76.html +416 -420
  48. data/ref/c/globals_defs_0x78.html +2 -7
  49. data/ref/c/globals_enum.html +1 -1
  50. data/ref/c/globals_eval.html +1 -1
  51. data/ref/c/globals_func.html +13 -173
  52. data/ref/c/globals_type.html +26 -29
  53. data/ref/c/globals_vars.html +4 -88
  54. data/ref/c/index.html +1 -1
  55. data/ref/c/{swig_8c.html → main_8c.html} +16 -14
  56. data/ref/c/{swig_8h.html → main_8h.html} +15 -14
  57. data/ref/c/relay_8c.html +25 -38
  58. data/ref/c/relay_8h.html +16 -15
  59. data/ref/c/structt__cb__data.html +6 -23
  60. data/ref/c/structt__vpi__delay.html +3 -20
  61. data/ref/c/structt__vpi__error__info.html +3 -71
  62. data/ref/c/structt__vpi__strengthval.html +3 -3
  63. data/ref/c/structt__vpi__systf__data.html +12 -46
  64. data/ref/c/structt__vpi__time.html +3 -3
  65. data/ref/c/structt__vpi__value.html +3 -113
  66. data/ref/c/structt__vpi__vecval.html +3 -3
  67. data/ref/c/structt__vpi__vlog__info.html +3 -54
  68. data/ref/c/verilog_8h.html +69 -3
  69. data/ref/c/vlog_8c.html +16 -61
  70. data/ref/c/vlog_8h.html +14 -57
  71. data/ref/c/vpi__user_8h.html +16 -16
  72. data/ref/ruby/classes/ERB.html +5 -5
  73. data/ref/ruby/classes/ERB.src/{M000032.html → M000026.html} +0 -0
  74. data/ref/ruby/classes/FileUtils.html +10 -10
  75. data/ref/ruby/classes/FileUtils.src/{M000034.html → M000027.html} +0 -0
  76. data/ref/ruby/classes/FileUtils.src/{M000035.html → M000028.html} +0 -0
  77. data/ref/ruby/classes/Float.html +5 -5
  78. data/ref/ruby/classes/Float.src/{M000027.html → M000022.html} +0 -0
  79. data/ref/ruby/classes/Integer.html +68 -68
  80. data/ref/ruby/classes/Integer.src/M000008.html +25 -0
  81. data/ref/ruby/classes/Integer.src/M000009.html +18 -0
  82. data/ref/ruby/classes/Integer.src/{M000014.html → M000010.html} +0 -0
  83. data/ref/ruby/classes/Integer.src/{M000015.html → M000011.html} +0 -0
  84. data/ref/ruby/classes/Integer.src/M000012.html +5 -12
  85. data/ref/ruby/classes/Integer.src/M000013.html +5 -5
  86. data/ref/ruby/classes/Integer.src/M000016.html +9 -5
  87. data/ref/ruby/classes/Integer.src/M000017.html +9 -5
  88. data/ref/ruby/classes/Integer.src/{M000022.html → M000018.html} +0 -0
  89. data/ref/ruby/classes/Integer.src/{M000023.html → M000019.html} +0 -0
  90. data/ref/ruby/classes/Integer.src/M000020.html +12 -9
  91. data/ref/ruby/classes/Integer.src/M000021.html +17 -9
  92. data/ref/ruby/classes/RDoc.html +5 -5
  93. data/ref/ruby/classes/RDoc.src/{M000050.html → M000041.html} +0 -0
  94. data/ref/ruby/classes/RubyVpi.html +29 -24
  95. data/ref/ruby/classes/RubyVpi.src/M000029.html +142 -0
  96. data/ref/ruby/classes/String.html +15 -15
  97. data/ref/ruby/classes/String.src/{M000029.html → M000023.html} +0 -0
  98. data/ref/ruby/classes/String.src/{M000030.html → M000024.html} +0 -0
  99. data/ref/ruby/classes/String.src/{M000031.html → M000025.html} +0 -0
  100. data/ref/ruby/classes/VerilogParser/Module/Parameter.html +5 -5
  101. data/ref/ruby/classes/VerilogParser/Module/Parameter.src/{M000011.html → M000007.html} +0 -0
  102. data/ref/ruby/classes/VerilogParser/Module/Port.html +20 -20
  103. data/ref/ruby/classes/VerilogParser/Module/Port.src/{M000007.html → M000003.html} +0 -0
  104. data/ref/ruby/classes/VerilogParser/Module/Port.src/{M000008.html → M000004.html} +0 -0
  105. data/ref/ruby/classes/VerilogParser/Module/Port.src/{M000009.html → M000005.html} +0 -0
  106. data/ref/ruby/classes/VerilogParser/Module/Port.src/{M000010.html → M000006.html} +0 -0
  107. data/ref/ruby/classes/VerilogParser/Module.html +5 -5
  108. data/ref/ruby/classes/VerilogParser/Module.src/{M000006.html → M000002.html} +0 -0
  109. data/ref/ruby/classes/VerilogParser.html +5 -5
  110. data/ref/ruby/classes/VerilogParser.src/{M000005.html → M000001.html} +0 -0
  111. data/ref/ruby/classes/Vpi/Handle.html +56 -62
  112. data/ref/ruby/classes/Vpi/Handle.src/M000030.html +18 -0
  113. data/ref/ruby/classes/Vpi/Handle.src/{M000039.html → M000031.html} +0 -0
  114. data/ref/ruby/classes/Vpi/Handle.src/M000032.html +18 -0
  115. data/ref/ruby/classes/Vpi/Handle.src/{M000041.html → M000033.html} +0 -0
  116. data/ref/ruby/classes/Vpi/Handle.src/{M000042.html → M000034.html} +0 -0
  117. data/ref/ruby/classes/Vpi/Handle.src/{M000043.html → M000035.html} +0 -0
  118. data/ref/ruby/classes/Vpi/Handle.src/{M000044.html → M000036.html} +0 -0
  119. data/ref/ruby/classes/Vpi/Handle.src/{M000045.html → M000037.html} +0 -0
  120. data/ref/ruby/classes/Vpi/Handle.src/M000038.html +11 -5
  121. data/ref/ruby/classes/Vpi/Handle.src/M000040.html +55 -5
  122. data/ref/ruby/created.rid +1 -1
  123. data/ref/ruby/files/bin/generate_test_rb.html +1 -49
  124. data/ref/ruby/files/bin/header_to_ruby_rb.html +1 -1
  125. data/ref/ruby/files/lib/ruby-vpi/rcov_rb.html +1 -1
  126. data/ref/ruby/files/lib/ruby-vpi/runner_rb.html +1 -48
  127. data/ref/ruby/files/lib/ruby-vpi/vpi_rb.html +1 -1
  128. data/ref/ruby/files/lib/ruby-vpi_rb.html +1 -1
  129. data/ref/ruby/fr_class_index.html +0 -5
  130. data/ref/ruby/fr_method_index.html +41 -50
  131. data/samp/counter/counter_rspec_bench.rb +2 -0
  132. data/samp/counter/counter_rspec_bench.v +4 -11
  133. data/samp/counter/counter_rspec_design.rb +2 -2
  134. data/samp/counter/counter_xunit_bench.rb +2 -0
  135. data/samp/counter/counter_xunit_bench.v +4 -11
  136. data/samp/counter/counter_xunit_design.rb +2 -2
  137. data/samp/pipelined_alu/hw5_unit_test_bench.rb +2 -0
  138. data/samp/pipelined_alu/hw5_unit_test_bench.v +4 -11
  139. metadata +37 -85
  140. data/ref/c/globals_0x62.html +0 -62
  141. data/ref/c/globals_0x67.html +0 -64
  142. data/ref/c/globals_0x69.html +0 -62
  143. data/ref/c/globals_0x6c.html +0 -64
  144. data/ref/c/globals_0x6e.html +0 -63
  145. data/ref/c/globals_0x75.html +0 -63
  146. data/ref/c/globals_defs_0x6c.html +0 -57
  147. data/ref/c/globals_defs_0x6e.html +0 -56
  148. data/ref/c/globals_defs_0x72.html +0 -57
  149. data/ref/c/globals_defs_0x73.html +0 -164
  150. data/ref/c/globals_defs_0x75.html +0 -56
  151. data/ref/c/globals_func_0x66.html +0 -62
  152. data/ref/c/globals_func_0x67.html +0 -55
  153. data/ref/c/globals_func_0x69.html +0 -53
  154. data/ref/c/globals_func_0x70.html +0 -53
  155. data/ref/c/globals_func_0x72.html +0 -57
  156. data/ref/c/globals_func_0x73.html +0 -114
  157. data/ref/c/globals_func_0x76.html +0 -57
  158. data/ref/c/structrelay____RubyOptions____def.html +0 -73
  159. data/ref/c/structswig__cast__info.html +0 -98
  160. data/ref/c/structswig__class.html +0 -115
  161. data/ref/c/structswig__module__info.html +0 -132
  162. data/ref/c/structswig__type__info.html +0 -132
  163. data/ref/c/swig__vpi_8h.html +0 -8739
  164. data/ref/c/swig__wrap_8cin.html +0 -11556
  165. data/ref/c/unions__vpi__value__value.html +0 -166
  166. data/ref/ruby/classes/Integer.src/M000024.html +0 -25
  167. data/ref/ruby/classes/Integer.src/M000025.html +0 -30
  168. data/ref/ruby/classes/OutputInfo.html +0 -294
  169. data/ref/ruby/classes/OutputInfo.src/M000026.html +0 -50
  170. data/ref/ruby/classes/RubyVpi.src/M000036.html +0 -107
  171. data/ref/ruby/classes/RubyVpi.src/M000037.html +0 -20
  172. data/ref/ruby/classes/Template.html +0 -158
  173. data/ref/ruby/classes/Template.src/M000028.html +0 -18
  174. data/ref/ruby/classes/Vpi/Handle/Property.html +0 -130
  175. data/ref/ruby/classes/Vpi/Handle/Property.src/M000049.html +0 -80
  176. data/ref/ruby/classes/Vpi/Handle.src/M000046.html +0 -24
  177. data/ref/ruby/classes/Vpi/Handle.src/M000048.html +0 -68
  178. data/ref/ruby/classes/XX/XMLish.html +0 -138
  179. data/ref/ruby/classes/XX/XMLish.src/M000033.html +0 -18
  180. data/ref/ruby/classes/XX.html +0 -111
  181. data/ref/ruby/files/bin/generate_test_rb.src/M000001.html +0 -18
  182. data/ref/ruby/files/bin/generate_test_rb.src/M000002.html +0 -38
  183. data/ref/ruby/files/lib/ruby-vpi/runner_rb.src/M000003.html +0 -24
  184. data/ref/ruby/files/lib/ruby-vpi/runner_rb.src/M000004.html +0 -26
@@ -0,0 +1,142 @@
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>init_bench (RubyVpi)</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.rb, line 46</span>
14
+ 46: <span class="ruby-keyword kw">def</span> <span class="ruby-constant">RubyVpi</span>.<span class="ruby-identifier">init_bench</span> <span class="ruby-identifier">aDesignId</span>, <span class="ruby-identifier">aSpecFormat</span>, <span class="ruby-operator">&amp;</span><span class="ruby-identifier">aClockTrigger</span> <span class="ruby-comment cmt"># :yields: clock_signal</span>
15
+ 47: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">caller</span>.<span class="ruby-identifier">find</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">s</span><span class="ruby-operator">|</span> <span class="ruby-identifier">s</span> <span class="ruby-operator">=~</span> <span class="ruby-regexp re">/^(.*?)_bench.rb:/</span>}
16
+ 48: <span class="ruby-identifier">testName</span> = <span class="ruby-identifier">$1</span>
17
+ 49: <span class="ruby-keyword kw">else</span>
18
+ 50: <span class="ruby-identifier">raise</span> <span class="ruby-value str">'Unable to determine name of test.'</span>
19
+ 51: <span class="ruby-keyword kw">end</span>
20
+ 52:
21
+ 53: <span class="ruby-identifier">aClockTrigger</span> <span class="ruby-operator">||=</span> <span class="ruby-identifier">lambda</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">clk</span><span class="ruby-operator">|</span> <span class="ruby-identifier">clk</span>.<span class="ruby-identifier">intVal</span> <span class="ruby-operator">==</span> <span class="ruby-value">1</span>}
22
+ 54:
23
+ 55: <span class="ruby-identifier">useDebugger</span> = <span class="ruby-operator">!</span>(<span class="ruby-constant">ENV</span>[<span class="ruby-value str">'DEBUG'</span>] <span class="ruby-operator">||</span> <span class="ruby-value str">''</span>).<span class="ruby-identifier">empty?</span>
24
+ 56: <span class="ruby-identifier">useCoverage</span> = <span class="ruby-operator">!</span>(<span class="ruby-constant">ENV</span>[<span class="ruby-value str">'COVERAGE'</span>] <span class="ruby-operator">||</span> <span class="ruby-value str">''</span>).<span class="ruby-identifier">empty?</span>
25
+ 57: <span class="ruby-identifier">usePrototype</span> = <span class="ruby-operator">!</span>(<span class="ruby-constant">ENV</span>[<span class="ruby-value str">'PROTOTYPE'</span>] <span class="ruby-operator">||</span> <span class="ruby-value str">''</span>).<span class="ruby-identifier">empty?</span>
26
+ 58:
27
+ 59: <span class="ruby-comment cmt"># set up code coverage analysis</span>
28
+ 60: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">useCoverage</span>
29
+ 61: <span class="ruby-identifier">require</span> <span class="ruby-value str">'ruby-vpi/rcov'</span>
30
+ 62:
31
+ 63: <span class="ruby-constant">RubyVpi</span>.<span class="ruby-identifier">with_coverage_analysis</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">a</span><span class="ruby-operator">|</span>
32
+ 64: <span class="ruby-identifier">a</span>.<span class="ruby-identifier">dump_coverage_info</span> [
33
+ 65: <span class="ruby-constant">Rcov</span><span class="ruby-operator">::</span><span class="ruby-constant">TextReport</span>.<span class="ruby-identifier">new</span>,
34
+ 66: <span class="ruby-constant">Rcov</span><span class="ruby-operator">::</span><span class="ruby-constant">HTMLCoverage</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">:destdir</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-node">&quot;#{testName}_coverage&quot;</span>)
35
+ 67: ]
36
+ 68: <span class="ruby-keyword kw">end</span>
37
+ 69:
38
+ 70: <span class="ruby-constant">Vpi</span><span class="ruby-operator">::</span><span class="ruby-identifier">vpi_printf</span> <span class="ruby-node">&quot;#{Config::PROJECT_NAME}: coverage analysis is enabled for test #{testName.inspect}\n&quot;</span>
39
+ 71: <span class="ruby-keyword kw">end</span>
40
+ 72:
41
+ 73: <span class="ruby-comment cmt"># set up the specification library</span>
42
+ 74: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">aSpecFormat</span>
43
+ 75: <span class="ruby-keyword kw">when</span> <span class="ruby-identifier">:xUnit</span>
44
+ 76: <span class="ruby-identifier">require</span> <span class="ruby-value str">'test/unit'</span>
45
+ 77:
46
+ 78: <span class="ruby-keyword kw">when</span> <span class="ruby-identifier">:rSpec</span>
47
+ 79: <span class="ruby-constant">ARGV</span>.<span class="ruby-identifier">concat</span> <span class="ruby-node">%w[-f s]</span>
48
+ 80: <span class="ruby-identifier">require</span> <span class="ruby-value str">'spec'</span>
49
+ 81:
50
+ 82: <span class="ruby-keyword kw">when</span> <span class="ruby-identifier">:tSpec</span>
51
+ 83: <span class="ruby-constant">ARGV</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">'-rs'</span>
52
+ 84: <span class="ruby-identifier">require</span> <span class="ruby-value str">'test/spec'</span>
53
+ 85: <span class="ruby-keyword kw">end</span>
54
+ 86:
55
+ 87: <span class="ruby-comment cmt"># set up the interactive debugger</span>
56
+ 88: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">useDebugger</span>
57
+ 89: <span class="ruby-identifier">require</span> <span class="ruby-value str">'ruby-debug'</span>
58
+ 90:
59
+ 91: <span class="ruby-constant">Debugger</span>.<span class="ruby-identifier">start</span>
60
+ 92: <span class="ruby-constant">Debugger</span>.<span class="ruby-identifier">post_mortem</span>
61
+ 93:
62
+ 94: <span class="ruby-constant">Vpi</span><span class="ruby-operator">::</span><span class="ruby-identifier">vpi_printf</span> <span class="ruby-node">&quot;#{Config::PROJECT_NAME}: debugger is enabled for test #{testName.inspect}\n&quot;</span>
63
+ 95: <span class="ruby-keyword kw">end</span>
64
+ 96:
65
+ 97: <span class="ruby-comment cmt"># suppress undefined method errors when debugger is not enabled</span>
66
+ 98: <span class="ruby-keyword kw">unless</span> <span class="ruby-constant">Kernel</span>.<span class="ruby-identifier">respond_to?</span> <span class="ruby-identifier">:debugger</span>
67
+ 99: <span class="ruby-constant">Kernel</span>.<span class="ruby-identifier">class_eval</span> <span class="ruby-keyword kw">do</span>
68
+ 100: <span class="ruby-identifier">define_method</span> <span class="ruby-identifier">:debugger</span> <span class="ruby-keyword kw">do</span>
69
+ 101: <span class="ruby-comment cmt"># this is a dummy method!</span>
70
+ 102: <span class="ruby-keyword kw">end</span>
71
+ 103: <span class="ruby-keyword kw">end</span>
72
+ 104: <span class="ruby-keyword kw">end</span>
73
+ 105:
74
+ 106: <span class="ruby-comment cmt"># set up the VPI utility layer</span>
75
+ 107: <span class="ruby-identifier">require</span> <span class="ruby-value str">'ruby-vpi/vpi'</span>
76
+ 108:
77
+ 109: <span class="ruby-constant">Object</span>.<span class="ruby-identifier">class_eval</span> <span class="ruby-keyword kw">do</span>
78
+ 110: <span class="ruby-identifier">include</span> <span class="ruby-constant">Vpi</span>
79
+ 111: <span class="ruby-keyword kw">end</span>
80
+ 112:
81
+ 113: <span class="ruby-comment cmt"># load the design under test</span>
82
+ 114: <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">design</span> = <span class="ruby-identifier">vpi_handle_by_name</span>(<span class="ruby-node">&quot;#{testName}_bench&quot;</span>, <span class="ruby-keyword kw">nil</span>)
83
+ 115: <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;Verilog bench for test #{testName.inspect} is inaccessible.&quot;</span>
84
+ 116: <span class="ruby-keyword kw">end</span>
85
+ 117:
86
+ 118: <span class="ruby-constant">Kernel</span>.<span class="ruby-identifier">const_set</span>(<span class="ruby-identifier">aDesignId</span>, <span class="ruby-identifier">design</span>)
87
+ 119: <span class="ruby-identifier">require</span> <span class="ruby-node">&quot;#{testName}_design.rb&quot;</span>
88
+ 120:
89
+ 121: <span class="ruby-comment cmt"># load the design's prototype</span>
90
+ 122: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">usePrototype</span>
91
+ 123: <span class="ruby-identifier">require</span> <span class="ruby-node">&quot;#{testName}_proto.rb&quot;</span>
92
+ 124:
93
+ 125: <span class="ruby-constant">Vpi</span>.<span class="ruby-identifier">module_eval</span> <span class="ruby-keyword kw">do</span>
94
+ 126: <span class="ruby-identifier">define_method</span> <span class="ruby-identifier">:relay_verilog</span> <span class="ruby-keyword kw">do</span>
95
+ 127: <span class="ruby-identifier">design</span>.<span class="ruby-identifier">simulate!</span>
96
+ 128: <span class="ruby-keyword kw">end</span>
97
+ 129: <span class="ruby-keyword kw">end</span>
98
+ 130:
99
+ 131: <span class="ruby-constant">Vpi</span><span class="ruby-operator">::</span><span class="ruby-identifier">vpi_printf</span> <span class="ruby-node">&quot;#{Config::PROJECT_NAME}: prototype is enabled for test #{testName.inspect}\n&quot;</span>
100
+ 132:
101
+ 133: <span class="ruby-comment cmt"># trigger relay_verilog according to aClockTrigger</span>
102
+ 134: <span class="ruby-keyword kw">else</span>
103
+ 135: <span class="ruby-identifier">regs</span> = <span class="ruby-identifier">design</span>[<span class="ruby-constant">VpiReg</span>].<span class="ruby-identifier">sort_by</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">h</span><span class="ruby-operator">|</span> <span class="ruby-identifier">h</span>.<span class="ruby-identifier">lineNo</span>}
104
+ 136: <span class="ruby-identifier">clock</span> = <span class="ruby-identifier">regs</span>.<span class="ruby-identifier">first</span>
105
+ 137:
106
+ 138: <span class="ruby-constant">Vpi</span>.<span class="ruby-identifier">module_eval</span> <span class="ruby-keyword kw">do</span>
107
+ 139: <span class="ruby-comment cmt"># register callback for relay_verilog</span>
108
+ 140: <span class="ruby-identifier">time</span> = <span class="ruby-constant">S_vpi_time</span>.<span class="ruby-identifier">new</span>
109
+ 141: <span class="ruby-identifier">time</span>.<span class="ruby-identifier">type</span> = <span class="ruby-constant">VpiSuppressTime</span>
110
+ 142:
111
+ 143: <span class="ruby-identifier">value</span> = <span class="ruby-constant">S_vpi_value</span>.<span class="ruby-identifier">new</span>
112
+ 144: <span class="ruby-identifier">value</span>.<span class="ruby-identifier">format</span> = <span class="ruby-constant">VpiSuppressVal</span>
113
+ 145:
114
+ 146: <span class="ruby-identifier">alarm</span> = <span class="ruby-constant">S_cb_data</span>.<span class="ruby-identifier">new</span>
115
+ 147: <span class="ruby-identifier">alarm</span>.<span class="ruby-identifier">reason</span> = <span class="ruby-constant">CbValueChange</span>
116
+ 148: <span class="ruby-identifier">alarm</span>.<span class="ruby-identifier">cb_rtn</span> = <span class="ruby-constant">Vlog_relay_ruby</span>
117
+ 149: <span class="ruby-identifier">alarm</span>.<span class="ruby-identifier">obj</span> = <span class="ruby-identifier">clock</span>
118
+ 150: <span class="ruby-identifier">alarm</span>.<span class="ruby-identifier">time</span> = <span class="ruby-identifier">time</span>
119
+ 151: <span class="ruby-identifier">alarm</span>.<span class="ruby-identifier">value</span> = <span class="ruby-identifier">value</span>
120
+ 152: <span class="ruby-identifier">alarm</span>.<span class="ruby-identifier">index</span> = <span class="ruby-value">0</span>
121
+ 153: <span class="ruby-identifier">alarm</span>.<span class="ruby-identifier">user_data</span> = <span class="ruby-keyword kw">nil</span>
122
+ 154:
123
+ 155: <span class="ruby-identifier">vpi_free_object</span>(<span class="ruby-identifier">vpi_register_cb</span>(<span class="ruby-identifier">alarm</span>))
124
+ 156:
125
+ 157: <span class="ruby-identifier">alias_method</span> <span class="ruby-identifier">:relay_verilog_old</span>, <span class="ruby-identifier">:relay_verilog</span>
126
+ 158:
127
+ 159: <span class="ruby-identifier">define_method</span> <span class="ruby-identifier">:relay_verilog</span> <span class="ruby-keyword kw">do</span>
128
+ 160: <span class="ruby-keyword kw">begin</span>
129
+ 161: <span class="ruby-identifier">relay_verilog_old</span>
130
+ 162: <span class="ruby-keyword kw">end</span> <span class="ruby-keyword kw">until</span> <span class="ruby-identifier">aClockTrigger</span>.<span class="ruby-identifier">call</span>(<span class="ruby-identifier">clock</span>)
131
+ 163: <span class="ruby-keyword kw">end</span>
132
+ 164: <span class="ruby-keyword kw">end</span>
133
+ 165:
134
+ 166: <span class="ruby-comment cmt"># XXX: this completes the handshake with pthread_mutex_lock() in relay_main() in the C extension</span>
135
+ 167: <span class="ruby-identifier">relay_verilog_old</span>
136
+ 168: <span class="ruby-keyword kw">end</span>
137
+ 169:
138
+ 170: <span class="ruby-comment cmt"># load the design's specification</span>
139
+ 171: <span class="ruby-identifier">require</span> <span class="ruby-node">&quot;#{testName}_spec.rb&quot;</span>
140
+ 172: <span class="ruby-keyword kw">end</span></pre>
141
+ </body>
142
+ </html>
@@ -90,9 +90,9 @@
90
90
  <h3 class="section-bar">Methods</h3>
91
91
 
92
92
  <div class="name-list">
93
- <a href="#M000029">to_f</a>&nbsp;&nbsp;
94
- <a href="#M000031">to_ruby_const_name</a>&nbsp;&nbsp;
95
- <a href="#M000030">verilog_to_ruby</a>&nbsp;&nbsp;
93
+ <a href="#M000023">to_f</a>&nbsp;&nbsp;
94
+ <a href="#M000025">to_ruby_const_name</a>&nbsp;&nbsp;
95
+ <a href="#M000024">verilog_to_ruby</a>&nbsp;&nbsp;
96
96
  </div>
97
97
  </div>
98
98
 
@@ -114,12 +114,12 @@
114
114
  <div id="methods">
115
115
  <h3 class="section-bar">Public Instance methods</h3>
116
116
 
117
- <div id="method-M000029" class="method-detail">
118
- <a name="M000029"></a>
117
+ <div id="method-M000023" class="method-detail">
118
+ <a name="M000023"></a>
119
119
 
120
120
  <div class="method-heading">
121
- <a href="String.src/M000029.html" target="Code" class="method-signature"
122
- onclick="popupCode('String.src/M000029.html');return false;">
121
+ <a href="String.src/M000023.html" target="Code" class="method-signature"
122
+ onclick="popupCode('String.src/M000023.html');return false;">
123
123
  <span class="method-name">to_f</span><span class="method-args">(aRadix = 10)</span>
124
124
  </a>
125
125
  </div>
@@ -132,12 +132,12 @@ The default radix is 10.
132
132
  </div>
133
133
  </div>
134
134
 
135
- <div id="method-M000031" class="method-detail">
136
- <a name="M000031"></a>
135
+ <div id="method-M000025" class="method-detail">
136
+ <a name="M000025"></a>
137
137
 
138
138
  <div class="method-heading">
139
- <a href="String.src/M000031.html" target="Code" class="method-signature"
140
- onclick="popupCode('String.src/M000031.html');return false;">
139
+ <a href="String.src/M000025.html" target="Code" class="method-signature"
140
+ onclick="popupCode('String.src/M000025.html');return false;">
141
141
  <span class="method-name">to_ruby_const_name</span><span class="method-args">()</span>
142
142
  </a>
143
143
  </div>
@@ -149,12 +149,12 @@ Converts this string into a valid Ruby constant name.
149
149
  </div>
150
150
  </div>
151
151
 
152
- <div id="method-M000030" class="method-detail">
153
- <a name="M000030"></a>
152
+ <div id="method-M000024" class="method-detail">
153
+ <a name="M000024"></a>
154
154
 
155
155
  <div class="method-heading">
156
- <a href="String.src/M000030.html" target="Code" class="method-signature"
157
- onclick="popupCode('String.src/M000030.html');return false;">
156
+ <a href="String.src/M000024.html" target="Code" class="method-signature"
157
+ onclick="popupCode('String.src/M000024.html');return false;">
158
158
  <span class="method-name">verilog_to_ruby</span><span class="method-args">()</span>
159
159
  </a>
160
160
  </div>
@@ -86,7 +86,7 @@
86
86
  <h3 class="section-bar">Methods</h3>
87
87
 
88
88
  <div class="name-list">
89
- <a href="#M000011">new</a>&nbsp;&nbsp;
89
+ <a href="#M000007">new</a>&nbsp;&nbsp;
90
90
  </div>
91
91
  </div>
92
92
 
@@ -131,12 +131,12 @@
131
131
  <div id="methods">
132
132
  <h3 class="section-bar">Public Class methods</h3>
133
133
 
134
- <div id="method-M000011" class="method-detail">
135
- <a name="M000011"></a>
134
+ <div id="method-M000007" class="method-detail">
135
+ <a name="M000007"></a>
136
136
 
137
137
  <div class="method-heading">
138
- <a href="Parameter.src/M000011.html" target="Code" class="method-signature"
139
- onclick="popupCode('Parameter.src/M000011.html');return false;">
138
+ <a href="Parameter.src/M000007.html" target="Code" class="method-signature"
139
+ onclick="popupCode('Parameter.src/M000007.html');return false;">
140
140
  <span class="method-name">new</span><span class="method-args">(aDecl)</span>
141
141
  </a>
142
142
  </div>
@@ -86,10 +86,10 @@
86
86
  <h3 class="section-bar">Methods</h3>
87
87
 
88
88
  <div class="name-list">
89
- <a href="#M000008">input?</a>&nbsp;&nbsp;
90
- <a href="#M000007">new</a>&nbsp;&nbsp;
91
- <a href="#M000009">output?</a>&nbsp;&nbsp;
92
- <a href="#M000010">reg?</a>&nbsp;&nbsp;
89
+ <a href="#M000004">input?</a>&nbsp;&nbsp;
90
+ <a href="#M000003">new</a>&nbsp;&nbsp;
91
+ <a href="#M000005">output?</a>&nbsp;&nbsp;
92
+ <a href="#M000006">reg?</a>&nbsp;&nbsp;
93
93
  </div>
94
94
  </div>
95
95
 
@@ -134,12 +134,12 @@
134
134
  <div id="methods">
135
135
  <h3 class="section-bar">Public Class methods</h3>
136
136
 
137
- <div id="method-M000007" class="method-detail">
138
- <a name="M000007"></a>
137
+ <div id="method-M000003" class="method-detail">
138
+ <a name="M000003"></a>
139
139
 
140
140
  <div class="method-heading">
141
- <a href="Port.src/M000007.html" target="Code" class="method-signature"
142
- onclick="popupCode('Port.src/M000007.html');return false;">
141
+ <a href="Port.src/M000003.html" target="Code" class="method-signature"
142
+ onclick="popupCode('Port.src/M000003.html');return false;">
143
143
  <span class="method-name">new</span><span class="method-args">(aDecl)</span>
144
144
  </a>
145
145
  </div>
@@ -150,12 +150,12 @@
150
150
 
151
151
  <h3 class="section-bar">Public Instance methods</h3>
152
152
 
153
- <div id="method-M000008" class="method-detail">
154
- <a name="M000008"></a>
153
+ <div id="method-M000004" class="method-detail">
154
+ <a name="M000004"></a>
155
155
 
156
156
  <div class="method-heading">
157
- <a href="Port.src/M000008.html" target="Code" class="method-signature"
158
- onclick="popupCode('Port.src/M000008.html');return false;">
157
+ <a href="Port.src/M000004.html" target="Code" class="method-signature"
158
+ onclick="popupCode('Port.src/M000004.html');return false;">
159
159
  <span class="method-name">input?</span><span class="method-args">()</span>
160
160
  </a>
161
161
  </div>
@@ -164,12 +164,12 @@
164
164
  </div>
165
165
  </div>
166
166
 
167
- <div id="method-M000009" class="method-detail">
168
- <a name="M000009"></a>
167
+ <div id="method-M000005" class="method-detail">
168
+ <a name="M000005"></a>
169
169
 
170
170
  <div class="method-heading">
171
- <a href="Port.src/M000009.html" target="Code" class="method-signature"
172
- onclick="popupCode('Port.src/M000009.html');return false;">
171
+ <a href="Port.src/M000005.html" target="Code" class="method-signature"
172
+ onclick="popupCode('Port.src/M000005.html');return false;">
173
173
  <span class="method-name">output?</span><span class="method-args">()</span>
174
174
  </a>
175
175
  </div>
@@ -178,12 +178,12 @@
178
178
  </div>
179
179
  </div>
180
180
 
181
- <div id="method-M000010" class="method-detail">
182
- <a name="M000010"></a>
181
+ <div id="method-M000006" class="method-detail">
182
+ <a name="M000006"></a>
183
183
 
184
184
  <div class="method-heading">
185
- <a href="Port.src/M000010.html" target="Code" class="method-signature"
186
- onclick="popupCode('Port.src/M000010.html');return false;">
185
+ <a href="Port.src/M000006.html" target="Code" class="method-signature"
186
+ onclick="popupCode('Port.src/M000006.html');return false;">
187
187
  <span class="method-name">reg?</span><span class="method-args">()</span>
188
188
  </a>
189
189
  </div>
@@ -86,7 +86,7 @@
86
86
  <h3 class="section-bar">Methods</h3>
87
87
 
88
88
  <div class="name-list">
89
- <a href="#M000006">new</a>&nbsp;&nbsp;
89
+ <a href="#M000002">new</a>&nbsp;&nbsp;
90
90
  </div>
91
91
  </div>
92
92
 
@@ -143,12 +143,12 @@ Class <a href="Module/Port.html" class="link">VerilogParser::Module::Port</a><br
143
143
  <div id="methods">
144
144
  <h3 class="section-bar">Public Class methods</h3>
145
145
 
146
- <div id="method-M000006" class="method-detail">
147
- <a name="M000006"></a>
146
+ <div id="method-M000002" class="method-detail">
147
+ <a name="M000002"></a>
148
148
 
149
149
  <div class="method-heading">
150
- <a href="Module.src/M000006.html" target="Code" class="method-signature"
151
- onclick="popupCode('Module.src/M000006.html');return false;">
150
+ <a href="Module.src/M000002.html" target="Code" class="method-signature"
151
+ onclick="popupCode('Module.src/M000002.html');return false;">
152
152
  <span class="method-name">new</span><span class="method-args">(aDecl)</span>
153
153
  </a>
154
154
  </div>
@@ -86,7 +86,7 @@
86
86
  <h3 class="section-bar">Methods</h3>
87
87
 
88
88
  <div class="name-list">
89
- <a href="#M000005">new</a>&nbsp;&nbsp;
89
+ <a href="#M000001">new</a>&nbsp;&nbsp;
90
90
  </div>
91
91
  </div>
92
92
 
@@ -155,12 +155,12 @@
155
155
  <div id="methods">
156
156
  <h3 class="section-bar">Public Class methods</h3>
157
157
 
158
- <div id="method-M000005" class="method-detail">
159
- <a name="M000005"></a>
158
+ <div id="method-M000001" class="method-detail">
159
+ <a name="M000001"></a>
160
160
 
161
161
  <div class="method-heading">
162
- <a href="VerilogParser.src/M000005.html" target="Code" class="method-signature"
163
- onclick="popupCode('VerilogParser.src/M000005.html');return false;">
162
+ <a href="VerilogParser.src/M000001.html" target="Code" class="method-signature"
163
+ onclick="popupCode('VerilogParser.src/M000001.html');return false;">
164
164
  <span class="method-name">new</span><span class="method-args">(aInput)</span>
165
165
  </a>
166
166
  </div>