ruby-vpi 12.1.0 → 13.0.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 (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
@@ -94,20 +94,20 @@ Instead, they return the new value as their result.
94
94
  <h3 class="section-bar">Methods</h3>
95
95
 
96
96
  <div class="name-list">
97
- <a href="#M000021">ensure_max</a>&nbsp;&nbsp;
98
- <a href="#M000020">ensure_min</a>&nbsp;&nbsp;
99
- <a href="#M000024">extend_sign</a>&nbsp;&nbsp;
100
- <a href="#M000013">length</a>&nbsp;&nbsp;
101
- <a href="#M000014">limit</a>&nbsp;&nbsp;
102
- <a href="#M000012">log2</a>&nbsp;&nbsp;
103
- <a href="#M000016">mask</a>&nbsp;&nbsp;
104
- <a href="#M000018">max</a>&nbsp;&nbsp;
105
- <a href="#M000022">pack</a>&nbsp;&nbsp;
106
- <a href="#M000025">split</a>&nbsp;&nbsp;
107
- <a href="#M000015">to_limit</a>&nbsp;&nbsp;
108
- <a href="#M000017">to_mask</a>&nbsp;&nbsp;
109
- <a href="#M000019">to_max</a>&nbsp;&nbsp;
110
- <a href="#M000023">unpack</a>&nbsp;&nbsp;
97
+ <a href="#M000017">ensure_max</a>&nbsp;&nbsp;
98
+ <a href="#M000016">ensure_min</a>&nbsp;&nbsp;
99
+ <a href="#M000020">extend_sign</a>&nbsp;&nbsp;
100
+ <a href="#M000009">length</a>&nbsp;&nbsp;
101
+ <a href="#M000010">limit</a>&nbsp;&nbsp;
102
+ <a href="#M000008">log2</a>&nbsp;&nbsp;
103
+ <a href="#M000012">mask</a>&nbsp;&nbsp;
104
+ <a href="#M000014">max</a>&nbsp;&nbsp;
105
+ <a href="#M000018">pack</a>&nbsp;&nbsp;
106
+ <a href="#M000021">split</a>&nbsp;&nbsp;
107
+ <a href="#M000011">to_limit</a>&nbsp;&nbsp;
108
+ <a href="#M000013">to_mask</a>&nbsp;&nbsp;
109
+ <a href="#M000015">to_max</a>&nbsp;&nbsp;
110
+ <a href="#M000019">unpack</a>&nbsp;&nbsp;
111
111
  </div>
112
112
  </div>
113
113
 
@@ -129,12 +129,12 @@ Instead, they return the new value as their result.
129
129
  <div id="methods">
130
130
  <h3 class="section-bar">Public Instance methods</h3>
131
131
 
132
- <div id="method-M000021" class="method-detail">
133
- <a name="M000021"></a>
132
+ <div id="method-M000017" class="method-detail">
133
+ <a name="M000017"></a>
134
134
 
135
135
  <div class="method-heading">
136
- <a href="Integer.src/M000021.html" target="Code" class="method-signature"
137
- onclick="popupCode('Integer.src/M000021.html');return false;">
136
+ <a href="Integer.src/M000017.html" target="Code" class="method-signature"
137
+ onclick="popupCode('Integer.src/M000017.html');return false;">
138
138
  <span class="method-name">ensure_max</span><span class="method-args">(aLimit)</span>
139
139
  </a>
140
140
  </div>
@@ -146,12 +146,12 @@ Ensures that this integer is no greater than the given limit.
146
146
  </div>
147
147
  </div>
148
148
 
149
- <div id="method-M000020" class="method-detail">
150
- <a name="M000020"></a>
149
+ <div id="method-M000016" class="method-detail">
150
+ <a name="M000016"></a>
151
151
 
152
152
  <div class="method-heading">
153
- <a href="Integer.src/M000020.html" target="Code" class="method-signature"
154
- onclick="popupCode('Integer.src/M000020.html');return false;">
153
+ <a href="Integer.src/M000016.html" target="Code" class="method-signature"
154
+ onclick="popupCode('Integer.src/M000016.html');return false;">
155
155
  <span class="method-name">ensure_min</span><span class="method-args">(aLimit)</span>
156
156
  </a>
157
157
  </div>
@@ -163,12 +163,12 @@ Ensures that this integer is no less than the given limit.
163
163
  </div>
164
164
  </div>
165
165
 
166
- <div id="method-M000024" class="method-detail">
167
- <a name="M000024"></a>
166
+ <div id="method-M000020" class="method-detail">
167
+ <a name="M000020"></a>
168
168
 
169
169
  <div class="method-heading">
170
- <a href="Integer.src/M000024.html" target="Code" class="method-signature"
171
- onclick="popupCode('Integer.src/M000024.html');return false;">
170
+ <a href="Integer.src/M000020.html" target="Code" class="method-signature"
171
+ onclick="popupCode('Integer.src/M000020.html');return false;">
172
172
  <span class="method-name">extend_sign</span><span class="method-args">(aOrigWidth, aExtWidth)</span>
173
173
  </a>
174
174
  </div>
@@ -182,12 +182,12 @@ bits).
182
182
  </div>
183
183
  </div>
184
184
 
185
- <div id="method-M000013" class="method-detail">
186
- <a name="M000013"></a>
185
+ <div id="method-M000009" class="method-detail">
186
+ <a name="M000009"></a>
187
187
 
188
188
  <div class="method-heading">
189
- <a href="Integer.src/M000013.html" target="Code" class="method-signature"
190
- onclick="popupCode('Integer.src/M000013.html');return false;">
189
+ <a href="Integer.src/M000009.html" target="Code" class="method-signature"
190
+ onclick="popupCode('Integer.src/M000009.html');return false;">
191
191
  <span class="method-name">length</span><span class="method-args">()</span>
192
192
  </a>
193
193
  </div>
@@ -199,12 +199,12 @@ Returns the minimum number of bits necessary to represent this integer.
199
199
  </div>
200
200
  </div>
201
201
 
202
- <div id="method-M000014" class="method-detail">
203
- <a name="M000014"></a>
202
+ <div id="method-M000010" class="method-detail">
203
+ <a name="M000010"></a>
204
204
 
205
205
  <div class="method-heading">
206
- <a href="Integer.src/M000014.html" target="Code" class="method-signature"
207
- onclick="popupCode('Integer.src/M000014.html');return false;">
206
+ <a href="Integer.src/M000010.html" target="Code" class="method-signature"
207
+ onclick="popupCode('Integer.src/M000010.html');return false;">
208
208
  <span class="method-name">limit</span><span class="method-args">()</span>
209
209
  </a>
210
210
  </div>
@@ -217,12 +217,12 @@ the limit without occupying more bits in its binary representation.
217
217
  </div>
218
218
  </div>
219
219
 
220
- <div id="method-M000012" class="method-detail">
221
- <a name="M000012"></a>
220
+ <div id="method-M000008" class="method-detail">
221
+ <a name="M000008"></a>
222
222
 
223
223
  <div class="method-heading">
224
- <a href="Integer.src/M000012.html" target="Code" class="method-signature"
225
- onclick="popupCode('Integer.src/M000012.html');return false;">
224
+ <a href="Integer.src/M000008.html" target="Code" class="method-signature"
225
+ onclick="popupCode('Integer.src/M000008.html');return false;">
226
226
  <span class="method-name">log2</span><span class="method-args">()</span>
227
227
  </a>
228
228
  </div>
@@ -234,12 +234,12 @@ Returns the ceiling of the logarithm (base 2) of this positive integer.
234
234
  </div>
235
235
  </div>
236
236
 
237
- <div id="method-M000016" class="method-detail">
238
- <a name="M000016"></a>
237
+ <div id="method-M000012" class="method-detail">
238
+ <a name="M000012"></a>
239
239
 
240
240
  <div class="method-heading">
241
- <a href="Integer.src/M000016.html" target="Code" class="method-signature"
242
- onclick="popupCode('Integer.src/M000016.html');return false;">
241
+ <a href="Integer.src/M000012.html" target="Code" class="method-signature"
242
+ onclick="popupCode('Integer.src/M000012.html');return false;">
243
243
  <span class="method-name">mask</span><span class="method-args">()</span>
244
244
  </a>
245
245
  </div>
@@ -251,8 +251,8 @@ Returns a bit-mask capable of masking this integer.
251
251
  </div>
252
252
  </div>
253
253
 
254
- <div id="method-M000018" class="method-detail">
255
- <a name="M000018"></a>
254
+ <div id="method-M000014" class="method-detail">
255
+ <a name="M000014"></a>
256
256
 
257
257
  <div class="method-heading">
258
258
  <span class="method-name">max</span><span class="method-args">()</span>
@@ -260,17 +260,17 @@ Returns a bit-mask capable of masking this integer.
260
260
 
261
261
  <div class="method-description">
262
262
  <p>
263
- Alias for <a href="Integer.html#M000016">mask</a>
263
+ Alias for <a href="Integer.html#M000012">mask</a>
264
264
  </p>
265
265
  </div>
266
266
  </div>
267
267
 
268
- <div id="method-M000022" class="method-detail">
269
- <a name="M000022"></a>
268
+ <div id="method-M000018" class="method-detail">
269
+ <a name="M000018"></a>
270
270
 
271
271
  <div class="method-heading">
272
- <a href="Integer.src/M000022.html" target="Code" class="method-signature"
273
- onclick="popupCode('Integer.src/M000022.html');return false;">
272
+ <a href="Integer.src/M000018.html" target="Code" class="method-signature"
273
+ onclick="popupCode('Integer.src/M000018.html');return false;">
274
274
  <span class="method-name">pack</span><span class="method-args">(aPackedWidth)</span>
275
275
  </a>
276
276
  </div>
@@ -284,12 +284,12 @@ Transforms this infinite-length Ruby integer into a fixed-length integer
284
284
  </div>
285
285
  </div>
286
286
 
287
- <div id="method-M000025" class="method-detail">
288
- <a name="M000025"></a>
287
+ <div id="method-M000021" class="method-detail">
288
+ <a name="M000021"></a>
289
289
 
290
290
  <div class="method-heading">
291
- <a href="Integer.src/M000025.html" target="Code" class="method-signature"
292
- onclick="popupCode('Integer.src/M000025.html');return false;">
291
+ <a href="Integer.src/M000021.html" target="Code" class="method-signature"
292
+ onclick="popupCode('Integer.src/M000021.html');return false;">
293
293
  <span class="method-name">split</span><span class="method-args">(aWidth = 8)</span>
294
294
  </a>
295
295
  </div>
@@ -314,12 +314,12 @@ binary numbers; for example:
314
314
  </div>
315
315
  </div>
316
316
 
317
- <div id="method-M000015" class="method-detail">
318
- <a name="M000015"></a>
317
+ <div id="method-M000011" class="method-detail">
318
+ <a name="M000011"></a>
319
319
 
320
320
  <div class="method-heading">
321
- <a href="Integer.src/M000015.html" target="Code" class="method-signature"
322
- onclick="popupCode('Integer.src/M000015.html');return false;">
321
+ <a href="Integer.src/M000011.html" target="Code" class="method-signature"
322
+ onclick="popupCode('Integer.src/M000011.html');return false;">
323
323
  <span class="method-name">to_limit</span><span class="method-args">()</span>
324
324
  </a>
325
325
  </div>
@@ -332,12 +332,12 @@ bits.
332
332
  </div>
333
333
  </div>
334
334
 
335
- <div id="method-M000017" class="method-detail">
336
- <a name="M000017"></a>
335
+ <div id="method-M000013" class="method-detail">
336
+ <a name="M000013"></a>
337
337
 
338
338
  <div class="method-heading">
339
- <a href="Integer.src/M000017.html" target="Code" class="method-signature"
340
- onclick="popupCode('Integer.src/M000017.html');return false;">
339
+ <a href="Integer.src/M000013.html" target="Code" class="method-signature"
340
+ onclick="popupCode('Integer.src/M000013.html');return false;">
341
341
  <span class="method-name">to_mask</span><span class="method-args">()</span>
342
342
  </a>
343
343
  </div>
@@ -350,8 +350,8 @@ bits.
350
350
  </div>
351
351
  </div>
352
352
 
353
- <div id="method-M000019" class="method-detail">
354
- <a name="M000019"></a>
353
+ <div id="method-M000015" class="method-detail">
354
+ <a name="M000015"></a>
355
355
 
356
356
  <div class="method-heading">
357
357
  <span class="method-name">to_max</span><span class="method-args">()</span>
@@ -359,17 +359,17 @@ bits.
359
359
 
360
360
  <div class="method-description">
361
361
  <p>
362
- Alias for <a href="Integer.html#M000017">to_mask</a>
362
+ Alias for <a href="Integer.html#M000013">to_mask</a>
363
363
  </p>
364
364
  </div>
365
365
  </div>
366
366
 
367
- <div id="method-M000023" class="method-detail">
368
- <a name="M000023"></a>
367
+ <div id="method-M000019" class="method-detail">
368
+ <a name="M000019"></a>
369
369
 
370
370
  <div class="method-heading">
371
- <a href="Integer.src/M000023.html" target="Code" class="method-signature"
372
- onclick="popupCode('Integer.src/M000023.html');return false;">
371
+ <a href="Integer.src/M000019.html" target="Code" class="method-signature"
372
+ onclick="popupCode('Integer.src/M000019.html');return false;">
373
373
  <span class="method-name">unpack</span><span class="method-args">(aPackedWidth)</span>
374
374
  </a>
375
375
  </div>
@@ -0,0 +1,25 @@
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>log2 (Integer)</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/integer.rb, line 24</span>
14
+ 24: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">log2</span>
15
+ 25: <span class="ruby-identifier">raise</span> <span class="ruby-value str">&quot;integer must be positive&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">self</span> <span class="ruby-operator">&lt;</span> <span class="ruby-value">0</span>
16
+ 26: <span class="ruby-identifier">bin</span> = <span class="ruby-identifier">to_s</span>(<span class="ruby-value">2</span>)
17
+ 27:
18
+ 28: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">bin</span> <span class="ruby-operator">=~</span> <span class="ruby-regexp re">/^10+$/</span>
19
+ 29: <span class="ruby-identifier">bin</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">-</span> <span class="ruby-value">1</span>
20
+ 30: <span class="ruby-keyword kw">else</span>
21
+ 31: <span class="ruby-identifier">bin</span>.<span class="ruby-identifier">length</span>
22
+ 32: <span class="ruby-keyword kw">end</span>
23
+ 33: <span class="ruby-keyword kw">end</span></pre>
24
+ </body>
25
+ </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>length (Integer)</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/integer.rb, line 36</span>
14
+ 36: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">length</span>
15
+ 37: <span class="ruby-identifier">to_s</span>(<span class="ruby-value">2</span>).<span class="ruby-identifier">length</span>
16
+ 38: <span class="ruby-keyword kw">end</span></pre>
17
+ </body>
18
+ </html>
@@ -5,21 +5,14 @@
5
5
 
6
6
  <html>
7
7
  <head>
8
- <title>log2 (Integer)</title>
8
+ <title>mask (Integer)</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/integer.rb, line 24</span>
14
- 24: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">log2</span>
15
- 25: <span class="ruby-identifier">raise</span> <span class="ruby-value str">&quot;integer must be positive&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">self</span> <span class="ruby-operator">&lt;</span> <span class="ruby-value">0</span>
16
- 26: <span class="ruby-identifier">bin</span> = <span class="ruby-identifier">to_s</span>(<span class="ruby-value">2</span>)
17
- 27:
18
- 28: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">bin</span> <span class="ruby-operator">=~</span> <span class="ruby-regexp re">/^10+$/</span>
19
- 29: <span class="ruby-identifier">bin</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">-</span> <span class="ruby-value">1</span>
20
- 30: <span class="ruby-keyword kw">else</span>
21
- 31: <span class="ruby-identifier">bin</span>.<span class="ruby-identifier">length</span>
22
- 32: <span class="ruby-keyword kw">end</span>
23
- 33: <span class="ruby-keyword kw">end</span></pre>
13
+ <pre> <span class="ruby-comment cmt"># File lib/ruby-vpi/integer.rb, line 52</span>
14
+ 52: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">mask</span>
15
+ 53: <span class="ruby-identifier">length</span>.<span class="ruby-identifier">to_mask</span>
16
+ 54: <span class="ruby-keyword kw">end</span></pre>
24
17
  </body>
25
18
  </html>
@@ -5,14 +5,14 @@
5
5
 
6
6
  <html>
7
7
  <head>
8
- <title>length (Integer)</title>
8
+ <title>to_mask (Integer)</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/integer.rb, line 36</span>
14
- 36: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">length</span>
15
- 37: <span class="ruby-identifier">to_s</span>(<span class="ruby-value">2</span>).<span class="ruby-identifier">length</span>
16
- 38: <span class="ruby-keyword kw">end</span></pre>
13
+ <pre> <span class="ruby-comment cmt"># File lib/ruby-vpi/integer.rb, line 57</span>
14
+ 57: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_mask</span>
15
+ 58: <span class="ruby-identifier">to_limit</span> <span class="ruby-operator">-</span> <span class="ruby-value">1</span>
16
+ 59: <span class="ruby-keyword kw">end</span></pre>
17
17
  </body>
18
18
  </html>
@@ -5,14 +5,18 @@
5
5
 
6
6
  <html>
7
7
  <head>
8
- <title>mask (Integer)</title>
8
+ <title>ensure_min (Integer)</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/integer.rb, line 52</span>
14
- 52: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">mask</span>
15
- 53: <span class="ruby-identifier">length</span>.<span class="ruby-identifier">to_mask</span>
16
- 54: <span class="ruby-keyword kw">end</span></pre>
13
+ <pre> <span class="ruby-comment cmt"># File lib/ruby-vpi/integer.rb, line 70</span>
14
+ 70: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">ensure_min</span> <span class="ruby-identifier">aLimit</span>
15
+ 71: <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">self</span> <span class="ruby-operator">&lt;</span> <span class="ruby-identifier">aLimit</span>
16
+ 72: <span class="ruby-identifier">aLimit</span>
17
+ 73: <span class="ruby-keyword kw">else</span>
18
+ 74: <span class="ruby-keyword kw">self</span>
19
+ 75: <span class="ruby-keyword kw">end</span>
20
+ 76: <span class="ruby-keyword kw">end</span></pre>
17
21
  </body>
18
22
  </html>
@@ -5,14 +5,18 @@
5
5
 
6
6
  <html>
7
7
  <head>
8
- <title>to_mask (Integer)</title>
8
+ <title>ensure_max (Integer)</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/integer.rb, line 57</span>
14
- 57: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_mask</span>
15
- 58: <span class="ruby-identifier">to_limit</span> <span class="ruby-operator">-</span> <span class="ruby-value">1</span>
16
- 59: <span class="ruby-keyword kw">end</span></pre>
13
+ <pre> <span class="ruby-comment cmt"># File lib/ruby-vpi/integer.rb, line 79</span>
14
+ 79: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">ensure_max</span> <span class="ruby-identifier">aLimit</span>
15
+ 80: <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">self</span> <span class="ruby-operator">&gt;</span> <span class="ruby-identifier">aLimit</span>
16
+ 81: <span class="ruby-identifier">aLimit</span>
17
+ 82: <span class="ruby-keyword kw">else</span>
18
+ 83: <span class="ruby-keyword kw">self</span>
19
+ 84: <span class="ruby-keyword kw">end</span>
20
+ 85: <span class="ruby-keyword kw">end</span></pre>
17
21
  </body>
18
22
  </html>
@@ -5,18 +5,21 @@
5
5
 
6
6
  <html>
7
7
  <head>
8
- <title>ensure_min (Integer)</title>
8
+ <title>extend_sign (Integer)</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/integer.rb, line 70</span>
14
- 70: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">ensure_min</span> <span class="ruby-identifier">aLimit</span>
15
- 71: <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">self</span> <span class="ruby-operator">&lt;</span> <span class="ruby-identifier">aLimit</span>
16
- 72: <span class="ruby-identifier">aLimit</span>
17
- 73: <span class="ruby-keyword kw">else</span>
18
- 74: <span class="ruby-keyword kw">self</span>
19
- 75: <span class="ruby-keyword kw">end</span>
20
- 76: <span class="ruby-keyword kw">end</span></pre>
13
+ <pre> <span class="ruby-comment cmt"># File lib/ruby-vpi/integer.rb, line 120</span>
14
+ 120: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">extend_sign</span> <span class="ruby-identifier">aOrigWidth</span>, <span class="ruby-identifier">aExtWidth</span>
15
+ 121: <span class="ruby-identifier">result</span> = <span class="ruby-keyword kw">self</span>
16
+ 122: <span class="ruby-identifier">maskWidth</span> = <span class="ruby-identifier">aExtWidth</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">aOrigWidth</span>
17
+ 123:
18
+ 124: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">maskWidth</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">0</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">result</span>[<span class="ruby-identifier">aOrigWidth</span> <span class="ruby-operator">-</span> <span class="ruby-value">1</span>] <span class="ruby-operator">==</span> <span class="ruby-value">1</span>
19
+ 125: <span class="ruby-identifier">result</span> <span class="ruby-operator">|=</span> (<span class="ruby-identifier">maskWidth</span>.<span class="ruby-identifier">to_mask</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">aOrigWidth</span>)
20
+ 126: <span class="ruby-keyword kw">end</span>
21
+ 127:
22
+ 128: <span class="ruby-identifier">result</span> <span class="ruby-operator">&amp;</span> <span class="ruby-identifier">aExtWidth</span>.<span class="ruby-identifier">to_mask</span>
23
+ 129: <span class="ruby-keyword kw">end</span></pre>
21
24
  </body>
22
25
  </html>
@@ -5,18 +5,26 @@
5
5
 
6
6
  <html>
7
7
  <head>
8
- <title>ensure_max (Integer)</title>
8
+ <title>split (Integer)</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/integer.rb, line 79</span>
14
- 79: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">ensure_max</span> <span class="ruby-identifier">aLimit</span>
15
- 80: <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">self</span> <span class="ruby-operator">&gt;</span> <span class="ruby-identifier">aLimit</span>
16
- 81: <span class="ruby-identifier">aLimit</span>
17
- 82: <span class="ruby-keyword kw">else</span>
18
- 83: <span class="ruby-keyword kw">self</span>
19
- 84: <span class="ruby-keyword kw">end</span>
20
- 85: <span class="ruby-keyword kw">end</span></pre>
13
+ <pre> <span class="ruby-comment cmt"># File lib/ruby-vpi/integer.rb, line 141</span>
14
+ 141: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">split</span> <span class="ruby-identifier">aWidth</span> = <span class="ruby-value">8</span>
15
+ 142: <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>, <span class="ruby-value str">&quot;width must be positive and non-zero&quot;</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">aWidth</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">0</span>
16
+ 143:
17
+ 144: <span class="ruby-identifier">int</span>, <span class="ruby-identifier">bits</span> = <span class="ruby-keyword kw">self</span>, <span class="ruby-identifier">length</span>
18
+ 145: <span class="ruby-identifier">mask</span> = <span class="ruby-identifier">aWidth</span>.<span class="ruby-identifier">to_mask</span>
19
+ 146: <span class="ruby-identifier">words</span> = []
20
+ 147:
21
+ 148: <span class="ruby-keyword kw">while</span> <span class="ruby-identifier">bits</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">0</span>
22
+ 149: <span class="ruby-identifier">words</span>.<span class="ruby-identifier">unshift</span> <span class="ruby-identifier">int</span> <span class="ruby-operator">&amp;</span> <span class="ruby-identifier">mask</span>
23
+ 150: <span class="ruby-identifier">int</span> <span class="ruby-operator">&gt;&gt;=</span> <span class="ruby-identifier">aWidth</span>
24
+ 151: <span class="ruby-identifier">bits</span> <span class="ruby-operator">-=</span> <span class="ruby-identifier">aWidth</span>
25
+ 152: <span class="ruby-keyword kw">end</span>
26
+ 153:
27
+ 154: <span class="ruby-identifier">words</span>
28
+ 155: <span class="ruby-keyword kw">end</span></pre>
21
29
  </body>
22
30
  </html>
@@ -80,7 +80,7 @@
80
80
  <h3 class="section-bar">Methods</h3>
81
81
 
82
82
  <div class="name-list">
83
- <a href="#M000050">usage_from_file</a>&nbsp;&nbsp;
83
+ <a href="#M000041">usage_from_file</a>&nbsp;&nbsp;
84
84
  </div>
85
85
  </div>
86
86
 
@@ -102,12 +102,12 @@
102
102
  <div id="methods">
103
103
  <h3 class="section-bar">Public Class methods</h3>
104
104
 
105
- <div id="method-M000050" class="method-detail">
106
- <a name="M000050"></a>
105
+ <div id="method-M000041" class="method-detail">
106
+ <a name="M000041"></a>
107
107
 
108
108
  <div class="method-heading">
109
- <a href="RDoc.src/M000050.html" target="Code" class="method-signature"
110
- onclick="popupCode('RDoc.src/M000050.html');return false;">
109
+ <a href="RDoc.src/M000041.html" target="Code" class="method-signature"
110
+ onclick="popupCode('RDoc.src/M000041.html');return false;">
111
111
  <span class="method-name">usage_from_file</span><span class="method-args">(input_file, *args)</span>
112
112
  </a>
113
113
  </div>
@@ -84,8 +84,7 @@
84
84
  <h3 class="section-bar">Methods</h3>
85
85
 
86
86
  <div class="name-list">
87
- <a href="#M000036">init_bench</a>&nbsp;&nbsp;
88
- <a href="#M000037">with_coverage_analysis</a>&nbsp;&nbsp;
87
+ <a href="#M000029">init_bench</a>&nbsp;&nbsp;
89
88
  </div>
90
89
  </div>
91
90
 
@@ -138,13 +137,13 @@
138
137
  <div id="methods">
139
138
  <h3 class="section-bar">Public Class methods</h3>
140
139
 
141
- <div id="method-M000036" class="method-detail">
142
- <a name="M000036"></a>
140
+ <div id="method-M000029" class="method-detail">
141
+ <a name="M000029"></a>
143
142
 
144
143
  <div class="method-heading">
145
- <a href="RubyVpi.src/M000036.html" target="Code" class="method-signature"
146
- onclick="popupCode('RubyVpi.src/M000036.html');return false;">
147
- <span class="method-name">init_bench</span><span class="method-args">(aDesignId, aSpecFormat)</span>
144
+ <a href="RubyVpi.src/M000029.html" target="Code" class="method-signature"
145
+ onclick="popupCode('RubyVpi.src/M000029.html');return false;">
146
+ <span class="method-name">init_bench</span><span class="method-args">(aDesignId, aSpecFormat {|clock_signal| ...}</span>
148
147
  </a>
149
148
  </div>
150
149
 
@@ -170,24 +169,30 @@ Initializes the bench by loading:
170
169
  <tr><td valign="top">aSpecFormat:</td><td>The format being used by the specification.
171
170
 
172
171
  </td></tr>
173
- </table>
174
- </div>
175
- </div>
176
-
177
- <div id="method-M000037" class="method-detail">
178
- <a name="M000037"></a>
172
+ <tr><td valign="top">aClockTrigger:</td><td>When the return value of this block is <tt>true</tt>, then the
173
+ relay_verilog method returns. This block is given one argument: a handle to
174
+ the clock signal that drives the design under test. If this block is not
175
+ specified, relay_verilog will always return upon the next positive edge of
176
+ the clock signal.
179
177
 
180
- <div class="method-heading">
181
- <a href="RubyVpi.src/M000037.html" target="Code" class="method-signature"
182
- onclick="popupCode('RubyVpi.src/M000037.html');return false;">
183
- <span class="method-name">with_coverage_analysis</span><span class="method-args">( {|Rcov::CodeCoverageAnalyzer| ...}</span>
184
- </a>
185
- </div>
186
-
187
- <div class="method-description">
188
- <p>
189
- Invokes the given block after code coverage analysis has completed.
190
- </p>
178
+ </td></tr>
179
+ </table>
180
+ <pre>
181
+ # return upon positive edge
182
+ RubyVpi.init_bench ... |clk|
183
+ clk.intVal == 1
184
+ end
185
+
186
+ # return upon negative edge
187
+ RubyVpi.init_bench ... do |clk|
188
+ clk.intVal == 0
189
+ end
190
+
191
+ # return whenever clock changes
192
+ RubyVpi.init_bench ... do |clk|
193
+ true
194
+ end
195
+ </pre>
191
196
  </div>
192
197
  </div>
193
198