ruby-vpi 8.2.0 → 9.0.0
Sign up to get free protection for your applications and to get access to all the features.
- data/HEADER +0 -19
- data/HISTORY +40 -0
- data/README +20 -2
- data/Rakefile +38 -42
- data/bin/generate_test.rb +50 -35
- data/bin/generate_test_tpl/bench.rb +3 -3
- data/bin/generate_test_tpl/bench.v +1 -1
- data/bin/generate_test_tpl/runner.rake +3 -2
- data/bin/generate_test_tpl/spec.rb +2 -2
- data/doc/background.organization.html +1 -1
- data/doc/glossary.html +1 -1
- data/doc/index.html +2 -2
- data/doc/manual.txt +163 -83
- data/doc/problems.html +1 -1
- data/doc/problems.ruby.html +1 -1
- data/doc/src/manual.xml +132 -49
- data/doc/usage.examples.html +1 -1
- data/doc/usage.html +1 -1
- data/doc/usage.installation.html +2 -2
- data/doc/usage.recommendations.html +3 -0
- data/doc/usage.requirements.html +1 -1
- data/doc/usage.tutorial.html +46 -42
- data/ext/extconf.rb +5 -2
- data/ext/relay.c +138 -0
- data/ext/{relay.hin → relay.h} +7 -7
- data/ext/{swig.cin → swig.c} +5 -7
- data/ext/{swig.hin → swig.h} +4 -4
- data/ext/verilog.h +1 -2
- data/ext/vlog.c +86 -0
- data/ext/{vlog.hin → vlog.h} +9 -12
- data/header.html +0 -31
- data/header.part.html +0 -31
- data/history.html +72 -31
- data/history.part.html +72 -0
- data/lib/ruby-vpi.rb +16 -0
- data/lib/ruby-vpi/runner.rb +34 -16
- data/memo.html +0 -31
- data/readme.html +33 -33
- data/readme.part.html +34 -3
- data/ref/c/annotated.html +1 -1
- data/ref/c/common_8h.html +1 -1
- data/ref/c/files.html +7 -8
- data/ref/c/functions.html +2 -2
- data/ref/c/functions_vars.html +2 -2
- data/ref/c/globals.html +1 -1
- data/ref/c/globals_0x63.html +1 -1
- data/ref/c/globals_0x65.html +1 -1
- data/ref/c/globals_0x66.html +1 -1
- data/ref/c/globals_0x70.html +1 -1
- data/ref/c/globals_0x72.html +9 -9
- data/ref/c/globals_0x73.html +3 -3
- data/ref/c/globals_0x74.html +1 -1
- data/ref/c/globals_0x76.html +5 -5
- data/ref/c/globals_0x78.html +1 -1
- data/ref/c/globals_defs.html +1 -1
- data/ref/c/globals_defs_0x65.html +1 -1
- data/ref/c/globals_defs_0x70.html +1 -1
- data/ref/c/globals_defs_0x76.html +2 -2
- data/ref/c/globals_defs_0x78.html +1 -1
- data/ref/c/globals_enum.html +1 -1
- data/ref/c/globals_eval.html +1 -1
- data/ref/c/globals_func.html +11 -11
- data/ref/c/globals_type.html +1 -1
- data/ref/c/globals_vars.html +5 -5
- data/ref/c/index.html +1 -1
- data/ref/c/relay_8c.html +214 -0
- data/ref/c/{relay_8hin.html → relay_8h.html} +23 -23
- data/ref/c/structrelay____RubyOptions____def.html +6 -6
- data/ref/c/structt__cb__data.html +1 -1
- data/ref/c/structt__vpi__delay.html +1 -1
- data/ref/c/structt__vpi__error__info.html +1 -1
- data/ref/c/structt__vpi__strengthval.html +1 -1
- data/ref/c/structt__vpi__systf__data.html +1 -1
- data/ref/c/structt__vpi__time.html +1 -1
- data/ref/c/structt__vpi__value.html +1 -1
- data/ref/c/structt__vpi__vecval.html +1 -1
- data/ref/c/structt__vpi__vlog__info.html +1 -1
- data/ref/c/swig_8c.html +80 -0
- data/ref/c/{swig_8hin.html → swig_8h.html} +13 -13
- data/ref/c/verilog_8h.html +3 -3
- data/ref/c/{vlog_8cin.html → vlog_8c.html} +30 -21
- data/ref/c/{vlog_8hin.html → vlog_8h.html} +12 -12
- data/ref/c/vpi__user_8h.html +1 -1
- data/ref/ruby/classes/ERB.html +5 -5
- data/ref/ruby/classes/ERB.src/{M000033.html → M000034.html} +0 -0
- data/ref/ruby/classes/FileUtils.html +10 -10
- data/ref/ruby/classes/FileUtils.src/M000089.html +5 -5
- data/ref/ruby/classes/FileUtils.src/M000090.html +18 -0
- data/ref/ruby/classes/Integer.html +68 -68
- data/ref/ruby/classes/Integer.src/M000012.html +12 -5
- data/ref/ruby/classes/Integer.src/M000013.html +5 -5
- data/ref/ruby/classes/Integer.src/M000014.html +5 -5
- data/ref/ruby/classes/Integer.src/M000015.html +5 -5
- data/ref/ruby/classes/Integer.src/M000016.html +5 -5
- data/ref/ruby/classes/Integer.src/M000017.html +18 -0
- data/ref/ruby/classes/Integer.src/M000020.html +9 -9
- data/ref/ruby/classes/Integer.src/M000021.html +9 -12
- data/ref/ruby/classes/Integer.src/M000022.html +12 -18
- data/ref/ruby/classes/Integer.src/M000023.html +18 -12
- data/ref/ruby/classes/Integer.src/M000024.html +12 -17
- data/ref/ruby/classes/Integer.src/M000025.html +30 -0
- data/ref/ruby/classes/OutputInfo.html +6 -6
- data/ref/ruby/classes/OutputInfo.src/{M000029.html → M000030.html} +37 -37
- data/ref/ruby/classes/RDoc.html +5 -5
- data/ref/ruby/classes/RDoc.src/{M000092.html → M000093.html} +0 -0
- data/ref/ruby/classes/RubyVpi.html +16 -10
- data/ref/ruby/classes/RubyVpi.src/M000091.html +37 -7
- data/ref/ruby/classes/RubyVpi.src/M000092.html +20 -0
- data/ref/ruby/classes/RubyVpi/Config.html +148 -0
- data/ref/ruby/classes/SWIG/TYPE_p_unsigned_int.html +45 -45
- data/ref/ruby/classes/SWIG/TYPE_p_unsigned_int.src/M000081.html +5 -5
- data/ref/ruby/classes/SWIG/TYPE_p_unsigned_int.src/M000082.html +5 -9
- data/ref/ruby/classes/SWIG/TYPE_p_unsigned_int.src/M000083.html +9 -31
- data/ref/ruby/classes/SWIG/TYPE_p_unsigned_int.src/M000084.html +31 -69
- data/ref/ruby/classes/SWIG/TYPE_p_unsigned_int.src/M000085.html +69 -114
- data/ref/ruby/classes/SWIG/TYPE_p_unsigned_int.src/M000086.html +114 -13
- data/ref/ruby/classes/SWIG/TYPE_p_unsigned_int.src/M000087.html +13 -5
- data/ref/ruby/classes/SWIG/TYPE_p_unsigned_int.src/M000088.html +18 -0
- data/ref/ruby/classes/String.html +10 -10
- data/ref/ruby/classes/String.src/M000032.html +28 -5
- data/ref/ruby/classes/String.src/M000033.html +18 -0
- data/ref/ruby/classes/Table.html +20 -20
- data/ref/ruby/classes/Table.src/M000026.html +25 -5
- data/ref/ruby/classes/Table.src/M000027.html +5 -5
- data/ref/ruby/classes/Table.src/M000028.html +5 -5
- data/ref/ruby/classes/Table.src/M000029.html +18 -0
- data/ref/ruby/classes/Template.html +5 -5
- data/ref/ruby/classes/Template.src/{M000030.html → M000031.html} +4 -4
- data/ref/ruby/classes/VerilogParser.html +5 -5
- data/ref/ruby/classes/VerilogParser.src/{M000004.html → M000005.html} +0 -0
- data/ref/ruby/classes/VerilogParser/Module.html +5 -5
- data/ref/ruby/classes/VerilogParser/Module.src/{M000005.html → M000006.html} +0 -0
- data/ref/ruby/classes/VerilogParser/Module/Parameter.html +5 -5
- data/ref/ruby/classes/VerilogParser/Module/Parameter.src/{M000010.html → M000011.html} +0 -0
- data/ref/ruby/classes/VerilogParser/Module/Port.html +20 -20
- data/ref/ruby/classes/VerilogParser/Module/Port.src/M000007.html +8 -5
- data/ref/ruby/classes/VerilogParser/Module/Port.src/M000008.html +5 -5
- data/ref/ruby/classes/VerilogParser/Module/Port.src/M000009.html +5 -5
- data/ref/ruby/classes/VerilogParser/Module/Port.src/M000010.html +18 -0
- data/ref/ruby/classes/XX/Document.html +45 -45
- data/ref/ruby/classes/XX/Document.src/M000072.html +9 -7
- data/ref/ruby/classes/XX/Document.src/M000073.html +7 -7
- data/ref/ruby/classes/XX/Document.src/M000074.html +7 -7
- data/ref/ruby/classes/XX/Document.src/M000075.html +7 -9
- data/ref/ruby/classes/XX/Document.src/M000076.html +9 -8
- data/ref/ruby/classes/XX/Document.src/M000077.html +8 -8
- data/ref/ruby/classes/XX/Document.src/M000078.html +8 -21
- data/ref/ruby/classes/XX/Document.src/M000079.html +21 -85
- data/ref/ruby/classes/XX/Document.src/M000080.html +98 -0
- data/ref/ruby/classes/XX/HTML4.html +5 -5
- data/ref/ruby/classes/XX/HTML4.src/{M000035.html → M000036.html} +0 -0
- data/ref/ruby/classes/XX/HTML4/Strict.html +5 -5
- data/ref/ruby/classes/XX/HTML4/Strict.src/{M000037.html → M000038.html} +0 -0
- data/ref/ruby/classes/XX/HTML4/Transitional.html +5 -5
- data/ref/ruby/classes/XX/HTML4/Transitional.src/{M000036.html → M000037.html} +0 -0
- data/ref/ruby/classes/XX/Markup.html +5 -5
- data/ref/ruby/classes/XX/Markup.src/{M000042.html → M000043.html} +0 -0
- data/ref/ruby/classes/XX/Markup/ClassMethods.html +40 -40
- data/ref/ruby/classes/XX/Markup/ClassMethods.src/M000044.html +9 -7
- data/ref/ruby/classes/XX/Markup/ClassMethods.src/M000045.html +7 -12
- data/ref/ruby/classes/XX/Markup/ClassMethods.src/M000046.html +12 -7
- data/ref/ruby/classes/XX/Markup/ClassMethods.src/M000047.html +7 -14
- data/ref/ruby/classes/XX/Markup/ClassMethods.src/M000048.html +14 -7
- data/ref/ruby/classes/XX/Markup/ClassMethods.src/M000049.html +7 -14
- data/ref/ruby/classes/XX/Markup/ClassMethods.src/M000050.html +14 -9
- data/ref/ruby/classes/XX/Markup/ClassMethods.src/M000051.html +22 -0
- data/ref/ruby/classes/XX/Markup/InstanceMethods.html +100 -100
- data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000052.html +43 -20
- data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000053.html +20 -18
- data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000054.html +18 -35
- data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000055.html +35 -7
- data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000056.html +7 -18
- data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000057.html +18 -19
- data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000058.html +19 -19
- data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000059.html +19 -15
- data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000060.html +15 -10
- data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000061.html +10 -13
- data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000062.html +13 -7
- data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000063.html +7 -7
- data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000064.html +7 -7
- data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000065.html +7 -7
- data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000066.html +7 -7
- data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000067.html +7 -8
- data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000068.html +8 -7
- data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000069.html +7 -7
- data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000070.html +7 -7
- data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000071.html +20 -0
- data/ref/ruby/classes/XX/XHTML.html +5 -5
- data/ref/ruby/classes/XX/XHTML.src/{M000038.html → M000039.html} +0 -0
- data/ref/ruby/classes/XX/XHTML/Strict.html +5 -5
- data/ref/ruby/classes/XX/XHTML/Strict.src/{M000040.html → M000041.html} +0 -0
- data/ref/ruby/classes/XX/XHTML/Transitional.html +5 -5
- data/ref/ruby/classes/XX/XHTML/Transitional.src/{M000039.html → M000040.html} +0 -0
- data/ref/ruby/classes/XX/XML.html +5 -5
- data/ref/ruby/classes/XX/XML.src/{M000034.html → M000035.html} +0 -0
- data/ref/ruby/classes/XX/XMLish.html +5 -5
- data/ref/ruby/classes/XX/XMLish.src/{M000041.html → M000042.html} +0 -0
- data/ref/ruby/created.rid +1 -1
- data/ref/ruby/files/bin/generate_test_rb.html +49 -9
- data/ref/ruby/files/bin/generate_test_rb.src/M000001.html +5 -16
- data/ref/ruby/files/bin/generate_test_rb.src/M000002.html +39 -0
- data/ref/ruby/files/bin/header_to_ruby_rb.html +1 -1
- data/ref/ruby/files/lib/ruby-vpi/erb_rb.html +1 -1
- data/ref/ruby/files/lib/ruby-vpi/integer_rb.html +1 -1
- data/ref/ruby/files/lib/ruby-vpi/rake_rb.html +1 -1
- data/ref/ruby/files/lib/ruby-vpi/rcov_rb.html +1 -1
- data/ref/ruby/files/lib/ruby-vpi/rdoc_rb.html +1 -1
- data/ref/ruby/files/lib/ruby-vpi/rspec_rb.html +1 -1
- data/ref/ruby/files/lib/ruby-vpi/runner_proxy_rb.html +1 -1
- data/ref/ruby/files/lib/ruby-vpi/runner_rb.html +22 -21
- data/ref/ruby/files/lib/ruby-vpi/runner_rb.src/M000003.html +11 -13
- data/ref/ruby/files/lib/ruby-vpi/runner_rb.src/M000004.html +26 -0
- data/ref/ruby/files/lib/ruby-vpi/verilog_parser_rb.html +1 -1
- data/ref/ruby/files/lib/ruby-vpi/vpi_rb.html +1 -1
- data/ref/ruby/files/lib/ruby-vpi/xx_rb.html +1 -1
- data/ref/ruby/files/lib/ruby-vpi_rb.html +1 -1
- data/ref/ruby/fr_class_index.html +1 -0
- data/ref/ruby/fr_method_index.html +93 -92
- data/samp/counter/{counter_rspecTest_bench.rb → counter_rspec_bench.rb} +2 -2
- data/samp/counter/{counter_rspecTest_bench.v → counter_rspec_bench.v} +3 -3
- data/samp/counter/{counter_unitTest_design.rb → counter_rspec_design.rb} +3 -3
- data/samp/counter/{counter_rspecTest_proto.rb → counter_rspec_proto.rb} +0 -0
- data/samp/counter/{counter_unitTest_runner.rake → counter_rspec_runner.rake} +5 -4
- data/samp/counter/{counter_rspecTest_spec.rb → counter_rspec_spec.rb} +0 -0
- data/samp/counter/{counter_unitTest_bench.rb → counter_xunit_bench.rb} +2 -2
- data/samp/counter/{counter_unitTest_bench.v → counter_xunit_bench.v} +3 -3
- data/samp/counter/{counter_rspecTest_design.rb → counter_xunit_design.rb} +3 -3
- data/samp/counter/{counter_unitTest_proto.rb → counter_xunit_proto.rb} +0 -0
- data/samp/counter/{counter_rspecTest_runner.rake → counter_xunit_runner.rake} +5 -4
- data/samp/counter/{counter_unitTest_spec.rb → counter_xunit_spec.rb} +0 -0
- data/samp/pipelined_alu/hw5_unit_test_runner.rake +3 -2
- metadata +177 -177
- data/ext/README +0 -124
- data/ext/relay.cin +0 -146
- data/ext/ruby-vpi.c +0 -36
- data/ext/vlog.cin +0 -92
- data/lib/ruby-vpi/synopsys_vcs.tab +0 -2
- data/ref/c/relay_8cin.html +0 -204
- data/ref/c/ruby-vpi_8c.html +0 -34
- data/ref/c/swig_8cin.html +0 -75
- data/ref/ruby/classes/FileUtils.src/M000088.html +0 -18
- data/ref/ruby/classes/Integer.src/M000011.html +0 -25
- data/ref/ruby/classes/Integer.src/M000019.html +0 -22
- data/ref/ruby/classes/RubyVpi.src/M000090.html +0 -50
- data/ref/ruby/classes/SWIG/TYPE_p_unsigned_int.src/M000080.html +0 -18
- data/ref/ruby/classes/String.src/M000031.html +0 -41
- data/ref/ruby/classes/Table.src/M000025.html +0 -38
- data/ref/ruby/classes/VerilogParser/Module/Port.src/M000006.html +0 -21
- data/ref/ruby/classes/XX/Document.src/M000071.html +0 -22
- data/ref/ruby/classes/XX/Markup/ClassMethods.src/M000043.html +0 -22
- data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000051.html +0 -56
- data/ref/ruby/files/lib/ruby-vpi/runner_rb.src/M000002.html +0 -20
data/history.html
CHANGED
@@ -2,37 +2,6 @@
|
|
2
2
|
<link rel="stylesheet" type="text/css" href="style.css" />
|
3
3
|
</head>
|
4
4
|
|
5
|
-
<h1 style="text-align: center;">Welcome to Ruby-VPI</h1>
|
6
|
-
|
7
|
-
|
8
|
-
<p>Ruby-VPI is a <a href="http://ruby-lang.org">Ruby interface</a> to <a href="http://ieeexplore.ieee.org/xpl/standardstoc.jsp?isnumber=33945">Verilog <span class="caps">VPI</span></a>. It lets you create complex Verilog test benches easily and wholly in Ruby.</p>
|
9
|
-
|
10
|
-
|
11
|
-
<h2>Features</h2>
|
12
|
-
|
13
|
-
|
14
|
-
<ul>
|
15
|
-
<li>Prototype and verify designs <em>quickly</em> using <a href="http://behaviour-driven.org/" title="behavior-driven development"><span class="caps">BDD</span></a>, <a href="http://www.agiledata.org/essays/tdd.html" title="test-driven development"><span class="caps">TDD</span></a>, and more.</li>
|
16
|
-
<li>Reuse the <em>same</em> specification to verify both prototype and design.</li>
|
17
|
-
<li>Specifications are executable <em>and</em> human-readable. (See this <a href="./doc/usage.tutorial.html#fig..counter_rspecTest_spec.rb">example specification</a> and its <a href="./doc/usage.tutorial.html#fig..test-proto.rspec">boss-friendly output</a>.)</li>
|
18
|
-
</ul>
|
19
|
-
|
20
|
-
|
21
|
-
<ul>
|
22
|
-
<li>Utilize Ruby’s power and elegance. (<a href="http://www.ruby-doc.org/whyruby">Why choose Ruby?</a>)
|
23
|
-
<ul>
|
24
|
-
<li>Built-in support for unlimited length integers, regular expressions, networking, multi-threading, system calls, <em>ad infinium</em>!</li>
|
25
|
-
<li>Easy to use; doesn’t get in your way.</li>
|
26
|
-
<li>Makes programming <em>fun</em> again!</li>
|
27
|
-
</ul></li>
|
28
|
-
</ul>
|
29
|
-
|
30
|
-
|
31
|
-
<ul>
|
32
|
-
<li>Study, modify, or distribute this is free software, released under the <a href="http://www.gnu.org/copyleft/gpl.html"><span class="caps">GNU</span> General Public License</a>, as you see fit.</li>
|
33
|
-
</ul>
|
34
|
-
|
35
|
-
|
36
5
|
<div class="variablelist">
|
37
6
|
<dl>
|
38
7
|
|
@@ -144,6 +113,72 @@ We <em>strictly</em> follow the RubyGems project’s <a href="http://www.rub
|
|
144
113
|
<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
114
|
|
146
115
|
|
116
|
+
<h1>Version 9.0.0 (2006-10-28)</h1>
|
117
|
+
|
118
|
+
|
119
|
+
<h2>Summary</h2>
|
120
|
+
|
121
|
+
|
122
|
+
<p>This release improves the automated test generator and adds new content to the user manual.</p>
|
123
|
+
|
124
|
+
|
125
|
+
<h2>Acknowledgments</h2>
|
126
|
+
|
127
|
+
|
128
|
+
<p>Thanks to Matt Fischler for helping test and debug the installation of Ruby-VPI on Windows.</p>
|
129
|
+
|
130
|
+
|
131
|
+
<h2>Notice</h2>
|
132
|
+
|
133
|
+
|
134
|
+
<ul>
|
135
|
+
<li>The command-line options for <code>generate_test.rb</code> have changed. Run the command <code>generate_test.rb --help</code> for details.</li>
|
136
|
+
</ul>
|
137
|
+
|
138
|
+
|
139
|
+
<h2>Details</h2>
|
140
|
+
|
141
|
+
|
142
|
+
<ul>
|
143
|
+
<li>Test runners now attempt to resolve paths in <code>SIMULATOR_SOURCES</code> by searching for them within the directories specified in <code>SIMULATOR_INCLUDES</code>.</li>
|
144
|
+
</ul>
|
145
|
+
|
146
|
+
|
147
|
+
<ul>
|
148
|
+
<li>Synopsys <span class="caps">VCS</span> is now used in a better way (via the <code>-load</code> option).
|
149
|
+
<ul>
|
150
|
+
<li>The old <span class="caps">PLI</span> table file (<code>synopsys_vcs.tab</code>) has been removed.</li>
|
151
|
+
<li>The C extension has been revised accordingly.</li>
|
152
|
+
</ul></li>
|
153
|
+
</ul>
|
154
|
+
|
155
|
+
|
156
|
+
<ul>
|
157
|
+
<li>The C extension now compiles without errors in Cygwin.</li>
|
158
|
+
</ul>
|
159
|
+
|
160
|
+
|
161
|
+
<ul>
|
162
|
+
<li>The automated test generator now:
|
163
|
+
<ul>
|
164
|
+
<li>Only creates output files when necessary.</li>
|
165
|
+
<li>Updates existing output files using <a href="./doc/usage.recommendations.html">text merging tools</a> if possible. (Refer to <code>MERGER</code> in the help information of <code>generate_test.rb</code>.)</li>
|
166
|
+
<li>Emits progress information similar to Ruby on Rails.</li>
|
167
|
+
</ul></li>
|
168
|
+
</ul>
|
169
|
+
|
170
|
+
|
171
|
+
<ul>
|
172
|
+
<li>The user manual now:
|
173
|
+
<ul>
|
174
|
+
<li>Includes instructions for installing on Windows (via Cygwin).</li>
|
175
|
+
<li>Has a recommended software section, with links to text merging tools.</li>
|
176
|
+
<li>Uses the term <a href="http://en.wikipedia.org/wiki/XUnit">xUnit</a> instead of “unit test”.</li>
|
177
|
+
<li>Correctly spells “rSpec”.</li>
|
178
|
+
</ul></li>
|
179
|
+
</ul>
|
180
|
+
|
181
|
+
|
147
182
|
<h1>Version 8.2.0 (2006-10-24)</h1>
|
148
183
|
|
149
184
|
|
@@ -153,6 +188,12 @@ We <em>strictly</em> follow the RubyGems project’s <a href="http://www.rub
|
|
153
188
|
<p>This release simplifies configuration of generated tests.</p>
|
154
189
|
|
155
190
|
|
191
|
+
<h2>Acknowledgments</h2>
|
192
|
+
|
193
|
+
|
194
|
+
<p>Thanks to <a href="http://www.soe.ucsc.edu/classes/cmpe126/Fall06/">students in <span class="caps">CMPE</span>-126</a> for their constructive criticism.</p>
|
195
|
+
|
196
|
+
|
156
197
|
<h2>Notice</h2>
|
157
198
|
|
158
199
|
|
data/history.part.html
CHANGED
@@ -18,6 +18,72 @@ 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 9.0.0 (2006-10-28)</h1>
|
22
|
+
|
23
|
+
|
24
|
+
<h2>Summary</h2>
|
25
|
+
|
26
|
+
|
27
|
+
<p>This release improves the automated test generator and adds new content to the user manual.</p>
|
28
|
+
|
29
|
+
|
30
|
+
<h2>Acknowledgments</h2>
|
31
|
+
|
32
|
+
|
33
|
+
<p>Thanks to Matt Fischler for helping test and debug the installation of Ruby-VPI on Windows.</p>
|
34
|
+
|
35
|
+
|
36
|
+
<h2>Notice</h2>
|
37
|
+
|
38
|
+
|
39
|
+
<ul>
|
40
|
+
<li>The command-line options for <code>generate_test.rb</code> have changed. Run the command <code>generate_test.rb --help</code> for details.</li>
|
41
|
+
</ul>
|
42
|
+
|
43
|
+
|
44
|
+
<h2>Details</h2>
|
45
|
+
|
46
|
+
|
47
|
+
<ul>
|
48
|
+
<li>Test runners now attempt to resolve paths in <code>SIMULATOR_SOURCES</code> by searching for them within the directories specified in <code>SIMULATOR_INCLUDES</code>.</li>
|
49
|
+
</ul>
|
50
|
+
|
51
|
+
|
52
|
+
<ul>
|
53
|
+
<li>Synopsys <span class="caps">VCS</span> is now used in a better way (via the <code>-load</code> option).
|
54
|
+
<ul>
|
55
|
+
<li>The old <span class="caps">PLI</span> table file (<code>synopsys_vcs.tab</code>) has been removed.</li>
|
56
|
+
<li>The C extension has been revised accordingly.</li>
|
57
|
+
</ul></li>
|
58
|
+
</ul>
|
59
|
+
|
60
|
+
|
61
|
+
<ul>
|
62
|
+
<li>The C extension now compiles without errors in Cygwin.</li>
|
63
|
+
</ul>
|
64
|
+
|
65
|
+
|
66
|
+
<ul>
|
67
|
+
<li>The automated test generator now:
|
68
|
+
<ul>
|
69
|
+
<li>Only creates output files when necessary.</li>
|
70
|
+
<li>Updates existing output files using <a href="./doc/usage.recommendations.html">text merging tools</a> if possible. (Refer to <code>MERGER</code> in the help information of <code>generate_test.rb</code>.)</li>
|
71
|
+
<li>Emits progress information similar to Ruby on Rails.</li>
|
72
|
+
</ul></li>
|
73
|
+
</ul>
|
74
|
+
|
75
|
+
|
76
|
+
<ul>
|
77
|
+
<li>The user manual now:
|
78
|
+
<ul>
|
79
|
+
<li>Includes instructions for installing on Windows (via Cygwin).</li>
|
80
|
+
<li>Has a recommended software section, with links to text merging tools.</li>
|
81
|
+
<li>Uses the term <a href="http://en.wikipedia.org/wiki/XUnit">xUnit</a> instead of “unit test”.</li>
|
82
|
+
<li>Correctly spells “rSpec”.</li>
|
83
|
+
</ul></li>
|
84
|
+
</ul>
|
85
|
+
|
86
|
+
|
21
87
|
<h1>Version 8.2.0 (2006-10-24)</h1>
|
22
88
|
|
23
89
|
|
@@ -27,6 +93,12 @@ We <em>strictly</em> follow the RubyGems project’s <a href="http://www.rub
|
|
27
93
|
<p>This release simplifies configuration of generated tests.</p>
|
28
94
|
|
29
95
|
|
96
|
+
<h2>Acknowledgments</h2>
|
97
|
+
|
98
|
+
|
99
|
+
<p>Thanks to <a href="http://www.soe.ucsc.edu/classes/cmpe126/Fall06/">students in <span class="caps">CMPE</span>-126</a> for their constructive criticism.</p>
|
100
|
+
|
101
|
+
|
30
102
|
<h2>Notice</h2>
|
31
103
|
|
32
104
|
|
data/lib/ruby-vpi.rb
CHANGED
@@ -56,4 +56,20 @@ module RubyVpi
|
|
56
56
|
|
57
57
|
require "#{aTestPrefix}_spec.rb"
|
58
58
|
end
|
59
|
+
|
60
|
+
module Config
|
61
|
+
PROJECT_ID = 'ruby-vpi'
|
62
|
+
PROJECT_NAME = 'Ruby-VPI'
|
63
|
+
PROJECT_URL = "http://#{PROJECT_ID}.rubyforge.org"
|
64
|
+
PROJECT_SUMMARY = "Ruby interface to Verilog VPI."
|
65
|
+
PROJECT_DETAIL = "#{PROJECT_NAME} is a #{PROJECT_SUMMARY}. It lets you create complex Verilog test benches easily and wholly in Ruby."
|
66
|
+
|
67
|
+
Simulator = Struct.new(:id, :name, :compiler_args, :linker_args)
|
68
|
+
SIMULATORS = [
|
69
|
+
Simulator.new(:cver, 'GPL Cver', '-DPRAGMATIC_CVER', ''),
|
70
|
+
Simulator.new(:ivl, 'Icarus Verilog', '-DICARUS_VERILOG', ''),
|
71
|
+
Simulator.new(:vcs, 'Synopsys VCS', '-DSYNOPSYS_VCS', ''),
|
72
|
+
Simulator.new(:vsim, 'Mentor Modelsim', '-DMENTOR_MODELSIM', ''),
|
73
|
+
]
|
74
|
+
end
|
59
75
|
end
|
data/lib/ruby-vpi/runner.rb
CHANGED
@@ -4,9 +4,6 @@
|
|
4
4
|
# SIMULATOR_SOURCES:: Array of paths to source files needed by the simulator.
|
5
5
|
# SIMULATOR_TARGET:: Name of the Verilog module to be simulated.
|
6
6
|
# SIMULATOR_ARGS:: A hash containing keys for each simulator task (same as Rakefile task names) and values containing command-line arguments for each simulator.
|
7
|
-
#
|
8
|
-
# = Usage
|
9
|
-
# When using one simulator after another, ensure that Ruby-VPI is properly compiled for the new simulator by invoking the _clobber_ cleaning task.
|
10
7
|
|
11
8
|
=begin
|
12
9
|
Copyright 2006 Suraj N. Kurapati
|
@@ -36,18 +33,41 @@
|
|
36
33
|
|
37
34
|
SIMULATOR_INCLUDES = [] unless defined? SIMULATOR_INCLUDES
|
38
35
|
|
36
|
+
# resolve paths to sources by searching include directories
|
37
|
+
SIMULATOR_SOURCES.map! do |src|
|
38
|
+
unless File.exist? src
|
39
|
+
SIMULATOR_INCLUDES.each do |dir|
|
40
|
+
path = File.join(dir, src)
|
41
|
+
|
42
|
+
if File.exist? path
|
43
|
+
src = path
|
44
|
+
break
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
src
|
50
|
+
end
|
51
|
+
|
39
52
|
|
40
53
|
require 'rake/clean'
|
54
|
+
require 'ruby-vpi'
|
41
55
|
require 'ruby-vpi/rake'
|
42
56
|
|
57
|
+
include RubyVpi::Config
|
58
|
+
|
43
59
|
OBJECT_PATH = File.join(File.dirname(__FILE__), '..', '..', 'obj')
|
44
|
-
|
60
|
+
BOOTSTAP_FUNC = 'vlog_startup_routines_bootstrap'
|
45
61
|
|
46
62
|
|
47
63
|
# Returns the path to the Ruby-VPI object file for the given simulator.
|
48
|
-
def object_file_path aSimId
|
49
|
-
path = File.join(OBJECT_PATH, "
|
50
|
-
|
64
|
+
def object_file_path aSimId
|
65
|
+
path = File.join(OBJECT_PATH, "#{PROJECT_ID}.#{aSimId}.so")
|
66
|
+
|
67
|
+
unless File.exist? path
|
68
|
+
raise "Object file #{path.inspect} is missing. Rebuild #{PROJECT_NAME}."
|
69
|
+
end
|
70
|
+
|
51
71
|
path
|
52
72
|
end
|
53
73
|
|
@@ -74,7 +94,7 @@ end
|
|
74
94
|
|
75
95
|
desc "Simulate with GPL Cver."
|
76
96
|
task :cver do
|
77
|
-
sh 'cver', SIMULATOR_ARGS[:cver], "+loadvpi=#{object_file_path(:cver
|
97
|
+
sh 'cver', SIMULATOR_ARGS[:cver], "+loadvpi=#{object_file_path(:cver)}:#{BOOTSTAP_FUNC}", expand_include_dir_options(:cver), SIMULATOR_SOURCES
|
78
98
|
end
|
79
99
|
|
80
100
|
CLOBBER.include 'verilog.log'
|
@@ -82,8 +102,8 @@ CLOBBER.include 'verilog.log'
|
|
82
102
|
|
83
103
|
desc "Simulate with Icarus Verilog."
|
84
104
|
task :ivl do
|
85
|
-
cp object_file_path(:ivl
|
86
|
-
sh 'iverilog', SIMULATOR_ARGS[:ivl],
|
105
|
+
cp object_file_path(:ivl), 'ruby-vpi.vpi'
|
106
|
+
sh 'iverilog', SIMULATOR_ARGS[:ivl], '-mruby-vpi', expand_include_dir_options(:ivl), SIMULATOR_SOURCES
|
87
107
|
sh 'vvp -M. a.out'
|
88
108
|
end
|
89
109
|
|
@@ -91,10 +111,8 @@ CLEAN.include 'ruby-vpi.vpi', 'a.out'
|
|
91
111
|
|
92
112
|
|
93
113
|
desc "Simulate with Synopsys VCS."
|
94
|
-
task :vcs
|
95
|
-
|
96
|
-
|
97
|
-
sh 'vcs', SIMULATOR_ARGS[:vcs], %w(-R +v2k +vpi -LDFLAGS), File.expand_path(object_file_path(:vcs)), "-L#{Config::CONFIG['libdir']}", Config::CONFIG['LIBRUBYARG'], '-lpthread', '-P', VCS_TAB_FILE, expand_include_dir_options(:vcs), SIMULATOR_SOURCES
|
114
|
+
task :vcs do
|
115
|
+
sh %w(vcs -R +v2k +vpi), SIMULATOR_ARGS[:vcs], '-load', "#{object_file_path(:vcs)}:#{BOOTSTAP_FUNC}", expand_include_dir_options(:vcs), SIMULATOR_SOURCES
|
98
116
|
end
|
99
117
|
|
100
118
|
CLEAN.include 'csrc', 'simv*'
|
@@ -103,8 +121,8 @@ CLEAN.include 'csrc', 'simv*'
|
|
103
121
|
desc "Simulate with Mentor Modelsim."
|
104
122
|
task :vsim do
|
105
123
|
sh 'vlib work'
|
106
|
-
sh 'vlog',
|
107
|
-
sh 'vsim', '-c', SIMULATOR_TARGET, '-pli', object_file_path(:vsim
|
124
|
+
sh 'vlog', expand_include_dir_options(:vsim), SIMULATOR_SOURCES
|
125
|
+
sh 'vsim', SIMULATOR_ARGS[:vsim], '-c', SIMULATOR_TARGET, '-pli', object_file_path(:vsim), '-do', 'run -all'
|
108
126
|
end
|
109
127
|
|
110
128
|
CLEAN.include 'work'
|
data/memo.html
CHANGED
@@ -2,37 +2,6 @@
|
|
2
2
|
<link rel="stylesheet" type="text/css" href="style.css" />
|
3
3
|
</head>
|
4
4
|
|
5
|
-
<h1 style="text-align: center;">Welcome to Ruby-VPI</h1>
|
6
|
-
|
7
|
-
|
8
|
-
<p>Ruby-VPI is a <a href="http://ruby-lang.org">Ruby interface</a> to <a href="http://ieeexplore.ieee.org/xpl/standardstoc.jsp?isnumber=33945">Verilog <span class="caps">VPI</span></a>. It lets you create complex Verilog test benches easily and wholly in Ruby.</p>
|
9
|
-
|
10
|
-
|
11
|
-
<h2>Features</h2>
|
12
|
-
|
13
|
-
|
14
|
-
<ul>
|
15
|
-
<li>Prototype and verify designs <em>quickly</em> using <a href="http://behaviour-driven.org/" title="behavior-driven development"><span class="caps">BDD</span></a>, <a href="http://www.agiledata.org/essays/tdd.html" title="test-driven development"><span class="caps">TDD</span></a>, and more.</li>
|
16
|
-
<li>Reuse the <em>same</em> specification to verify both prototype and design.</li>
|
17
|
-
<li>Specifications are executable <em>and</em> human-readable. (See this <a href="./doc/usage.tutorial.html#fig..counter_rspecTest_spec.rb">example specification</a> and its <a href="./doc/usage.tutorial.html#fig..test-proto.rspec">boss-friendly output</a>.)</li>
|
18
|
-
</ul>
|
19
|
-
|
20
|
-
|
21
|
-
<ul>
|
22
|
-
<li>Utilize Ruby’s power and elegance. (<a href="http://www.ruby-doc.org/whyruby">Why choose Ruby?</a>)
|
23
|
-
<ul>
|
24
|
-
<li>Built-in support for unlimited length integers, regular expressions, networking, multi-threading, system calls, <em>ad infinium</em>!</li>
|
25
|
-
<li>Easy to use; doesn’t get in your way.</li>
|
26
|
-
<li>Makes programming <em>fun</em> again!</li>
|
27
|
-
</ul></li>
|
28
|
-
</ul>
|
29
|
-
|
30
|
-
|
31
|
-
<ul>
|
32
|
-
<li>Study, modify, or distribute this is free software, released under the <a href="http://www.gnu.org/copyleft/gpl.html"><span class="caps">GNU</span> General Public License</a>, as you see fit.</li>
|
33
|
-
</ul>
|
34
|
-
|
35
|
-
|
36
5
|
<div class="variablelist">
|
37
6
|
<dl>
|
38
7
|
|
data/readme.html
CHANGED
@@ -2,37 +2,6 @@
|
|
2
2
|
<link rel="stylesheet" type="text/css" href="style.css" />
|
3
3
|
</head>
|
4
4
|
|
5
|
-
<h1 style="text-align: center;">Welcome to Ruby-VPI</h1>
|
6
|
-
|
7
|
-
|
8
|
-
<p>Ruby-VPI is a <a href="http://ruby-lang.org">Ruby interface</a> to <a href="http://ieeexplore.ieee.org/xpl/standardstoc.jsp?isnumber=33945">Verilog <span class="caps">VPI</span></a>. It lets you create complex Verilog test benches easily and wholly in Ruby.</p>
|
9
|
-
|
10
|
-
|
11
|
-
<h2>Features</h2>
|
12
|
-
|
13
|
-
|
14
|
-
<ul>
|
15
|
-
<li>Prototype and verify designs <em>quickly</em> using <a href="http://behaviour-driven.org/" title="behavior-driven development"><span class="caps">BDD</span></a>, <a href="http://www.agiledata.org/essays/tdd.html" title="test-driven development"><span class="caps">TDD</span></a>, and more.</li>
|
16
|
-
<li>Reuse the <em>same</em> specification to verify both prototype and design.</li>
|
17
|
-
<li>Specifications are executable <em>and</em> human-readable. (See this <a href="./doc/usage.tutorial.html#fig..counter_rspecTest_spec.rb">example specification</a> and its <a href="./doc/usage.tutorial.html#fig..test-proto.rspec">boss-friendly output</a>.)</li>
|
18
|
-
</ul>
|
19
|
-
|
20
|
-
|
21
|
-
<ul>
|
22
|
-
<li>Utilize Ruby’s power and elegance. (<a href="http://www.ruby-doc.org/whyruby">Why choose Ruby?</a>)
|
23
|
-
<ul>
|
24
|
-
<li>Built-in support for unlimited length integers, regular expressions, networking, multi-threading, system calls, <em>ad infinium</em>!</li>
|
25
|
-
<li>Easy to use; doesn’t get in your way.</li>
|
26
|
-
<li>Makes programming <em>fun</em> again!</li>
|
27
|
-
</ul></li>
|
28
|
-
</ul>
|
29
|
-
|
30
|
-
|
31
|
-
<ul>
|
32
|
-
<li>Study, modify, or distribute this is free software, released under the <a href="http://www.gnu.org/copyleft/gpl.html"><span class="caps">GNU</span> General Public License</a>, as you see fit.</li>
|
33
|
-
</ul>
|
34
|
-
|
35
|
-
|
36
5
|
<div class="variablelist">
|
37
6
|
<dl>
|
38
7
|
|
@@ -124,6 +93,37 @@ Ask for help, give feedback, or discuss.</p>
|
|
124
93
|
</div>
|
125
94
|
</div>
|
126
95
|
|
96
|
+
<h1 style="text-align: center;">Welcome to Ruby-VPI</h1>
|
97
|
+
|
98
|
+
|
99
|
+
<p>Ruby-VPI is a <a href="http://ruby-lang.org">Ruby interface</a> to <a href="http://ieeexplore.ieee.org/xpl/standardstoc.jsp?isnumber=33945">Verilog <span class="caps">VPI</span></a>. It lets you create complex Verilog test benches easily and wholly in Ruby.</p>
|
100
|
+
|
101
|
+
|
102
|
+
<h2>Features</h2>
|
103
|
+
|
104
|
+
|
105
|
+
<ul>
|
106
|
+
<li>Prototype and verify designs <em>quickly</em> using <a href="http://behaviour-driven.org/" title="behavior-driven development"><span class="caps">BDD</span></a>, <a href="http://www.agiledata.org/essays/tdd.html" title="test-driven development"><span class="caps">TDD</span></a>, and more.</li>
|
107
|
+
<li>Reuse the <em>same</em> specification to verify both prototype and design.</li>
|
108
|
+
<li>Specifications are executable <em>and</em> human-readable. (See this <a href="./doc/usage.tutorial.html#fig..counter_rspecTest_spec.rb">example specification</a> and its <a href="./doc/usage.tutorial.html#fig..test-proto.rspec">boss-friendly output</a>.)</li>
|
109
|
+
</ul>
|
110
|
+
|
111
|
+
|
112
|
+
<ul>
|
113
|
+
<li>Utilize Ruby’s power and elegance. (<a href="http://www.ruby-doc.org/whyruby">Why choose Ruby?</a>)
|
114
|
+
<ul>
|
115
|
+
<li>Built-in support for unlimited length integers, regular expressions, networking, multi-threading, system calls, <em>ad infinium</em>!</li>
|
116
|
+
<li>Easy to use; doesn’t get in your way.</li>
|
117
|
+
<li>Makes programming <em>fun</em> again!</li>
|
118
|
+
</ul></li>
|
119
|
+
</ul>
|
120
|
+
|
121
|
+
|
122
|
+
<ul>
|
123
|
+
<li>Study, modify, or distribute this free software in accordance with the <a href="http://www.gnu.org/copyleft/gpl.html"><span class="caps">GNU</span> General Public License</a>.</li>
|
124
|
+
</ul>
|
125
|
+
|
126
|
+
|
127
127
|
<h1>Getting started</h1>
|
128
128
|
|
129
129
|
|
@@ -147,10 +147,10 @@ Ask for help, give feedback, or discuss.</p>
|
|
147
147
|
</ul>
|
148
148
|
|
149
149
|
|
150
|
-
<h1>
|
150
|
+
<h1>Building release packages</h1>
|
151
151
|
|
152
152
|
|
153
|
-
<p>In addition to the <a href="./doc/usage.requirements.html">normal requirements</a>, you need the following software to
|
153
|
+
<p>In addition to the <a href="./doc/usage.requirements.html">normal requirements</a>, you need the following software to build release packages:</p>
|
154
154
|
|
155
155
|
|
156
156
|
<ul>
|