ruby-vpi 8.0.0 → 8.1.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 (200) hide show
  1. data/HISTORY +15 -0
  2. data/doc/background.organization.html +1 -1
  3. data/doc/index.html +2 -2
  4. data/doc/usage.tutorial.html +1 -1
  5. data/ext/swig_wrap.cin +5559 -3041
  6. data/history.html +25 -0
  7. data/history.part.html +25 -0
  8. data/lib/ruby-vpi/integer.rb +156 -0
  9. data/lib/ruby-vpi/{vpi_util.rb → vpi.rb} +0 -0
  10. data/lib/ruby-vpi.rb +1 -1
  11. data/ref/c/annotated.html +8 -4
  12. data/ref/c/common_8h.html +56 -88
  13. data/ref/c/doxygen.css +64 -16
  14. data/ref/c/files.html +5 -3
  15. data/ref/c/functions.html +46 -27
  16. data/ref/c/functions_vars.html +46 -27
  17. data/ref/c/globals.html +213 -7
  18. data/ref/c/globals_0x62.html +62 -0
  19. data/ref/c/globals_0x63.html +51 -34
  20. data/ref/c/globals_0x65.html +12 -5
  21. data/ref/c/globals_0x66.html +22 -5
  22. data/ref/c/globals_0x67.html +64 -0
  23. data/ref/c/globals_0x69.html +62 -0
  24. data/ref/c/globals_0x6c.html +64 -0
  25. data/ref/c/globals_0x6d.html +62 -0
  26. data/ref/c/globals_0x6e.html +63 -0
  27. data/ref/c/globals_0x70.html +28 -21
  28. data/ref/c/globals_0x72.html +17 -6
  29. data/ref/c/globals_0x73.html +201 -15
  30. data/ref/c/globals_0x74.html +11 -4
  31. data/ref/c/globals_0x75.html +63 -0
  32. data/ref/c/globals_0x76.html +428 -417
  33. data/ref/c/globals_0x78.html +12 -5
  34. data/ref/c/globals_defs.html +37 -32
  35. data/ref/c/globals_defs_0x65.html +9 -4
  36. data/ref/c/globals_defs_0x6c.html +57 -0
  37. data/ref/c/globals_defs_0x6e.html +56 -0
  38. data/ref/c/globals_defs_0x70.html +10 -5
  39. data/ref/c/globals_defs_0x72.html +57 -0
  40. data/ref/c/globals_defs_0x73.html +164 -0
  41. data/ref/c/globals_defs_0x75.html +56 -0
  42. data/ref/c/globals_defs_0x76.html +422 -415
  43. data/ref/c/globals_defs_0x78.html +9 -4
  44. data/ref/c/globals_enum.html +3 -3
  45. data/ref/c/globals_eval.html +3 -3
  46. data/ref/c/globals_func.html +175 -16
  47. data/ref/c/globals_func_0x66.html +62 -0
  48. data/ref/c/globals_func_0x67.html +55 -0
  49. data/ref/c/globals_func_0x69.html +53 -0
  50. data/ref/c/globals_func_0x70.html +53 -0
  51. data/ref/c/globals_func_0x72.html +57 -0
  52. data/ref/c/globals_func_0x73.html +114 -0
  53. data/ref/c/globals_func_0x76.html +57 -0
  54. data/ref/c/globals_type.html +31 -28
  55. data/ref/c/globals_vars.html +90 -6
  56. data/ref/c/index.html +3 -3
  57. data/ref/c/relay_8cin.html +104 -168
  58. data/ref/c/relay_8hin.html +59 -91
  59. data/ref/c/ruby-vpi_8c.html +3 -3
  60. data/ref/c/structrelay____RubyOptions____def.html +23 -40
  61. data/ref/c/structswig__cast__info.html +98 -0
  62. data/ref/c/structswig__class.html +115 -0
  63. data/ref/c/structswig__module__info.html +132 -0
  64. data/ref/c/structswig__type__info.html +132 -0
  65. data/ref/c/structt__cb__data.html +93 -133
  66. data/ref/c/structt__vpi__delay.html +82 -114
  67. data/ref/c/structt__vpi__error__info.html +143 -132
  68. data/ref/c/structt__vpi__strengthval.html +35 -60
  69. data/ref/c/structt__vpi__systf__data.html +112 -135
  70. data/ref/c/structt__vpi__time.html +45 -78
  71. data/ref/c/structt__vpi__value.html +215 -186
  72. data/ref/c/structt__vpi__vecval.html +25 -42
  73. data/ref/c/structt__vpi__vlog__info.html +96 -78
  74. data/ref/c/swig_8cin.html +33 -49
  75. data/ref/c/swig_8hin.html +32 -48
  76. data/ref/c/swig__vpi_8h.html +8739 -0
  77. data/ref/c/swig__wrap_8cin.html +11556 -0
  78. data/ref/c/unions__vpi__value__value.html +166 -0
  79. data/ref/c/verilog_8h.html +58 -90
  80. data/ref/c/vlog_8cin.html +78 -118
  81. data/ref/c/vlog_8hin.html +53 -77
  82. data/ref/c/vpi__user_8h.html +5286 -9294
  83. data/ref/ruby/classes/ERB.html +5 -5
  84. data/ref/ruby/classes/ERB.src/{M000018.html → M000032.html} +0 -0
  85. data/ref/ruby/classes/FileUtils.html +10 -10
  86. data/ref/ruby/classes/FileUtils.src/{M000073.html → M000087.html} +0 -0
  87. data/ref/ruby/classes/FileUtils.src/{M000074.html → M000088.html} +0 -0
  88. data/ref/ruby/classes/Integer.html +398 -0
  89. data/ref/ruby/classes/Integer.src/M000010.html +25 -0
  90. data/ref/ruby/classes/Integer.src/M000011.html +18 -0
  91. data/ref/ruby/classes/Integer.src/M000012.html +18 -0
  92. data/ref/ruby/classes/Integer.src/M000013.html +18 -0
  93. data/ref/ruby/classes/Integer.src/M000014.html +18 -0
  94. data/ref/ruby/classes/Integer.src/M000015.html +18 -0
  95. data/ref/ruby/classes/Integer.src/M000018.html +22 -0
  96. data/ref/ruby/classes/Integer.src/M000019.html +22 -0
  97. data/ref/ruby/classes/Integer.src/M000020.html +25 -0
  98. data/ref/ruby/classes/Integer.src/M000021.html +31 -0
  99. data/ref/ruby/classes/Integer.src/M000022.html +25 -0
  100. data/ref/ruby/classes/Integer.src/M000023.html +30 -0
  101. data/ref/ruby/classes/OutputInfo.html +5 -5
  102. data/ref/ruby/classes/OutputInfo.src/{M000014.html → M000028.html} +0 -0
  103. data/ref/ruby/classes/RDoc.html +5 -5
  104. data/ref/ruby/classes/RDoc.src/{M000077.html → M000091.html} +0 -0
  105. data/ref/ruby/classes/RubyVpi.html +10 -10
  106. data/ref/ruby/classes/RubyVpi.src/{M000075.html → M000089.html} +1 -1
  107. data/ref/ruby/classes/RubyVpi.src/{M000076.html → M000090.html} +0 -0
  108. data/ref/ruby/classes/SWIG/TYPE_p_unsigned_int.html +47 -47
  109. data/ref/ruby/classes/SWIG/TYPE_p_unsigned_int.src/{M000065.html → M000079.html} +1 -1
  110. data/ref/ruby/classes/SWIG/TYPE_p_unsigned_int.src/{M000066.html → M000080.html} +1 -1
  111. data/ref/ruby/classes/SWIG/TYPE_p_unsigned_int.src/{M000067.html → M000081.html} +1 -1
  112. data/ref/ruby/classes/SWIG/TYPE_p_unsigned_int.src/{M000068.html → M000082.html} +1 -1
  113. data/ref/ruby/classes/SWIG/TYPE_p_unsigned_int.src/{M000069.html → M000083.html} +1 -1
  114. data/ref/ruby/classes/SWIG/TYPE_p_unsigned_int.src/{M000070.html → M000084.html} +1 -1
  115. data/ref/ruby/classes/SWIG/TYPE_p_unsigned_int.src/{M000071.html → M000085.html} +1 -1
  116. data/ref/ruby/classes/SWIG/TYPE_p_unsigned_int.src/{M000072.html → M000086.html} +1 -1
  117. data/ref/ruby/classes/SWIG.html +2 -2
  118. data/ref/ruby/classes/String.html +10 -10
  119. data/ref/ruby/classes/String.src/{M000016.html → M000030.html} +0 -0
  120. data/ref/ruby/classes/String.src/{M000017.html → M000031.html} +0 -0
  121. data/ref/ruby/classes/Table.html +20 -20
  122. data/ref/ruby/classes/Table.src/{M000010.html → M000024.html} +0 -0
  123. data/ref/ruby/classes/Table.src/{M000011.html → M000025.html} +0 -0
  124. data/ref/ruby/classes/Table.src/{M000012.html → M000026.html} +0 -0
  125. data/ref/ruby/classes/Table.src/{M000013.html → M000027.html} +0 -0
  126. data/ref/ruby/classes/Template.html +5 -5
  127. data/ref/ruby/classes/Template.src/{M000015.html → M000029.html} +0 -0
  128. data/ref/ruby/classes/XX/Document.html +45 -45
  129. data/ref/ruby/classes/XX/Document.src/{M000056.html → M000070.html} +0 -0
  130. data/ref/ruby/classes/XX/Document.src/{M000057.html → M000071.html} +0 -0
  131. data/ref/ruby/classes/XX/Document.src/{M000058.html → M000072.html} +0 -0
  132. data/ref/ruby/classes/XX/Document.src/{M000059.html → M000073.html} +0 -0
  133. data/ref/ruby/classes/XX/Document.src/{M000060.html → M000074.html} +0 -0
  134. data/ref/ruby/classes/XX/Document.src/{M000061.html → M000075.html} +0 -0
  135. data/ref/ruby/classes/XX/Document.src/{M000062.html → M000076.html} +0 -0
  136. data/ref/ruby/classes/XX/Document.src/{M000063.html → M000077.html} +0 -0
  137. data/ref/ruby/classes/XX/Document.src/{M000064.html → M000078.html} +0 -0
  138. data/ref/ruby/classes/XX/HTML4/Strict.html +5 -5
  139. data/ref/ruby/classes/XX/HTML4/Strict.src/{M000022.html → M000036.html} +0 -0
  140. data/ref/ruby/classes/XX/HTML4/Transitional.html +5 -5
  141. data/ref/ruby/classes/XX/HTML4/Transitional.src/{M000021.html → M000035.html} +0 -0
  142. data/ref/ruby/classes/XX/HTML4.html +5 -5
  143. data/ref/ruby/classes/XX/HTML4.src/{M000020.html → M000034.html} +0 -0
  144. data/ref/ruby/classes/XX/Markup/ClassMethods.html +40 -40
  145. data/ref/ruby/classes/XX/Markup/ClassMethods.src/{M000028.html → M000042.html} +0 -0
  146. data/ref/ruby/classes/XX/Markup/ClassMethods.src/{M000029.html → M000043.html} +0 -0
  147. data/ref/ruby/classes/XX/Markup/ClassMethods.src/{M000030.html → M000044.html} +0 -0
  148. data/ref/ruby/classes/XX/Markup/ClassMethods.src/{M000031.html → M000045.html} +0 -0
  149. data/ref/ruby/classes/XX/Markup/ClassMethods.src/{M000032.html → M000046.html} +0 -0
  150. data/ref/ruby/classes/XX/Markup/ClassMethods.src/{M000033.html → M000047.html} +0 -0
  151. data/ref/ruby/classes/XX/Markup/ClassMethods.src/{M000034.html → M000048.html} +0 -0
  152. data/ref/ruby/classes/XX/Markup/ClassMethods.src/{M000035.html → M000049.html} +0 -0
  153. data/ref/ruby/classes/XX/Markup/InstanceMethods.html +100 -100
  154. data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000050.html +43 -7
  155. data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000051.html +20 -7
  156. data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000052.html +18 -8
  157. data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000053.html +35 -7
  158. data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000054.html +7 -7
  159. data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000055.html +18 -7
  160. data/ref/ruby/classes/XX/Markup/InstanceMethods.src/{M000042.html → M000056.html} +0 -0
  161. data/ref/ruby/classes/XX/Markup/InstanceMethods.src/{M000043.html → M000057.html} +0 -0
  162. data/ref/ruby/classes/XX/Markup/InstanceMethods.src/{M000044.html → M000058.html} +0 -0
  163. data/ref/ruby/classes/XX/Markup/InstanceMethods.src/{M000045.html → M000059.html} +0 -0
  164. data/ref/ruby/classes/XX/Markup/InstanceMethods.src/{M000046.html → M000060.html} +0 -0
  165. data/ref/ruby/classes/XX/Markup/InstanceMethods.src/{M000047.html → M000061.html} +0 -0
  166. data/ref/ruby/classes/XX/Markup/InstanceMethods.src/{M000048.html → M000062.html} +0 -0
  167. data/ref/ruby/classes/XX/Markup/InstanceMethods.src/{M000049.html → M000063.html} +0 -0
  168. data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000064.html +20 -0
  169. data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000065.html +20 -0
  170. data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000066.html +21 -0
  171. data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000067.html +20 -0
  172. data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000068.html +20 -0
  173. data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000069.html +20 -0
  174. data/ref/ruby/classes/XX/Markup.html +5 -5
  175. data/ref/ruby/classes/XX/Markup.src/{M000027.html → M000041.html} +0 -0
  176. data/ref/ruby/classes/XX/XHTML/Strict.html +5 -5
  177. data/ref/ruby/classes/XX/XHTML/Strict.src/{M000025.html → M000039.html} +0 -0
  178. data/ref/ruby/classes/XX/XHTML/Transitional.html +5 -5
  179. data/ref/ruby/classes/XX/XHTML/Transitional.src/{M000024.html → M000038.html} +0 -0
  180. data/ref/ruby/classes/XX/XHTML.html +5 -5
  181. data/ref/ruby/classes/XX/XHTML.src/{M000023.html → M000037.html} +0 -0
  182. data/ref/ruby/classes/XX/XML.html +5 -5
  183. data/ref/ruby/classes/XX/XML.src/{M000019.html → M000033.html} +0 -0
  184. data/ref/ruby/classes/XX/XMLish.html +5 -5
  185. data/ref/ruby/classes/XX/XMLish.src/{M000026.html → M000040.html} +0 -0
  186. data/ref/ruby/created.rid +1 -1
  187. data/ref/ruby/files/lib/ruby-vpi/integer_rb.html +101 -0
  188. data/ref/ruby/files/lib/ruby-vpi/{vpi_util_rb.html → vpi_rb.html} +3 -3
  189. data/ref/ruby/files/lib/ruby-vpi_rb.html +2 -2
  190. data/ref/ruby/fr_class_index.html +1 -0
  191. data/ref/ruby/fr_file_index.html +2 -1
  192. data/ref/ruby/fr_method_index.html +83 -69
  193. metadata +112 -70
  194. data/ref/c/hierarchy.html +0 -36
  195. data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000036.html +0 -56
  196. data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000037.html +0 -33
  197. data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000038.html +0 -31
  198. data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000039.html +0 -48
  199. data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000040.html +0 -20
  200. data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000041.html +0 -31
data/history.html CHANGED
@@ -144,6 +144,31 @@ We <em>strictly</em> follow the RubyGems project&#8217;s <a href="http://www.rub
144
144
  <p id="fn1"><sup>1</sup> C. Gross, &#8220;Explaining Open Source Version Numbers&#8221;, [Online document], 2005 Nov 28, [cited 2006 Aug 27], Available <span class="caps">HTTP</span>: <a href="http://ablog.apress.com/?p=738">http://ablog.apress.com/?p=738</a></p>
145
145
 
146
146
 
147
+ <h1>Version 8.1.0 (2006-10-21)</h1>
148
+
149
+
150
+ <h2>Summary</h2>
151
+
152
+
153
+ <p>This release adds an integer library and renames the vpi_util library.</p>
154
+
155
+
156
+ <h2>Notice</h2>
157
+
158
+
159
+ <ul>
160
+ <li>The <strong>vpi_util</strong> library has been renamed to <strong>vpi</strong>. This change should not affect your code unless you explicitly imported this library via <code>require 'ruby-vpi/vpi_util'</code>. In which case, you should update your code to use <code>require 'ruby-vpi/vpi'</code> accordingly.</li>
161
+ </ul>
162
+
163
+
164
+ <h2>Details</h2>
165
+
166
+
167
+ <ul>
168
+ <li>An integer library has been added to simplify common tasks related to hardware and the binary number system. You can import this library for use via <code>require 'ruby-vpi/integer'</code>.</li>
169
+ </ul>
170
+
171
+
147
172
  <h1>Version 8.0.0 (2006-10-13)</h1>
148
173
 
149
174
 
data/history.part.html CHANGED
@@ -18,6 +18,31 @@ We <em>strictly</em> follow the RubyGems project&#8217;s <a href="http://www.rub
18
18
  <p id="fn1"><sup>1</sup> C. Gross, &#8220;Explaining Open Source Version Numbers&#8221;, [Online document], 2005 Nov 28, [cited 2006 Aug 27], Available <span class="caps">HTTP</span>: <a href="http://ablog.apress.com/?p=738">http://ablog.apress.com/?p=738</a></p>
19
19
 
20
20
 
21
+ <h1>Version 8.1.0 (2006-10-21)</h1>
22
+
23
+
24
+ <h2>Summary</h2>
25
+
26
+
27
+ <p>This release adds an integer library and renames the vpi_util library.</p>
28
+
29
+
30
+ <h2>Notice</h2>
31
+
32
+
33
+ <ul>
34
+ <li>The <strong>vpi_util</strong> library has been renamed to <strong>vpi</strong>. This change should not affect your code unless you explicitly imported this library via <code>require 'ruby-vpi/vpi_util'</code>. In which case, you should update your code to use <code>require 'ruby-vpi/vpi'</code> accordingly.</li>
35
+ </ul>
36
+
37
+
38
+ <h2>Details</h2>
39
+
40
+
41
+ <ul>
42
+ <li>An integer library has been added to simplify common tasks related to hardware and the binary number system. You can import this library for use via <code>require 'ruby-vpi/integer'</code>.</li>
43
+ </ul>
44
+
45
+
21
46
  <h1>Version 8.0.0 (2006-10-13)</h1>
22
47
 
23
48
 
@@ -0,0 +1,156 @@
1
+ =begin
2
+ Copyright 2006 Suraj N. Kurapati
3
+
4
+ This file is part of Ruby-VPI.
5
+
6
+ Ruby-VPI is free software; you can redistribute it and/or
7
+ modify it under the terms of the GNU General Public License
8
+ as published by the Free Software Foundation; either version 2
9
+ of the License, or (at your option) any later version.
10
+
11
+ Ruby-VPI is distributed in the hope that it will be useful,
12
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
13
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
+ GNU General Public License for more details.
15
+
16
+ You should have received a copy of the GNU General Public License
17
+ along with Ruby-VPI; if not, write to the Free Software Foundation,
18
+ Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
19
+ =end
20
+
21
+ # NOTE: Because integers are _immediate_ values in Ruby, these methods *cannot* modify the value of the integer upon which they are invoked. Instead, they return the new value as their result.
22
+ class Integer
23
+ # Returns the ceiling of the logarithm (base 2) of this positive integer.
24
+ def log2
25
+ raise "integer must be positive" if self < 0
26
+ bin = to_s(2)
27
+
28
+ if bin =~ /^10+$/
29
+ bin.length - 1
30
+ else
31
+ bin.length
32
+ end
33
+ end
34
+
35
+ # Returns the minimum number of bits necessary to represent this integer.
36
+ def length
37
+ to_s(2).length
38
+ end
39
+
40
+ # Returns the lowest upper-bound of this integer. This integer cannot reach the limit without occupying more bits in its binary representation.
41
+ def limit
42
+ length.to_limit
43
+ end
44
+
45
+ # Returns the lowest upper-bound of an integer with *this* number of bits.
46
+ def to_limit
47
+ 2 ** self
48
+ end
49
+
50
+
51
+ # Returns a bit-mask capable of masking this integer.
52
+ def mask
53
+ length.to_mask
54
+ end
55
+
56
+ # Returns a bit-mask capable of masking an integer with *this* number of bits.
57
+ def to_mask
58
+ to_limit - 1
59
+ end
60
+
61
+
62
+ # Returns the maximum value representable by this integer without occupying more bits in its binary representation.
63
+ alias max mask
64
+
65
+ # Returns the maximum value representable by an integer with *this* number of bits.
66
+ alias to_max to_mask
67
+
68
+
69
+ # Ensures that this integer is no less than the given limit.
70
+ def ensure_min aLimit
71
+ if self < aLimit
72
+ aLimit
73
+ else
74
+ self
75
+ end
76
+ end
77
+
78
+ # Ensures that this integer is no greater than the given limit.
79
+ def ensure_max aLimit
80
+ if self > aLimit
81
+ aLimit
82
+ else
83
+ self
84
+ end
85
+ end
86
+
87
+
88
+ # Transforms this infinite-length Ruby integer into a fixed-length integer (represented in two's complement form) that has the given width (number of bits).
89
+ def pack aPackedWidth
90
+ bits = length
91
+ bits += 1 if self > 0 # positive integers also have a sign bit (zero)
92
+
93
+ unless aPackedWidth >= bits
94
+ raise ArgumentError, "packed width #{aPackedWidth} must be at least #{bits} for integer #{self}"
95
+ end
96
+
97
+ extend_sign(bits, aPackedWidth)
98
+ end
99
+
100
+ # Transforms this fixed-length integer (represented in two's complement form) that has the given width (number of bits) into an infinite-length Ruby integer.
101
+ def unpack aPackedWidth
102
+ bits = length
103
+
104
+ unless aPackedWidth >= bits
105
+ raise ArgumentError, "packed width #{aPackedWidth} must be at least #{bits} for integer #{self}"
106
+ end
107
+
108
+ mask = aPackedWidth.to_mask
109
+ result = self & mask
110
+
111
+ if result[aPackedWidth - 1] == 1
112
+ -((-result) & mask)
113
+ else
114
+ result
115
+ end
116
+ end
117
+
118
+
119
+ # Performs sign extension on this integer, which has the given width (number of bits), so that the result will have the given extended width (number of bits).
120
+ def extend_sign aOrigWidth, aExtWidth
121
+ result = self
122
+ maskWidth = aExtWidth - aOrigWidth
123
+
124
+ if maskWidth > 0 && result[aOrigWidth - 1] == 1
125
+ result |= (maskWidth.to_mask << aOrigWidth)
126
+ end
127
+
128
+ result & aExtWidth.to_mask
129
+ end
130
+
131
+ # Splits this integer into an array of smaller integers, each of which have the given positive, non-zero width (number of bits). These smaller integers are ordered from left to right, in the same way that humans write unsigned binary numbers; for example:
132
+ #
133
+ ## >> 6.split 1
134
+ ## => [1, 1, 0]
135
+ ## >> 6.split(1).map {|i| i.to_s 2}
136
+ ## => ["1", "1", "0"]
137
+ ## >> 6.split 2
138
+ ## => [1, 2]
139
+ ## >> 6.split(2).map {|i| i.to_s 2}
140
+ ## => ["1", "10"]
141
+ def split aWidth = 8
142
+ raise ArgumentError, "width must be positive and non-zero" unless aWidth > 0
143
+
144
+ int, bits = self, length
145
+ mask = aWidth.to_mask
146
+ words = []
147
+
148
+ while bits > 0
149
+ words.unshift int & mask
150
+ int >>= aWidth
151
+ bits -= aWidth
152
+ end
153
+
154
+ words
155
+ end
156
+ end
File without changes
data/lib/ruby-vpi.rb CHANGED
@@ -22,7 +22,7 @@
22
22
  module RubyVpi
23
23
  # Initializes the current bench using the given parameters.
24
24
  def RubyVpi.init_bench aTestPrefix, aProtoClassId
25
- require 'ruby-vpi/vpi_util'
25
+ require 'ruby-vpi/vpi'
26
26
  Vpi::relay_verilog # service the $ruby_init() callback
27
27
 
28
28
  # set up code coverage analysis
data/ref/c/annotated.html CHANGED
@@ -4,7 +4,7 @@
4
4
  <link href="doxygen.css" rel="stylesheet" type="text/css">
5
5
  <link href="tabs.css" rel="stylesheet" type="text/css">
6
6
  </head><body>
7
- <!-- Generated by Doxygen 1.4.6 -->
7
+ <!-- Generated by Doxygen 1.4.7 -->
8
8
  <div class="tabs">
9
9
  <ul>
10
10
  <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
@@ -14,11 +14,15 @@
14
14
  <div class="tabs">
15
15
  <ul>
16
16
  <li id="current"><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
17
- <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
18
17
  <li><a href="functions.html"><span>Data&nbsp;Fields</span></a></li>
19
18
  </ul></div>
20
19
  <h1>Ruby-VPI Data Structures</h1>Here are the data structures with brief descriptions:<table>
21
20
  <tr><td class="indexkey"><a class="el" href="structrelay____RubyOptions____def.html">relay__RubyOptions__def</a></td><td class="indexvalue"></td></tr>
21
+ <tr><td class="indexkey"><a class="el" href="unions__vpi__value__value.html">s_vpi_value_value</a></td><td class="indexvalue"></td></tr>
22
+ <tr><td class="indexkey"><a class="el" href="structswig__cast__info.html">swig_cast_info</a></td><td class="indexvalue"></td></tr>
23
+ <tr><td class="indexkey"><a class="el" href="structswig__class.html">swig_class</a></td><td class="indexvalue"></td></tr>
24
+ <tr><td class="indexkey"><a class="el" href="structswig__module__info.html">swig_module_info</a></td><td class="indexvalue"></td></tr>
25
+ <tr><td class="indexkey"><a class="el" href="structswig__type__info.html">swig_type_info</a></td><td class="indexvalue"></td></tr>
22
26
  <tr><td class="indexkey"><a class="el" href="structt__cb__data.html">t_cb_data</a></td><td class="indexvalue"></td></tr>
23
27
  <tr><td class="indexkey"><a class="el" href="structt__vpi__delay.html">t_vpi_delay</a></td><td class="indexvalue"></td></tr>
24
28
  <tr><td class="indexkey"><a class="el" href="structt__vpi__error__info.html">t_vpi_error_info</a></td><td class="indexvalue"></td></tr>
@@ -29,8 +33,8 @@
29
33
  <tr><td class="indexkey"><a class="el" href="structt__vpi__vecval.html">t_vpi_vecval</a></td><td class="indexvalue"></td></tr>
30
34
  <tr><td class="indexkey"><a class="el" href="structt__vpi__vlog__info.html">t_vpi_vlog_info</a></td><td class="indexvalue"></td></tr>
31
35
  </table>
32
- <hr size="1"><address style="align: right;"><small>Generated on Fri Oct 13 09:38:22 2006 for Ruby-VPI by&nbsp;
36
+ <hr size="1"><address style="align: right;"><small>Generated on Sat Oct 21 14:39:54 2006 for Ruby-VPI by&nbsp;
33
37
  <a href="http://www.doxygen.org/index.html">
34
- <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.6 </small></address>
38
+ <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.7 </small></address>
35
39
  </body>
36
40
  </html>
data/ref/c/common_8h.html CHANGED
@@ -4,7 +4,7 @@
4
4
  <link href="doxygen.css" rel="stylesheet" type="text/css">
5
5
  <link href="tabs.css" rel="stylesheet" type="text/css">
6
6
  </head><body>
7
- <!-- Generated by Doxygen 1.4.6 -->
7
+ <!-- Generated by Doxygen 1.4.7 -->
8
8
  <div class="tabs">
9
9
  <ul>
10
10
  <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
@@ -42,89 +42,65 @@
42
42
  Things common to all Ruby-VPI code.
43
43
  <p>
44
44
  <hr><h2>Define Documentation</h2>
45
- <a class="anchor" name="f30d3fc89fbb3ed2aab2f5904ab76815"></a><!-- doxytag: member="common.h::common_boolToStr" ref="f30d3fc89fbb3ed2aab2f5904ab76815" args="(aBoolExpr)" --><p>
46
- <table class="mdTable" cellpadding="2" cellspacing="0">
47
- <tr>
48
- <td class="mdRow">
49
- <table cellpadding="0" cellspacing="0" border="0">
45
+ <a class="anchor" name="f30d3fc89fbb3ed2aab2f5904ab76815"></a><!-- doxytag: member="common.h::common_boolToStr" ref="f30d3fc89fbb3ed2aab2f5904ab76815" args="(aBoolExpr)" -->
46
+ <div class="memitem">
47
+ <div class="memproto">
48
+ <table class="memname">
50
49
  <tr>
51
- <td class="md" nowrap valign="top">#define common_boolToStr </td>
52
- <td class="md" valign="top">(&nbsp;</td>
53
- <td class="md" nowrap valign="top">aBoolExpr&nbsp;</td>
54
- <td class="mdname1" valign="top" nowrap> </td>
55
- <td class="md" valign="top">&nbsp;)&nbsp;</td>
56
- <td class="md" nowrap>&nbsp;&nbsp;&nbsp;( (aBoolExpr) ? &quot;true&quot; : &quot;false&quot; )</td>
50
+ <td class="memname">#define common_boolToStr </td>
51
+ <td>(</td>
52
+ <td class="paramtype">aBoolExpr&nbsp;</td>
53
+ <td class="paramname"> </td>
54
+ <td>&nbsp;)&nbsp;</td>
55
+ <td width="100%">&nbsp;&nbsp;&nbsp;( (aBoolExpr) ? &quot;true&quot; : &quot;false&quot; )</td>
57
56
  </tr>
58
57
  </table>
59
- </td>
60
- </tr>
61
- </table>
62
- <table cellspacing="5" cellpadding="0" border="0">
63
- <tr>
64
- <td>
65
- &nbsp;
66
- </td>
67
- <td>
58
+ </div>
59
+ <div class="memdoc">
68
60
 
69
61
  <p>
70
62
  Returns the string "true" if the given boolean expression is true.
71
63
  <p>
72
- Otherwise returns the string "false". </td>
73
- </tr>
74
- </table>
75
- <a class="anchor" name="fcdad79cb06a5c61737b2f434218dc95"></a><!-- doxytag: member="common.h::common_debug" ref="fcdad79cb06a5c61737b2f434218dc95" args="()" --><p>
76
- <table class="mdTable" cellpadding="2" cellspacing="0">
77
- <tr>
78
- <td class="mdRow">
79
- <table cellpadding="0" cellspacing="0" border="0">
64
+ Otherwise returns the string "false".
65
+ </div>
66
+ </div><p>
67
+ <a class="anchor" name="fcdad79cb06a5c61737b2f434218dc95"></a><!-- doxytag: member="common.h::common_debug" ref="fcdad79cb06a5c61737b2f434218dc95" args="()" -->
68
+ <div class="memitem">
69
+ <div class="memproto">
70
+ <table class="memname">
80
71
  <tr>
81
- <td class="md" nowrap valign="top">#define common_debug </td>
82
- <td class="md" valign="top">(&nbsp;</td>
72
+ <td class="memname">#define common_debug </td>
73
+ <td>(</td>
83
74
  &nbsp;</td>
84
- <td class="mdname1" valign="top" nowrap> </td>
85
- <td class="md" valign="top">&nbsp;)&nbsp;</td>
86
- <td class="md" nowrap></td>
75
+ <td class="paramname"> </td>
76
+ <td>&nbsp;)&nbsp;</td>
77
+ <td width="100%"></td>
87
78
  </tr>
88
79
  </table>
89
- </td>
90
- </tr>
91
- </table>
92
- <table cellspacing="5" cellpadding="0" border="0">
93
- <tr>
94
- <td>
95
- &nbsp;
96
- </td>
97
- <td>
80
+ </div>
81
+ <div class="memdoc">
98
82
 
99
83
  <p>
100
84
  A wrapper for <a class="el" href="common_8h.html#88235e5f8aab82571d68045e9f73fe81">common_printf()</a> which marks the given message as being debugging output.
101
85
  <p>
102
- </td>
103
- </tr>
104
- </table>
105
- <a class="anchor" name="88235e5f8aab82571d68045e9f73fe81"></a><!-- doxytag: member="common.h::common_printf" ref="88235e5f8aab82571d68045e9f73fe81" args="()" --><p>
106
- <table class="mdTable" cellpadding="2" cellspacing="0">
107
- <tr>
108
- <td class="mdRow">
109
- <table cellpadding="0" cellspacing="0" border="0">
86
+
87
+ </div>
88
+ </div><p>
89
+ <a class="anchor" name="88235e5f8aab82571d68045e9f73fe81"></a><!-- doxytag: member="common.h::common_printf" ref="88235e5f8aab82571d68045e9f73fe81" args="()" -->
90
+ <div class="memitem">
91
+ <div class="memproto">
92
+ <table class="memname">
110
93
  <tr>
111
- <td class="md" nowrap valign="top">#define common_printf </td>
112
- <td class="md" valign="top">(&nbsp;</td>
94
+ <td class="memname">#define common_printf </td>
95
+ <td>(</td>
113
96
  &nbsp;</td>
114
- <td class="mdname1" valign="top" nowrap> </td>
115
- <td class="md" valign="top">&nbsp;)&nbsp;</td>
116
- <td class="md" nowrap>&nbsp;&nbsp;&nbsp;vpi_printf(&quot;Ruby-VPI: &quot;); vpi_printf(__VA_ARGS__); vpi_printf(&quot;\n&quot;);</td>
97
+ <td class="paramname"> </td>
98
+ <td>&nbsp;)&nbsp;</td>
99
+ <td width="100%">&nbsp;&nbsp;&nbsp;vpi_printf(&quot;Ruby-VPI: &quot;); vpi_printf(__VA_ARGS__); vpi_printf(&quot;\n&quot;);</td>
117
100
  </tr>
118
101
  </table>
119
- </td>
120
- </tr>
121
- </table>
122
- <table cellspacing="5" cellpadding="0" border="0">
123
- <tr>
124
- <td>
125
- &nbsp;
126
- </td>
127
- <td>
102
+ </div>
103
+ <div class="memdoc">
128
104
 
129
105
  <p>
130
106
  A wrapper for vpi_printf() which marks the given message as being emitted from Ruby-VPI and ends the message with a new line.
@@ -134,28 +110,20 @@ A wrapper for vpi_printf() which marks the given message as being emitted from R
134
110
  <tr><td valign="top"></td><td valign="top"><em>...</em>&nbsp;</td><td>Arguments to vpi_printf() </td></tr>
135
111
  </table>
136
112
  </dl>
137
- </td>
138
- </tr>
139
- </table>
113
+
114
+ </div>
115
+ </div><p>
140
116
  <hr><h2>Enumeration Type Documentation</h2>
141
- <a class="anchor" name="f6a258d8f3ee5206d682d799316314b1"></a><!-- doxytag: member="common.h::bool" ref="f6a258d8f3ee5206d682d799316314b1" args="" --><p>
142
- <table class="mdTable" cellpadding="2" cellspacing="0">
143
- <tr>
144
- <td class="mdRow">
145
- <table cellpadding="0" cellspacing="0" border="0">
117
+ <a class="anchor" name="f6a258d8f3ee5206d682d799316314b1"></a><!-- doxytag: member="common.h::bool" ref="f6a258d8f3ee5206d682d799316314b1" args="" -->
118
+ <div class="memitem">
119
+ <div class="memproto">
120
+ <table class="memname">
146
121
  <tr>
147
- <td class="md" nowrap valign="top">enum <a class="el" href="common_8h.html#f6a258d8f3ee5206d682d799316314b1">bool</a> </td>
122
+ <td class="memname">enum <a class="el" href="common_8h.html#f6a258d8f3ee5206d682d799316314b1">bool</a> </td>
148
123
  </tr>
149
124
  </table>
150
- </td>
151
- </tr>
152
- </table>
153
- <table cellspacing="5" cellpadding="0" border="0">
154
- <tr>
155
- <td>
156
- &nbsp;
157
- </td>
158
- <td>
125
+ </div>
126
+ <div class="memdoc">
159
127
 
160
128
  <p>
161
129
  A boolean variable with two possible values: true and false.
@@ -168,11 +136,11 @@ Pass aroung this value instead of zero and non-zero integers. <dl compact><dt><b
168
136
  </td></tr>
169
137
  </table>
170
138
  </dl>
171
- </td>
172
- </tr>
173
- </table>
174
- <hr size="1"><address style="align: right;"><small>Generated on Fri Oct 13 09:38:22 2006 for Ruby-VPI by&nbsp;
139
+
140
+ </div>
141
+ </div><p>
142
+ <hr size="1"><address style="align: right;"><small>Generated on Sat Oct 21 14:39:54 2006 for Ruby-VPI by&nbsp;
175
143
  <a href="http://www.doxygen.org/index.html">
176
- <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.6 </small></address>
144
+ <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.7 </small></address>
177
145
  </body>
178
146
  </html>
data/ref/c/doxygen.css CHANGED
@@ -80,7 +80,7 @@ A.codeRef:visited { font-weight: normal; color: #0000FF}
80
80
  A:hover { text-decoration: none; background-color: #f2f2ff }
81
81
  DL.el { margin-left: -1cm }
82
82
  .fragment {
83
- font-family: Fixed, monospace;
83
+ font-family: monospace, fixed;
84
84
  font-size: 95%;
85
85
  }
86
86
  PRE.fragment {
@@ -96,14 +96,7 @@ PRE.fragment {
96
96
  padding-bottom: 4px;
97
97
  }
98
98
  DIV.ah { background-color: black; font-weight: bold; color: #ffffff; margin-bottom: 3px; margin-top: 3px }
99
- TD.md { background-color: #F4F4FB; font-weight: bold; }
100
- TD.mdPrefix {
101
- background-color: #F4F4FB;
102
- color: #606060;
103
- font-size: 80%;
104
- }
105
- TD.mdname1 { background-color: #F4F4FB; font-weight: bold; color: #602020; }
106
- TD.mdname { background-color: #F4F4FB; font-weight: bold; color: #602020; width: 600px; }
99
+
107
100
  DIV.groupHeader {
108
101
  margin-left: 16px;
109
102
  margin-top: 12px;
@@ -156,13 +149,6 @@ SPAN.comment { color: #800000 }
156
149
  SPAN.preprocessor { color: #806020 }
157
150
  SPAN.stringliteral { color: #002080 }
158
151
  SPAN.charliteral { color: #008080 }
159
- .mdTable {
160
- border: 1px solid #868686;
161
- background-color: #F4F4FB;
162
- }
163
- .mdRow {
164
- padding: 8px 10px;
165
- }
166
152
  .mdescLeft {
167
153
  padding: 0px 8px 4px 8px;
168
154
  font-size: 80%;
@@ -308,3 +294,65 @@ HR { height: 1px;
308
294
  border-top: 1px solid black;
309
295
  }
310
296
 
297
+ /* Style for detailed member documentation */
298
+ .memtemplate {
299
+ font-size: 80%;
300
+ color: #606060;
301
+ font-weight: normal;
302
+ }
303
+ .memnav {
304
+ background-color: #e8eef2;
305
+ border: 1px solid #84b0c7;
306
+ text-align: center;
307
+ margin: 2px;
308
+ margin-right: 15px;
309
+ padding: 2px;
310
+ }
311
+ .memitem {
312
+ padding: 4px;
313
+ background-color: #eef3f5;
314
+ border-width: 1px;
315
+ border-style: solid;
316
+ border-color: #dedeee;
317
+ -moz-border-radius: 8px 8px 8px 8px;
318
+ }
319
+ .memname {
320
+ white-space: nowrap;
321
+ font-weight: bold;
322
+ }
323
+ .memdoc{
324
+ padding-left: 10px;
325
+ }
326
+ .memproto {
327
+ background-color: #d5e1e8;
328
+ width: 100%;
329
+ border-width: 1px;
330
+ border-style: solid;
331
+ border-color: #84b0c7;
332
+ font-weight: bold;
333
+ -moz-border-radius: 8px 8px 8px 8px;
334
+ }
335
+ .paramkey {
336
+ text-align: right;
337
+ }
338
+ .paramtype {
339
+ white-space: nowrap;
340
+ }
341
+ .paramname {
342
+ color: #602020;
343
+ font-style: italic;
344
+ }
345
+ /* End Styling for detailed member documentation */
346
+
347
+ /* for the tree view */
348
+ .ftvtree {
349
+ font-family: sans-serif;
350
+ margin:0.5em;
351
+ }
352
+ .directory { font-size: 9pt; font-weight: bold; }
353
+ .directory h3 { margin: 0px; margin-top: 1em; font-size: 11pt; }
354
+ .directory > h3 { margin-top: 0; }
355
+ .directory p { margin: 0px; white-space: nowrap; }
356
+ .directory div { display: none; margin: 0px; }
357
+ .directory img { vertical-align: -30%; }
358
+
data/ref/c/files.html CHANGED
@@ -4,7 +4,7 @@
4
4
  <link href="doxygen.css" rel="stylesheet" type="text/css">
5
5
  <link href="tabs.css" rel="stylesheet" type="text/css">
6
6
  </head><body>
7
- <!-- Generated by Doxygen 1.4.6 -->
7
+ <!-- Generated by Doxygen 1.4.7 -->
8
8
  <div class="tabs">
9
9
  <ul>
10
10
  <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
@@ -23,13 +23,15 @@
23
23
  <tr><td class="indexkey"><a class="el" href="ruby-vpi_8c.html">ruby-vpi.c</a></td><td class="indexvalue">The Ruby-VPI extension, in a nutshell </td></tr>
24
24
  <tr><td class="indexkey"><a class="el" href="swig_8cin.html">swig.cin</a></td><td class="indexvalue"></td></tr>
25
25
  <tr><td class="indexkey"><a class="el" href="swig_8hin.html">swig.hin</a></td><td class="indexvalue">C interface to the SWIG-generated VPI interface </td></tr>
26
+ <tr><td class="indexkey"><a class="el" href="swig__vpi_8h.html">swig_vpi.h</a></td><td class="indexvalue"></td></tr>
27
+ <tr><td class="indexkey"><a class="el" href="swig__wrap_8cin.html">swig_wrap.cin</a></td><td class="indexvalue"></td></tr>
26
28
  <tr><td class="indexkey"><a class="el" href="verilog_8h.html">verilog.h</a></td><td class="indexvalue">A proxy for all Verilog headers of interest to us </td></tr>
27
29
  <tr><td class="indexkey"><a class="el" href="vlog_8cin.html">vlog.cin</a></td><td class="indexvalue"></td></tr>
28
30
  <tr><td class="indexkey"><a class="el" href="vlog_8hin.html">vlog.hin</a></td><td class="indexvalue">Interface between C and Verilog code </td></tr>
29
31
  <tr><td class="indexkey"><a class="el" href="vpi__user_8h.html">vpi_user.h</a></td><td class="indexvalue"></td></tr>
30
32
  </table>
31
- <hr size="1"><address style="align: right;"><small>Generated on Fri Oct 13 09:38:22 2006 for Ruby-VPI by&nbsp;
33
+ <hr size="1"><address style="align: right;"><small>Generated on Sat Oct 21 14:39:54 2006 for Ruby-VPI by&nbsp;
32
34
  <a href="http://www.doxygen.org/index.html">
33
- <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.6 </small></address>
35
+ <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.7 </small></address>
34
36
  </body>
35
37
  </html>