ruby-vpi 12.1.0 → 13.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/bin/generate_test.rb +4 -5
- data/bin/generate_test_tpl/bench.rb +2 -0
- data/bin/generate_test_tpl/bench.v +4 -11
- data/bin/header_to_ruby.rb +0 -1
- data/doc/history.html +281 -206
- data/doc/history.rb +1 -1
- data/doc/history.yml +66 -35
- data/doc/manual.html +3 -3
- data/doc/memo.doc +2 -0
- data/doc/memo.html +5 -0
- data/doc/readme.doc +16 -8
- data/doc/readme.html +19 -13
- data/doc/rss.xml +7 -0
- data/ext/common.h +1 -0
- data/ext/{swig.c → main.c} +32 -6
- data/ext/{swig.h → main.h} +8 -7
- data/ext/relay.c +7 -83
- data/ext/relay.h +7 -5
- data/ext/swig_vpi.i +10 -3
- data/ext/swig_wrap.cin +4 -1
- data/ext/verilog.h +26 -10
- data/ext/vlog.c +16 -23
- data/ext/vlog.h +5 -19
- data/lib/ruby-vpi/rcov.rb +3 -3
- data/lib/ruby-vpi/runner.rb +5 -2
- data/lib/ruby-vpi/vpi.rb +1 -1
- data/lib/ruby-vpi.rb +57 -5
- data/ref/c/annotated.html +1 -7
- data/ref/c/common_8h.html +2 -1
- data/ref/c/files.html +3 -5
- data/ref/c/functions.html +24 -46
- data/ref/c/functions_vars.html +24 -46
- data/ref/c/globals.html +5 -210
- data/ref/c/globals_0x63.html +32 -48
- data/ref/c/globals_0x65.html +3 -9
- data/ref/c/globals_0x66.html +3 -19
- data/ref/c/globals_0x6d.html +5 -10
- data/ref/c/globals_0x70.html +19 -25
- data/ref/c/globals_0x72.html +8 -18
- data/ref/c/globals_0x73.html +11 -198
- data/ref/c/globals_0x74.html +2 -8
- data/ref/c/globals_0x76.html +419 -427
- data/ref/c/globals_0x78.html +3 -9
- data/ref/c/globals_defs.html +30 -35
- data/ref/c/globals_defs_0x65.html +2 -7
- data/ref/c/globals_defs_0x70.html +3 -8
- data/ref/c/globals_defs_0x76.html +416 -420
- data/ref/c/globals_defs_0x78.html +2 -7
- data/ref/c/globals_enum.html +1 -1
- data/ref/c/globals_eval.html +1 -1
- data/ref/c/globals_func.html +13 -173
- data/ref/c/globals_type.html +26 -29
- data/ref/c/globals_vars.html +4 -88
- data/ref/c/index.html +1 -1
- data/ref/c/{swig_8c.html → main_8c.html} +16 -14
- data/ref/c/{swig_8h.html → main_8h.html} +15 -14
- data/ref/c/relay_8c.html +25 -38
- data/ref/c/relay_8h.html +16 -15
- data/ref/c/structt__cb__data.html +6 -23
- data/ref/c/structt__vpi__delay.html +3 -20
- data/ref/c/structt__vpi__error__info.html +3 -71
- data/ref/c/structt__vpi__strengthval.html +3 -3
- data/ref/c/structt__vpi__systf__data.html +12 -46
- data/ref/c/structt__vpi__time.html +3 -3
- data/ref/c/structt__vpi__value.html +3 -113
- data/ref/c/structt__vpi__vecval.html +3 -3
- data/ref/c/structt__vpi__vlog__info.html +3 -54
- data/ref/c/verilog_8h.html +69 -3
- data/ref/c/vlog_8c.html +16 -61
- data/ref/c/vlog_8h.html +14 -57
- data/ref/c/vpi__user_8h.html +16 -16
- data/ref/ruby/classes/ERB.html +5 -5
- data/ref/ruby/classes/ERB.src/{M000032.html → M000026.html} +0 -0
- data/ref/ruby/classes/FileUtils.html +10 -10
- data/ref/ruby/classes/FileUtils.src/{M000034.html → M000027.html} +0 -0
- data/ref/ruby/classes/FileUtils.src/{M000035.html → M000028.html} +0 -0
- data/ref/ruby/classes/Float.html +5 -5
- data/ref/ruby/classes/Float.src/{M000027.html → M000022.html} +0 -0
- data/ref/ruby/classes/Integer.html +68 -68
- data/ref/ruby/classes/Integer.src/M000008.html +25 -0
- data/ref/ruby/classes/Integer.src/M000009.html +18 -0
- data/ref/ruby/classes/Integer.src/{M000014.html → M000010.html} +0 -0
- data/ref/ruby/classes/Integer.src/{M000015.html → M000011.html} +0 -0
- data/ref/ruby/classes/Integer.src/M000012.html +5 -12
- data/ref/ruby/classes/Integer.src/M000013.html +5 -5
- data/ref/ruby/classes/Integer.src/M000016.html +9 -5
- data/ref/ruby/classes/Integer.src/M000017.html +9 -5
- data/ref/ruby/classes/Integer.src/{M000022.html → M000018.html} +0 -0
- data/ref/ruby/classes/Integer.src/{M000023.html → M000019.html} +0 -0
- data/ref/ruby/classes/Integer.src/M000020.html +12 -9
- data/ref/ruby/classes/Integer.src/M000021.html +17 -9
- data/ref/ruby/classes/RDoc.html +5 -5
- data/ref/ruby/classes/RDoc.src/{M000050.html → M000041.html} +0 -0
- data/ref/ruby/classes/RubyVpi.html +29 -24
- data/ref/ruby/classes/RubyVpi.src/M000029.html +142 -0
- data/ref/ruby/classes/String.html +15 -15
- data/ref/ruby/classes/String.src/{M000029.html → M000023.html} +0 -0
- data/ref/ruby/classes/String.src/{M000030.html → M000024.html} +0 -0
- data/ref/ruby/classes/String.src/{M000031.html → M000025.html} +0 -0
- data/ref/ruby/classes/VerilogParser/Module/Parameter.html +5 -5
- data/ref/ruby/classes/VerilogParser/Module/Parameter.src/{M000011.html → M000007.html} +0 -0
- data/ref/ruby/classes/VerilogParser/Module/Port.html +20 -20
- data/ref/ruby/classes/VerilogParser/Module/Port.src/{M000007.html → M000003.html} +0 -0
- data/ref/ruby/classes/VerilogParser/Module/Port.src/{M000008.html → M000004.html} +0 -0
- data/ref/ruby/classes/VerilogParser/Module/Port.src/{M000009.html → M000005.html} +0 -0
- data/ref/ruby/classes/VerilogParser/Module/Port.src/{M000010.html → M000006.html} +0 -0
- data/ref/ruby/classes/VerilogParser/Module.html +5 -5
- data/ref/ruby/classes/VerilogParser/Module.src/{M000006.html → M000002.html} +0 -0
- data/ref/ruby/classes/VerilogParser.html +5 -5
- data/ref/ruby/classes/VerilogParser.src/{M000005.html → M000001.html} +0 -0
- data/ref/ruby/classes/Vpi/Handle.html +56 -62
- data/ref/ruby/classes/Vpi/Handle.src/M000030.html +18 -0
- data/ref/ruby/classes/Vpi/Handle.src/{M000039.html → M000031.html} +0 -0
- data/ref/ruby/classes/Vpi/Handle.src/M000032.html +18 -0
- data/ref/ruby/classes/Vpi/Handle.src/{M000041.html → M000033.html} +0 -0
- data/ref/ruby/classes/Vpi/Handle.src/{M000042.html → M000034.html} +0 -0
- data/ref/ruby/classes/Vpi/Handle.src/{M000043.html → M000035.html} +0 -0
- data/ref/ruby/classes/Vpi/Handle.src/{M000044.html → M000036.html} +0 -0
- data/ref/ruby/classes/Vpi/Handle.src/{M000045.html → M000037.html} +0 -0
- data/ref/ruby/classes/Vpi/Handle.src/M000038.html +11 -5
- data/ref/ruby/classes/Vpi/Handle.src/M000040.html +55 -5
- data/ref/ruby/created.rid +1 -1
- data/ref/ruby/files/bin/generate_test_rb.html +1 -49
- data/ref/ruby/files/bin/header_to_ruby_rb.html +1 -1
- data/ref/ruby/files/lib/ruby-vpi/rcov_rb.html +1 -1
- data/ref/ruby/files/lib/ruby-vpi/runner_rb.html +1 -48
- data/ref/ruby/files/lib/ruby-vpi/vpi_rb.html +1 -1
- data/ref/ruby/files/lib/ruby-vpi_rb.html +1 -1
- data/ref/ruby/fr_class_index.html +0 -5
- data/ref/ruby/fr_method_index.html +41 -50
- data/samp/counter/counter_rspec_bench.rb +2 -0
- data/samp/counter/counter_rspec_bench.v +4 -11
- data/samp/counter/counter_rspec_design.rb +2 -2
- data/samp/counter/counter_xunit_bench.rb +2 -0
- data/samp/counter/counter_xunit_bench.v +4 -11
- data/samp/counter/counter_xunit_design.rb +2 -2
- data/samp/pipelined_alu/hw5_unit_test_bench.rb +2 -0
- data/samp/pipelined_alu/hw5_unit_test_bench.v +4 -11
- metadata +37 -85
- data/ref/c/globals_0x62.html +0 -62
- data/ref/c/globals_0x67.html +0 -64
- data/ref/c/globals_0x69.html +0 -62
- data/ref/c/globals_0x6c.html +0 -64
- data/ref/c/globals_0x6e.html +0 -63
- data/ref/c/globals_0x75.html +0 -63
- data/ref/c/globals_defs_0x6c.html +0 -57
- data/ref/c/globals_defs_0x6e.html +0 -56
- data/ref/c/globals_defs_0x72.html +0 -57
- data/ref/c/globals_defs_0x73.html +0 -164
- data/ref/c/globals_defs_0x75.html +0 -56
- data/ref/c/globals_func_0x66.html +0 -62
- data/ref/c/globals_func_0x67.html +0 -55
- data/ref/c/globals_func_0x69.html +0 -53
- data/ref/c/globals_func_0x70.html +0 -53
- data/ref/c/globals_func_0x72.html +0 -57
- data/ref/c/globals_func_0x73.html +0 -114
- data/ref/c/globals_func_0x76.html +0 -57
- data/ref/c/structrelay____RubyOptions____def.html +0 -73
- data/ref/c/structswig__cast__info.html +0 -98
- data/ref/c/structswig__class.html +0 -115
- data/ref/c/structswig__module__info.html +0 -132
- data/ref/c/structswig__type__info.html +0 -132
- data/ref/c/swig__vpi_8h.html +0 -8739
- data/ref/c/swig__wrap_8cin.html +0 -11556
- data/ref/c/unions__vpi__value__value.html +0 -166
- data/ref/ruby/classes/Integer.src/M000024.html +0 -25
- data/ref/ruby/classes/Integer.src/M000025.html +0 -30
- data/ref/ruby/classes/OutputInfo.html +0 -294
- data/ref/ruby/classes/OutputInfo.src/M000026.html +0 -50
- data/ref/ruby/classes/RubyVpi.src/M000036.html +0 -107
- data/ref/ruby/classes/RubyVpi.src/M000037.html +0 -20
- data/ref/ruby/classes/Template.html +0 -158
- data/ref/ruby/classes/Template.src/M000028.html +0 -18
- data/ref/ruby/classes/Vpi/Handle/Property.html +0 -130
- data/ref/ruby/classes/Vpi/Handle/Property.src/M000049.html +0 -80
- data/ref/ruby/classes/Vpi/Handle.src/M000046.html +0 -24
- data/ref/ruby/classes/Vpi/Handle.src/M000048.html +0 -68
- data/ref/ruby/classes/XX/XMLish.html +0 -138
- data/ref/ruby/classes/XX/XMLish.src/M000033.html +0 -18
- data/ref/ruby/classes/XX.html +0 -111
- data/ref/ruby/files/bin/generate_test_rb.src/M000001.html +0 -18
- data/ref/ruby/files/bin/generate_test_rb.src/M000002.html +0 -38
- data/ref/ruby/files/lib/ruby-vpi/runner_rb.src/M000003.html +0 -24
- data/ref/ruby/files/lib/ruby-vpi/runner_rb.src/M000004.html +0 -26
data/doc/history.rb
CHANGED
|
@@ -7,7 +7,7 @@ require 'yaml'
|
|
|
7
7
|
def format_history_entry aEntry
|
|
8
8
|
output = "h1(##{aEntry['Version']}). Version #{aEntry['Version']} (#{aEntry['Date']})\n\n"
|
|
9
9
|
|
|
10
|
-
%w[Summary Acknowledgment Notice
|
|
10
|
+
%w[Summary Acknowledgment Notice Details].each do |key|
|
|
11
11
|
if content = aEntry[key]
|
|
12
12
|
output << "h2. #{key}\n\n#{content}\n\n"
|
|
13
13
|
end
|
data/doc/history.yml
CHANGED
|
@@ -1,3 +1,31 @@
|
|
|
1
|
+
-
|
|
2
|
+
Version: 13.0.0
|
|
3
|
+
|
|
4
|
+
Date: 2006-12-27
|
|
5
|
+
|
|
6
|
+
Summary: |
|
|
7
|
+
This release fixes a _major_ instability bug, simplifies generated Verilog benches, and purifies the API reference documentation.
|
|
8
|
+
|
|
9
|
+
Notice: |
|
|
10
|
+
* The @$ruby_init@ and @$ruby_relay@ system task/functions have been removed. Generated Verilog benches no longer use them.
|
|
11
|
+
** To pass your own command-line options to Ruby, set the @RUBYOPT@ environment variable before running a test.
|
|
12
|
+
|
|
13
|
+
h3. New features
|
|
14
|
+
|
|
15
|
+
* You can now choose when @Vpi::relay_verilog@ is triggered: upon positive/negative edge of the clock signal, or any other criteria. This is done by passing a block to the @RubyVpi::init_bench@ method (see "the API reference documentation":../ref/ruby/classes/RubyVpi.html for details).
|
|
16
|
+
|
|
17
|
+
Details: |
|
|
18
|
+
* Fixed a major instability bug that was randomly causing segmentation faults and pthread assertion failures.
|
|
19
|
+
|
|
20
|
+
The problem was that the @$ruby_init@ system task/function was mischeviously unlocking a pthread mutex. From then onward, all code assumed that the mutex was still locked -- but in reality, the mutex was already unlocked.
|
|
21
|
+
|
|
22
|
+
* Replaced the @$ruby_init@ and @$ruby_relay@ system task/functions with callbacks.
|
|
23
|
+
|
|
24
|
+
* Excluded internal stuff from the API reference documentation for Ruby.
|
|
25
|
+
|
|
26
|
+
* Removed system-dependent path <tt>/usr/bin/ruby</tt> from the tools.
|
|
27
|
+
|
|
28
|
+
|
|
1
29
|
-
|
|
2
30
|
Version: 12.1.0
|
|
3
31
|
|
|
@@ -7,16 +35,19 @@
|
|
|
7
35
|
This release adds interactive debugging support, adds new sections to the user manual, and cleanses some internals.
|
|
8
36
|
|
|
9
37
|
Notice: |
|
|
10
|
-
* The <tt>lib/ruby-vpi/rspec.rb</tt> and <tt>lib/ruby-vpi/xx.rb</tt> files
|
|
38
|
+
* The <tt>lib/ruby-vpi/rspec.rb</tt> and <tt>lib/ruby-vpi/xx.rb</tt> files have been removed because they are no longer necessary.
|
|
11
39
|
|
|
12
|
-
* rSpec 0.7.0 or newer is now required because the sample tests utilize the @should ==@ syntax
|
|
40
|
+
* rSpec 0.7.0 or newer is now required because the sample tests utilize the @should ==@ syntax.
|
|
41
|
+
|
|
42
|
+
h3. New features
|
|
13
43
|
|
|
14
|
-
Detail: |
|
|
15
44
|
* Test runners now support the @DEBUG@ environment variable, which enables the interactive debugger (ruby-debug) in "post-mortem debugging mode":http://www.datanoise.com/articles/2006/12/20/post-mortem-debugging.
|
|
16
|
-
** The @debugger@ can
|
|
17
|
-
|
|
45
|
+
** The @debugger@ command can also be used when the @DEBUG@ environment variable is not activated.
|
|
46
|
+
|
|
47
|
+
* Status messages, which are shown during initialization of a Ruby bench, now appear in your simulator's log files.
|
|
18
48
|
|
|
19
|
-
|
|
49
|
+
Details: |
|
|
50
|
+
* ruby-debug is now a gem dependency for Ruby-VPI.
|
|
20
51
|
|
|
21
52
|
* Added documentation about "test runners":manual.html#usage.test-runner and the "interactive debugger":manual.html#usage.debugger in the user manual.
|
|
22
53
|
|
|
@@ -45,10 +76,10 @@
|
|
|
45
76
|
Acknowledgment: |
|
|
46
77
|
Thanks to Mauricio Fernandez for helping me solve the problem.
|
|
47
78
|
|
|
48
|
-
|
|
79
|
+
Details: |
|
|
49
80
|
Previously, code coverage reports were not providing any useful information because they were being generated _before_ the test had a chance to run. This problem has been fixed -- code coverage reports are now generated _after_ the test has finished running.
|
|
50
81
|
|
|
51
|
-
This problem
|
|
82
|
+
This problem occurred because I had forgotten that @Kernel.at_exit@ invokes the blocks passed to it in _reverse_ order. So, the coverage report was being generated before Test::Unit had a chance to run (it also uses @Kernel.at_exit@).
|
|
52
83
|
|
|
53
84
|
|
|
54
85
|
-
|
|
@@ -75,7 +106,7 @@
|
|
|
75
106
|
** now supplies a third argument to the @MERGER@ command.
|
|
76
107
|
** no longer replaces existing files with newly generated content during the *update* action. Instead, it now writes the newly generated output to a <tt>.new</tt> file and then invokes the @MERGER@ command.
|
|
77
108
|
|
|
78
|
-
|
|
109
|
+
Details: |
|
|
79
110
|
* The @Vpi::Handle@ class has two new methods: @x!@ and @z!@, which set the handle's logic value to _unknown_ and _high impedance_ respectively.
|
|
80
111
|
|
|
81
112
|
* The tests for the simple up-counter example were randomly failing because the specifications were not asserting the design's @reset@ signal long enough. So the design was getting into weird states and behaving in a non-deterministic way. This problem has been fixed.
|
|
@@ -114,7 +145,7 @@
|
|
|
114
145
|
Notice: |
|
|
115
146
|
* The user manual is now available _only_ in HTML format. If you still wish to have a plain-text version, you can use a text-based browser, such as "lynx":http://lynx.browser.org/, to perform the necessary conversion.
|
|
116
147
|
|
|
117
|
-
|
|
148
|
+
Details: |
|
|
118
149
|
* The automated test generator no longer crashes when parsing a Verilog module declaration that contains multiple module parameters.
|
|
119
150
|
|
|
120
151
|
* The user manual and the website are now written using a custom documentation system based on RedCloth and ERB instead of DocBook-XML. This makes it easier to edit the user manual and reuse its content in other areas of the website.
|
|
@@ -134,7 +165,7 @@
|
|
|
134
165
|
Notice: |
|
|
135
166
|
* A bug in generated Verilog and Ruby benches, which caused the <pre>ruby: no such file to load -- ruby-vpi (LoadError)</pre> error, has been fixed. Please regenerate your tests to apply this bug fix to your tests.
|
|
136
167
|
|
|
137
|
-
|
|
168
|
+
Details: |
|
|
138
169
|
* The class @SWIG::TYPE_p_unsigned_int@ has been aliased as @Vpi::Handle@ for easier access.
|
|
139
170
|
|
|
140
171
|
* @Vpi::Handle.to_s@ and @Vpi::Handle.inspect@ now produce more informative output. For example, what used to appear as <pre>#<SWIG::TYPE_p_unsigned_int:0x2aaab6574fa0></pre> now appears as <pre>#<Vpi::Handle vpiModule fullName=counter_rspec_bench, size=-1, file=counter_rspec_bench.v, lineNo=2></pre> in this release.
|
|
@@ -170,7 +201,7 @@
|
|
|
170
201
|
|
|
171
202
|
* The source code is no longer distributed as a *zip* package, because it seems to be quite underutilized in comparison to the *tgz* and *gem* packages.
|
|
172
203
|
|
|
173
|
-
|
|
204
|
+
Details: |
|
|
174
205
|
* Generated Ruby benches have been shortened to just _one_ line of code!
|
|
175
206
|
|
|
176
207
|
* The less confusing notation of <code>def some_object.a_singleton_method
|
|
@@ -205,7 +236,7 @@
|
|
|
205
236
|
* *generate_test.rb* no longer accepts the <pre>-s</pre> and <pre>-u</pre> options. Use their longer counterparts <pre>--rspec</pre> and <pre>--xunit</pre> instead.
|
|
206
237
|
|
|
207
238
|
|
|
208
|
-
|
|
239
|
+
Details: |
|
|
209
240
|
h3. Automated test generator
|
|
210
241
|
|
|
211
242
|
* Generated Verilog benches no longer divert compilation errors from Verilog design files. That is, if the Verilog simulator finds compilation errors in a Verilog design file, it will report that the Verilog design file is at fault (instead of reporting that the generated Verilog bench is at fault).
|
|
@@ -240,7 +271,7 @@
|
|
|
240
271
|
Notice: |
|
|
241
272
|
* The command-line options for *generate_test.rb* have changed. Run the command <pre>generate_test.rb --help</pre> for details.
|
|
242
273
|
|
|
243
|
-
|
|
274
|
+
Details: |
|
|
244
275
|
* Test runners now attempt to resolve paths in @SIMULATOR_SOURCES@ by searching for them within the directories specified in @SIMULATOR_INCLUDES@.
|
|
245
276
|
|
|
246
277
|
* Synopsys VCS is now used in a better way (via the <pre>-load</pre> option).
|
|
@@ -275,7 +306,7 @@
|
|
|
275
306
|
Notice: |
|
|
276
307
|
* Generated runners now have a @SIMULATOR_INCLUDES@ array, whose entries specify places where Verilog source files, needed by the Verilog design, reside.
|
|
277
308
|
|
|
278
|
-
|
|
309
|
+
Details: |
|
|
279
310
|
* Generated Verilog benches now inherit all @`include@ and @`define@ directives from the Verilog design in a simpler manner.
|
|
280
311
|
* A generated test no longer requires its Verilog design to reside in the same directory.
|
|
281
312
|
* The sample tests have been updated accordingly.
|
|
@@ -292,7 +323,7 @@
|
|
|
292
323
|
Notice: |
|
|
293
324
|
* The *vpi_util* library has been renamed to *vpi*. This change should not affect your code unless you explicitly imported this library via @require 'ruby-vpi/vpi_util'@. In which case, you should update your code to use @require 'ruby-vpi/vpi'@ accordingly.
|
|
294
325
|
|
|
295
|
-
|
|
326
|
+
Details: |
|
|
296
327
|
* 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 @require 'ruby-vpi/integer'@.
|
|
297
328
|
|
|
298
329
|
|
|
@@ -310,7 +341,7 @@
|
|
|
310
341
|
* The @PROTO@ environment variable has been renamed to @PROTOTYPE@.
|
|
311
342
|
** In addition to using *unset*, you can now disable simulation of the prototype by assigning an empty value to this variable.
|
|
312
343
|
|
|
313
|
-
|
|
344
|
+
Details: |
|
|
314
345
|
* We now use "Darcs":http://darcs.net for revision control, instead of Subversion. The source repository can now be accessed at "http://ruby-vpi.rubyforge.org/src/ruby-vpi":http://ruby-vpi.rubyforge.org/src/ruby-vpi.
|
|
315
346
|
|
|
316
347
|
* The source code is now distributed in tar.gz and zip form, in addition to gem.
|
|
@@ -336,7 +367,7 @@
|
|
|
336
367
|
** @handle.x?@ checks if the logic value is "don't care"
|
|
337
368
|
** @handle.z?@ checks if the logic value is high impedance
|
|
338
369
|
|
|
339
|
-
|
|
370
|
+
Details: |
|
|
340
371
|
* Module instantiation code in generated Verilog benches has been fixed. Whitespace between the module type and instance variable was missing.
|
|
341
372
|
|
|
342
373
|
* The test generator tool now provides parsed Verilog constants and include-directives in generated Verilog benches; and parsed Verilog constants in generated Ruby designs.
|
|
@@ -356,7 +387,7 @@
|
|
|
356
387
|
Acknowledgment: |
|
|
357
388
|
Thanks to Mauricio Fernandez for helping me use rcov without its runner.
|
|
358
389
|
|
|
359
|
-
|
|
390
|
+
Details: |
|
|
360
391
|
* Added initial support (full capabilites of the rcov library, such as its various analysis modes, are not yet utilized) for code coverage analysis, which can be enabled by setting the @COVERAGE@ environment variable to a non-empty value before running a test.
|
|
361
392
|
** For example, you can run a test with the GPL Cver simulator while enabling the generation of code coverage reports as follows: <pre>export COVERAGE=1; rake cver</pre>
|
|
362
393
|
|
|
@@ -371,7 +402,7 @@
|
|
|
371
402
|
Summary: |
|
|
372
403
|
This release simplifies running of multiple tests, restores compatibility with Synopsys VCS, and better integrates with RubyGems.
|
|
373
404
|
|
|
374
|
-
|
|
405
|
+
Details: |
|
|
375
406
|
* Added <tt>lib/ruby-vpi/runner_proxy.rb</tt> library which, when embedded into a Rakefile, runs all generated tests in the working directory with any specified arguments. For example, have a look at the <tt>samp/counter/Rakefile</tt> file.
|
|
376
407
|
|
|
377
408
|
* Fixed a bug that prevented one from running tests with Synopsys VCS.
|
|
@@ -402,7 +433,7 @@
|
|
|
402
433
|
|
|
403
434
|
* The <tt>src/</tt> directory has been renamed to <tt>ext/</tt> to follow RubyGems convention.
|
|
404
435
|
|
|
405
|
-
|
|
436
|
+
Details: |
|
|
406
437
|
* Ruby-VPI is now distributed only as a "source gem":http://www.rubygems.org. You can decompress the gem without installing it onto your system by running the command <pre>gem install -i output_directory ruby-vpi-7.0.0.gem</pre>. In addition, you can still obtain the source code directly from the Subversion repository.
|
|
407
438
|
|
|
408
439
|
* The tools in <tt>bin/</tt> become available in your system's <tt>bin/</tt> directory when the gem is installed.
|
|
@@ -427,7 +458,7 @@
|
|
|
427
458
|
* Ruby-VPI now only needs to be built once.
|
|
428
459
|
** You can run tests with different Verilog simulators without having to re-compile Ruby-VPI.
|
|
429
460
|
|
|
430
|
-
|
|
461
|
+
Details: |
|
|
431
462
|
* The GPL Cver simulator is now supported.
|
|
432
463
|
|
|
433
464
|
* Release packages are now available in both source and binary form.
|
|
@@ -463,7 +494,7 @@
|
|
|
463
494
|
|
|
464
495
|
* @put_value()@ now verifies that the value it puts was written correctly. This helps to find bugs regarding invalid assumptions about the number of bits supported by a signal.
|
|
465
496
|
|
|
466
|
-
|
|
497
|
+
Details: |
|
|
467
498
|
* The test generator now uses ERB templates which ensures nice indentation of generated output.
|
|
468
499
|
|
|
469
500
|
* The test generator now decouples Ruby-VPI paths from Verilog benches via the RUBYLIB environment variable.
|
|
@@ -481,7 +512,7 @@
|
|
|
481
512
|
Summary: |
|
|
482
513
|
This release simplifies generated tests and fixes a bug.
|
|
483
514
|
|
|
484
|
-
|
|
515
|
+
Details: |
|
|
485
516
|
* The test generator now produces simpler Ruby benches and specifications.
|
|
486
517
|
** A template used by generated specifications has been added.
|
|
487
518
|
** The counter example and tutorial have also been simplified accordingly.
|
|
@@ -505,7 +536,7 @@
|
|
|
505
536
|
|
|
506
537
|
* All template files have been moved into the <tt>tpl</tt> directory.
|
|
507
538
|
|
|
508
|
-
|
|
539
|
+
Details: |
|
|
509
540
|
* Support for prototyping designs in Ruby, before they are implemented in Verilog, has been added.
|
|
510
541
|
** The _same_ specification can be used to verify both prototype _and_ design! :-)
|
|
511
542
|
** The tutorial in the user manual has been updated to discuss prototyping.
|
|
@@ -525,7 +556,7 @@
|
|
|
525
556
|
Acknowledgment: |
|
|
526
557
|
* Thanks to Todd Nagengast and Matt Fischler for notifying me about unreadable text in the user manual.
|
|
527
558
|
|
|
528
|
-
|
|
559
|
+
Details: |
|
|
529
560
|
* Source code comments in the user manual are now readable.
|
|
530
561
|
|
|
531
562
|
* The <tt>README</tt> and <tt>HISTORY</tt> files have been converted to "textile":http://www.textism.com/tools/textile/ format.
|
|
@@ -542,7 +573,7 @@
|
|
|
542
573
|
Acknowledgment: |
|
|
543
574
|
* Thanks to Phil Tomson for correcting the URL of the RHDL website, in the user manual.
|
|
544
575
|
|
|
545
|
-
|
|
576
|
+
Details: |
|
|
546
577
|
h3. User manual
|
|
547
578
|
|
|
548
579
|
* A tutorial, based on the counter example, has been added to the user manual.
|
|
@@ -582,7 +613,7 @@
|
|
|
582
613
|
|
|
583
614
|
* The @handle.value@ and @handle.value=@ methods have been removed.
|
|
584
615
|
|
|
585
|
-
|
|
616
|
+
Details: |
|
|
586
617
|
* The VPI utility layer provides access to VPI properties of handles in a "simpler, more powerful way":manual.html#background.org.vpi.
|
|
587
618
|
|
|
588
619
|
** All VPI properties, except delay values, are now accessible from a handle.
|
|
@@ -610,7 +641,7 @@
|
|
|
610
641
|
|
|
611
642
|
* The test generation tool now generates multiple files (runner, bench, design, spec) and makes backups of existing files. See its help information for details.
|
|
612
643
|
|
|
613
|
-
|
|
644
|
+
Details: |
|
|
614
645
|
* A comprehensive user manual, written in DocBook-XML, has been added.
|
|
615
646
|
|
|
616
647
|
* Support for RSpec 0.5.4 has been added.
|
|
@@ -632,7 +663,7 @@
|
|
|
632
663
|
Acknowledgment: |
|
|
633
664
|
* Thanks to Scott L Holmes for helping me "use the RSpec library without its runner":http://article.gmane.org/gmane.comp.lang.ruby.general/150087 program.
|
|
634
665
|
|
|
635
|
-
|
|
666
|
+
Details: |
|
|
636
667
|
* A tool, which generates most of a Ruby-VPI test bench from a Verilog 2001 module declaration, has been added.
|
|
637
668
|
|
|
638
669
|
* Ability to use RSpec in a test bench has been added.
|
|
@@ -655,7 +686,7 @@
|
|
|
655
686
|
Notice: |
|
|
656
687
|
* The *msim* Makefile target for Mentor Modelsim has been renamed back to *vsim*.
|
|
657
688
|
|
|
658
|
-
|
|
689
|
+
Details: |
|
|
659
690
|
* Simple, consistent ways of reading and writing values to handles have been added to the VPI utility layer. These ways are described in the @SWIG::TYPE_p_unsigned_int@ class' documentation.
|
|
660
691
|
|
|
661
692
|
* The makefiles now use the *rbconfig* library to determine the default compiler and linker flags for Ruby.
|
|
@@ -685,7 +716,7 @@
|
|
|
685
716
|
Notice: |
|
|
686
717
|
* The *vsim* Makefile target for Mentor Modelsim has been renamed to *msim*.
|
|
687
718
|
|
|
688
|
-
|
|
719
|
+
Details: |
|
|
689
720
|
* The Ruby interface to VPI is now generated by "SWIG":http://www.swig.org.
|
|
690
721
|
** The main @VPI@ module has been renamed to @Vpi@.
|
|
691
722
|
** The @VPI::Handle@ class has been removed.
|
|
@@ -718,7 +749,7 @@
|
|
|
718
749
|
Notice: |
|
|
719
750
|
* Removed @$ruby_task@ callback and ability to dynamically register system tasks from Ruby because inter-process communication is complicated at present.
|
|
720
751
|
|
|
721
|
-
|
|
752
|
+
Details: |
|
|
722
753
|
* The "cross-thread violation on rb_gc()" error has been fixed.
|
|
723
754
|
** The "stack level too deep (SystemStackError)" error has been fixed.
|
|
724
755
|
** The test/unit library can be used in Ruby test bench.
|
|
@@ -748,7 +779,7 @@
|
|
|
748
779
|
|
|
749
780
|
* Thanks to Ross Bamford, Eric Hodel, and Yukihiro Matsumoto for "helping me discover":http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/180662 why the @SystemStackError@ was happening.
|
|
750
781
|
|
|
751
|
-
|
|
782
|
+
Details: |
|
|
752
783
|
* Implemented some Verilog VPI functionality:
|
|
753
784
|
** @VPI::handle_by_name(string, VPI::Handle)@ → @VPI::Handle@
|
|
754
785
|
** @VPI::handle_by_name(string)@ → @VPI::Handle@
|
|
@@ -782,7 +813,7 @@
|
|
|
782
813
|
Summary: |
|
|
783
814
|
This is Kazuhiro HIWADA's initial testing release of Ruby-VPI. See its "original announcement":http://www.ruby-talk.org/cgi-bin/scat.rb/ruby/ruby-list/18193 and "source code":http://easter.kuee.kyoto-u.ac.jp/~hiwada/ruby/memo/src/ruby-vpi-test.tgz.
|
|
784
815
|
|
|
785
|
-
|
|
816
|
+
Details: |
|
|
786
817
|
* Added ability to relay control from Verilog test bench to Ruby (using @$ruby_callback@) and vice versa (using @PLI::relay_Verilog@).
|
|
787
818
|
|
|
788
819
|
* Tested and developed using Ruby 1.4 and Verilog-XL from Cadence systems, on a SPARC machine running Solaris 2.6.
|
data/doc/manual.html
CHANGED
|
@@ -219,7 +219,7 @@
|
|
|
219
219
|
<p>Suraj N. Kurapati</p>
|
|
220
220
|
|
|
221
221
|
|
|
222
|
-
<p>
|
|
222
|
+
<p>Wed Dec 27 22:29:49 <span class="caps">PST 2006</span></p>
|
|
223
223
|
|
|
224
224
|
|
|
225
225
|
</div>
|
|
@@ -1539,9 +1539,9 @@ context <span style="background-color:#fff0f0"><span style="color:#710">"</
|
|
|
1539
1539
|
|
|
1540
1540
|
<span style="color:#888"># This method resets the design under test.</span>
|
|
1541
1541
|
<span style="color:#080; font-weight:bold">def</span> <span style="color:#036; font-weight:bold">Counter</span>.reset!
|
|
1542
|
-
<span style="color:#888"># assert the reset signal for
|
|
1542
|
+
<span style="color:#888"># assert the reset signal for two clock cycles</span>
|
|
1543
1543
|
reset.intVal = <span style="color:#00D; font-weight:bold">1</span>
|
|
1544
|
-
<span style="color:#00D; font-weight:bold">
|
|
1544
|
+
<span style="color:#00D; font-weight:bold">2</span>.times {relay_verilog}
|
|
1545
1545
|
reset.intVal = <span style="color:#00D; font-weight:bold">0</span>
|
|
1546
1546
|
<span style="color:#080; font-weight:bold">end</span>
|
|
1547
1547
|
</pre></li>
|
data/doc/memo.doc
CHANGED
data/doc/memo.html
CHANGED
|
@@ -26,6 +26,11 @@
|
|
|
26
26
|
<h1 id="anchor1">Pending tasks</h1>
|
|
27
27
|
|
|
28
28
|
|
|
29
|
+
<ul>
|
|
30
|
+
<li>add support for <span class="caps">VPI</span> callbacks which execute Ruby blocks</li>
|
|
31
|
+
</ul>
|
|
32
|
+
|
|
33
|
+
|
|
29
34
|
<ul>
|
|
30
35
|
<li>add support for reading & writing <span class="caps">VPI</span> delay values</li>
|
|
31
36
|
</ul>
|
data/doc/readme.doc
CHANGED
|
@@ -10,24 +10,32 @@
|
|
|
10
10
|
* "Reference":../ref/
|
|
11
11
|
- API documentation for Ruby libraries and C extension.
|
|
12
12
|
|
|
13
|
-
* "History":history.html
|
|
14
|
-
- record of all release notes.
|
|
15
|
-
|
|
16
|
-
* "Memo":memo.html
|
|
17
|
-
- pending tasks for future releases.
|
|
18
13
|
|
|
19
14
|
* "Facilities":http://rubyforge.org/projects/ruby-vpi
|
|
20
|
-
|
|
15
|
+
** "Downloads":http://rubyforge.org/frs/?group_id=1339
|
|
16
|
+
** "Bugs":http://rubyforge.org/tracker/?group_id=1339
|
|
17
|
+
** "Patches":http://rubyforge.org/tracker/?group_id=1339
|
|
18
|
+
** "Requests":http://rubyforge.org/tracker/?group_id=1339
|
|
19
|
+
** "Forums":http://rubyforge.org/forum/?group_id=1339
|
|
21
20
|
|
|
22
21
|
* "Sources":http://ruby-vpi.rubyforge.org/src/ruby-vpi
|
|
23
22
|
- browse or access the "Darcs":http://abridgegame.org/darcs/ source code repository.
|
|
24
23
|
|
|
25
|
-
* "Talks":http://ruby-vpi.rubyforge.org/talks
|
|
26
|
-
- slides from public presentations about Ruby-VPI.
|
|
27
24
|
|
|
28
25
|
* "News":http://ruby-vpi.rubyforge.org/news
|
|
29
26
|
- see what's cooking for the next release.
|
|
30
27
|
|
|
28
|
+
* "Talks":http://ruby-vpi.rubyforge.org/talks
|
|
29
|
+
- slides from public presentations about Ruby-VPI.
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
* "Memo":memo.html
|
|
33
|
+
- pending tasks for future releases.
|
|
34
|
+
|
|
35
|
+
* "History":history.html
|
|
36
|
+
- record of all release notes.
|
|
37
|
+
|
|
38
|
+
|
|
31
39
|
</div>
|
|
32
40
|
|
|
33
41
|
|
data/doc/readme.html
CHANGED
|
@@ -28,44 +28,50 @@
|
|
|
28
28
|
|
|
29
29
|
|
|
30
30
|
<ul>
|
|
31
|
-
<li><a href="
|
|
32
|
-
|
|
31
|
+
<li><a href="http://rubyforge.org/projects/ruby-vpi">Facilities</a>
|
|
32
|
+
<ul>
|
|
33
|
+
<li><a href="http://rubyforge.org/frs/?group_id=1339">Downloads</a></li>
|
|
34
|
+
<li><a href="http://rubyforge.org/tracker/?group_id=1339">Bugs</a></li>
|
|
35
|
+
<li><a href="http://rubyforge.org/tracker/?group_id=1339">Patches</a></li>
|
|
36
|
+
<li><a href="http://rubyforge.org/tracker/?group_id=1339">Requests</a></li>
|
|
37
|
+
<li><a href="http://rubyforge.org/forum/?group_id=1339">Forums</a></li>
|
|
38
|
+
</ul></li>
|
|
33
39
|
</ul>
|
|
34
40
|
|
|
35
41
|
|
|
36
42
|
<ul>
|
|
37
|
-
<li><a href="
|
|
38
|
-
–
|
|
43
|
+
<li><a href="http://ruby-vpi.rubyforge.org/src/ruby-vpi">Sources</a>
|
|
44
|
+
– browse or access the <a href="http://abridgegame.org/darcs/">Darcs</a> source code repository.</li>
|
|
39
45
|
</ul>
|
|
40
46
|
|
|
41
47
|
|
|
42
48
|
<ul>
|
|
43
|
-
<li><a href="http://rubyforge.org/
|
|
44
|
-
–
|
|
49
|
+
<li><a href="http://ruby-vpi.rubyforge.org/news">News</a>
|
|
50
|
+
– see what’s cooking for the next release.</li>
|
|
45
51
|
</ul>
|
|
46
52
|
|
|
47
53
|
|
|
48
54
|
<ul>
|
|
49
|
-
<li><a href="http://ruby-vpi.rubyforge.org/
|
|
50
|
-
–
|
|
55
|
+
<li><a href="http://ruby-vpi.rubyforge.org/talks">Talks</a>
|
|
56
|
+
– slides from public presentations about Ruby-VPI.</li>
|
|
51
57
|
</ul>
|
|
52
58
|
|
|
53
59
|
|
|
54
60
|
<ul>
|
|
55
|
-
<li><a href="
|
|
56
|
-
–
|
|
61
|
+
<li><a href="memo.html">Memo</a>
|
|
62
|
+
– pending tasks for future releases.</li>
|
|
57
63
|
</ul>
|
|
58
64
|
|
|
59
65
|
|
|
60
66
|
<ul>
|
|
61
|
-
<li><a href="
|
|
62
|
-
–
|
|
67
|
+
<li><a href="history.html">History</a>
|
|
68
|
+
– record of all release notes.</li>
|
|
63
69
|
</ul>
|
|
64
70
|
|
|
65
71
|
|
|
66
72
|
</div>
|
|
67
73
|
|
|
68
|
-
<h1 id="
|
|
74
|
+
<h1 id="anchor113">Welcome to Ruby-VPI
|
|
69
75
|
<a type="application/rss+xml" href="http://ruby-vpi.rubyforge.org/doc/rss.xml"><img src="images/feed-icon.png" title="RSS feed for this project." alt="RSS feed for this project." /></a></h1>
|
|
70
76
|
|
|
71
77
|
|
data/doc/rss.xml
CHANGED
|
@@ -4,6 +4,13 @@
|
|
|
4
4
|
<title>Ruby-VPI</title>
|
|
5
5
|
<link>http://ruby-vpi.rubyforge.org</link>
|
|
6
6
|
<description>Ruby-VPI is a Ruby interface to IEEE 1364-2005 Verilog VPI. It lets you create complex Verilog test benches easily and wholly in Ruby.</description>
|
|
7
|
+
<item>
|
|
8
|
+
<title>Version 13.0.0 released</title>
|
|
9
|
+
<link>http://ruby-vpi.rubyforge.org/doc/history.html#13.0.0</link>
|
|
10
|
+
<guid>http://ruby-vpi.rubyforge.org/doc/history.html#13.0.0</guid>
|
|
11
|
+
<description><p>This release fixes a <em>major</em> instability bug, simplifies generated Verilog benches, and purifies the <span class="caps">API</span> reference documentation.</p></description>
|
|
12
|
+
<pubDate>Wed, 27 Dec 2006 00:00:00 PST</pubDate>
|
|
13
|
+
</item>
|
|
7
14
|
<item>
|
|
8
15
|
<title>Version 12.1.0 released</title>
|
|
9
16
|
<link>http://ruby-vpi.rubyforge.org/doc/history.html#12.1.0</link>
|
data/ext/common.h
CHANGED
data/ext/{swig.c → main.c}
RENAMED
|
@@ -19,18 +19,44 @@
|
|
|
19
19
|
Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
20
20
|
*/
|
|
21
21
|
|
|
22
|
-
#include "
|
|
23
|
-
|
|
22
|
+
#include "main.h"
|
|
24
23
|
#include "relay.h"
|
|
24
|
+
#include <stdlib.h>
|
|
25
|
+
#include <stdio.h>
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
// load the SWIG-generated Ruby interface to VPI
|
|
25
29
|
#include "swig_wrap.cin"
|
|
26
30
|
|
|
27
31
|
|
|
28
|
-
void
|
|
29
|
-
|
|
30
|
-
|
|
32
|
+
void main_init() {
|
|
33
|
+
ruby_init();
|
|
34
|
+
ruby_init_loadpath();
|
|
35
|
+
|
|
36
|
+
// load the VPI interface for Ruby
|
|
37
|
+
Init_vpi();
|
|
38
|
+
rb_define_module_function(mVpi, "relay_verilog", main_relay_verilog, 0);
|
|
39
|
+
|
|
40
|
+
// initialize the Ruby bench
|
|
41
|
+
char* benchFile = getenv("RUBY_VPI__RUBY_BENCH_FILE");
|
|
42
|
+
|
|
43
|
+
if (benchFile != NULL) {
|
|
44
|
+
rb_load_file(benchFile);
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
common_printf("error: environment variable RUBY_VPI__RUBY_BENCH_FILE is not set.");
|
|
48
|
+
exit(EXIT_FAILURE);
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
ruby_script(benchFile);
|
|
52
|
+
|
|
53
|
+
// run the test bench
|
|
54
|
+
ruby_run();
|
|
55
|
+
|
|
56
|
+
ruby_finalize();
|
|
31
57
|
}
|
|
32
58
|
|
|
33
|
-
VALUE
|
|
59
|
+
VALUE main_relay_verilog(VALUE arSelf) {
|
|
34
60
|
relay_verilog();
|
|
35
61
|
return arSelf;
|
|
36
62
|
}
|
data/ext/{swig.h → main.h}
RENAMED
|
@@ -18,22 +18,23 @@
|
|
|
18
18
|
Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
19
19
|
*/
|
|
20
20
|
/**\file
|
|
21
|
-
C
|
|
21
|
+
The C extension for Ruby-VPI.
|
|
22
22
|
*/
|
|
23
23
|
|
|
24
|
-
#ifndef
|
|
25
|
-
#define
|
|
24
|
+
#ifndef MAIN_H
|
|
25
|
+
#define MAIN_H
|
|
26
26
|
|
|
27
|
+
#include "common.h"
|
|
27
28
|
#include <ruby.h>
|
|
28
29
|
|
|
29
30
|
/**
|
|
30
|
-
|
|
31
|
+
Runs the test bench.
|
|
31
32
|
*/
|
|
32
|
-
void
|
|
33
|
+
void main_init();
|
|
33
34
|
|
|
34
35
|
/**
|
|
35
|
-
Transfers control from Ruby
|
|
36
|
+
Transfers control from Ruby to Verilog.
|
|
36
37
|
*/
|
|
37
|
-
VALUE
|
|
38
|
+
VALUE main_relay_verilog(VALUE arSelf);
|
|
38
39
|
|
|
39
40
|
#endif
|