ruby-vpi 9.0.0 → 10.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/HISTORY +120 -56
- data/MEMO +8 -0
- data/README +1 -1
- data/Rakefile +2 -2
- data/bin/generate_test.rb +11 -12
- data/bin/generate_test_tpl/bench.rb +2 -2
- data/bin/generate_test_tpl/bench.v +1 -4
- data/bin/generate_test_tpl/design.rb +6 -20
- data/bin/generate_test_tpl/proto.rb +5 -3
- data/bin/generate_test_tpl/runner.rake +2 -1
- data/bin/generate_test_tpl/spec.rb +5 -12
- data/doc/background.organization.html +1 -1
- data/doc/background.running-tests.html +1 -1
- data/doc/index.html +2 -2
- data/doc/manual.txt +276 -223
- data/doc/problem.ivl.html +3 -3
- data/doc/problems.html +1 -1
- data/doc/problems.ruby.html +1 -1
- data/doc/problems.vsim.html +1 -1
- data/doc/setup.html +3 -0
- data/doc/setup.installation.html +9 -0
- data/doc/setup.maintenance.html +3 -0
- data/doc/setup.reqs.html +3 -0
- data/doc/src/manual.xml +232 -195
- data/doc/styles/manual.css +8 -0
- data/doc/usage.examples.html +1 -1
- data/doc/usage.html +1 -1
- data/doc/usage.tools.html +7 -1
- data/doc/usage.tutorial.html +50 -56
- data/history.html +195 -77
- data/history.part.html +195 -77
- data/lib/ruby-vpi/vpi.rb +13 -1
- data/lib/ruby-vpi.rb +18 -7
- data/memo.html +19 -0
- data/memo.part.html +19 -0
- data/readme.html +1 -1
- data/readme.part.html +1 -1
- data/samp/counter/counter_rspec_bench.rb +2 -2
- data/samp/counter/counter_rspec_bench.v +1 -4
- data/samp/counter/counter_rspec_design.rb +4 -18
- data/samp/counter/counter_rspec_proto.rb +7 -5
- data/samp/counter/counter_rspec_runner.rake +2 -1
- data/samp/counter/counter_rspec_spec.rb +8 -12
- data/samp/counter/counter_xunit_bench.rb +2 -2
- data/samp/counter/counter_xunit_bench.v +1 -4
- data/samp/counter/counter_xunit_design.rb +4 -18
- data/samp/counter/counter_xunit_proto.rb +7 -5
- data/samp/counter/counter_xunit_runner.rake +2 -1
- data/samp/counter/counter_xunit_spec.rb +8 -14
- data/samp/pipelined_alu/hw5_unit_test_bench.rb +3 -3
- data/samp/pipelined_alu/hw5_unit_test_bench.v +1 -4
- data/samp/pipelined_alu/hw5_unit_test_design.rb +49 -65
- data/samp/pipelined_alu/hw5_unit_test_proto.rb +9 -5
- data/samp/pipelined_alu/hw5_unit_test_runner.rake +2 -1
- data/samp/pipelined_alu/hw5_unit_test_spec.rb +18 -21
- metadata +8 -242
- data/doc/usage.installation.html +0 -9
- data/doc/usage.recommendations.html +0 -3
- data/doc/usage.requirements.html +0 -3
- data/ref/c/annotated.html +0 -35
- data/ref/c/common_8h.html +0 -146
- data/ref/c/doxygen.css +0 -358
- data/ref/c/doxygen.png +0 -0
- data/ref/c/files.html +0 -34
- data/ref/c/functions.html +0 -134
- data/ref/c/functions_vars.html +0 -134
- data/ref/c/globals.html +0 -55
- data/ref/c/globals_0x63.html +0 -86
- data/ref/c/globals_0x65.html +0 -55
- data/ref/c/globals_0x66.html +0 -55
- data/ref/c/globals_0x70.html +0 -71
- data/ref/c/globals_0x72.html +0 -62
- data/ref/c/globals_0x73.html +0 -65
- data/ref/c/globals_0x74.html +0 -55
- data/ref/c/globals_0x76.html +0 -472
- data/ref/c/globals_0x78.html +0 -55
- data/ref/c/globals_defs.html +0 -81
- data/ref/c/globals_defs_0x65.html +0 -50
- data/ref/c/globals_defs_0x70.html +0 -51
- data/ref/c/globals_defs_0x76.html +0 -463
- data/ref/c/globals_defs_0x78.html +0 -50
- data/ref/c/globals_enum.html +0 -39
- data/ref/c/globals_eval.html +0 -40
- data/ref/c/globals_func.html +0 -49
- data/ref/c/globals_type.html +0 -63
- data/ref/c/globals_vars.html +0 -42
- data/ref/c/index.html +0 -20
- data/ref/c/relay_8c.html +0 -214
- data/ref/c/relay_8h.html +0 -129
- data/ref/c/structrelay____RubyOptions____def.html +0 -67
- data/ref/c/structt__cb__data.html +0 -151
- data/ref/c/structt__vpi__delay.html +0 -134
- data/ref/c/structt__vpi__error__info.html +0 -151
- data/ref/c/structt__vpi__strengthval.html +0 -83
- data/ref/c/structt__vpi__systf__data.html +0 -151
- data/ref/c/structt__vpi__time.html +0 -100
- data/ref/c/structt__vpi__value.html +0 -204
- data/ref/c/structt__vpi__vecval.html +0 -66
- data/ref/c/structt__vpi__vlog__info.html +0 -100
- data/ref/c/swig_8c.html +0 -80
- data/ref/c/swig_8h.html +0 -83
- data/ref/c/tab_b.gif +0 -0
- data/ref/c/tab_l.gif +0 -0
- data/ref/c/tab_r.gif +0 -0
- data/ref/c/tabs.css +0 -102
- data/ref/c/verilog_8h.html +0 -117
- data/ref/c/vlog_8c.html +0 -168
- data/ref/c/vlog_8h.html +0 -128
- data/ref/c/vpi__user_8h.html +0 -8739
- data/ref/ruby/classes/ERB.html +0 -158
- data/ref/ruby/classes/ERB.src/M000034.html +0 -29
- data/ref/ruby/classes/FileUtils.html +0 -165
- data/ref/ruby/classes/FileUtils.src/M000089.html +0 -18
- data/ref/ruby/classes/FileUtils.src/M000090.html +0 -18
- data/ref/ruby/classes/Integer.html +0 -398
- data/ref/ruby/classes/Integer.src/M000012.html +0 -25
- data/ref/ruby/classes/Integer.src/M000013.html +0 -18
- data/ref/ruby/classes/Integer.src/M000014.html +0 -18
- data/ref/ruby/classes/Integer.src/M000015.html +0 -18
- data/ref/ruby/classes/Integer.src/M000016.html +0 -18
- data/ref/ruby/classes/Integer.src/M000017.html +0 -18
- data/ref/ruby/classes/Integer.src/M000020.html +0 -22
- data/ref/ruby/classes/Integer.src/M000021.html +0 -22
- data/ref/ruby/classes/Integer.src/M000022.html +0 -25
- data/ref/ruby/classes/Integer.src/M000023.html +0 -31
- 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 -299
- data/ref/ruby/classes/OutputInfo.src/M000030.html +0 -51
- data/ref/ruby/classes/RDoc.html +0 -135
- data/ref/ruby/classes/RDoc.src/M000093.html +0 -40
- data/ref/ruby/classes/RubyVpi/Config.html +0 -148
- data/ref/ruby/classes/RubyVpi.html +0 -186
- data/ref/ruby/classes/RubyVpi.src/M000091.html +0 -50
- data/ref/ruby/classes/RubyVpi.src/M000092.html +0 -20
- data/ref/ruby/classes/SWIG/TYPE_p_unsigned_int.html +0 -407
- data/ref/ruby/classes/SWIG/TYPE_p_unsigned_int.src/M000081.html +0 -18
- data/ref/ruby/classes/SWIG/TYPE_p_unsigned_int.src/M000082.html +0 -18
- data/ref/ruby/classes/SWIG/TYPE_p_unsigned_int.src/M000083.html +0 -22
- data/ref/ruby/classes/SWIG/TYPE_p_unsigned_int.src/M000084.html +0 -44
- data/ref/ruby/classes/SWIG/TYPE_p_unsigned_int.src/M000085.html +0 -82
- data/ref/ruby/classes/SWIG/TYPE_p_unsigned_int.src/M000086.html +0 -127
- data/ref/ruby/classes/SWIG/TYPE_p_unsigned_int.src/M000087.html +0 -26
- data/ref/ruby/classes/SWIG/TYPE_p_unsigned_int.src/M000088.html +0 -18
- data/ref/ruby/classes/SWIG.html +0 -111
- data/ref/ruby/classes/String.html +0 -158
- data/ref/ruby/classes/String.src/M000032.html +0 -41
- data/ref/ruby/classes/String.src/M000033.html +0 -18
- data/ref/ruby/classes/Table.html +0 -191
- data/ref/ruby/classes/Table.src/M000026.html +0 -38
- data/ref/ruby/classes/Table.src/M000027.html +0 -18
- data/ref/ruby/classes/Table.src/M000028.html +0 -18
- data/ref/ruby/classes/Table.src/M000029.html +0 -18
- data/ref/ruby/classes/Template.html +0 -158
- data/ref/ruby/classes/Template.src/M000031.html +0 -18
- data/ref/ruby/classes/VerilogParser/Module/Parameter.html +0 -160
- data/ref/ruby/classes/VerilogParser/Module/Parameter.src/M000011.html +0 -21
- data/ref/ruby/classes/VerilogParser/Module/Port.html +0 -207
- data/ref/ruby/classes/VerilogParser/Module/Port.src/M000007.html +0 -21
- data/ref/ruby/classes/VerilogParser/Module/Port.src/M000008.html +0 -18
- data/ref/ruby/classes/VerilogParser/Module/Port.src/M000009.html +0 -18
- data/ref/ruby/classes/VerilogParser/Module/Port.src/M000010.html +0 -18
- data/ref/ruby/classes/VerilogParser/Module.html +0 -172
- data/ref/ruby/classes/VerilogParser/Module.src/M000006.html +0 -29
- data/ref/ruby/classes/VerilogParser.html +0 -187
- data/ref/ruby/classes/VerilogParser.src/M000005.html +0 -34
- data/ref/ruby/classes/XX/Document.html +0 -295
- data/ref/ruby/classes/XX/Document.src/M000072.html +0 -22
- data/ref/ruby/classes/XX/Document.src/M000073.html +0 -20
- data/ref/ruby/classes/XX/Document.src/M000074.html +0 -20
- data/ref/ruby/classes/XX/Document.src/M000075.html +0 -20
- data/ref/ruby/classes/XX/Document.src/M000076.html +0 -22
- data/ref/ruby/classes/XX/Document.src/M000077.html +0 -21
- data/ref/ruby/classes/XX/Document.src/M000078.html +0 -21
- data/ref/ruby/classes/XX/Document.src/M000079.html +0 -34
- data/ref/ruby/classes/XX/Document.src/M000080.html +0 -98
- data/ref/ruby/classes/XX/HTML4/Strict.html +0 -138
- data/ref/ruby/classes/XX/HTML4/Strict.src/M000038.html +0 -20
- data/ref/ruby/classes/XX/HTML4/Transitional.html +0 -138
- data/ref/ruby/classes/XX/HTML4/Transitional.src/M000037.html +0 -20
- data/ref/ruby/classes/XX/HTML4.html +0 -145
- data/ref/ruby/classes/XX/HTML4.src/M000036.html +0 -20
- data/ref/ruby/classes/XX/Markup/ClassMethods.html +0 -236
- data/ref/ruby/classes/XX/Markup/ClassMethods.src/M000044.html +0 -22
- data/ref/ruby/classes/XX/Markup/ClassMethods.src/M000045.html +0 -20
- data/ref/ruby/classes/XX/Markup/ClassMethods.src/M000046.html +0 -25
- data/ref/ruby/classes/XX/Markup/ClassMethods.src/M000047.html +0 -20
- data/ref/ruby/classes/XX/Markup/ClassMethods.src/M000048.html +0 -27
- data/ref/ruby/classes/XX/Markup/ClassMethods.src/M000049.html +0 -20
- data/ref/ruby/classes/XX/Markup/ClassMethods.src/M000050.html +0 -27
- data/ref/ruby/classes/XX/Markup/ClassMethods.src/M000051.html +0 -22
- data/ref/ruby/classes/XX/Markup/Error.html +0 -111
- data/ref/ruby/classes/XX/Markup/InstanceMethods.html +0 -474
- data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000052.html +0 -56
- data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000053.html +0 -33
- data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000054.html +0 -31
- data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000055.html +0 -48
- data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000056.html +0 -20
- data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000057.html +0 -31
- data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000058.html +0 -32
- data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000059.html +0 -32
- data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000060.html +0 -28
- data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000061.html +0 -23
- data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000062.html +0 -26
- data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000063.html +0 -20
- data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000064.html +0 -20
- data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000065.html +0 -20
- data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000066.html +0 -20
- data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000067.html +0 -20
- data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000068.html +0 -21
- data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000069.html +0 -20
- data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000070.html +0 -20
- data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000071.html +0 -20
- data/ref/ruby/classes/XX/Markup.html +0 -160
- data/ref/ruby/classes/XX/Markup.src/M000043.html +0 -28
- data/ref/ruby/classes/XX/XHTML/Strict.html +0 -138
- data/ref/ruby/classes/XX/XHTML/Strict.src/M000041.html +0 -20
- data/ref/ruby/classes/XX/XHTML/Transitional.html +0 -138
- data/ref/ruby/classes/XX/XHTML/Transitional.src/M000040.html +0 -20
- data/ref/ruby/classes/XX/XHTML.html +0 -145
- data/ref/ruby/classes/XX/XHTML.src/M000039.html +0 -36
- data/ref/ruby/classes/XX/XML.html +0 -138
- data/ref/ruby/classes/XX/XML.src/M000035.html +0 -20
- data/ref/ruby/classes/XX/XMLish.html +0 -138
- data/ref/ruby/classes/XX/XMLish.src/M000042.html +0 -18
- data/ref/ruby/classes/XX.html +0 -138
- data/ref/ruby/created.rid +0 -1
- data/ref/ruby/files/bin/generate_test_rb.html +0 -245
- 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 -39
- data/ref/ruby/files/bin/header_to_ruby_rb.html +0 -125
- data/ref/ruby/files/lib/ruby-vpi/erb_rb.html +0 -108
- data/ref/ruby/files/lib/ruby-vpi/integer_rb.html +0 -101
- data/ref/ruby/files/lib/ruby-vpi/rake_rb.html +0 -108
- data/ref/ruby/files/lib/ruby-vpi/rcov_rb.html +0 -111
- data/ref/ruby/files/lib/ruby-vpi/rdoc_rb.html +0 -108
- data/ref/ruby/files/lib/ruby-vpi/rspec_rb.html +0 -115
- data/ref/ruby/files/lib/ruby-vpi/runner_proxy_rb.html +0 -108
- data/ref/ruby/files/lib/ruby-vpi/runner_rb.html +0 -208
- 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/ref/ruby/files/lib/ruby-vpi/verilog_parser_rb.html +0 -107
- data/ref/ruby/files/lib/ruby-vpi/vpi_rb.html +0 -108
- data/ref/ruby/files/lib/ruby-vpi/xx_rb.html +0 -148
- data/ref/ruby/files/lib/ruby-vpi_rb.html +0 -109
- data/ref/ruby/fr_class_index.html +0 -56
- data/ref/ruby/fr_file_index.html +0 -40
- data/ref/ruby/fr_method_index.html +0 -119
- data/ref/ruby/index.html +0 -24
- data/ref/ruby/rdoc-style.css +0 -208
data/history.part.html
CHANGED
|
@@ -18,6 +18,86 @@ 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 10.0.0 (2006-11-05)</h1>
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
<h2>Summary</h2>
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
<p>This release adds the ability to access a handle’s children and reduces the amount of code produced by the automated test generator.</p>
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
<h2>Acknowledgment</h2>
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
<p>Thanks to Matt Fischler for finding the problem of misdirected compilation errors in Verilog benches.</p>
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
<h2>Notice</h2>
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
<ul>
|
|
40
|
+
<li>The way in which Ruby-VPI and generated tests interact has changed: the design is now a <span class="caps">VPI</span> handle object and the <code>design.rb</code> and <code>proto.rb</code> files define <a href="http://wiki.rubygarden.org/Ruby/page/show/SingletonTutorial">singleton methods</a> for that object.
|
|
41
|
+
<ul>
|
|
42
|
+
<li>I suggest that you regenerate your existing tests (just run <strong>generate_test.rb</strong> again) whilst employing the service of a text merging tool (see the user manual).</li>
|
|
43
|
+
</ul></li>
|
|
44
|
+
</ul>
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
<ul>
|
|
48
|
+
<li>You can now access a handle’s children by simply calling methods on it. In the event that a child handle has the same name as a <span class="caps">VPI</span> property, the child is given priority. However, you can always access <span class="caps">VPI</span> properties explicitly via the <code>get_value</code> and <code>put_value</code> methods.</li>
|
|
49
|
+
</ul>
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
<ul>
|
|
53
|
+
<li><strong>generate_test.rb</strong> no longer accepts the <code>-s</code> and <code>-u</code> options. Use their longer counterparts <code>--rspec</code> and <code>--xunit</code> instead.</li>
|
|
54
|
+
</ul>
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
<h2>Detail</h2>
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
<h3>Automated test generator</h3>
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
<ul>
|
|
64
|
+
<li>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).</li>
|
|
65
|
+
</ul>
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
<ul>
|
|
69
|
+
<li>The user is now notified when a backup of an existing file is made.</li>
|
|
70
|
+
</ul>
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
<ul>
|
|
74
|
+
<li>Generated tests have been greatly simplified to reduce the amount of work for the user.
|
|
75
|
+
<ul>
|
|
76
|
+
<li>The design is now just a handle to the module in the Verilog bench.</li>
|
|
77
|
+
<li><code>include Vpi</code> and <code>@design</code> are no longer generated.</li>
|
|
78
|
+
<li>The tutorial and examples have been updated accordingly.</li>
|
|
79
|
+
</ul></li>
|
|
80
|
+
</ul>
|
|
81
|
+
|
|
82
|
+
|
|
83
|
+
<h3>User manual</h3>
|
|
84
|
+
|
|
85
|
+
|
|
86
|
+
<ul>
|
|
87
|
+
<li>Revised the stylesheet to make disjoint sections readily distinguishable from eachother, through generous spacing and minor coloring.</li>
|
|
88
|
+
</ul>
|
|
89
|
+
|
|
90
|
+
|
|
91
|
+
<ul>
|
|
92
|
+
<li>Added tips about <code>ruby-vpi/runner_proxy</code>, <code>rake -T</code>, and using <strong>kdiff3</strong> with <strong>generate_test.rb</strong>.</li>
|
|
93
|
+
</ul>
|
|
94
|
+
|
|
95
|
+
|
|
96
|
+
<ul>
|
|
97
|
+
<li>Moved installation information into a new “setup” chapter.</li>
|
|
98
|
+
</ul>
|
|
99
|
+
|
|
100
|
+
|
|
21
101
|
<h1>Version 9.0.0 (2006-10-28)</h1>
|
|
22
102
|
|
|
23
103
|
|
|
@@ -27,7 +107,7 @@ We <em>strictly</em> follow the RubyGems project’s <a href="http://www.rub
|
|
|
27
107
|
<p>This release improves the automated test generator and adds new content to the user manual.</p>
|
|
28
108
|
|
|
29
109
|
|
|
30
|
-
<h2>
|
|
110
|
+
<h2>Acknowledgment</h2>
|
|
31
111
|
|
|
32
112
|
|
|
33
113
|
<p>Thanks to Matt Fischler for helping test and debug the installation of Ruby-VPI on Windows.</p>
|
|
@@ -41,7 +121,7 @@ We <em>strictly</em> follow the RubyGems project’s <a href="http://www.rub
|
|
|
41
121
|
</ul>
|
|
42
122
|
|
|
43
123
|
|
|
44
|
-
<h2>
|
|
124
|
+
<h2>Detail</h2>
|
|
45
125
|
|
|
46
126
|
|
|
47
127
|
<ul>
|
|
@@ -93,7 +173,7 @@ We <em>strictly</em> follow the RubyGems project’s <a href="http://www.rub
|
|
|
93
173
|
<p>This release simplifies configuration of generated tests.</p>
|
|
94
174
|
|
|
95
175
|
|
|
96
|
-
<h2>
|
|
176
|
+
<h2>Acknowledgment</h2>
|
|
97
177
|
|
|
98
178
|
|
|
99
179
|
<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>
|
|
@@ -107,7 +187,7 @@ We <em>strictly</em> follow the RubyGems project’s <a href="http://www.rub
|
|
|
107
187
|
</ul>
|
|
108
188
|
|
|
109
189
|
|
|
110
|
-
<h2>
|
|
190
|
+
<h2>Detail</h2>
|
|
111
191
|
|
|
112
192
|
|
|
113
193
|
<ul>
|
|
@@ -134,7 +214,7 @@ We <em>strictly</em> follow the RubyGems project’s <a href="http://www.rub
|
|
|
134
214
|
</ul>
|
|
135
215
|
|
|
136
216
|
|
|
137
|
-
<h2>
|
|
217
|
+
<h2>Detail</h2>
|
|
138
218
|
|
|
139
219
|
|
|
140
220
|
<ul>
|
|
@@ -167,7 +247,7 @@ We <em>strictly</em> follow the RubyGems project’s <a href="http://www.rub
|
|
|
167
247
|
</ul>
|
|
168
248
|
|
|
169
249
|
|
|
170
|
-
<h2>
|
|
250
|
+
<h2>Detail</h2>
|
|
171
251
|
|
|
172
252
|
|
|
173
253
|
<ul>
|
|
@@ -213,13 +293,13 @@ We <em>strictly</em> follow the RubyGems project’s <a href="http://www.rub
|
|
|
213
293
|
<ul>
|
|
214
294
|
<li>Handles now have two new methods:
|
|
215
295
|
<ul>
|
|
216
|
-
<li><code>handle.x?</code
|
|
217
|
-
<li><code>handle.z?</code
|
|
296
|
+
<li><code>handle.x?</code> checks if the logic value is “don’t care” </li>
|
|
297
|
+
<li><code>handle.z?</code> checks if the logic value is high impedance</li>
|
|
218
298
|
</ul></li>
|
|
219
299
|
</ul>
|
|
220
300
|
|
|
221
301
|
|
|
222
|
-
<h2>
|
|
302
|
+
<h2>Detail</h2>
|
|
223
303
|
|
|
224
304
|
|
|
225
305
|
<ul>
|
|
@@ -249,13 +329,13 @@ We <em>strictly</em> follow the RubyGems project’s <a href="http://www.rub
|
|
|
249
329
|
<p>This release adds initial<sup><a href="#fn1">1</a></sup> support for code coverage analysis via the <a href="http://eigenclass.org/hiki.rb?rcov">rcov library</a>.</p>
|
|
250
330
|
|
|
251
331
|
|
|
252
|
-
<h2>
|
|
332
|
+
<h2>Acknowledgment</h2>
|
|
253
333
|
|
|
254
334
|
|
|
255
335
|
<p>Thanks to Mauricio Fernandez for helping me use rcov without its runner.</p>
|
|
256
336
|
|
|
257
337
|
|
|
258
|
-
<h2>
|
|
338
|
+
<h2>Detail</h2>
|
|
259
339
|
|
|
260
340
|
|
|
261
341
|
<ul>
|
|
@@ -283,7 +363,7 @@ We <em>strictly</em> follow the RubyGems project’s <a href="http://www.rub
|
|
|
283
363
|
<p>This release simplifies running of multiple tests, restores compatibility with Synopsys <span class="caps">VCS</span>, and better integrates with RubyGems.</p>
|
|
284
364
|
|
|
285
365
|
|
|
286
|
-
<h2>
|
|
366
|
+
<h2>Detail</h2>
|
|
287
367
|
|
|
288
368
|
|
|
289
369
|
<ul>
|
|
@@ -320,7 +400,7 @@ We <em>strictly</em> follow the RubyGems project’s <a href="http://www.rub
|
|
|
320
400
|
<p>This release distributes Ruby-VPI as a gem, improves portability of generated tests, and fixes a bug.</p>
|
|
321
401
|
|
|
322
402
|
|
|
323
|
-
<h2>
|
|
403
|
+
<h2>Notice</h2>
|
|
324
404
|
|
|
325
405
|
|
|
326
406
|
<ul>
|
|
@@ -328,11 +408,6 @@ We <em>strictly</em> follow the RubyGems project’s <a href="http://www.rub
|
|
|
328
408
|
</ul>
|
|
329
409
|
|
|
330
410
|
|
|
331
|
-
<ul>
|
|
332
|
-
<li>Ruby-VPI is now distributed only as a <a href="http://www.rubygems.org">source gem</a>. You can decompress the gem without installing it onto your system by running the command <code>gem install -i output_directory ruby-vpi-7.0.0.gem</code>. In addition, you can still obtain the source code directly from the Subversion repository.</li>
|
|
333
|
-
</ul>
|
|
334
|
-
|
|
335
|
-
|
|
336
411
|
<ul>
|
|
337
412
|
<li>The test generator’s templates and the examples have been updated as follows:
|
|
338
413
|
<ul>
|
|
@@ -352,6 +427,14 @@ We <em>strictly</em> follow the RubyGems project’s <a href="http://www.rub
|
|
|
352
427
|
</ul>
|
|
353
428
|
|
|
354
429
|
|
|
430
|
+
<h2>Detail</h2>
|
|
431
|
+
|
|
432
|
+
|
|
433
|
+
<ul>
|
|
434
|
+
<li>Ruby-VPI is now distributed only as a <a href="http://www.rubygems.org">source gem</a>. You can decompress the gem without installing it onto your system by running the command <code>gem install -i output_directory ruby-vpi-7.0.0.gem</code>. In addition, you can still obtain the source code directly from the Subversion repository.</li>
|
|
435
|
+
</ul>
|
|
436
|
+
|
|
437
|
+
|
|
355
438
|
<ul>
|
|
356
439
|
<li>The tools in <code>bin/</code> become available in your system’s <code>bin/</code> directory when the gem is installed.
|
|
357
440
|
<ul>
|
|
@@ -384,20 +467,27 @@ We <em>strictly</em> follow the RubyGems project’s <a href="http://www.rub
|
|
|
384
467
|
<p>This release adds support for the <span class="caps">GPL</span> Cver simulator, provides both binary and source packages, and explicitly defines the version numbering system.</p>
|
|
385
468
|
|
|
386
469
|
|
|
387
|
-
<h2>
|
|
470
|
+
<h2>Notice</h2>
|
|
388
471
|
|
|
389
472
|
|
|
390
473
|
<ul>
|
|
391
|
-
<li>
|
|
474
|
+
<li>Ruby-VPI now only needs to be built once.
|
|
475
|
+
<ul>
|
|
476
|
+
<li>You can run tests with different Verilog simulators without having to re-compile Ruby-VPI.</li>
|
|
477
|
+
</ul></li>
|
|
392
478
|
</ul>
|
|
393
479
|
|
|
394
480
|
|
|
481
|
+
<h2>Detail</h2>
|
|
482
|
+
|
|
483
|
+
|
|
395
484
|
<ul>
|
|
396
|
-
<li>
|
|
485
|
+
<li>The <span class="caps">GPL</span> Cver simulator is now supported.</li>
|
|
486
|
+
</ul>
|
|
487
|
+
|
|
488
|
+
|
|
397
489
|
<ul>
|
|
398
|
-
<li>
|
|
399
|
-
<li>Release packages are now available in both source and binary form.</li>
|
|
400
|
-
</ul></li>
|
|
490
|
+
<li>Release packages are now available in both source and binary form.</li>
|
|
401
491
|
</ul>
|
|
402
492
|
|
|
403
493
|
|
|
@@ -492,31 +582,34 @@ We <em>strictly</em> follow the RubyGems project’s <a href="http://www.rub
|
|
|
492
582
|
<p>This release beautifies generated tests, adds checks to find signal width bugs, and includes a new tool.</p>
|
|
493
583
|
|
|
494
584
|
|
|
495
|
-
<h2>
|
|
585
|
+
<h2>Notice</h2>
|
|
496
586
|
|
|
497
587
|
|
|
498
588
|
<ul>
|
|
499
|
-
<li>
|
|
589
|
+
<li><code>put_value()</code> now returns the value it puts. Therefore, it is easier to chain together a series of assignments: <code>foo.intVal = bar.intVal = baz.intVal = 10</code></li>
|
|
500
590
|
</ul>
|
|
501
591
|
|
|
502
592
|
|
|
503
593
|
<ul>
|
|
504
|
-
<li>
|
|
594
|
+
<li><code>put_value()</code> 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.</li>
|
|
505
595
|
</ul>
|
|
506
596
|
|
|
507
597
|
|
|
598
|
+
<h2>Detail</h2>
|
|
599
|
+
|
|
600
|
+
|
|
508
601
|
<ul>
|
|
509
|
-
<li>
|
|
602
|
+
<li>The test generator now uses <span class="caps">ERB</span> templates which ensures nice indentation of generated output.</li>
|
|
510
603
|
</ul>
|
|
511
604
|
|
|
512
605
|
|
|
513
606
|
<ul>
|
|
514
|
-
<li
|
|
607
|
+
<li>The test generator now decouples Ruby-VPI paths from Verilog benches via the <span class="caps">RUBYLIB</span> environment variable.</li>
|
|
515
608
|
</ul>
|
|
516
609
|
|
|
517
610
|
|
|
518
611
|
<ul>
|
|
519
|
-
<li
|
|
612
|
+
<li>A tool which converts Verilog headers into Ruby has been added.</li>
|
|
520
613
|
</ul>
|
|
521
614
|
|
|
522
615
|
|
|
@@ -534,7 +627,7 @@ We <em>strictly</em> follow the RubyGems project’s <a href="http://www.rub
|
|
|
534
627
|
<p>This release simplifies generated tests and fixes a bug.</p>
|
|
535
628
|
|
|
536
629
|
|
|
537
|
-
<h2>
|
|
630
|
+
<h2>Detail</h2>
|
|
538
631
|
|
|
539
632
|
|
|
540
633
|
<ul>
|
|
@@ -560,19 +653,7 @@ We <em>strictly</em> follow the RubyGems project’s <a href="http://www.rub
|
|
|
560
653
|
<p>This release adds support and documentation for rapid prototyping of Verilog designs in Ruby.</p>
|
|
561
654
|
|
|
562
655
|
|
|
563
|
-
<h2>
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
<ul>
|
|
567
|
-
<li>Support for prototyping designs in Ruby, before they are implemented in Verilog, has been added.
|
|
568
|
-
<ul>
|
|
569
|
-
<li>The <em>same</em> specification can be used to verify both prototype <em>and</em> design! :-)</li>
|
|
570
|
-
<li>The tutorial in the user manual has been updated to discuss prototyping.
|
|
571
|
-
<ul>
|
|
572
|
-
<li>Prototypes have been added to the counter example.</li>
|
|
573
|
-
</ul></li>
|
|
574
|
-
</ul></li>
|
|
575
|
-
</ul>
|
|
656
|
+
<h2>Notice</h2>
|
|
576
657
|
|
|
577
658
|
|
|
578
659
|
<ul>
|
|
@@ -590,6 +671,21 @@ We <em>strictly</em> follow the RubyGems project’s <a href="http://www.rub
|
|
|
590
671
|
</ul>
|
|
591
672
|
|
|
592
673
|
|
|
674
|
+
<h2>Detail</h2>
|
|
675
|
+
|
|
676
|
+
|
|
677
|
+
<ul>
|
|
678
|
+
<li>Support for prototyping designs in Ruby, before they are implemented in Verilog, has been added.
|
|
679
|
+
<ul>
|
|
680
|
+
<li>The <em>same</em> specification can be used to verify both prototype <em>and</em> design! :-)</li>
|
|
681
|
+
<li>The tutorial in the user manual has been updated to discuss prototyping.
|
|
682
|
+
<ul>
|
|
683
|
+
<li>Prototypes have been added to the counter example.</li>
|
|
684
|
+
</ul></li>
|
|
685
|
+
</ul></li>
|
|
686
|
+
</ul>
|
|
687
|
+
|
|
688
|
+
|
|
593
689
|
<ul>
|
|
594
690
|
<li>The user manual has been revised for consistency.</li>
|
|
595
691
|
</ul>
|
|
@@ -604,7 +700,7 @@ We <em>strictly</em> follow the RubyGems project’s <a href="http://www.rub
|
|
|
604
700
|
<p>This release fixes unreadable syntax coloring in the user manual.</p>
|
|
605
701
|
|
|
606
702
|
|
|
607
|
-
<h2>
|
|
703
|
+
<h2>Acknowledgment</h2>
|
|
608
704
|
|
|
609
705
|
|
|
610
706
|
<ul>
|
|
@@ -612,7 +708,7 @@ We <em>strictly</em> follow the RubyGems project’s <a href="http://www.rub
|
|
|
612
708
|
</ul>
|
|
613
709
|
|
|
614
710
|
|
|
615
|
-
<h2>
|
|
711
|
+
<h2>Detail</h2>
|
|
616
712
|
|
|
617
713
|
|
|
618
714
|
<ul>
|
|
@@ -634,7 +730,7 @@ We <em>strictly</em> follow the RubyGems project’s <a href="http://www.rub
|
|
|
634
730
|
<p>This release adds a tutorial to the user manual, and improves the tools and examples.</p>
|
|
635
731
|
|
|
636
732
|
|
|
637
|
-
<h2>
|
|
733
|
+
<h2>Acknowledgment</h2>
|
|
638
734
|
|
|
639
735
|
|
|
640
736
|
<ul>
|
|
@@ -642,7 +738,7 @@ We <em>strictly</em> follow the RubyGems project’s <a href="http://www.rub
|
|
|
642
738
|
</ul>
|
|
643
739
|
|
|
644
740
|
|
|
645
|
-
<h2>
|
|
741
|
+
<h2>Detail</h2>
|
|
646
742
|
|
|
647
743
|
|
|
648
744
|
<h3>User manual</h3>
|
|
@@ -703,7 +799,7 @@ We <em>strictly</em> follow the RubyGems project’s <a href="http://www.rub
|
|
|
703
799
|
<p>This release enhances the <span class="caps">VPI</span> utility layer and adds new content to the user manual.</p>
|
|
704
800
|
|
|
705
801
|
|
|
706
|
-
<h2>
|
|
802
|
+
<h2>Acknowledgment</h2>
|
|
707
803
|
|
|
708
804
|
|
|
709
805
|
<ul>
|
|
@@ -711,7 +807,7 @@ We <em>strictly</em> follow the RubyGems project’s <a href="http://www.rub
|
|
|
711
807
|
</ul>
|
|
712
808
|
|
|
713
809
|
|
|
714
|
-
<h2>
|
|
810
|
+
<h2>Notice</h2>
|
|
715
811
|
|
|
716
812
|
|
|
717
813
|
<ul>
|
|
@@ -720,17 +816,20 @@ We <em>strictly</em> follow the RubyGems project’s <a href="http://www.rub
|
|
|
720
816
|
|
|
721
817
|
|
|
722
818
|
<ul>
|
|
723
|
-
<li>The <
|
|
819
|
+
<li>The <code>handle.value</code> and <code>handle.value=</code> methods have been removed.</li>
|
|
724
820
|
</ul>
|
|
725
821
|
|
|
726
822
|
|
|
823
|
+
<h2>Detail</h2>
|
|
824
|
+
|
|
825
|
+
|
|
727
826
|
<ul>
|
|
728
|
-
<li>
|
|
827
|
+
<li>The <span class="caps">VPI</span> utility layer provides access to <span class="caps">VPI</span> properties of handles in a <a href="http://ruby-vpi.rubyforge.org/doc/background.organization.html#organization.vpi">simpler, more powerful way</a>.</li>
|
|
729
828
|
</ul>
|
|
730
829
|
|
|
731
830
|
|
|
732
831
|
<ul>
|
|
733
|
-
<li>
|
|
832
|
+
<li>All <span class="caps">VPI</span> properties, except delay values, are now accessible from a handle.</li>
|
|
734
833
|
</ul>
|
|
735
834
|
|
|
736
835
|
|
|
@@ -757,7 +856,7 @@ We <em>strictly</em> follow the RubyGems project’s <a href="http://www.rub
|
|
|
757
856
|
<p>This release adds a comprehensive user manual, upgrades from make to <a href="http://rake.rubyforge.org">Rake</a>, and improves the test generation tool.</p>
|
|
758
857
|
|
|
759
858
|
|
|
760
|
-
<h2>
|
|
859
|
+
<h2>Acknowledgment</h2>
|
|
761
860
|
|
|
762
861
|
|
|
763
862
|
<ul>
|
|
@@ -765,21 +864,24 @@ We <em>strictly</em> follow the RubyGems project’s <a href="http://www.rub
|
|
|
765
864
|
</ul>
|
|
766
865
|
|
|
767
866
|
|
|
768
|
-
<h2>
|
|
867
|
+
<h2>Notice</h2>
|
|
769
868
|
|
|
770
869
|
|
|
771
870
|
<ul>
|
|
772
|
-
<li>
|
|
871
|
+
<li>Rake has replaced the role of <strong>make</strong>. All makefiles have been converted accordingly.</li>
|
|
773
872
|
</ul>
|
|
774
873
|
|
|
775
874
|
|
|
776
875
|
<ul>
|
|
777
|
-
<li>
|
|
876
|
+
<li>The test generation tool now generates multiple files (runner, bench, design, spec) and makes backups of existing files. See its help information for details.</li>
|
|
778
877
|
</ul>
|
|
779
878
|
|
|
780
879
|
|
|
880
|
+
<h2>Detail</h2>
|
|
881
|
+
|
|
882
|
+
|
|
781
883
|
<ul>
|
|
782
|
-
<li>
|
|
884
|
+
<li>A comprehensive user manual, written in DocBook-XML, has been added.</li>
|
|
783
885
|
</ul>
|
|
784
886
|
|
|
785
887
|
|
|
@@ -809,7 +911,7 @@ We <em>strictly</em> follow the RubyGems project’s <a href="http://www.rub
|
|
|
809
911
|
<p>This release adds a tool which generates test benches, and adds support for <a href="http://behaviour-driven.org">Behavior Driven Development</a> via the <a href="http://rspec.rubyforge.org">RSpec</a> library.</p>
|
|
810
912
|
|
|
811
913
|
|
|
812
|
-
<h2>
|
|
914
|
+
<h2>Acknowledgment</h2>
|
|
813
915
|
|
|
814
916
|
|
|
815
917
|
<ul>
|
|
@@ -817,7 +919,7 @@ We <em>strictly</em> follow the RubyGems project’s <a href="http://www.rub
|
|
|
817
919
|
</ul>
|
|
818
920
|
|
|
819
921
|
|
|
820
|
-
<h2>
|
|
922
|
+
<h2>Detail</h2>
|
|
821
923
|
|
|
822
924
|
|
|
823
925
|
<ul>
|
|
@@ -853,7 +955,15 @@ We <em>strictly</em> follow the RubyGems project’s <a href="http://www.rub
|
|
|
853
955
|
<p>This release adds simple ways of reading and writing values to <span class="caps">VPI</span> handles, adds documentation for the <span class="caps">VPI</span> utility layer, and fixes the pipelined <span class="caps">ALU</span> example.</p>
|
|
854
956
|
|
|
855
957
|
|
|
856
|
-
<h2>
|
|
958
|
+
<h2>Notice</h2>
|
|
959
|
+
|
|
960
|
+
|
|
961
|
+
<ul>
|
|
962
|
+
<li>The <strong>msim</strong> Makefile target for Mentor Modelsim has been renamed back to <strong>vsim</strong>.</li>
|
|
963
|
+
</ul>
|
|
964
|
+
|
|
965
|
+
|
|
966
|
+
<h2>Detail</h2>
|
|
857
967
|
|
|
858
968
|
|
|
859
969
|
<ul>
|
|
@@ -899,7 +1009,7 @@ We <em>strictly</em> follow the RubyGems project’s <a href="http://www.rub
|
|
|
899
1009
|
<p>This release adds support for the <em>entire</em> <a href="http://ieeexplore.ieee.org/xpl/standardstoc.jsp?isnumber=33945"><span class="caps">IEEE</span> Std. 1364-2005</a> VPI interface, and updates the examples into unit tests.</p>
|
|
900
1010
|
|
|
901
1011
|
|
|
902
|
-
<h2>
|
|
1012
|
+
<h2>Acknowledgment</h2>
|
|
903
1013
|
|
|
904
1014
|
|
|
905
1015
|
<ul>
|
|
@@ -907,7 +1017,15 @@ We <em>strictly</em> follow the RubyGems project’s <a href="http://www.rub
|
|
|
907
1017
|
</ul>
|
|
908
1018
|
|
|
909
1019
|
|
|
910
|
-
<h2>
|
|
1020
|
+
<h2>Notice</h2>
|
|
1021
|
+
|
|
1022
|
+
|
|
1023
|
+
<ul>
|
|
1024
|
+
<li>The <strong>vsim</strong> Makefile target for Mentor Modelsim has been renamed to <strong>msim</strong>.</li>
|
|
1025
|
+
</ul>
|
|
1026
|
+
|
|
1027
|
+
|
|
1028
|
+
<h2>Detail</h2>
|
|
911
1029
|
|
|
912
1030
|
|
|
913
1031
|
<ul>
|
|
@@ -936,10 +1054,7 @@ We <em>strictly</em> follow the RubyGems project’s <a href="http://www.rub
|
|
|
936
1054
|
|
|
937
1055
|
|
|
938
1056
|
<ul>
|
|
939
|
-
<li>The makefiles for the examples have been simplified through the use of a common template
|
|
940
|
-
<ul>
|
|
941
|
-
<li>The <strong>vsim</strong> target for Mentor Modelsim has been renamed to <strong>msim</strong>.</li>
|
|
942
|
-
</ul></li>
|
|
1057
|
+
<li>The makefiles for the examples have been simplified through the use of a common template.</li>
|
|
943
1058
|
</ul>
|
|
944
1059
|
|
|
945
1060
|
|
|
@@ -961,7 +1076,7 @@ We <em>strictly</em> follow the RubyGems project’s <a href="http://www.rub
|
|
|
961
1076
|
<p>This release fixes major bugs, adds support for Mentor Modelsim, and removes the <code>$ruby_task</code> callback.</p>
|
|
962
1077
|
|
|
963
1078
|
|
|
964
|
-
<h2>
|
|
1079
|
+
<h2>Acknowledgment</h2>
|
|
965
1080
|
|
|
966
1081
|
|
|
967
1082
|
<ul>
|
|
@@ -969,7 +1084,15 @@ We <em>strictly</em> follow the RubyGems project’s <a href="http://www.rub
|
|
|
969
1084
|
</ul>
|
|
970
1085
|
|
|
971
1086
|
|
|
972
|
-
<h2>
|
|
1087
|
+
<h2>Notice</h2>
|
|
1088
|
+
|
|
1089
|
+
|
|
1090
|
+
<ul>
|
|
1091
|
+
<li>Removed <code>$ruby_task</code> callback and ability to dynamically register system tasks from Ruby because inter-process communication is complicated at present.</li>
|
|
1092
|
+
</ul>
|
|
1093
|
+
|
|
1094
|
+
|
|
1095
|
+
<h2>Detail</h2>
|
|
973
1096
|
|
|
974
1097
|
|
|
975
1098
|
<ul>
|
|
@@ -982,11 +1105,6 @@ We <em>strictly</em> follow the RubyGems project’s <a href="http://www.rub
|
|
|
982
1105
|
</ul>
|
|
983
1106
|
|
|
984
1107
|
|
|
985
|
-
<ul>
|
|
986
|
-
<li>Removed <code>$ruby_task</code> callback and ability to dynamically register system tasks from Ruby because inter-process communication is complicated at present.</li>
|
|
987
|
-
</ul>
|
|
988
|
-
|
|
989
|
-
|
|
990
1108
|
<ul>
|
|
991
1109
|
<li>Added piplelined <span class="caps">ALU</span> example.</li>
|
|
992
1110
|
</ul>
|
|
@@ -1016,7 +1134,7 @@ This release adds enough Verilog <span class="caps">VPI</span> functionality to
|
|
|
1016
1134
|
</ul>
|
|
1017
1135
|
|
|
1018
1136
|
|
|
1019
|
-
<h2>
|
|
1137
|
+
<h2>Acknowledgment</h2>
|
|
1020
1138
|
|
|
1021
1139
|
|
|
1022
1140
|
<ul>
|
|
@@ -1029,7 +1147,7 @@ This release adds enough Verilog <span class="caps">VPI</span> functionality to
|
|
|
1029
1147
|
</ul>
|
|
1030
1148
|
|
|
1031
1149
|
|
|
1032
|
-
<h2>
|
|
1150
|
+
<h2>Detail</h2>
|
|
1033
1151
|
|
|
1034
1152
|
|
|
1035
1153
|
<ul>
|
|
@@ -1089,7 +1207,7 @@ This release adds enough Verilog <span class="caps">VPI</span> functionality to
|
|
|
1089
1207
|
<p>This is Kazuhiro <span class="caps">HIWADA</span>’s initial testing release of Ruby-VPI. See its <a href="http://www.ruby-talk.org/cgi-bin/scat.rb/ruby/ruby-list/18193">original announcement</a> and <a href="http://easter.kuee.kyoto-u.ac.jp/~hiwada/ruby/memo/src/ruby-vpi-test.tgz">source code</a>.</p>
|
|
1090
1208
|
|
|
1091
1209
|
|
|
1092
|
-
<h2>
|
|
1210
|
+
<h2>Detail</h2>
|
|
1093
1211
|
|
|
1094
1212
|
|
|
1095
1213
|
<ul>
|
data/lib/ruby-vpi/vpi.rb
CHANGED
|
@@ -185,10 +185,22 @@ module SWIG
|
|
|
185
185
|
QUERY_REGEXP = %r{\?$}
|
|
186
186
|
PREFIX_REGEXP = %r{^(.*?)_}
|
|
187
187
|
|
|
188
|
-
# Enables
|
|
188
|
+
# Enables access to (1) child handles and (2) VPI properties of this handle. In the case that a child handle has the same name as a VPI property, the child handle will be accessed instead of the VPI property. However, you can still access the VPI property via #get_value and #put_value.
|
|
189
189
|
def method_missing aMsg, *aArgs, &aBlockArg
|
|
190
190
|
methName = aMsg.to_s
|
|
191
191
|
|
|
192
|
+
# give access to a child handle if possible
|
|
193
|
+
if child = vpi_handle_by_name(methName, self)
|
|
194
|
+
# cache the child for future accesses, in order to cut down number of calls to method_missing
|
|
195
|
+
(class << self; self; end).class_eval do
|
|
196
|
+
define_method aMsg do
|
|
197
|
+
child
|
|
198
|
+
end
|
|
199
|
+
end
|
|
200
|
+
|
|
201
|
+
return child
|
|
202
|
+
end
|
|
203
|
+
|
|
192
204
|
# determine if property is being written
|
|
193
205
|
if isAssign = methName =~ ASSIGN_REGEXP
|
|
194
206
|
methName.sub! ASSIGN_REGEXP, ''
|
data/lib/ruby-vpi.rb
CHANGED
|
@@ -21,9 +21,16 @@
|
|
|
21
21
|
# Provides configuration information of the Ruby-VPI project.
|
|
22
22
|
module RubyVpi
|
|
23
23
|
# Initializes the current bench using the given parameters.
|
|
24
|
-
def RubyVpi.init_bench aTestPrefix,
|
|
25
|
-
|
|
26
|
-
|
|
24
|
+
def RubyVpi.init_bench aTestPrefix, aDesignClassId
|
|
25
|
+
# set up the VPI utility layer
|
|
26
|
+
require 'ruby-vpi/vpi'
|
|
27
|
+
|
|
28
|
+
Object.class_eval do
|
|
29
|
+
include Vpi
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
# service the $ruby_init() callback
|
|
33
|
+
relay_verilog
|
|
27
34
|
|
|
28
35
|
# set up code coverage analysis
|
|
29
36
|
unless (ENV['COVERAGE'] || '').empty?
|
|
@@ -38,20 +45,24 @@ module RubyVpi
|
|
|
38
45
|
end
|
|
39
46
|
|
|
40
47
|
# load the design under test
|
|
48
|
+
unless design = vpi_handle_by_name("#{aTestPrefix}_bench", nil)
|
|
49
|
+
raise "Verilog bench for test #{aTestPrefix.inspect} is inaccessible."
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
Kernel.const_set(aDesignClassId, design)
|
|
41
53
|
require "#{aTestPrefix}_design.rb"
|
|
42
54
|
|
|
55
|
+
# load the design's prototype
|
|
43
56
|
unless (ENV['PROTOTYPE'] || '').empty?
|
|
44
57
|
require "#{aTestPrefix}_proto.rb"
|
|
45
58
|
|
|
46
|
-
proto = Kernel.const_get(aProtoClassId).new
|
|
47
|
-
|
|
48
59
|
Vpi.class_eval do
|
|
49
60
|
define_method :relay_verilog do
|
|
50
|
-
|
|
61
|
+
design.simulate!
|
|
51
62
|
end
|
|
52
63
|
end
|
|
53
64
|
|
|
54
|
-
puts "#{
|
|
65
|
+
puts "#{Config::PROJECT_NAME}: prototype has been enabled for test #{aTestPrefix.inspect}"
|
|
55
66
|
end
|
|
56
67
|
|
|
57
68
|
require "#{aTestPrefix}_spec.rb"
|