ruby-vpi 8.0.0 → 8.1.0

Sign up to get free protection for your applications and to get access to all the features.
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>