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.
- data/HISTORY +15 -0
- data/doc/background.organization.html +1 -1
- data/doc/index.html +2 -2
- data/doc/usage.tutorial.html +1 -1
- data/ext/swig_wrap.cin +5559 -3041
- data/history.html +25 -0
- data/history.part.html +25 -0
- data/lib/ruby-vpi/integer.rb +156 -0
- data/lib/ruby-vpi/{vpi_util.rb → vpi.rb} +0 -0
- data/lib/ruby-vpi.rb +1 -1
- data/ref/c/annotated.html +8 -4
- data/ref/c/common_8h.html +56 -88
- data/ref/c/doxygen.css +64 -16
- data/ref/c/files.html +5 -3
- data/ref/c/functions.html +46 -27
- data/ref/c/functions_vars.html +46 -27
- data/ref/c/globals.html +213 -7
- data/ref/c/globals_0x62.html +62 -0
- data/ref/c/globals_0x63.html +51 -34
- data/ref/c/globals_0x65.html +12 -5
- data/ref/c/globals_0x66.html +22 -5
- data/ref/c/globals_0x67.html +64 -0
- data/ref/c/globals_0x69.html +62 -0
- data/ref/c/globals_0x6c.html +64 -0
- data/ref/c/globals_0x6d.html +62 -0
- data/ref/c/globals_0x6e.html +63 -0
- data/ref/c/globals_0x70.html +28 -21
- data/ref/c/globals_0x72.html +17 -6
- data/ref/c/globals_0x73.html +201 -15
- data/ref/c/globals_0x74.html +11 -4
- data/ref/c/globals_0x75.html +63 -0
- data/ref/c/globals_0x76.html +428 -417
- data/ref/c/globals_0x78.html +12 -5
- data/ref/c/globals_defs.html +37 -32
- data/ref/c/globals_defs_0x65.html +9 -4
- data/ref/c/globals_defs_0x6c.html +57 -0
- data/ref/c/globals_defs_0x6e.html +56 -0
- data/ref/c/globals_defs_0x70.html +10 -5
- data/ref/c/globals_defs_0x72.html +57 -0
- data/ref/c/globals_defs_0x73.html +164 -0
- data/ref/c/globals_defs_0x75.html +56 -0
- data/ref/c/globals_defs_0x76.html +422 -415
- data/ref/c/globals_defs_0x78.html +9 -4
- data/ref/c/globals_enum.html +3 -3
- data/ref/c/globals_eval.html +3 -3
- data/ref/c/globals_func.html +175 -16
- data/ref/c/globals_func_0x66.html +62 -0
- data/ref/c/globals_func_0x67.html +55 -0
- data/ref/c/globals_func_0x69.html +53 -0
- data/ref/c/globals_func_0x70.html +53 -0
- data/ref/c/globals_func_0x72.html +57 -0
- data/ref/c/globals_func_0x73.html +114 -0
- data/ref/c/globals_func_0x76.html +57 -0
- data/ref/c/globals_type.html +31 -28
- data/ref/c/globals_vars.html +90 -6
- data/ref/c/index.html +3 -3
- data/ref/c/relay_8cin.html +104 -168
- data/ref/c/relay_8hin.html +59 -91
- data/ref/c/ruby-vpi_8c.html +3 -3
- data/ref/c/structrelay____RubyOptions____def.html +23 -40
- data/ref/c/structswig__cast__info.html +98 -0
- data/ref/c/structswig__class.html +115 -0
- data/ref/c/structswig__module__info.html +132 -0
- data/ref/c/structswig__type__info.html +132 -0
- data/ref/c/structt__cb__data.html +93 -133
- data/ref/c/structt__vpi__delay.html +82 -114
- data/ref/c/structt__vpi__error__info.html +143 -132
- data/ref/c/structt__vpi__strengthval.html +35 -60
- data/ref/c/structt__vpi__systf__data.html +112 -135
- data/ref/c/structt__vpi__time.html +45 -78
- data/ref/c/structt__vpi__value.html +215 -186
- data/ref/c/structt__vpi__vecval.html +25 -42
- data/ref/c/structt__vpi__vlog__info.html +96 -78
- data/ref/c/swig_8cin.html +33 -49
- data/ref/c/swig_8hin.html +32 -48
- data/ref/c/swig__vpi_8h.html +8739 -0
- data/ref/c/swig__wrap_8cin.html +11556 -0
- data/ref/c/unions__vpi__value__value.html +166 -0
- data/ref/c/verilog_8h.html +58 -90
- data/ref/c/vlog_8cin.html +78 -118
- data/ref/c/vlog_8hin.html +53 -77
- data/ref/c/vpi__user_8h.html +5286 -9294
- data/ref/ruby/classes/ERB.html +5 -5
- data/ref/ruby/classes/ERB.src/{M000018.html → M000032.html} +0 -0
- data/ref/ruby/classes/FileUtils.html +10 -10
- data/ref/ruby/classes/FileUtils.src/{M000073.html → M000087.html} +0 -0
- data/ref/ruby/classes/FileUtils.src/{M000074.html → M000088.html} +0 -0
- data/ref/ruby/classes/Integer.html +398 -0
- data/ref/ruby/classes/Integer.src/M000010.html +25 -0
- data/ref/ruby/classes/Integer.src/M000011.html +18 -0
- data/ref/ruby/classes/Integer.src/M000012.html +18 -0
- data/ref/ruby/classes/Integer.src/M000013.html +18 -0
- data/ref/ruby/classes/Integer.src/M000014.html +18 -0
- data/ref/ruby/classes/Integer.src/M000015.html +18 -0
- data/ref/ruby/classes/Integer.src/M000018.html +22 -0
- data/ref/ruby/classes/Integer.src/M000019.html +22 -0
- data/ref/ruby/classes/Integer.src/M000020.html +25 -0
- data/ref/ruby/classes/Integer.src/M000021.html +31 -0
- data/ref/ruby/classes/Integer.src/M000022.html +25 -0
- data/ref/ruby/classes/Integer.src/M000023.html +30 -0
- data/ref/ruby/classes/OutputInfo.html +5 -5
- data/ref/ruby/classes/OutputInfo.src/{M000014.html → M000028.html} +0 -0
- data/ref/ruby/classes/RDoc.html +5 -5
- data/ref/ruby/classes/RDoc.src/{M000077.html → M000091.html} +0 -0
- data/ref/ruby/classes/RubyVpi.html +10 -10
- data/ref/ruby/classes/RubyVpi.src/{M000075.html → M000089.html} +1 -1
- data/ref/ruby/classes/RubyVpi.src/{M000076.html → M000090.html} +0 -0
- data/ref/ruby/classes/SWIG/TYPE_p_unsigned_int.html +47 -47
- data/ref/ruby/classes/SWIG/TYPE_p_unsigned_int.src/{M000065.html → M000079.html} +1 -1
- data/ref/ruby/classes/SWIG/TYPE_p_unsigned_int.src/{M000066.html → M000080.html} +1 -1
- data/ref/ruby/classes/SWIG/TYPE_p_unsigned_int.src/{M000067.html → M000081.html} +1 -1
- data/ref/ruby/classes/SWIG/TYPE_p_unsigned_int.src/{M000068.html → M000082.html} +1 -1
- data/ref/ruby/classes/SWIG/TYPE_p_unsigned_int.src/{M000069.html → M000083.html} +1 -1
- data/ref/ruby/classes/SWIG/TYPE_p_unsigned_int.src/{M000070.html → M000084.html} +1 -1
- data/ref/ruby/classes/SWIG/TYPE_p_unsigned_int.src/{M000071.html → M000085.html} +1 -1
- data/ref/ruby/classes/SWIG/TYPE_p_unsigned_int.src/{M000072.html → M000086.html} +1 -1
- data/ref/ruby/classes/SWIG.html +2 -2
- data/ref/ruby/classes/String.html +10 -10
- data/ref/ruby/classes/String.src/{M000016.html → M000030.html} +0 -0
- data/ref/ruby/classes/String.src/{M000017.html → M000031.html} +0 -0
- data/ref/ruby/classes/Table.html +20 -20
- data/ref/ruby/classes/Table.src/{M000010.html → M000024.html} +0 -0
- data/ref/ruby/classes/Table.src/{M000011.html → M000025.html} +0 -0
- data/ref/ruby/classes/Table.src/{M000012.html → M000026.html} +0 -0
- data/ref/ruby/classes/Table.src/{M000013.html → M000027.html} +0 -0
- data/ref/ruby/classes/Template.html +5 -5
- data/ref/ruby/classes/Template.src/{M000015.html → M000029.html} +0 -0
- data/ref/ruby/classes/XX/Document.html +45 -45
- data/ref/ruby/classes/XX/Document.src/{M000056.html → M000070.html} +0 -0
- data/ref/ruby/classes/XX/Document.src/{M000057.html → M000071.html} +0 -0
- data/ref/ruby/classes/XX/Document.src/{M000058.html → M000072.html} +0 -0
- data/ref/ruby/classes/XX/Document.src/{M000059.html → M000073.html} +0 -0
- data/ref/ruby/classes/XX/Document.src/{M000060.html → M000074.html} +0 -0
- data/ref/ruby/classes/XX/Document.src/{M000061.html → M000075.html} +0 -0
- data/ref/ruby/classes/XX/Document.src/{M000062.html → M000076.html} +0 -0
- data/ref/ruby/classes/XX/Document.src/{M000063.html → M000077.html} +0 -0
- data/ref/ruby/classes/XX/Document.src/{M000064.html → M000078.html} +0 -0
- data/ref/ruby/classes/XX/HTML4/Strict.html +5 -5
- data/ref/ruby/classes/XX/HTML4/Strict.src/{M000022.html → M000036.html} +0 -0
- data/ref/ruby/classes/XX/HTML4/Transitional.html +5 -5
- data/ref/ruby/classes/XX/HTML4/Transitional.src/{M000021.html → M000035.html} +0 -0
- data/ref/ruby/classes/XX/HTML4.html +5 -5
- data/ref/ruby/classes/XX/HTML4.src/{M000020.html → M000034.html} +0 -0
- data/ref/ruby/classes/XX/Markup/ClassMethods.html +40 -40
- data/ref/ruby/classes/XX/Markup/ClassMethods.src/{M000028.html → M000042.html} +0 -0
- data/ref/ruby/classes/XX/Markup/ClassMethods.src/{M000029.html → M000043.html} +0 -0
- data/ref/ruby/classes/XX/Markup/ClassMethods.src/{M000030.html → M000044.html} +0 -0
- data/ref/ruby/classes/XX/Markup/ClassMethods.src/{M000031.html → M000045.html} +0 -0
- data/ref/ruby/classes/XX/Markup/ClassMethods.src/{M000032.html → M000046.html} +0 -0
- data/ref/ruby/classes/XX/Markup/ClassMethods.src/{M000033.html → M000047.html} +0 -0
- data/ref/ruby/classes/XX/Markup/ClassMethods.src/{M000034.html → M000048.html} +0 -0
- data/ref/ruby/classes/XX/Markup/ClassMethods.src/{M000035.html → M000049.html} +0 -0
- data/ref/ruby/classes/XX/Markup/InstanceMethods.html +100 -100
- data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000050.html +43 -7
- data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000051.html +20 -7
- data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000052.html +18 -8
- data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000053.html +35 -7
- data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000054.html +7 -7
- data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000055.html +18 -7
- data/ref/ruby/classes/XX/Markup/InstanceMethods.src/{M000042.html → M000056.html} +0 -0
- data/ref/ruby/classes/XX/Markup/InstanceMethods.src/{M000043.html → M000057.html} +0 -0
- data/ref/ruby/classes/XX/Markup/InstanceMethods.src/{M000044.html → M000058.html} +0 -0
- data/ref/ruby/classes/XX/Markup/InstanceMethods.src/{M000045.html → M000059.html} +0 -0
- data/ref/ruby/classes/XX/Markup/InstanceMethods.src/{M000046.html → M000060.html} +0 -0
- data/ref/ruby/classes/XX/Markup/InstanceMethods.src/{M000047.html → M000061.html} +0 -0
- data/ref/ruby/classes/XX/Markup/InstanceMethods.src/{M000048.html → M000062.html} +0 -0
- data/ref/ruby/classes/XX/Markup/InstanceMethods.src/{M000049.html → M000063.html} +0 -0
- data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000064.html +20 -0
- data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000065.html +20 -0
- data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000066.html +21 -0
- data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000067.html +20 -0
- data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000068.html +20 -0
- data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000069.html +20 -0
- data/ref/ruby/classes/XX/Markup.html +5 -5
- data/ref/ruby/classes/XX/Markup.src/{M000027.html → M000041.html} +0 -0
- data/ref/ruby/classes/XX/XHTML/Strict.html +5 -5
- data/ref/ruby/classes/XX/XHTML/Strict.src/{M000025.html → M000039.html} +0 -0
- data/ref/ruby/classes/XX/XHTML/Transitional.html +5 -5
- data/ref/ruby/classes/XX/XHTML/Transitional.src/{M000024.html → M000038.html} +0 -0
- data/ref/ruby/classes/XX/XHTML.html +5 -5
- data/ref/ruby/classes/XX/XHTML.src/{M000023.html → M000037.html} +0 -0
- data/ref/ruby/classes/XX/XML.html +5 -5
- data/ref/ruby/classes/XX/XML.src/{M000019.html → M000033.html} +0 -0
- data/ref/ruby/classes/XX/XMLish.html +5 -5
- data/ref/ruby/classes/XX/XMLish.src/{M000026.html → M000040.html} +0 -0
- data/ref/ruby/created.rid +1 -1
- data/ref/ruby/files/lib/ruby-vpi/integer_rb.html +101 -0
- data/ref/ruby/files/lib/ruby-vpi/{vpi_util_rb.html → vpi_rb.html} +3 -3
- data/ref/ruby/files/lib/ruby-vpi_rb.html +2 -2
- data/ref/ruby/fr_class_index.html +1 -0
- data/ref/ruby/fr_file_index.html +2 -1
- data/ref/ruby/fr_method_index.html +83 -69
- metadata +112 -70
- data/ref/c/hierarchy.html +0 -36
- data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000036.html +0 -56
- data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000037.html +0 -33
- data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000038.html +0 -31
- data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000039.html +0 -48
- data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000040.html +0 -20
- 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’s <a href="http://www.rub
|
|
144
144
|
<p id="fn1"><sup>1</sup> C. Gross, “Explaining Open Source Version Numbers”, [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’s <a href="http://www.rub
|
|
18
18
|
<p id="fn1"><sup>1</sup> C. Gross, “Explaining Open Source Version Numbers”, [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/
|
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.
|
7
|
+
<!-- Generated by Doxygen 1.4.7 -->
|
8
8
|
<div class="tabs">
|
9
9
|
<ul>
|
10
10
|
<li><a href="index.html"><span>Main 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 Structures</span></a></li>
|
17
|
-
<li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li>
|
18
17
|
<li><a href="functions.html"><span>Data 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
|
36
|
+
<hr size="1"><address style="align: right;"><small>Generated on Sat Oct 21 14:39:54 2006 for Ruby-VPI by
|
33
37
|
<a href="http://www.doxygen.org/index.html">
|
34
|
-
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.
|
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.
|
7
|
+
<!-- Generated by Doxygen 1.4.7 -->
|
8
8
|
<div class="tabs">
|
9
9
|
<ul>
|
10
10
|
<li><a href="index.html"><span>Main 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)"
|
46
|
-
<
|
47
|
-
|
48
|
-
|
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="
|
52
|
-
<td
|
53
|
-
<td class="
|
54
|
-
<td class="
|
55
|
-
<td
|
56
|
-
<td
|
50
|
+
<td class="memname">#define common_boolToStr </td>
|
51
|
+
<td>(</td>
|
52
|
+
<td class="paramtype">aBoolExpr </td>
|
53
|
+
<td class="paramname"> </td>
|
54
|
+
<td> ) </td>
|
55
|
+
<td width="100%"> ( (aBoolExpr) ? "true" : "false" )</td>
|
57
56
|
</tr>
|
58
57
|
</table>
|
59
|
-
|
60
|
-
|
61
|
-
</table>
|
62
|
-
<table cellspacing="5" cellpadding="0" border="0">
|
63
|
-
<tr>
|
64
|
-
<td>
|
65
|
-
|
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".
|
73
|
-
|
74
|
-
</
|
75
|
-
<a class="anchor" name="fcdad79cb06a5c61737b2f434218dc95"></a><!-- doxytag: member="common.h::common_debug" ref="fcdad79cb06a5c61737b2f434218dc95" args="()"
|
76
|
-
<
|
77
|
-
|
78
|
-
|
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="
|
82
|
-
<td
|
72
|
+
<td class="memname">#define common_debug </td>
|
73
|
+
<td>(</td>
|
83
74
|
</td>
|
84
|
-
<td class="
|
85
|
-
<td
|
86
|
-
<td
|
75
|
+
<td class="paramname"> </td>
|
76
|
+
<td> ) </td>
|
77
|
+
<td width="100%"></td>
|
87
78
|
</tr>
|
88
79
|
</table>
|
89
|
-
|
90
|
-
|
91
|
-
</table>
|
92
|
-
<table cellspacing="5" cellpadding="0" border="0">
|
93
|
-
<tr>
|
94
|
-
<td>
|
95
|
-
|
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
|
-
|
103
|
-
|
104
|
-
</
|
105
|
-
<a class="anchor" name="88235e5f8aab82571d68045e9f73fe81"></a><!-- doxytag: member="common.h::common_printf" ref="88235e5f8aab82571d68045e9f73fe81" args="()"
|
106
|
-
<
|
107
|
-
|
108
|
-
|
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="
|
112
|
-
<td
|
94
|
+
<td class="memname">#define common_printf </td>
|
95
|
+
<td>(</td>
|
113
96
|
</td>
|
114
|
-
<td class="
|
115
|
-
<td
|
116
|
-
<td
|
97
|
+
<td class="paramname"> </td>
|
98
|
+
<td> ) </td>
|
99
|
+
<td width="100%"> vpi_printf("Ruby-VPI: "); vpi_printf(__VA_ARGS__); vpi_printf("\n");</td>
|
117
100
|
</tr>
|
118
101
|
</table>
|
119
|
-
|
120
|
-
|
121
|
-
</table>
|
122
|
-
<table cellspacing="5" cellpadding="0" border="0">
|
123
|
-
<tr>
|
124
|
-
<td>
|
125
|
-
|
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> </td><td>Arguments to vpi_printf() </td></tr>
|
135
111
|
</table>
|
136
112
|
</dl>
|
137
|
-
|
138
|
-
|
139
|
-
</
|
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=""
|
142
|
-
<
|
143
|
-
|
144
|
-
|
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="
|
122
|
+
<td class="memname">enum <a class="el" href="common_8h.html#f6a258d8f3ee5206d682d799316314b1">bool</a> </td>
|
148
123
|
</tr>
|
149
124
|
</table>
|
150
|
-
|
151
|
-
|
152
|
-
</table>
|
153
|
-
<table cellspacing="5" cellpadding="0" border="0">
|
154
|
-
<tr>
|
155
|
-
<td>
|
156
|
-
|
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
|
-
|
172
|
-
|
173
|
-
</
|
174
|
-
<hr size="1"><address style="align: right;"><small>Generated on
|
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
|
175
143
|
<a href="http://www.doxygen.org/index.html">
|
176
|
-
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.
|
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:
|
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
|
-
|
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.
|
7
|
+
<!-- Generated by Doxygen 1.4.7 -->
|
8
8
|
<div class="tabs">
|
9
9
|
<ul>
|
10
10
|
<li><a href="index.html"><span>Main 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
|
33
|
+
<hr size="1"><address style="align: right;"><small>Generated on Sat Oct 21 14:39:54 2006 for Ruby-VPI by
|
32
34
|
<a href="http://www.doxygen.org/index.html">
|
33
|
-
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.
|
35
|
+
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.7 </small></address>
|
34
36
|
</body>
|
35
37
|
</html>
|