ruby-vpi 11.0.0 → 11.1.0
Sign up to get free protection for your applications and to get access to all the features.
- data/HEADER +15 -14
- data/HISTORY +36 -1
- data/MEMO +17 -14
- data/README +2 -19
- data/Rakefile +1 -2
- data/bin/generate_test.rb +4 -4
- data/bin/generate_test_tpl/bench.rb +1 -0
- data/bin/generate_test_tpl/bench.v +1 -1
- data/bin/header_to_ruby.rb +2 -2
- data/doc/background.organization.html +1 -1
- data/doc/hacking.html +3 -0
- data/doc/hacking.release-packages.html +7 -0
- data/doc/index.html +2 -2
- data/doc/manual.txt +69 -13
- 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.installation.html +1 -1
- data/doc/src/manual.xml +130 -20
- data/doc/usage.examples.html +1 -1
- data/doc/usage.tutorial.html +1 -1
- data/header.html +15 -14
- data/header.part.html +15 -14
- data/history.html +88 -15
- data/history.part.html +73 -1
- data/lib/ruby-vpi.rb +5 -5
- data/lib/ruby-vpi/verilog_parser.rb +1 -1
- data/lib/ruby-vpi/vpi.rb +184 -169
- data/memo.html +44 -38
- data/memo.part.html +29 -24
- data/readme.html +17 -47
- data/readme.part.html +2 -33
- data/ref/c/annotated.html +40 -0
- data/ref/c/common_8h.html +146 -0
- data/ref/c/doxygen.css +358 -0
- data/ref/c/doxygen.png +0 -0
- data/ref/c/files.html +36 -0
- data/ref/c/functions.html +154 -0
- data/ref/c/functions_vars.html +154 -0
- data/ref/c/globals.html +261 -0
- data/ref/c/globals_0x62.html +62 -0
- data/ref/c/globals_0x63.html +103 -0
- data/ref/c/globals_0x65.html +62 -0
- data/ref/c/globals_0x66.html +72 -0
- data/ref/c/globals_0x67.html +64 -0
- data/ref/c/globals_0x69.html +62 -0
- data/ref/c/globals_0x6c.html +64 -0
- data/ref/c/globals_0x6d.html +62 -0
- data/ref/c/globals_0x6e.html +63 -0
- data/ref/c/globals_0x70.html +78 -0
- data/ref/c/globals_0x72.html +73 -0
- data/ref/c/globals_0x73.html +251 -0
- data/ref/c/globals_0x74.html +62 -0
- data/ref/c/globals_0x75.html +63 -0
- data/ref/c/globals_0x76.html +483 -0
- data/ref/c/globals_0x78.html +62 -0
- data/ref/c/globals_defs.html +86 -0
- data/ref/c/globals_defs_0x65.html +55 -0
- data/ref/c/globals_defs_0x6c.html +57 -0
- data/ref/c/globals_defs_0x6e.html +56 -0
- data/ref/c/globals_defs_0x70.html +56 -0
- data/ref/c/globals_defs_0x72.html +57 -0
- data/ref/c/globals_defs_0x73.html +164 -0
- data/ref/c/globals_defs_0x75.html +56 -0
- data/ref/c/globals_defs_0x76.html +470 -0
- data/ref/c/globals_defs_0x78.html +55 -0
- data/ref/c/globals_enum.html +39 -0
- data/ref/c/globals_eval.html +40 -0
- data/ref/c/globals_func.html +208 -0
- data/ref/c/globals_func_0x66.html +62 -0
- data/ref/c/globals_func_0x67.html +55 -0
- data/ref/c/globals_func_0x69.html +53 -0
- data/ref/c/globals_func_0x70.html +53 -0
- data/ref/c/globals_func_0x72.html +57 -0
- data/ref/c/globals_func_0x73.html +114 -0
- data/ref/c/globals_func_0x76.html +57 -0
- data/ref/c/globals_type.html +66 -0
- data/ref/c/globals_vars.html +126 -0
- data/ref/c/index.html +20 -0
- data/ref/c/relay_8c.html +214 -0
- data/ref/c/relay_8h.html +129 -0
- data/ref/c/structrelay____RubyOptions____def.html +67 -0
- data/ref/c/structswig__cast__info.html +98 -0
- data/ref/c/structswig__class.html +115 -0
- data/ref/c/structswig__module__info.html +132 -0
- data/ref/c/structswig__type__info.html +132 -0
- data/ref/c/structt__cb__data.html +168 -0
- data/ref/c/structt__vpi__delay.html +151 -0
- data/ref/c/structt__vpi__error__info.html +219 -0
- data/ref/c/structt__vpi__strengthval.html +83 -0
- data/ref/c/structt__vpi__systf__data.html +185 -0
- data/ref/c/structt__vpi__time.html +100 -0
- data/ref/c/structt__vpi__value.html +314 -0
- data/ref/c/structt__vpi__vecval.html +66 -0
- data/ref/c/structt__vpi__vlog__info.html +151 -0
- data/ref/c/swig_8c.html +80 -0
- data/ref/c/swig_8h.html +83 -0
- data/ref/c/swig__vpi_8h.html +8739 -0
- data/ref/c/swig__wrap_8cin.html +11556 -0
- 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 +102 -0
- data/ref/c/unions__vpi__value__value.html +166 -0
- data/ref/c/verilog_8h.html +117 -0
- data/ref/c/vlog_8c.html +168 -0
- data/ref/c/vlog_8h.html +128 -0
- data/ref/c/vpi__user_8h.html +8739 -0
- data/ref/ruby/classes/ERB.html +158 -0
- data/ref/ruby/classes/ERB.src/M000034.html +29 -0
- data/ref/ruby/classes/FileUtils.html +165 -0
- data/ref/ruby/classes/FileUtils.src/M000081.html +18 -0
- data/ref/ruby/classes/FileUtils.src/M000082.html +18 -0
- data/ref/ruby/classes/Integer.html +398 -0
- data/ref/ruby/classes/Integer.src/M000012.html +25 -0
- data/ref/ruby/classes/Integer.src/M000013.html +18 -0
- data/ref/ruby/classes/Integer.src/M000014.html +18 -0
- data/ref/ruby/classes/Integer.src/M000015.html +18 -0
- data/ref/ruby/classes/Integer.src/M000016.html +18 -0
- data/ref/ruby/classes/Integer.src/M000017.html +18 -0
- data/ref/ruby/classes/Integer.src/M000020.html +22 -0
- data/ref/ruby/classes/Integer.src/M000021.html +22 -0
- data/ref/ruby/classes/Integer.src/M000022.html +25 -0
- data/ref/ruby/classes/Integer.src/M000023.html +31 -0
- data/ref/ruby/classes/Integer.src/M000024.html +25 -0
- data/ref/ruby/classes/Integer.src/M000025.html +30 -0
- data/ref/ruby/classes/OutputInfo.html +294 -0
- data/ref/ruby/classes/OutputInfo.src/M000030.html +50 -0
- data/ref/ruby/classes/RDoc.html +135 -0
- data/ref/ruby/classes/RDoc.src/M000095.html +40 -0
- data/ref/ruby/classes/RubyVpi.html +206 -0
- data/ref/ruby/classes/RubyVpi.src/M000083.html +78 -0
- data/ref/ruby/classes/RubyVpi.src/M000084.html +20 -0
- data/ref/ruby/classes/RubyVpi/Config.html +159 -0
- data/ref/ruby/classes/String.html +159 -0
- data/ref/ruby/classes/String.src/M000032.html +41 -0
- data/ref/ruby/classes/String.src/M000033.html +18 -0
- data/ref/ruby/classes/Table.html +191 -0
- data/ref/ruby/classes/Table.src/M000026.html +38 -0
- data/ref/ruby/classes/Table.src/M000027.html +18 -0
- data/ref/ruby/classes/Table.src/M000028.html +18 -0
- data/ref/ruby/classes/Table.src/M000029.html +18 -0
- data/ref/ruby/classes/Template.html +158 -0
- data/ref/ruby/classes/Template.src/M000031.html +18 -0
- data/ref/ruby/classes/VerilogParser.html +187 -0
- data/ref/ruby/classes/VerilogParser.src/M000005.html +34 -0
- data/ref/ruby/classes/VerilogParser/Module.html +172 -0
- data/ref/ruby/classes/VerilogParser/Module.src/M000006.html +29 -0
- data/ref/ruby/classes/VerilogParser/Module/Parameter.html +160 -0
- data/ref/ruby/classes/VerilogParser/Module/Parameter.src/M000011.html +21 -0
- data/ref/ruby/classes/VerilogParser/Module/Port.html +207 -0
- data/ref/ruby/classes/VerilogParser/Module/Port.src/M000007.html +21 -0
- data/ref/ruby/classes/VerilogParser/Module/Port.src/M000008.html +18 -0
- data/ref/ruby/classes/VerilogParser/Module/Port.src/M000009.html +18 -0
- data/ref/ruby/classes/VerilogParser/Module/Port.src/M000010.html +18 -0
- data/ref/ruby/classes/Vpi.html +124 -0
- data/ref/ruby/classes/Vpi/Handle.html +383 -0
- data/ref/ruby/classes/Vpi/Handle.src/M000085.html +18 -0
- data/ref/ruby/classes/Vpi/Handle.src/M000086.html +18 -0
- data/ref/ruby/classes/Vpi/Handle.src/M000087.html +22 -0
- data/ref/ruby/classes/Vpi/Handle.src/M000088.html +44 -0
- data/ref/ruby/classes/Vpi/Handle.src/M000089.html +87 -0
- data/ref/ruby/classes/Vpi/Handle.src/M000090.html +30 -0
- data/ref/ruby/classes/Vpi/Handle.src/M000091.html +24 -0
- data/ref/ruby/classes/Vpi/Handle.src/M000093.html +68 -0
- data/ref/ruby/classes/Vpi/Handle/Property.html +130 -0
- data/ref/ruby/classes/Vpi/Handle/Property.src/M000094.html +80 -0
- data/ref/ruby/classes/XX.html +138 -0
- data/ref/ruby/classes/XX/Document.html +295 -0
- data/ref/ruby/classes/XX/Document.src/M000072.html +22 -0
- data/ref/ruby/classes/XX/Document.src/M000073.html +20 -0
- data/ref/ruby/classes/XX/Document.src/M000074.html +20 -0
- data/ref/ruby/classes/XX/Document.src/M000075.html +20 -0
- data/ref/ruby/classes/XX/Document.src/M000076.html +22 -0
- data/ref/ruby/classes/XX/Document.src/M000077.html +21 -0
- data/ref/ruby/classes/XX/Document.src/M000078.html +21 -0
- data/ref/ruby/classes/XX/Document.src/M000079.html +34 -0
- data/ref/ruby/classes/XX/Document.src/M000080.html +98 -0
- data/ref/ruby/classes/XX/HTML4.html +145 -0
- data/ref/ruby/classes/XX/HTML4.src/M000036.html +20 -0
- data/ref/ruby/classes/XX/HTML4/Strict.html +138 -0
- data/ref/ruby/classes/XX/HTML4/Strict.src/M000038.html +20 -0
- data/ref/ruby/classes/XX/HTML4/Transitional.html +138 -0
- data/ref/ruby/classes/XX/HTML4/Transitional.src/M000037.html +20 -0
- data/ref/ruby/classes/XX/Markup.html +160 -0
- data/ref/ruby/classes/XX/Markup.src/M000043.html +28 -0
- data/ref/ruby/classes/XX/Markup/ClassMethods.html +236 -0
- data/ref/ruby/classes/XX/Markup/ClassMethods.src/M000044.html +22 -0
- data/ref/ruby/classes/XX/Markup/ClassMethods.src/M000045.html +20 -0
- data/ref/ruby/classes/XX/Markup/ClassMethods.src/M000046.html +25 -0
- data/ref/ruby/classes/XX/Markup/ClassMethods.src/M000047.html +20 -0
- data/ref/ruby/classes/XX/Markup/ClassMethods.src/M000048.html +27 -0
- data/ref/ruby/classes/XX/Markup/ClassMethods.src/M000049.html +20 -0
- data/ref/ruby/classes/XX/Markup/ClassMethods.src/M000050.html +27 -0
- data/ref/ruby/classes/XX/Markup/ClassMethods.src/M000051.html +22 -0
- data/ref/ruby/classes/XX/Markup/Error.html +111 -0
- data/ref/ruby/classes/XX/Markup/InstanceMethods.html +474 -0
- data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000052.html +56 -0
- data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000053.html +33 -0
- data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000054.html +31 -0
- data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000055.html +48 -0
- data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000056.html +20 -0
- data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000057.html +31 -0
- data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000058.html +32 -0
- data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000059.html +32 -0
- data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000060.html +28 -0
- data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000061.html +23 -0
- data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000062.html +26 -0
- data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000063.html +20 -0
- data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000064.html +20 -0
- data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000065.html +20 -0
- data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000066.html +20 -0
- data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000067.html +20 -0
- data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000068.html +21 -0
- data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000069.html +20 -0
- data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000070.html +20 -0
- data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000071.html +20 -0
- data/ref/ruby/classes/XX/XHTML.html +145 -0
- data/ref/ruby/classes/XX/XHTML.src/M000039.html +36 -0
- data/ref/ruby/classes/XX/XHTML/Strict.html +138 -0
- data/ref/ruby/classes/XX/XHTML/Strict.src/M000041.html +20 -0
- data/ref/ruby/classes/XX/XHTML/Transitional.html +138 -0
- data/ref/ruby/classes/XX/XHTML/Transitional.src/M000040.html +20 -0
- data/ref/ruby/classes/XX/XML.html +138 -0
- data/ref/ruby/classes/XX/XML.src/M000035.html +20 -0
- data/ref/ruby/classes/XX/XMLish.html +138 -0
- data/ref/ruby/classes/XX/XMLish.src/M000042.html +18 -0
- data/ref/ruby/created.rid +1 -0
- data/ref/ruby/files/bin/generate_test_rb.html +248 -0
- data/ref/ruby/files/bin/generate_test_rb.src/M000001.html +18 -0
- data/ref/ruby/files/bin/generate_test_rb.src/M000002.html +40 -0
- data/ref/ruby/files/bin/header_to_ruby_rb.html +124 -0
- data/ref/ruby/files/lib/ruby-vpi/erb_rb.html +108 -0
- data/ref/ruby/files/lib/ruby-vpi/integer_rb.html +101 -0
- data/ref/ruby/files/lib/ruby-vpi/rake_rb.html +108 -0
- data/ref/ruby/files/lib/ruby-vpi/rcov_rb.html +111 -0
- data/ref/ruby/files/lib/ruby-vpi/rdoc_rb.html +108 -0
- data/ref/ruby/files/lib/ruby-vpi/rspec_rb.html +115 -0
- data/ref/ruby/files/lib/ruby-vpi/runner_proxy_rb.html +108 -0
- data/ref/ruby/files/lib/ruby-vpi/runner_rb.html +208 -0
- data/ref/ruby/files/lib/ruby-vpi/runner_rb.src/M000003.html +24 -0
- 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 +107 -0
- data/ref/ruby/files/lib/ruby-vpi/vpi_rb.html +108 -0
- data/ref/ruby/files/lib/ruby-vpi/xx_rb.html +148 -0
- data/ref/ruby/files/lib/ruby-vpi_rb.html +111 -0
- data/ref/ruby/fr_class_index.html +57 -0
- data/ref/ruby/fr_file_index.html +40 -0
- data/ref/ruby/fr_method_index.html +121 -0
- data/ref/ruby/index.html +24 -0
- data/ref/ruby/rdoc-style.css +208 -0
- data/samp/counter/counter_rspec_bench.rb +1 -0
- data/samp/counter/counter_rspec_bench.v +1 -1
- data/samp/counter/counter_xunit_bench.rb +1 -0
- data/samp/counter/counter_xunit_bench.v +1 -1
- data/samp/pipelined_alu/hw5_unit_test_bench.rb +1 -0
- data/samp/pipelined_alu/hw5_unit_test_bench.v +1 -1
- data/samp/pipelined_alu/int_gen.rb +6 -7
- metadata +269 -2
data/doc/problems.html
CHANGED
@@ -1,3 +1,3 @@
|
|
1
1
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
2
2
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
3
|
-
<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter
|
3
|
+
<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 6. Known problems</title><link rel="stylesheet" href="styles/manual.css" type="text/css" /><meta name="generator" content="DocBook XSL Stylesheets V1.68.1" /><link rel="start" href="index.html" title="Ruby-VPI user manual" /><link rel="up" href="index.html" title="Ruby-VPI user manual" /><link rel="prev" href="hacking.release-packages.html" title="Building release packages" /><link rel="next" href="problems.ruby.html" title="Ruby" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 6. Known problems</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="hacking.release-packages.html"><img src="images/prev.png" alt="Prev" /></a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="problems.ruby.html"><img src="images/next.png" alt="Next" /></a></td></tr></table><hr /></div><div class="chapter" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title"><a id="problems"></a>Chapter 6. Known problems</h2></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="section"><a href="problems.ruby.html">Ruby</a></span></dt><dd><dl><dt><span class="section"><a href="problems.ruby.html#problems.ruby.SystemStackError">SystemStackError</a></span></dt><dt><span class="section"><a href="problems.ruby.html#problems.ruby.xUnit">test/unit</a></span></dt></dl></dd><dt><span class="section"><a href="problem.ivl.html">Icarus Verilog</a></span></dt><dd><dl><dt><span class="section"><a href="problem.ivl.html#problems.ivl.vpi_handle_by_name">vpi_handle_by_name</a></span></dt><dt><span class="section"><a href="problem.ivl.html#problems.ivl.vpi_reset">Vpi::reset</a></span></dt></dl></dd><dt><span class="section"><a href="problems.vsim.html">Mentor Modelsim</a></span></dt><dd><dl><dt><span class="section"><a href="problems.vsim.html#problems.vsim.ruby_run">ruby_run()</a></span></dt></dl></dd></dl></div><p>This chapter presents known problems and possible solutions. In addition, previously solved problems have been retained for historical reference.</p></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="hacking.release-packages.html"><img src="images/prev.png" alt="Prev" /></a> </td><td width="20%" align="center"> </td><td width="40%" align="right"> <a accesskey="n" href="problems.ruby.html"><img src="images/next.png" alt="Next" /></a></td></tr><tr><td width="40%" align="left" valign="top">Building release packages </td><td width="20%" align="center"><a accesskey="h" href="index.html"><img src="images/home.png" alt="Home" /></a></td><td width="40%" align="right" valign="top"> Ruby</td></tr></table></div></body></html>
|
data/doc/problems.ruby.html
CHANGED
@@ -1,3 +1,3 @@
|
|
1
1
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
2
2
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
3
|
-
<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Ruby</title><link rel="stylesheet" href="styles/manual.css" type="text/css" /><meta name="generator" content="DocBook XSL Stylesheets V1.68.1" /><link rel="start" href="index.html" title="Ruby-VPI user manual" /><link rel="up" href="problems.html" title="Chapter
|
3
|
+
<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Ruby</title><link rel="stylesheet" href="styles/manual.css" type="text/css" /><meta name="generator" content="DocBook XSL Stylesheets V1.68.1" /><link rel="start" href="index.html" title="Ruby-VPI user manual" /><link rel="up" href="problems.html" title="Chapter 6. Known problems" /><link rel="prev" href="problems.html" title="Chapter 6. Known problems" /><link rel="next" href="problem.ivl.html" title="Icarus Verilog" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Ruby</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="problems.html"><img src="images/prev.png" alt="Prev" /></a> </td><th width="60%" align="center">Chapter 6. Known problems</th><td width="20%" align="right"> <a accesskey="n" href="problem.ivl.html"><img src="images/next.png" alt="Next" /></a></td></tr></table><hr /></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="problems.ruby"></a>Ruby</h2></div></div></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="problems.ruby.SystemStackError"></a>SystemStackError</h3></div></div></div><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Note: Problem solved"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="images/note.png" /></td><th align="left">Problem solved</th></tr><tr><td align="left" valign="top"><p>This problem was fixed in release 2.0.0 (2006-04-17). If it still occurs, then <a href="introduction.resources.html" title="Resources">please report it</a>.</p></td></tr></table></div><p>If a “<span class="quote">stack level too deep (SystemStackError)</span>” error occurs during the simulation, then increase the system-resource limit for stack-size by running the command <span><strong class="command">ulimit <code class="option">-s</code> <em class="replaceable"><code>unlimited</code></em></strong></span> before starting the simulation.</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="problems.ruby.xUnit"></a>test/unit</h3></div></div></div><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Note: Problem solved"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="images/note.png" /></td><th align="left">Problem solved</th></tr><tr><td align="left" valign="top"><p>This problem was fixed in release 2.0.0 (2006-04-17). If it still occurs, then <a href="introduction.resources.html" title="Resources">please report it</a>.</p></td></tr></table></div><p>If your specification employs Ruby's unit testing framework, then you will encounter the error: “<span class="quote">[BUG] cross-thread violation on rb_gc()</span>”.</p></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="problems.html"><img src="images/prev.png" alt="Prev" /></a> </td><td width="20%" align="center"><a accesskey="u" href="problems.html"><img src="images/up.png" alt="Up" /></a></td><td width="40%" align="right"> <a accesskey="n" href="problem.ivl.html"><img src="images/next.png" alt="Next" /></a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 6. Known problems </td><td width="20%" align="center"><a accesskey="h" href="index.html"><img src="images/home.png" alt="Home" /></a></td><td width="40%" align="right" valign="top"> Icarus Verilog</td></tr></table></div></body></html>
|
data/doc/problems.vsim.html
CHANGED
@@ -1,3 +1,3 @@
|
|
1
1
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
2
2
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
3
|
-
<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Mentor Modelsim</title><link rel="stylesheet" href="styles/manual.css" type="text/css" /><meta name="generator" content="DocBook XSL Stylesheets V1.68.1" /><link rel="start" href="index.html" title="Ruby-VPI user manual" /><link rel="up" href="problems.html" title="Chapter
|
3
|
+
<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Mentor Modelsim</title><link rel="stylesheet" href="styles/manual.css" type="text/css" /><meta name="generator" content="DocBook XSL Stylesheets V1.68.1" /><link rel="start" href="index.html" title="Ruby-VPI user manual" /><link rel="up" href="problems.html" title="Chapter 6. Known problems" /><link rel="prev" href="problem.ivl.html" title="Icarus Verilog" /><link rel="next" href="glossary.html" title="Glossary" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Mentor Modelsim</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="problem.ivl.html"><img src="images/prev.png" alt="Prev" /></a> </td><th width="60%" align="center">Chapter 6. Known problems</th><td width="20%" align="right"> <a accesskey="n" href="glossary.html"><img src="images/next.png" alt="Next" /></a></td></tr></table><hr /></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="problems.vsim"></a>Mentor Modelsim</h2></div></div></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="problems.vsim.ruby_run"></a>ruby_run()</h3></div></div></div><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Note: Problem solved"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="images/note.png" /></td><th align="left">Problem solved</th></tr><tr><td align="left" valign="top"><p>This problem was fixed in release 2.0.0 (2006-04-17). If it still occurs, then <a href="introduction.resources.html" title="Resources">please report it</a>.</p></td></tr></table></div><p>Version 6.1b of Mentor Modelsim doesn't play nicely with either an embedded Ruby interpreter or POSIX threads in a PLI application. When <span class="application">Ruby-VPI</span> invokes the <code class="function">ruby_run</code> function (which starts the Ruby interpreter), the simulator terminates immediately with an exit status of 0.</p></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="problem.ivl.html"><img src="images/prev.png" alt="Prev" /></a> </td><td width="20%" align="center"><a accesskey="u" href="problems.html"><img src="images/up.png" alt="Up" /></a></td><td width="40%" align="right"> <a accesskey="n" href="glossary.html"><img src="images/next.png" alt="Next" /></a></td></tr><tr><td width="40%" align="left" valign="top">Icarus Verilog </td><td width="20%" align="center"><a accesskey="h" href="index.html"><img src="images/home.png" alt="Home" /></a></td><td width="40%" align="right" valign="top"> Glossary</td></tr></table></div></body></html>
|
data/doc/setup.installation.html
CHANGED
@@ -6,4 +6,4 @@
|
|
6
6
|
|
7
7
|
<code class="prompt">$</code> <strong class="userinput"><code><span><strong class="command">ls <code class="option">-d</code> <em class="replaceable"><code>/usr/lib/ruby/gems/1.8</code></em>/gems/ruby-vpi-*</strong></span></code></strong>
|
8
8
|
<code class="computeroutput">/usr/lib/ruby/gems/1.8/gems/ruby-vpi-7.0.0/</code>
|
9
|
-
</pre><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="setup.installation.windows"></a>Installing on Windows</h3></div></div></div><div class="procedure"><ol type="1"><li><p>Install <a href="http://www.cygwin.com" target="_top">Cygwin</a>, the Linux-like environment for Windows.</p></li><li><p>Search for object files whose names end with <code class="filename">.so</code>, <code class="filename">.o</code>, or <code class="filename">.dll</code> in your Verilog simulator's installation directory.</p></li><li><p>Determine which object files, among those found in the previous step, contain symbols whose names begin with <span class="symbol">_vpi</span><sup>[<a id="
|
9
|
+
</pre><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="setup.installation.windows"></a>Installing on Windows</h3></div></div></div><div class="procedure"><ol type="1"><li><p>Install <a href="http://www.cygwin.com" target="_top">Cygwin</a>, the Linux-like environment for Windows.</p></li><li><p>Search for object files whose names end with <code class="filename">.so</code>, <code class="filename">.o</code>, or <code class="filename">.dll</code> in your Verilog simulator's installation directory.</p></li><li><p>Determine which object files, among those found in the previous step, contain symbols whose names begin with <span class="symbol">_vpi</span><sup>[<a id="id2528554" href="#ftn.id2528554">1</a>]</sup> by running the command <span><strong class="command">for x in *.{o,so,dll}; do nm $x | grep -q '[Tt] _vpi' > /dev/null && echo $x; done</strong></span> in Cygwin.</p><div class="tip" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Tip"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Tip]" src="images/tip.png" /></td><th align="left">Tip</th></tr><tr><td align="left" valign="top"><p>If you are using Mentor Modelsim, the desired object file can be found at a path similar to <code class="filename">C:\Modeltech\win32\libvsim.dll</code>.</p></td></tr></table></div><div class="tip" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Tip"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Tip]" src="images/tip.png" /></td><th align="left">Tip</th></tr><tr><td align="left" valign="top"><p>If you are using GPL Cver, the desired object file can be found at a path similar to <code class="filename">C:\gplcver\objs\v_vpi.o</code>.</p></td></tr></table></div></li><li><p>Assign the path of the object file (determined in the previous step) to the <code class="varname">LDFLAGS</code> environment variable. For example, if the object file's path is <em class="replaceable"><code>/foo/bar/vpi.so</code></em>, then you would run the command <span><strong class="command">export <code class="varname">LDFLAGS</code>=<em class="replaceable"><code>/foo/bar/vpi.so</code></em></strong></span> in Cygwin.</p></li><li><p>You may now install <span class="application">Ruby-VPI</span> by running the command <span><strong class="command">gem <span class="action">install</span> <em class="replaceable"><code>ruby-vpi</code></em></strong></span> in Cygwin.</p></li></ol></div></div><div class="footnotes"><br /><hr width="100" align="left" /><div class="footnote"><p><sup>[<a id="ftn.id2528554" href="#id2528554">1</a>] </sup>Because <span class="application">Ruby-VPI</span> makes use of the <span class="acronym">VPI</span> C-language interface, it links to symbols whose names begin with <span class="symbol">_vpi</span>. It is possible for these symbols to be undefined when <span class="application">Ruby-VPI</span> is compiled under GNU/Linux and similar operating systems. In contrast, one <a href="http://sourceware.org/ml/cygwin/2001-12/msg01293.html" target="_top">cannot compile a shared object file with references to undefined symbols under Windows</a>. Thus, we must find a Verilog simulator's shared object file, which contains definitions of all <span class="acronym">VPI</span> symbols, and give this file to the linker when compiling <span class="application">Ruby-VPI</span>.</p></div></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="setup.reqs.html"><img src="images/prev.png" alt="Prev" /></a> </td><td width="20%" align="center"><a accesskey="u" href="setup.html"><img src="images/up.png" alt="Up" /></a></td><td width="40%" align="right"> <a accesskey="n" href="setup.maintenance.html"><img src="images/next.png" alt="Next" /></a></td></tr><tr><td width="40%" align="left" valign="top">Requirements </td><td width="20%" align="center"><a accesskey="h" href="index.html"><img src="images/home.png" alt="Home" /></a></td><td width="40%" align="right" valign="top"> Maintenance</td></tr></table></div></body></html>
|
data/doc/src/manual.xml
CHANGED
@@ -381,7 +381,7 @@
|
|
381
381
|
<varlistentry>
|
382
382
|
<term>Accessor</term>
|
383
383
|
<listitem>
|
384
|
-
<para>This parameter suggests which &vpi; function should be used to access the &vpi; property. When this parameter is not specified, the &vpi; utility layer will attempt to <emphasis>guess</emphasis> the value of this parameter (<ulink url="
|
384
|
+
<para>This parameter suggests which &vpi; function should be used to access the &vpi; property. When this parameter is not specified, the &vpi; utility layer will attempt to <emphasis>guess</emphasis> the value of this parameter (<ulink url="../ref/ruby/classes/Vpi/Handle/Property.html">see the source code</ulink> of the <code><constant>Property</constant>.<function>resolve</function></code> method for details).</para>
|
385
385
|
|
386
386
|
<table frame='all'>
|
387
387
|
<title>Possible accessors and their implications</title>
|
@@ -468,25 +468,100 @@
|
|
468
468
|
</row>
|
469
469
|
</thead>
|
470
470
|
<tbody>
|
471
|
-
|
472
|
-
<
|
473
|
-
|
474
|
-
|
475
|
-
|
476
|
-
|
477
|
-
|
478
|
-
|
479
|
-
|
480
|
-
|
481
|
-
|
482
|
-
<
|
483
|
-
|
484
|
-
|
485
|
-
|
486
|
-
|
487
|
-
|
488
|
-
|
489
|
-
|
471
|
+
<!-- each -->
|
472
|
+
<row>
|
473
|
+
<entry><code><varname>handle</varname>.<function>each_vpiNet</function> {|<varname>net</varname>| <function>puts</function> <varname>net</varname>.<function>fullName</function>}</code></entry>
|
474
|
+
<entry>each</entry>
|
475
|
+
<entry>_</entry>
|
476
|
+
<entry>vpiNet</entry>
|
477
|
+
<entry></entry>
|
478
|
+
<entry></entry>
|
479
|
+
<entry></entry>
|
480
|
+
<entry morerows="1">These expressions print the full name of each <constant>vpiNet</constant> object associated with the handle.</entry>
|
481
|
+
</row>
|
482
|
+
<row>
|
483
|
+
<entry><code><varname>handle</varname>.<function>each_net</function> {|<varname>net</varname>| <function>puts</function> <varname>net</varname>.<function>fullName</function>}</code></entry>
|
484
|
+
<entry>each</entry>
|
485
|
+
<entry>_</entry>
|
486
|
+
<entry>net</entry>
|
487
|
+
<entry></entry>
|
488
|
+
<entry></entry>
|
489
|
+
<entry></entry>
|
490
|
+
</row>
|
491
|
+
|
492
|
+
<!-- all? -->
|
493
|
+
<row>
|
494
|
+
<entry><code><varname>handle</varname>.<function>all_reg?</function> {|<varname>reg</varname>| <varname>reg</varname>.<function>size</function> == <literal>1</literal>}</code></entry>
|
495
|
+
<entry>all?</entry>
|
496
|
+
<entry>_</entry>
|
497
|
+
<entry>vpiReg</entry>
|
498
|
+
<entry></entry>
|
499
|
+
<entry></entry>
|
500
|
+
<entry></entry>
|
501
|
+
<entry morerows="1">These expressions check if all registers associated with the handle are capable of storing only one bit.</entry>
|
502
|
+
</row>
|
503
|
+
|
504
|
+
<row>
|
505
|
+
<entry><code><varname>handle</varname>.<function>all_reg?</function> {|<varname>reg</varname>| <varname>reg</varname>.<function>size</function> == <literal>1</literal>}</code></entry>
|
506
|
+
<entry>all?</entry>
|
507
|
+
<entry>_</entry>
|
508
|
+
<entry>reg</entry>
|
509
|
+
<entry></entry>
|
510
|
+
<entry></entry>
|
511
|
+
<entry></entry>
|
512
|
+
</row>
|
513
|
+
|
514
|
+
<!-- select -->
|
515
|
+
<row>
|
516
|
+
<entry><code><varname>handle</varname>.<function>select_vpiNet</function> {|<varname>net</varname>| <varname>net</varname>.<function>x?</function>}</code></entry>
|
517
|
+
<entry>select</entry>
|
518
|
+
<entry>_</entry>
|
519
|
+
<entry>vpiReg</entry>
|
520
|
+
<entry></entry>
|
521
|
+
<entry></entry>
|
522
|
+
<entry></entry>
|
523
|
+
<entry morerows="4">These expressions return a list of nets whose logic value is <quote>don't care</quote>.</entry>
|
524
|
+
</row>
|
525
|
+
|
526
|
+
<row>
|
527
|
+
<entry><code><varname>handle</varname>.<function>select_net</function> {|<varname>net</varname>| <varname>net</varname>.<function>x?</function>}</code></entry>
|
528
|
+
<entry>select</entry>
|
529
|
+
<entry>_</entry>
|
530
|
+
<entry>net</entry>
|
531
|
+
<entry></entry>
|
532
|
+
<entry></entry>
|
533
|
+
<entry></entry>
|
534
|
+
</row>
|
535
|
+
|
536
|
+
<row>
|
537
|
+
<entry><code><varname>handle</varname>.<function>select</function>(<constant>VpiNet</constant>) {|<varname>net</varname>| <varname>net</varname>.<function>x?</function>}</code></entry>
|
538
|
+
<entry>select</entry>
|
539
|
+
<entry>_</entry>
|
540
|
+
<entry></entry>
|
541
|
+
<entry></entry>
|
542
|
+
<entry></entry>
|
543
|
+
<entry></entry>
|
544
|
+
</row>
|
545
|
+
|
546
|
+
<row>
|
547
|
+
<entry><code><varname>handle</varname>.<function>select</function>(<literal>:VpiNet</literal>) {|<varname>net</varname>| <varname>net</varname>.<function>x?</function>}</code></entry>
|
548
|
+
<entry>select</entry>
|
549
|
+
<entry>_</entry>
|
550
|
+
<entry></entry>
|
551
|
+
<entry></entry>
|
552
|
+
<entry></entry>
|
553
|
+
<entry></entry>
|
554
|
+
</row>
|
555
|
+
|
556
|
+
<row>
|
557
|
+
<entry><code><varname>handle</varname>.<function>select</function>(<literal>:net</literal>) {|<varname>net</varname>| <varname>net</varname>.<function>x?</function>}</code></entry>
|
558
|
+
<entry>select</entry>
|
559
|
+
<entry>_</entry>
|
560
|
+
<entry></entry>
|
561
|
+
<entry></entry>
|
562
|
+
<entry></entry>
|
563
|
+
<entry></entry>
|
564
|
+
</row>
|
490
565
|
|
491
566
|
<row>
|
492
567
|
<entry><code><varname>handle</varname>.<function>vpiIntVal</function></code></entry>
|
@@ -1477,6 +1552,41 @@ Finished in 0.006766 seconds.
|
|
1477
1552
|
</section>
|
1478
1553
|
</chapter>
|
1479
1554
|
|
1555
|
+
<chapter id="hacking">
|
1556
|
+
<title>Hacking</title>
|
1557
|
+
|
1558
|
+
<section id="hacking.release-packages">
|
1559
|
+
<title>Building release packages</title>
|
1560
|
+
<para>In addition to the "normal requirements":./doc/usage.requirements.html, you need the following software to build release packages:
|
1561
|
+
|
1562
|
+
<variablelist>
|
1563
|
+
<varlistentry>
|
1564
|
+
<term><ulink url="http://www.docbook.org/">DocBook-XML</ulink></term>
|
1565
|
+
<listitem><para/></listitem>
|
1566
|
+
</varlistentry>
|
1567
|
+
<varlistentry>
|
1568
|
+
<term>xsltproc</term>
|
1569
|
+
<listitem><para/></listitem>
|
1570
|
+
</varlistentry>
|
1571
|
+
<varlistentry>
|
1572
|
+
<term>xmlto</term>
|
1573
|
+
<listitem><para/></listitem>
|
1574
|
+
</varlistentry>
|
1575
|
+
<varlistentry>
|
1576
|
+
<term><ulink url="http://rubyforge.org/projects/redcloth/">RedCloth</ulink></term>
|
1577
|
+
<listitem><para/></listitem>
|
1578
|
+
</varlistentry>
|
1579
|
+
<varlistentry>
|
1580
|
+
<term><ulink url="http://www.swig.org/">SWIG</ulink></term>
|
1581
|
+
<listitem><para/></listitem>
|
1582
|
+
</varlistentry>
|
1583
|
+
</variablelist>
|
1584
|
+
|
1585
|
+
Once you have satisfied these requirements, you can run <command>rake <action>release</action></command> to build the release packages. Also, see the output of <command>rake <option>-T</option></command> for more build options.</para>
|
1586
|
+
</section>
|
1587
|
+
|
1588
|
+
</chapter>
|
1589
|
+
|
1480
1590
|
<chapter id="problems">
|
1481
1591
|
<title>Known problems</title>
|
1482
1592
|
|
data/doc/usage.examples.html
CHANGED
@@ -1,3 +1,3 @@
|
|
1
1
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
2
2
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
3
|
-
<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Examples</title><link rel="stylesheet" href="styles/manual.css" type="text/css" /><meta name="generator" content="DocBook XSL Stylesheets V1.68.1" /><link rel="start" href="index.html" title="Ruby-VPI user manual" /><link rel="up" href="usage.html" title="Chapter 4. Usage" /><link rel="prev" href="usage.tutorial.html" title="Tutorial" /><link rel="next" href="
|
3
|
+
<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Examples</title><link rel="stylesheet" href="styles/manual.css" type="text/css" /><meta name="generator" content="DocBook XSL Stylesheets V1.68.1" /><link rel="start" href="index.html" title="Ruby-VPI user manual" /><link rel="up" href="usage.html" title="Chapter 4. Usage" /><link rel="prev" href="usage.tutorial.html" title="Tutorial" /><link rel="next" href="hacking.html" title="Chapter 5. Hacking" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Examples</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="usage.tutorial.html"><img src="images/prev.png" alt="Prev" /></a> </td><th width="60%" align="center">Chapter 4. Usage</th><td width="20%" align="right"> <a accesskey="n" href="hacking.html"><img src="images/next.png" alt="Next" /></a></td></tr></table><hr /></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="usage.examples"></a>Examples</h2></div></div></div><p>The <code class="filename">samp</code> directory contains several example tests which illustrate how <span class="application">Ruby-VPI</span> can be used. Each example has an associated <code class="filename">Rakefile</code> which simplifies the process of running it. Therefore, simply navigate into an example directory and run the command <span><strong class="command">rake</strong></span> to get started.</p><p>Also, some example specifications make use of BDD through the <span class="application">rSpec</span> library. See the <a href="background.methodology.html" title="Methodology">the section called “Methodology”</a> for a discussion of <span class="application">rSpec</span>.</p></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="usage.tutorial.html"><img src="images/prev.png" alt="Prev" /></a> </td><td width="20%" align="center"><a accesskey="u" href="usage.html"><img src="images/up.png" alt="Up" /></a></td><td width="40%" align="right"> <a accesskey="n" href="hacking.html"><img src="images/next.png" alt="Next" /></a></td></tr><tr><td width="40%" align="left" valign="top">Tutorial </td><td width="20%" align="center"><a accesskey="h" href="index.html"><img src="images/home.png" alt="Home" /></a></td><td width="40%" align="right" valign="top"> Chapter 5. Hacking</td></tr></table></div></body></html>
|
data/doc/usage.tutorial.html
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
2
2
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
3
|
-
<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Tutorial</title><link rel="stylesheet" href="styles/manual.css" type="text/css" /><meta name="generator" content="DocBook XSL Stylesheets V1.68.1" /><link rel="start" href="index.html" title="Ruby-VPI user manual" /><link rel="up" href="usage.html" title="Chapter 4. Usage" /><link rel="prev" href="usage.tools.html" title="Tools" /><link rel="next" href="usage.examples.html" title="Examples" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Tutorial</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="usage.tools.html"><img src="images/prev.png" alt="Prev" /></a> </td><th width="60%" align="center">Chapter 4. Usage</th><td width="20%" align="right"> <a accesskey="n" href="usage.examples.html"><img src="images/next.png" alt="Next" /></a></td></tr></table><hr /></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="usage.tutorial"></a>Tutorial</h2></div></div></div><div class="procedure"><a id="
|
3
|
+
<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Tutorial</title><link rel="stylesheet" href="styles/manual.css" type="text/css" /><meta name="generator" content="DocBook XSL Stylesheets V1.68.1" /><link rel="start" href="index.html" title="Ruby-VPI user manual" /><link rel="up" href="usage.html" title="Chapter 4. Usage" /><link rel="prev" href="usage.tools.html" title="Tools" /><link rel="next" href="usage.examples.html" title="Examples" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Tutorial</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="usage.tools.html"><img src="images/prev.png" alt="Prev" /></a> </td><th width="60%" align="center">Chapter 4. Usage</th><td width="20%" align="right"> <a accesskey="n" href="usage.examples.html"><img src="images/next.png" alt="Next" /></a></td></tr></table><hr /></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="usage.tutorial"></a>Tutorial</h2></div></div></div><div class="procedure"><a id="id2529000"></a><p class="title"><b>Procedure 4.1. Typical way of using <span class="application">Ruby-VPI</span></b></p><ol type="1"><li><p><a href="usage.tutorial.html#usage.tutorial.declare-design" title="Start with a design">Declare the design</a>, which is a Verilog module, using Verilog 2001 syntax.</p></li><li><p><a href="usage.tutorial.html#usage.tutorial.generate-test" title="Generate a test">Generate a test</a> for the design using the <a href="usage.tools.html#usage.tools.generate-test" title="Automated test generation">automated test generator</a> tool.</p></li><li><p><a href="usage.tutorial.html#usage.tutorial.specification" title="Specify your expectations">Identify your expectations</a> for the design and implement them in the specification.</p></li><li><p>(Optional) <a href="usage.tutorial.html#usage.tutorial.implement-proto" title="Implement the prototype">Implement the prototype</a> of the design in Ruby.</p></li><li><p>(Optional) <a href="usage.tutorial.html#usage.tutorial.test-proto" title="Verify the prototype">Verify the prototype</a> against the specification.</p></li><li><p><a href="usage.tutorial.html#usage.tutorial.implement-design" title="Implement the design">Implement the design</a> in Verilog once the prototype has been verified.</p></li><li><p><a href="usage.tutorial.html#usage.tutorial.test-design" title="Verify the design">Verify the design</a> against the specification.</p></li></ol></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="usage.tutorial.declare-design"></a>Start with a design</h3></div></div></div><p>First, we need a <a href="glossary.html#term..design">Design</a> to verify. In this tutorial, <a href="usage.tutorial.html#fig..counter.v_decl" title="Figure 4.1. Declaration of a simple up-counter with synchronous reset">Figure 4.1, “Declaration of a simple up-counter with synchronous reset”</a> will serve as our design. Its interface is composed of the following parts:
|
4
4
|
</p><div class="variablelist"><dl><dt><span class="term"><code class="constant">Size</code></span></dt><dd><p>This parameter defines the number of bits used to represent the counter's value.</p></dd><dt><span class="term"><code class="varname">clock</code></span></dt><dd><p>Each positive edge of this signal causes the <code class="varname">count</code> register to increment.</p></dd><dt><span class="term"><code class="varname">reset</code></span></dt><dd><p>Assertion of this signal causes the <code class="varname">count</code> register to become zero.</p></dd><dt><span class="term"><code class="varname">count</code></span></dt><dd><p>This register contains the counter's value.</p></dd></dl></div><p>
|
5
5
|
</p><div class="figure"><a id="fig..counter.v_decl"></a><p class="title"><b>Figure 4.1. Declaration of a simple up-counter with synchronous reset</b></p><pre class="programlisting">
|
6
6
|
<span class="token">module</span> counter #(<span class="token">parameter</span> <code class="constant">Size</code> = <code class="literal">5</code>) (
|
data/header.html
CHANGED
@@ -35,58 +35,59 @@
|
|
35
35
|
<dt>
|
36
36
|
<span class="term">
|
37
37
|
<a href="http://rubyforge.org/projects/ruby-vpi" target="_top">
|
38
|
-
|
38
|
+
Facilities</a>
|
39
39
|
</span>
|
40
40
|
</dt>
|
41
41
|
<dd>
|
42
42
|
<p>
|
43
|
-
Access
|
43
|
+
Access the issue tracker, file downloads, support requests, discussion forums, and more at <a href="http://rubyforge.org" target="_top">
|
44
44
|
RubyForge</a>.
|
45
45
|
</p>
|
46
46
|
</dd>
|
47
47
|
|
48
48
|
<dt>
|
49
49
|
<span class="term">
|
50
|
-
<a href="http://rubyforge.org
|
51
|
-
|
50
|
+
<a href="http://ruby-vpi.rubyforge.org" target="_top">
|
51
|
+
Project</a>
|
52
52
|
</span>
|
53
53
|
</dt>
|
54
54
|
<dd>
|
55
55
|
<p>
|
56
|
-
|
56
|
+
Access more information at the project’s home page.
|
57
|
+
</p>
|
57
58
|
</dd>
|
58
59
|
|
59
60
|
<dt>
|
60
61
|
<span class="term">
|
61
|
-
<a href="http://rubyforge.org/
|
62
|
-
|
62
|
+
<a href="http://ruby-vpi.rubyforge.org/src/ruby-vpi" target="_top">
|
63
|
+
Sources</a>
|
63
64
|
</span>
|
64
65
|
</dt>
|
65
66
|
<dd>
|
66
67
|
<p>
|
67
|
-
|
68
|
+
Browse or access the source code repository.</p>
|
68
69
|
</dd>
|
69
70
|
|
70
71
|
<dt>
|
71
72
|
<span class="term">
|
72
|
-
<a href="http://ruby-vpi.rubyforge.org/
|
73
|
-
|
73
|
+
<a href="http://ruby-vpi.rubyforge.org/talks" target="_top">
|
74
|
+
Talks</a>
|
74
75
|
</span>
|
75
76
|
</dt>
|
76
77
|
<dd>
|
77
78
|
<p>
|
78
|
-
|
79
|
+
Access public presentations about Ruby-VPI.</p>
|
79
80
|
</dd>
|
80
81
|
|
81
82
|
<dt>
|
82
83
|
<span class="term">
|
83
|
-
<a href="http://rubyforge.org/
|
84
|
-
|
84
|
+
<a href="http://ruby-vpi.rubyforge.org/blog" target="_top">
|
85
|
+
News</a>
|
85
86
|
</span>
|
86
87
|
</dt>
|
87
88
|
<dd>
|
88
89
|
<p>
|
89
|
-
|
90
|
+
See what the developers are cooking up.</p>
|
90
91
|
</dd>
|
91
92
|
|
92
93
|
</dl>
|
data/header.part.html
CHANGED
@@ -35,58 +35,59 @@
|
|
35
35
|
<dt>
|
36
36
|
<span class="term">
|
37
37
|
<a href="http://rubyforge.org/projects/ruby-vpi" target="_top">
|
38
|
-
|
38
|
+
Facilities</a>
|
39
39
|
</span>
|
40
40
|
</dt>
|
41
41
|
<dd>
|
42
42
|
<p>
|
43
|
-
Access
|
43
|
+
Access the issue tracker, file downloads, support requests, discussion forums, and more at <a href="http://rubyforge.org" target="_top">
|
44
44
|
RubyForge</a>.
|
45
45
|
</p>
|
46
46
|
</dd>
|
47
47
|
|
48
48
|
<dt>
|
49
49
|
<span class="term">
|
50
|
-
<a href="http://rubyforge.org
|
51
|
-
|
50
|
+
<a href="http://ruby-vpi.rubyforge.org" target="_top">
|
51
|
+
Project</a>
|
52
52
|
</span>
|
53
53
|
</dt>
|
54
54
|
<dd>
|
55
55
|
<p>
|
56
|
-
|
56
|
+
Access more information at the project’s home page.
|
57
|
+
</p>
|
57
58
|
</dd>
|
58
59
|
|
59
60
|
<dt>
|
60
61
|
<span class="term">
|
61
|
-
<a href="http://rubyforge.org/
|
62
|
-
|
62
|
+
<a href="http://ruby-vpi.rubyforge.org/src/ruby-vpi" target="_top">
|
63
|
+
Sources</a>
|
63
64
|
</span>
|
64
65
|
</dt>
|
65
66
|
<dd>
|
66
67
|
<p>
|
67
|
-
|
68
|
+
Browse or access the source code repository.</p>
|
68
69
|
</dd>
|
69
70
|
|
70
71
|
<dt>
|
71
72
|
<span class="term">
|
72
|
-
<a href="http://ruby-vpi.rubyforge.org/
|
73
|
-
|
73
|
+
<a href="http://ruby-vpi.rubyforge.org/talks" target="_top">
|
74
|
+
Talks</a>
|
74
75
|
</span>
|
75
76
|
</dt>
|
76
77
|
<dd>
|
77
78
|
<p>
|
78
|
-
|
79
|
+
Access public presentations about Ruby-VPI.</p>
|
79
80
|
</dd>
|
80
81
|
|
81
82
|
<dt>
|
82
83
|
<span class="term">
|
83
|
-
<a href="http://rubyforge.org/
|
84
|
-
|
84
|
+
<a href="http://ruby-vpi.rubyforge.org/blog" target="_top">
|
85
|
+
News</a>
|
85
86
|
</span>
|
86
87
|
</dt>
|
87
88
|
<dd>
|
88
89
|
<p>
|
89
|
-
|
90
|
+
See what the developers are cooking up.</p>
|
90
91
|
</dd>
|
91
92
|
|
92
93
|
</dl>
|
data/history.html
CHANGED
@@ -35,58 +35,59 @@
|
|
35
35
|
<dt>
|
36
36
|
<span class="term">
|
37
37
|
<a href="http://rubyforge.org/projects/ruby-vpi" target="_top">
|
38
|
-
|
38
|
+
Facilities</a>
|
39
39
|
</span>
|
40
40
|
</dt>
|
41
41
|
<dd>
|
42
42
|
<p>
|
43
|
-
Access
|
43
|
+
Access the issue tracker, file downloads, support requests, discussion forums, and more at <a href="http://rubyforge.org" target="_top">
|
44
44
|
RubyForge</a>.
|
45
45
|
</p>
|
46
46
|
</dd>
|
47
47
|
|
48
48
|
<dt>
|
49
49
|
<span class="term">
|
50
|
-
<a href="http://rubyforge.org
|
51
|
-
|
50
|
+
<a href="http://ruby-vpi.rubyforge.org" target="_top">
|
51
|
+
Project</a>
|
52
52
|
</span>
|
53
53
|
</dt>
|
54
54
|
<dd>
|
55
55
|
<p>
|
56
|
-
|
56
|
+
Access more information at the project’s home page.
|
57
|
+
</p>
|
57
58
|
</dd>
|
58
59
|
|
59
60
|
<dt>
|
60
61
|
<span class="term">
|
61
|
-
<a href="http://rubyforge.org/
|
62
|
-
|
62
|
+
<a href="http://ruby-vpi.rubyforge.org/src/ruby-vpi" target="_top">
|
63
|
+
Sources</a>
|
63
64
|
</span>
|
64
65
|
</dt>
|
65
66
|
<dd>
|
66
67
|
<p>
|
67
|
-
|
68
|
+
Browse or access the source code repository.</p>
|
68
69
|
</dd>
|
69
70
|
|
70
71
|
<dt>
|
71
72
|
<span class="term">
|
72
|
-
<a href="http://ruby-vpi.rubyforge.org/
|
73
|
-
|
73
|
+
<a href="http://ruby-vpi.rubyforge.org/talks" target="_top">
|
74
|
+
Talks</a>
|
74
75
|
</span>
|
75
76
|
</dt>
|
76
77
|
<dd>
|
77
78
|
<p>
|
78
|
-
|
79
|
+
Access public presentations about Ruby-VPI.</p>
|
79
80
|
</dd>
|
80
81
|
|
81
82
|
<dt>
|
82
83
|
<span class="term">
|
83
|
-
<a href="http://rubyforge.org/
|
84
|
-
|
84
|
+
<a href="http://ruby-vpi.rubyforge.org/blog" target="_top">
|
85
|
+
News</a>
|
85
86
|
</span>
|
86
87
|
</dt>
|
87
88
|
<dd>
|
88
89
|
<p>
|
89
|
-
|
90
|
+
See what the developers are cooking up.</p>
|
90
91
|
</dd>
|
91
92
|
|
92
93
|
</dl>
|
@@ -113,6 +114,78 @@ We <em>strictly</em> follow the RubyGems project’s <a href="http://www.rub
|
|
113
114
|
<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>
|
114
115
|
|
115
116
|
|
117
|
+
<h1>Version 11.1.0 (2006-11-08)</h1>
|
118
|
+
|
119
|
+
|
120
|
+
<h2>Summary</h2>
|
121
|
+
|
122
|
+
|
123
|
+
<p>This release fixes a bug in generated benches, improves the <a href="./ref/ruby/classes/Vpi/Handle.html">the <code>Vpi::Handle</code> class</a>, and improves performance by roughly 20%.</p>
|
124
|
+
|
125
|
+
|
126
|
+
<h2>Acknowledgment</h2>
|
127
|
+
|
128
|
+
|
129
|
+
<p>Thanks to Matt Fischler for finding the bug in generated benches (see below).</p>
|
130
|
+
|
131
|
+
|
132
|
+
<h2>Notice</h2>
|
133
|
+
|
134
|
+
|
135
|
+
<ul>
|
136
|
+
<li>A bug in generated Verilog and Ruby benches, which caused this error <pre>ruby: no such file to load -- ruby-vpi (LoadError)</pre> has been fixed.
|
137
|
+
<ul>
|
138
|
+
<li>Please regenerate your tests to apply this bug fix to your tests.</li>
|
139
|
+
</ul></li>
|
140
|
+
</ul>
|
141
|
+
|
142
|
+
|
143
|
+
<h2>Detail</h2>
|
144
|
+
|
145
|
+
|
146
|
+
<ul>
|
147
|
+
<li>The class <code>SWIG::TYPE_p_unsigned_int</code> has been aliased as <code>Vpi::Handle</code> for easier access.</li>
|
148
|
+
</ul>
|
149
|
+
|
150
|
+
|
151
|
+
<ul>
|
152
|
+
<li><code>Vpi::Handle#to_s</code> and <code>Vpi::Handle#inspect</code> 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.
|
153
|
+
<ul>
|
154
|
+
<li>You can also provide a list of <span class="caps">VPI</span> property/type names or integer constants to those methods to see additional information in the output.</li>
|
155
|
+
</ul></li>
|
156
|
+
</ul>
|
157
|
+
|
158
|
+
|
159
|
+
<ul>
|
160
|
+
<li><code>Vpi::Handle</code> now implements all methods from <code>Enumerable</code>, such as <code>map</code>, <code>each</code>, <code>select</code>, and so on. However, unlike their counterparts in <code>Enumerable</code>, these methods also accept a list of <span class="caps">VPI</span> property/type names or integer constants. Thus, you are now able to write <code>handle.select(:reg, :net) {|h| h.size > 5}</code> to obtain a list of child handles to registers and nets whose capacity is greater than 5 bits.</li>
|
161
|
+
</ul>
|
162
|
+
|
163
|
+
|
164
|
+
<ul>
|
165
|
+
<li>The <code>Vpi::Handle#[]</code>, <code>Vpi::Handle#get_value</code>, and <code>Vpi::Handle#put_value</code> methods now accept names of <span class="caps">VPI</span> types/properties as well as their integer constants. Thus, you are now able to write <code>handle[:reg, :net]</code> to obtain a list of handles to all child registers and nets.</li>
|
166
|
+
</ul>
|
167
|
+
|
168
|
+
|
169
|
+
<ul>
|
170
|
+
<li><code>Vpi::Handle#method_missing</code> has been refactored to cache queries. There is now, approximately, 20% improvement in performance.</li>
|
171
|
+
</ul>
|
172
|
+
|
173
|
+
|
174
|
+
<ul>
|
175
|
+
<li><code>Vpi::Handle#method_missing</code> has been fixed to accept operations with multiple underscores. For example, before this release, you could not write <code>handle.find_all_reg {|r| r.name =~ /foo/}</code> because the “find_all_reg” method would be interpreted as the operation “find” and the <span class="caps">VPI</span> property “all_reg”.</li>
|
176
|
+
</ul>
|
177
|
+
|
178
|
+
|
179
|
+
<ul>
|
180
|
+
<li>The <code>IntegerGenerator</code> class, in the pipelined <span class="caps">ALU</span> example, has been fixed so that multiple instances do not interfere with the generation of each other’s prime integers.</li>
|
181
|
+
</ul>
|
182
|
+
|
183
|
+
|
184
|
+
<ul>
|
185
|
+
<li>Due to a bug in the <code>Rakefile</code>, the reference documentation was not included in the previous few releases. This has been fixed.</li>
|
186
|
+
</ul>
|
187
|
+
|
188
|
+
|
116
189
|
<h1>Version 11.0.0 (2006-11-05)</h1>
|
117
190
|
|
118
191
|
|
@@ -233,7 +306,7 @@ end</pre> notation.
|
|
233
306
|
|
234
307
|
|
235
308
|
<ul>
|
236
|
-
<li>Revised the stylesheet to make disjoint sections readily distinguishable from
|
309
|
+
<li>Revised the stylesheet to make disjoint sections readily distinguishable from each other, through generous spacing and minor coloring.</li>
|
237
310
|
</ul>
|
238
311
|
|
239
312
|
|