doc/manual.html in ruby-vpi-17.0.0 vs doc/manual.html in ruby-vpi-18.0.0
- old
+ new
@@ -3,35 +3,35 @@
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8"/>
<link rel="stylesheet" type="text/css" href="common.css" media="screen" />
<link rel="stylesheet" type="text/css" href="print.css" media="print" />
<link rel="alternate" type="application/rss+xml" href="http://ruby-vpi.rubyforge.org/doc/rss.xml" title="RSS feed for this project." />
- <title>Ruby-VPI 17.0.0 user manual</title>
+ <title>Ruby-VPI 18.0.0 user manual</title>
</head>
<body>
+ <div id="site-links">
+ <a href="readme.html">Home</a>
+ · <a href="manual.html">Manual</a>
+ · <a href="memo.html">Memo</a>
+ · <a href="history.html">History</a>
+ <hr style="display: none"/>
+ </div>
+
<div id="toc-links">
- <a href="#toc:contents">Contents</a> ·
- <a href="#toc:tip">Tips</a> ·
- <a href="#toc:note">Notes</a> ·
- <a href="#toc:caution">Cautions</a> ·
- <a href="#toc:figure">Figures</a> ·
- <a href="#toc:table">Tables</a> ·
- <a href="#toc:example">Examples</a> ·
-
- <a href="readme.html" style="color: green; font-size: larger;">Home page</a>
+ <a href="#toc:contents">Contents</a> · <a href="#toc:tip">Tips</a> · <a href="#toc:caution">Cautions</a> · <a href="#toc:figure">Figures</a> · <a href="#toc:table">Tables</a> · <a href="#toc:example">Examples</a>
</div>
<div id="body">
<hr style="display: none"/>
- <div id="Ruby-VPI_17.0.0_user_manual" class="front_cover">
- <h1 class="title"><big>Ruby-VPI 17.0.0 user manual</big></h1>
+ <div id="Ruby-VPI_18.0.0_user_manual" class="front_cover">
+ <h1 class="title"><big>Ruby-VPI 18.0.0 user manual</big></h1>
<h2 class="author">Suraj N. Kurapati</h2>
- <h3 class="date">22 July 2007</h3>
+ <h3 class="date">31 July 2007</h3>
<p>
<div id="About_this_manual" class="paragraph">
<p class="title">About this manual</p>
@@ -42,31 +42,31 @@
<p>In addition, this manual is distributed as one big HTML file so that you can easily search for a particular topic using nothing more than your web browser’s built-in text search mechanism. This facilitates offline reading, where an Internet search engine is not available.</p>
- <p>You can give feedback about this manual and, in general, any aspect of the Ruby-VPI project on the <a href="http://rubyforge.org/forum/?group_id=1339">project forums</a>. Furthermore, you can <a href="#hacking.manual">edit this manual</a> and contribute your improvements to the <a href="http://rubyforge.org/tracker/?group_id=1339">project patches</a>. Finally, you can find the newest version of this manual at the <a href="http://ruby-vpi.rubyforge.org">Ruby-VPI project website</a>.</p>
+ <p>You can give feedback about this manual and, in general, any aspect of the Ruby-VPI project on the <a href="http://rubyforge.org/forum/?group_id=1339">project forums</a>. Furthermore, you can <a href="#hacking.manual">edit this manual</a> and contribute your improvements to the <a href="http://rubyforge.org/tracker/?group_id=1339">project patches</a>. Finally, you can find the newest version of this manual at the <a href="http://ruby-vpi.rubyforge.org/">Ruby-VPI project website</a>.</p>
</div>
<div id="Legal_notice" class="paragraph">
<p class="title">Legal notice</p>
<p>This manual is distributed under <a href="#intro.license">the same license as Ruby-VPI</a>.</p>
- <p>The admonition graphics used in this manual are Copyright 2005, 2006 <a href="http://tango.freedesktop.org">Tango Desktop Project</a> and are distributed under <a href="./images/tango/LICENSE">these terms</a>.</p>
+ <p>The admonition graphics used in this manual are Copyright 2005, 2006 <a href="http://tango.freedesktop.org/Tango_Desktop_Project">Tango Desktop Project</a> and are distributed under <a href="./images/tango/LICENSE">these terms</a>.</p>
</div>
</p>
</div>
<hr style="display: none"/>
<div id="intro" class="chapter">
<h1 class="title">
- Chapter <a href="#a-607687748">2</a>
+ Chapter <a href="#a-607201618">2</a>
<br/><br/>
<big>Welcome</big>
</h1>
@@ -88,43 +88,47 @@
<p>
<hr style="display: none"/>
<div id="resources" class="section">
<h2 class="title">
- <a href="#a-607624238">2.1</a>
+ <a href="#a-605996598">2.1</a>
Resources
</h2>
<div id="Records" class="paragraph">
<p class="title">Records</p>
- <a type="application/rss+xml" href="http://ruby-vpi.rubyforge.org/doc/rss.xml"><img src="images/feed-icon-28x28.png" alt="RSS feed for release notifications" style="float: right"/></a>
-
-
+ <ul>
+ <li><a href="history.html#a18.0.0">What’s new</a>
+ – release notes for version 18.0.0.
<ul>
- <li><a href="history.html">What’s new</a>
- – a history of all release notes.</li>
+ <li><a href="history.html">History</a>
+ – a record of all release notes.</li>
+ <li><a type="application/rss+xml" href="http://ruby-vpi.rubyforge.org/doc/rss.xml"><img src="images/feed-icon-28x28.png" alt="RSS feed for release announcements" style="float: right"/></a> <a href="http://ruby-vpi.rubyforge.org/doc/rss.xml">RSS feed</a>
+ – keep track of new releases at your leisure.</li>
+ </ul>
+ </li>
<li><a href="memo.html">Plans</a>
– pending tasks for future releases.</li>
<li><a href="http://ruby-vpi.rubyforge.org/talks/">Talks</a>
– materials from presentations and seminars.</li>
<li><a href="http://ruby-vpi.rubyforge.org/papers/">Papers</a>
– research publications.</li>
- <li><a href="http://ruby-vpi.rubyforge.org/papers/masters_thesis.html#tth_sEc5.2">Motivation</a>
- – why does Ruby-VPI exist?</li>
</ul>
</div>
<div id="Documentation" class="paragraph">
<p class="title">Documentation</p>
<ul>
- <li><a href="manual.html">User manual</a>
- – complete documentation for users. <em>Start here!</em>
+ <li><a href="http://ruby-vpi.rubyforge.org/papers/masters_thesis.html#tth_sEc5.2">Motivation</a>
+ – why was Ruby-VPI developed?</li>
+ <li><a href="manual.html">User manual</a>
+ – complete documentation for users.
<ul>
<li><a href="manual.html#usage.tutorial">Tutorial</a>
– learn how to use Ruby-VPI quickly.</li>
</ul>
</li>
@@ -137,21 +141,21 @@
<div id="Facilities" class="paragraph">
<p class="title">Facilities</p>
<ul>
<li><a href="http://rubyforge.org/frs/?group_id=1339">Downloads</a>
– obtain release packages</li>
- <li><a href="http://ruby-vpi.rubyforge.org/src/ruby-vpi">Source code</a>
+ <li><a href="http://ruby-vpi.rubyforge.org/src/ruby-vpi/">Source code</a>
– browse online or obtain with <a href="http://darcs.net">Darcs</a>.</li>
<li><a href="http://rubyforge.org/forum/?group_id=1339">Forums</a>
– discuss things and ask questions.</li>
<li><a href="http://rubyforge.org/tracker/?group_id=1339">Bugs</a>
– report defects in the software.</li>
<li><a href="http://rubyforge.org/tracker/?group_id=1339">Patches</a>
– submit patches to source code.</li>
<li><a href="http://rubyforge.org/tracker/?group_id=1339">Requests</a>
– request new features or get support.</li>
- <li><a href="http://rubyforge.org/projects/ruby-vpi">Project portal</a>
+ <li><a href="http://rubyforge.org/projects/ruby-vpi/">Project portal</a>
– hosted generously by <a href="http://rubyforge.org">RubyForge</a>.</li>
</ul>
</div>
@@ -162,11 +166,11 @@
<p>
<hr style="display: none"/>
<div id="intro.features" class="section">
<h2 class="title">
- <a href="#a-607636548">2.2</a>
+ <a href="#a-605842608">2.2</a>
Features
</h2>
@@ -175,11 +179,11 @@
<div id="Portable" class="paragraph">
<p class="title">Portable</p>
<ul>
<li>Supports the <em>entire</em> <a href="http://ieeexplore.ieee.org/xpl/standardstoc.jsp?isnumber=33945"><span class="caps">IEEE 1364</span>-2005 Verilog VPI</a> standard.</li>
<li>Works with all <a href="#intro.reqs">major Verilog simulators</a> available today.</li>
- <li>Compiled <em>just once</em> during <a href="manual.html#setup.installation">installation</a> and used forever!</li>
+ <li>Compiled <em>just once</em> during <a href="manual.html#setup.inst">installation</a> and used forever!</li>
</ul>
</div>
<div id="Agile" class="paragraph">
@@ -196,11 +200,11 @@
<ul>
<li>Eliminates unneccesary work:
<ul>
<li><a href="manual.html#usage.tutorial.specification">Specifications</a> are readable, portable, and <em>executable</em>.</li>
- <li>The <a href="manual.html#usage.tools.generate-test">automated test generator</a> helps you accomodate design changes with <em>minimal</em> effort.</li>
+ <li>The <a href="manual.html#usage.tools.generate">automated test generator</a> helps you accomodate design changes with <em>minimal</em> effort.</li>
<li>There is absolutely <em>no compiling</em>!</li>
</ul></li>
</ul>
</div>
@@ -233,11 +237,11 @@
<p>
<hr style="display: none"/>
<div id="intro.reqs" class="section">
<h2 class="title">
- <a href="#a-607648378">2.3</a>
+ <a href="#a-607160758">2.3</a>
Requirements
</h2>
@@ -254,16 +258,16 @@
<ul>
<li><a href="http://www.synopsys.com/products/simulation/simulation.html">Synopsys VCS</a>
– any version that supports the <tt>-load</tt> option is acceptable.</li>
<li><a href="http://www.model.com">Mentor Modelsim</a>
– any version that supports the <tt>-pli</tt> option is acceptable.</li>
- <li><a href="http://www.cadence.com/products/functional_ver/nc-verilog/">Cadence NC-Sim / NC-Verilog</a>
- – any version that supports the <tt>+loadvpi</tt> option is acceptable.</li>
+ <li><a href="http://www.cadence.com/products/functional_ver/nc-verilog/">Cadence NC-Sim</a>
+ – any version that supports the <tt>+loadvpi</tt> option is <em>mostly</em> acceptable because you <strong>will not</strong> be able to <a href="manual.html#problem.ncsim.vpiForceFlag">force values onto wires</a>.</li>
<li><a href="http://www.pragmatic-c.com/gpl-cver/">GPL Cver</a>
– version 2.11a or newer is acceptable.</li>
- <li><a href="http://www.icarus.com/eda/Verilog/">Icarus Verilog</a>
- – version 0.8 is <em>mostly</em> acceptable—you <strong>will not</strong> be able to <a href="manual.html#background.org.vpi.util">access child handles through method calls</a>. The reason for this limitation is explained <a href="manual.html#problems.ivl.vpi_handle_by_name.absolute-paths">in the user manual</a>.</li>
+ <li><a href="http://www.geda.seul.org/tools/icarus/index.html">Icarus Verilog</a>
+ – version 0.8 is <em>mostly</em> acceptable because you <strong>will not</strong> be able to <a href="manual.html#Accessing_a_handle_s_relatives">access child handles through method calls</a>. The reason for this limitation is explained <a href="manual.html#problems.ivl.vpi_handle_by_name.absolute-paths">in the user manual</a>.</li>
</ul>
</div>
<div id="Compilers" class="paragraph">
@@ -271,12 +275,14 @@
<ul>
<li><a href="http://en.wikipedia.org/wiki/Make">make</a>
– any flavor should be acceptable.</li>
<li>C compiler
– the <a href="http://www.gnu.org/software/gcc/" title="GCC">GNU Compiler Collection</a> is preferred, but any C compiler should be acceptable.</li>
- <li><a href="http://www.ruby-lang.org">Ruby</a>
- – version 1.8 or newer, including header and linkable object files for building extensions, is necessary. You can install Ruby by following <a href="http://www.rubygarden.org/faq/section/show/3">these instructions</a>.</li>
+ <li><a href="http://www.swig.org/download.html">SWIG</a>
+ – version 1.3.29 or newer is necessary.</li>
+ <li><a href="http://www.ruby-lang.org/en/downloads/">Ruby</a>
+ – version 1.8 or newer, including header and linkable object files for building extensions, is necessary. You can install Ruby by following <a href="http://www.ruby-lang.org/en/downloads/">these instructions</a>.</li>
</ul>
</div>
<div id="Libraries" class="paragraph">
@@ -297,11 +303,11 @@
<p>
<hr style="display: none"/>
<div id="intro.applications" class="section">
<h2 class="title">
- <a href="#a-607650938">2.4</a>
+ <a href="#a-607163318">2.4</a>
Applications
</h2>
@@ -343,11 +349,11 @@
<p>
<hr style="display: none"/>
<div id="intro.appetizers" class="section">
<h2 class="title">
- <a href="#a-607653538">2.5</a>
+ <a href="#a-607165918">2.5</a>
Appetizers
</h2>
@@ -411,35 +417,37 @@
<p>
<hr style="display: none"/>
<div id="intro.license" class="section">
<h2 class="title">
- <a href="#a-607656258">2.6</a>
+ <a href="#a-607168788">2.6</a>
License
</h2>
- <p>Copyright 2006 Suraj N. Kurapati <snk@gna.org></p>
+ <p>Copyright 2006 Suraj N. Kurapati <SNK at GNA dot ORG><br/>
+Copyright 1999 Kazuhiro HIWADA <HIWADA at KUEE dot KYOTO-U dot AC dot JP><br/></p>
<p>Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
the Software, and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:</p>
- <p>1. All modified and unmodified copies and substantial portions of the Software
- (the "Derivatives") and their corresponding machine-readable source code (the
- "Code") must include the above copyright notice and this permission notice.</p>
+ <p>1. All copies and substantial portions of the Software, whether modified or
+ unmodified, (the "Derivatives") and their corresponding machine-readable
+ source code (the "Code") must include the above copyright notice and this
+ permission notice.</p>
- <p>2. Upon distribution, the Derivatives must be accompanied either by the Code or,
- if the Code is obtainable for no more than the cost of distribution plus a
+ <p>2. The Derivatives, upon distribution, must be accompanied by the Code or, if
+ the Code is obtainable for no more than the cost of distribution plus a
nominal fee, by information on how to obtain the Code.</p>
<p><span class="caps">THE SOFTWARE IS PROVIDED</span> "AS IS", <span class="caps">WITHOUT WARRANTY OF ANY KIND</span>, EXPRESS OR
IMPLIED, INCLUDING <span class="caps">BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY</span>, FITNESS
@@ -455,11 +463,11 @@
<p>
<hr style="display: none"/>
<div id="intro.related-works" class="section">
<h2 class="title">
- <a href="#a-607661648">2.7</a>
+ <a href="#a-607174178">2.7</a>
Related works
</h2>
@@ -476,11 +484,11 @@
<p>
<hr style="display: none"/>
<div id="intro.related-works.pli" class="section">
<h3 class="title">
- <a href="#a-607658708">2.7.1</a>
+ <a href="#a-607171238">2.7.1</a>
Ye olde PLI
</h3>
@@ -503,11 +511,11 @@
<hr style="display: none"/>
<div id="setup" class="chapter">
<h1 class="title">
- Chapter <a href="#a-607728418">3</a>
+ Chapter <a href="#a-607242278">3</a>
<br/><br/>
<big>Setup</big>
</h1>
@@ -515,11 +523,11 @@
<hr style="display: none"/>
<div id="setup.manifest" class="section">
<h2 class="title">
- <a href="#a-607690938">3.1</a>
+ <a href="#a-607204808">3.1</a>
Manifest
</h2>
@@ -541,11 +549,11 @@
<hr style="display: none"/>
<div id="setup.reqs" class="section">
<h2 class="title">
- <a href="#a-607696378">3.2</a>
+ <a href="#a-607210248">3.2</a>
Requirements
</h2>
@@ -558,11 +566,11 @@
<div class="admonition">
<div class="tip" id="Add_support_for_your_Verilog_simulator">
<img src="images/tango/tip.png" alt="tip" class="icon"/>
- <p class="title"><a href="#a-607693408">Tip 1</a>. Add support for your Verilog simulator</p>
+ <p class="title"><a href="#a-607207278">Tip 1</a>. Add support for your Verilog simulator</p>
Write a <a href="http://rubyforge.org/tracker/?group_id=1339">support request</a> for your simulator, while providing a sample transcript of the commands you use to run a test with your simulator, and I will add support for your simulator in the next release!
</div>
</div>
</p>
@@ -572,11 +580,11 @@
<hr style="display: none"/>
<div id="setup.recom" class="section">
<h2 class="title">
- <a href="#a-607702548">3.3</a>
+ <a href="#a-607216418">3.3</a>
Recommendations
</h2>
@@ -587,11 +595,11 @@
<p>
<hr style="display: none"/>
<div id="setup.recom.merger" class="section">
<h3 class="title">
- <a href="#a-607699208">3.3.1</a>
+ <a href="#a-607213078">3.3.1</a>
Text merging tool
</h3>
@@ -631,11 +639,11 @@
<hr style="display: none"/>
<div id="setup.inst" class="section">
<h2 class="title">
- <a href="#a-607711698">3.4</a>
+ <a href="#a-607225558">3.4</a>
Installation
</h2>
@@ -645,34 +653,34 @@
<pre>
$ gem env gemdir
/usr/lib/ruby/gems/1.8
-$ ls -d /usr/lib/ruby/gems/1.8/gems/ruby-vpi*
+$ ls -d `gem env gemdir`/gems/ruby-vpi*
/usr/lib/ruby/gems/1.8/gems/ruby-vpi-7.0.0/
</pre>
<p>
<hr style="display: none"/>
<div class="admonition">
- <div class="note" id="Tuning_for_maximum_performance">
- <img src="images/tango/note.png" alt="note" class="icon"/>
+ <div class="tip" id="Tuning_for_maximum_performance">
+ <img src="images/tango/tip.png" alt="tip" class="icon"/>
- <p class="title"><a href="#a-607705108">Note 1</a>. Tuning for maximum performance</p>
+ <p class="title"><a href="#a-607218968">Tip 2</a>. Tuning for maximum performance</p>
You can tune your installation of Ruby-VPI for maximum performance by adding your C compiler’s optimization flag to the <code class="code"><span style="color:#036; font-weight:bold">CFLAGS</span></code> environment variable <em>before</em> you run the <pre>gem install -y ruby-vpi</pre> command. For example, if your C compiler is GCC, then you can set <code class="code"><span style="color:#036; font-weight:bold">CFLAGS</span></code> to <tt>-O9</tt> for maximum optimization.
</div>
</div>
<hr style="display: none"/>
<div id="setup.inst.windows" class="section">
<h3 class="title">
- <a href="#a-607707638">3.4.1</a>
+ <a href="#a-607221498">3.4.1</a>
Installing on Windows
</h3>
@@ -719,11 +727,11 @@
<hr style="display: none"/>
<div id="setup.maintenance" class="section">
<h2 class="title">
- <a href="#a-607713978">3.5</a>
+ <a href="#a-607227838">3.5</a>
Maintenance
</h2>
@@ -743,11 +751,11 @@
<hr style="display: none"/>
<div id="organization" class="chapter">
<h1 class="title">
- Chapter <a href="#a-607211338">4</a>
+ Chapter <a href="#a-607196488">4</a>
<br/><br/>
<big>Organization</big>
</h1>
@@ -763,11 +771,11 @@
<div class="formal">
<div class="figure" id="fig:organization.detail">
- <p class="title"><a href="#a-607731018">Figure 1</a>. Where does Ruby-VPI fit in?</p>
+ <p class="title"><a href="#a-607244878">Figure 1</a>. Where does Ruby-VPI fit in?</p>
<img src="figures/organization_detailed.png" alt="" />
</div>
</div>
@@ -777,11 +785,11 @@
<p>
<hr style="display: none"/>
<div id="overview.relay" class="section">
<h2 class="title">
- <a href="#a-607737308">4.1</a>
+ <a href="#a-607251168">4.1</a>
Ruby/Verilog interaction
</h2>
@@ -800,11 +808,11 @@
<div class="formal">
<div class="figure" id="fig:ruby_relay">
- <p class="title"><a href="#a-607733828">Figure 2</a>. Interaction between Ruby and Verilog</p>
+ <p class="title"><a href="#a-607247688">Figure 2</a>. Interaction between Ruby and Verilog</p>
<img src="figures/ruby_relay.png" alt="" />
<ol>
@@ -826,11 +834,11 @@
<hr style="display: none"/>
<div id="organization.tests" class="section">
<h2 class="title">
- <a href="#a-607073988">4.2</a>
+ <a href="#a-607256738">4.2</a>
Tests
</h2>
@@ -843,11 +851,11 @@
<div class="formal">
<div class="figure" id="fig:organization">
- <p class="title"><a href="#a-607070888">Figure 3</a>. Organization of a test in Ruby-VPI</p>
+ <p class="title"><a href="#a-607253638">Figure 3</a>. Organization of a test in Ruby-VPI</p>
<img src="figures/organization.png" alt="" />
</div>
</div>
@@ -866,11 +874,11 @@
<p>
<hr style="display: none"/>
<div id="VPI_in_Ruby" class="section">
<h2 class="title">
- <a href="#a-607153008">4.3</a>
+ <a href="#a-607326178">4.3</a>
VPI in Ruby
</h2>
@@ -878,11 +886,11 @@
<hr style="display: none"/>
<div id="Deviations_from_the_VPI_standard" class="section">
<h3 class="title">
- <a href="#a-607082938">4.3.1</a>
+ <a href="#a-607265658">4.3.1</a>
Deviations from the VPI standard
</h3>
@@ -893,11 +901,11 @@
<p>
<hr style="display: none"/>
<div id="Names_are_capitalized" class="section">
<h4 class="title">
- <a href="#a-607076508">4.3.1.1</a>
+ <a href="#a-607259228">4.3.1.1</a>
Names are capitalized
</h4>
@@ -914,22 +922,22 @@
<p>
<hr style="display: none"/>
<div id="a_vprintf__is__printf_" class="section">
<h4 class="title">
- <a href="#a-607079008">4.3.1.2</a>
+ <a href="#a-607261728">4.3.1.2</a>
<code class="code">vprintf</code> is <code class="code">printf</code>
</h4>
The <code class="code">vpi_vprintf</code> and <code class="code">vpi_mcd_vprintf</code> VPI functions are aliased to <code class="code">vpi_printf</code> and <code class="code">vpi_mcd_printf</code> respectively because:
<ul>
- <li>Ruby represents <a href="http://www.rubycentral.com/book/tut_methods.html#UA">variable argument lists as arrays</a> instead of defining a special datatype, such as <code class="code">va_list</code>, for them.</li>
+ <li>Ruby represents <a href="http://phrogz.net/ProgrammingRuby/tut_methods.html#variablelengthargumentlists">variable argument lists as arrays</a> instead of defining a special datatype, such as <code class="code">va_list</code>, for them.</li>
</ul>
<ul>
<li>Some C compilers have trouble with pointers to the <code class="code">va_list</code> type. For these compilers, the third line of source code shown below causes a “type mismatch” error.</li>
@@ -951,11 +959,11 @@
<hr style="display: none"/>
<div id="vpi.handles" class="section">
<h3 class="title">
- <a href="#a-607114548">4.3.2</a>
+ <a href="#a-607291198">4.3.2</a>
Handles
</h3>
@@ -980,11 +988,11 @@
<p>
<hr style="display: none"/>
<div id="Accessing_a_handle_s_relatives" class="section">
<h4 class="title">
- <a href="#a-607088158">4.3.2.2</a>
+ <a href="#a-607270878">4.3.2.2</a>
Accessing a handle’s relatives
</h4>
@@ -1017,11 +1025,11 @@
<p>
<hr style="display: none"/>
<div id="Accessing_a_handle_s_properties" class="section">
<h4 class="title">
- <a href="#a-607091098">4.3.2.3</a>
+ <a href="#a-607273818">4.3.2.3</a>
Accessing a handle’s properties
</h4>
@@ -1060,11 +1068,11 @@
<div class="formal">
<div class="figure" id="fig:method_naming_format">
- <p class="title"><a href="#a-607093898">Figure 4</a>. Method naming format for accessing a handle’s properties</p>
+ <p class="title"><a href="#a-607276618">Figure 4</a>. Method naming format for accessing a handle’s properties</p>
<table>
<tr>
<th>Operation </th>
<th>_ </th>
@@ -1113,11 +1121,11 @@
<div class="formal">
<div class="table" id="tbl:accessors">
- <p class="title"><a href="#a-607096328">Table 1</a>. Possible accessors and their implications</p>
+ <p class="title"><a href="#a-607279048">Table 1</a>. Possible accessors and their implications</p>
<table>
<tr>
<th>Accessor </th>
<th>Kind of value accessed </th>
@@ -1167,11 +1175,11 @@
<div class="formal">
<div class="table" id="ex:properties">
- <p class="title"><a href="#a-607099288">Table 2</a>. Examples of accessing a handle’s properties</p>
+ <p class="title"><a href="#a-607281988">Table 2</a>. Examples of accessing a handle’s properties</p>
<table>
<tr>
<th rowspan="2">Ruby expression </th>
<th colspan="6">Method naming format </th>
@@ -1492,11 +1500,11 @@
<hr style="display: none"/>
<div id="vpi.callbacks" class="section">
<h3 class="title">
- <a href="#a-607126458">4.3.3</a>
+ <a href="#a-607299628">4.3.3</a>
Callbacks
</h3>
@@ -1512,11 +1520,11 @@
<div class="formal">
<div class="example" id="ex:callback">
- <p class="title"><a href="#a-607121788">Example 1</a>. Using a callback for value change notification</p>
+ <p class="title"><a href="#a-607295148">Example 1</a>. Using a callback for value change notification</p>
<p>This example shows how to use a callback for notification of changes in a handle’s <code class="code"><span style="color:#036; font-weight:bold">VpiIntVal</span></code> property. When you no longer need this callback, you can tear it down using <code class="code">vpi_remove_cb(cb_handle)</code>.</p>
<p>In this example, the handle being monitored is the <code class="code"><span style="color:#036; font-weight:bold">Counter</span>.count</code> signal from <a href="#fig:counter.v_decl">Example 3</a>.</p>
@@ -1561,11 +1569,11 @@
<hr style="display: none"/>
<div id="usage" class="chapter">
<h1 class="title">
- Chapter <a href="#a-607321458">5</a>
+ Chapter <a href="#a-607334198">5</a>
<br/><br/>
<big>Usage</big>
</h1>
@@ -1573,11 +1581,11 @@
<hr style="display: none"/>
<div id="usage.prototyping" class="section">
<h2 class="title">
- <a href="#a-607223668">5.1</a>
+ <a href="#a-607215298">5.1</a>
Prototyping
</h2>
@@ -1615,11 +1623,11 @@
<hr style="display: none"/>
<div id="How_does_prototyping_work_" class="section">
<h3 class="title">
- <a href="#a-607218048">5.1.2</a>
+ <a href="#a-607205498">5.1.2</a>
How does prototyping work?
</h3>
@@ -1637,11 +1645,11 @@
<hr style="display: none"/>
<div id="usage.debugger" class="section">
<h2 class="title">
- <a href="#a-607229298">5.2</a>
+ <a href="#a-607224358">5.2</a>
Debugging
</h2>
@@ -1658,11 +1666,11 @@
<p>
<hr style="display: none"/>
<div id="usage.debugger.init" class="section">
<h3 class="title">
- <a href="#a-607226228">5.2.1</a>
+ <a href="#a-607219398">5.2.1</a>
Advanced initialization
</h3>
@@ -1683,11 +1691,11 @@
<hr style="display: none"/>
<div id="usage.test-runner" class="section">
<h2 class="title">
- <a href="#a-607246068">5.3</a>
+ <a href="#a-607246938">5.3</a>
Test runner
</h2>
@@ -1696,11 +1704,11 @@
<p>When you invoke a test runner without any arguments, it will show you a list of available tasks:
<pre>$ rake -f your_test_runner.rake
-(in /home/sun/tmp/ruby-vpi/doc)
+(in /home/sun/src/ruby-vpi/doc)
rake clean # Remove any temporary products.
rake clobber # Remove any generated file.
rake cver # Simulate with GPL Cver.
rake default # Show a list of available tasks.
rake ivl # Simulate with Icarus Verilog.
@@ -1713,11 +1721,11 @@
<p>
<hr style="display: none"/>
<div id="usage.test-runner.env-vars" class="section">
<h3 class="title">
- <a href="#a-607238958">5.3.1</a>
+ <a href="#a-607236808">5.3.1</a>
Environment variables
</h3>
@@ -1760,11 +1768,11 @@
<div class="formal">
<div class="example" id="Running_a_test_with_environment_variables">
- <p class="title"><a href="#a-607234788">Example 2</a>. Running a test with environment variables</p>
+ <p class="title"><a href="#a-607232388">Example 2</a>. Running a test with environment variables</p>
<p>Below, we enable the prototype and code coverage analysis:
<pre>rake -f your_test_runner.rake PROTOTYPE=1 COVERAGE=1</pre></p>
@@ -1784,11 +1792,11 @@
<hr style="display: none"/>
<div id="usage.tools" class="section">
<h2 class="title">
- <a href="#a-607265218">5.4</a>
+ <a href="#a-607278778">5.4</a>
Tools
</h2>
@@ -1820,11 +1828,11 @@
<p>
<hr style="display: none"/>
<div id="usage.tools.generate" class="section">
<h3 class="title">
- <a href="#a-607255398">5.4.1</a>
+ <a href="#a-607262938">5.4.1</a>
Automated test generation
</h3>
@@ -1850,11 +1858,11 @@
<div class="admonition">
<div class="caution" id="Do_not_rename_generated_files">
<img src="images/tango/caution.png" alt="caution" class="icon"/>
- <p class="title"><a href="#a-607248828">Caution 1</a>. Do not rename generated files</p>
+ <p class="title"><a href="#a-607250958">Caution 1</a>. Do not rename generated files</p>
Ruby-VPI uses the convention described above to dynamically create a direct Ruby interface to the design under test, so <em>do not</em> rename the generated files arbitrarily.
</div>
</div>
@@ -1869,11 +1877,11 @@
<div class="admonition">
<div class="tip" id="Using__kdiff3__with_the_automated_test_generator.">
<img src="images/tango/tip.png" alt="tip" class="icon"/>
- <p class="title"><a href="#a-607251318">Tip 2</a>. Using <strong>kdiff3</strong> with the automated test generator.</p>
+ <p class="title"><a href="#a-607255718">Tip 3</a>. Using <strong>kdiff3</strong> with the automated test generator.</p>
<ol>
<li>Create a file named <tt>merge2</tt> with the following content: <pre class="code">
<span style="color:#888">#!/bin/sh</span>
<span style="color:#888"># args: old file, new file</span>
@@ -1895,11 +1903,11 @@
<hr style="display: none"/>
<div id="usage.tools.convert" class="section">
<h3 class="title">
- <a href="#a-607257688">5.4.2</a>
+ <a href="#a-607265448">5.4.2</a>
Verilog to Ruby conversion
</h3>
@@ -1917,27 +1925,27 @@
<hr style="display: none"/>
<div id="usage.examples" class="section">
<h2 class="title">
- <a href="#a-607267438">5.5</a>
+ <a href="#a-607282618">5.5</a>
Sample tests
</h2>
- The <tt>samp</tt> directory contains several sample tests which illustrate how Ruby-VPI can be used. Each sample has an associated <tt>Rakefile</tt> which simplifies the process of running it. Therefore, simply navigate into an example directory and run the <pre>rake</pre> command to get started.
+ The <tt>samp</tt> directory (<a href="http://ruby-vpi.rubyforge.org/src/ruby-vpi//samp/">browse it online</a>) contains several sample tests which illustrate how Ruby-VPI can be used. Each sample has an associated <tt>Rakefile</tt> which simplifies the process of running it. Therefore, simply navigate into an example directory and run the <pre>rake</pre> command to get started.
</div>
<hr style="display: none"/>
<div id="usage.tutorial" class="section">
<h2 class="title">
- <a href="#a-607188458">5.6</a>
+ <a href="#a-607395798">5.6</a>
Tutorial
</h2>
@@ -1956,11 +1964,11 @@
<p>
<hr style="display: none"/>
<div id="usage.tutorial.declare-design" class="section">
<h3 class="title">
- <a href="#a-607274848">5.6.1</a>
+ <a href="#a-607290888">5.6.1</a>
Start with a Verilog design
</h3>
@@ -1981,11 +1989,11 @@
<div class="formal">
<div class="example" id="fig:counter.v_decl">
- <p class="title"><a href="#a-607271338">Example 3</a>. Declaration of a simple up-counter with synchronous reset</p>
+ <p class="title"><a href="#a-607287308">Example 3</a>. Declaration of a simple up-counter with synchronous reset</p>
<pre class="code" lang="verilog">
module counter #(parameter Size = 5) (
input clock,
input reset,
@@ -2005,11 +2013,11 @@
<p>
<hr style="display: none"/>
<div id="usage.tutorial.generate-test" class="section">
<h3 class="title">
- <a href="#a-607081228">5.6.2</a>
+ <a href="#a-607305468">5.6.2</a>
Generate a test
</h3>
@@ -2041,11 +2049,11 @@
<div class="formal">
<div class="example" id="fig:generate-test.RSpec">
- <p class="title"><a href="#a-607278188">Example 4</a>. Generating a test with specification in RSpec format</p>
+ <p class="title"><a href="#a-607296778">Example 4</a>. Generating a test with specification in RSpec format</p>
<pre>
$ ruby-vpi generate counter.v --RSpec
module counter
@@ -2063,11 +2071,11 @@
<div class="formal">
<div class="example" id="fig:generate-test.xUnit">
- <p class="title"><a href="#a-607073088">Example 5</a>. Generating a test with specification in xUnit format</p>
+ <p class="title"><a href="#a-607299658">Example 5</a>. Generating a test with specification in xUnit format</p>
<pre>
$ ruby-vpi generate counter.v --xUnit
module counter
@@ -2088,11 +2096,11 @@
<p>
<hr style="display: none"/>
<div id="usage.tutorial.specification" class="section">
<h3 class="title">
- <a href="#a-607098358">5.6.3</a>
+ <a href="#a-607315968">5.6.3</a>
Specify your expectations
</h3>
@@ -2116,11 +2124,11 @@
<div class="formal">
<div class="example" id="fig:RSpec_counter_spec.rb">
- <p class="title"><a href="#a-607085368">Example 6</a>. Specification implemented in RSpec format</p>
+ <p class="title"><a href="#a-607308538">Example 6</a>. Specification implemented in RSpec format</p>
<pre class="code">require <span style="background-color:#fff0f0"><span style="color:#710">'</span><span style="color:#D20">spec</span><span style="color:#710">'</span></span>
<span style="color:#888"># lowest upper bound of counter's value</span>
<span style="color:#036; font-weight:bold">LIMIT</span> = <span style="color:#00D; font-weight:bold">2</span> ** <span style="color:#036; font-weight:bold">Counter</span>::<span style="color:#036; font-weight:bold">Size</span>
@@ -2168,11 +2176,11 @@
<div class="formal">
<div class="example" id="fig:xUnit_counter_spec.rb">
- <p class="title"><a href="#a-607089898">Example 7</a>. Specification implemented in xUnit format</p>
+ <p class="title"><a href="#a-607310978">Example 7</a>. Specification implemented in xUnit format</p>
<pre class="code">require <span style="background-color:#fff0f0"><span style="color:#710">'</span><span style="color:#D20">test/unit</span><span style="color:#710">'</span></span>
<span style="color:#888"># lowest upper bound of counter's value</span>
<span style="color:#036; font-weight:bold">LIMIT</span> = <span style="color:#00D; font-weight:bold">2</span> ** <span style="color:#036; font-weight:bold">Counter</span>::<span style="color:#036; font-weight:bold">Size</span>
@@ -2217,26 +2225,10 @@
Before we continue,
<ol>
<li>Replace the contents of the file named <tt>RSpec/counter_spec.rb</tt> with the source code shown in <a href="#fig:RSpec_counter_spec.rb">Example 6</a>.</li>
<li>Replace the contents of the file named <tt>xUnit/counter_spec.rb</tt> with the source code shown in <a href="#fig:xUnit_counter_spec.rb">Example 7</a>.</li>
- <li>Replace the contents of the files named <tt>RSpec/counter_design.rb</tt> and <tt>xUnit/counter_design.rb</tt> with the following code. <pre class="code">
-<span style="color:#888"># Simulates the design under test for one clock cycle.</span>
-<span style="color:#080; font-weight:bold">def</span> <span style="color:#06B; font-weight:bold">cycle!</span>
- clock.high!
- advance_time
- clock.low!
- advance_time
-<span style="color:#080; font-weight:bold">end</span>
-
-<span style="color:#888"># Brings the design under test into a blank state.</span>
-<span style="color:#080; font-weight:bold">def</span> <span style="color:#06B; font-weight:bold">reset!</span>
- reset.high!
- cycle!
- reset.low!
-<span style="color:#080; font-weight:bold">end</span>
-</pre></li>
</ol>
</div>
</p>
@@ -2244,11 +2236,11 @@
<p>
<hr style="display: none"/>
<div id="usage.tutorial.implement-proto" class="section">
<h3 class="title">
- <a href="#a-607106078">5.6.4</a>
+ <a href="#a-607322378">5.6.4</a>
Implement the prototype
</h3>
@@ -2261,11 +2253,11 @@
<div class="formal">
<div class="example" id="fig:counter_proto.rb">
- <p class="title"><a href="#a-607102138">Example 8</a>. Ruby prototype of our Verilog design</p>
+ <p class="title"><a href="#a-607318638">Example 8</a>. Ruby prototype of our Verilog design</p>
<pre class="code"><span style="color:#888"># Ruby prototype of the design under test's Verilog implementation.</span>
<span style="color:#080; font-weight:bold">def</span> <span style="color:#06B; font-weight:bold">feign!</span>
<span style="color:#080; font-weight:bold">if</span> clock.posedge?
<span style="color:#080; font-weight:bold">if</span> reset.high?
@@ -2288,11 +2280,11 @@
<p>
<hr style="display: none"/>
<div id="usage.tutorial.test-proto" class="section">
<h3 class="title">
- <a href="#a-607132558">5.6.5</a>
+ <a href="#a-607341078">5.6.5</a>
Verify the prototype
</h3>
@@ -2308,11 +2300,11 @@
<div class="formal">
<div class="example" id="fig:test-proto.RSpec">
- <p class="title"><a href="#a-607119008">Example 9</a>. Running a test with specification in RSpec format</p>
+ <p class="title"><a href="#a-607325878">Example 9</a>. Running a test with specification in RSpec format</p>
<pre>
$ cd RSpec
$ rake cver PROTOTYPE=1
@@ -2332,11 +2324,11 @@
<div class="formal">
<div class="example" id="fig:test-proto.unit-test">
- <p class="title"><a href="#a-607123158">Example 10</a>. Running a test with specification in xUnit format</p>
+ <p class="title"><a href="#a-607330448">Example 10</a>. Running a test with specification in xUnit format</p>
<pre>
$ cd xUnit
$ rake cver PROTOTYPE=1
@@ -2356,11 +2348,11 @@
<div class="admonition">
<div class="tip" id="What_can_the_test_runner_do_">
<img src="images/tango/tip.png" alt="tip" class="icon"/>
- <p class="title"><a href="#a-607126068">Tip 3</a>. What can the test runner do?</p>
+ <p class="title"><a href="#a-607335018">Tip 4</a>. What can the test runner do?</p>
If you invoke the test runner (1) without any arguments or (2) with the <tt>--tasks</tt> option, it will show you a list of tasks that it can perform for you.
</div>
</div>
</p>
@@ -2372,11 +2364,11 @@
<p>
<hr style="display: none"/>
<div id="usage.tutorial.implement-design" class="section">
<h3 class="title">
- <a href="#a-607138718">5.6.6</a>
+ <a href="#a-607349478">5.6.6</a>
Implement the design
</h3>
@@ -2389,11 +2381,11 @@
<div class="formal">
<div class="example" id="fig:counter.v_impl">
- <p class="title"><a href="#a-607135238">Example 11</a>. Implementation of a simple up-counter with synchronous reset</p>
+ <p class="title"><a href="#a-607343828">Example 11</a>. Implementation of a simple up-counter with synchronous reset</p>
<pre class="code" lang="verilog">/**
A simple up-counter with synchronous reset.
@param Size Number of bits used to represent the counter's value.
@@ -2426,11 +2418,11 @@
<p>
<hr style="display: none"/>
<div id="usage.tutorial.test-design" class="section">
<h3 class="title">
- <a href="#a-607149178">5.6.7</a>
+ <a href="#a-607359608">5.6.7</a>
Verify the design
</h3>
@@ -2446,11 +2438,11 @@
<div class="formal">
<div class="example" id="fig:test-design.RSpec">
- <p class="title"><a href="#a-607141778">Example 12</a>. Running a test with specification in RSpec format</p>
+ <p class="title"><a href="#a-607352688">Example 12</a>. Running a test with specification in RSpec format</p>
<pre>
$ cd RSpec
$ rake cver
@@ -2468,11 +2460,11 @@
<div class="formal">
<div class="example" id="fig:test-design.unit-test">
- <p class="title"><a href="#a-607144398">Example 13</a>. Running a test with specification in xUnit format</p>
+ <p class="title"><a href="#a-607355168">Example 13</a>. Running a test with specification in xUnit format</p>
<pre>
$ cd xUnit
$ rake cver
@@ -2497,11 +2489,11 @@
<hr style="display: none"/>
<div id="hacking" class="chapter">
<h1 class="title">
- Chapter <a href="#a-607333248">6</a>
+ Chapter <a href="#a-607351098">6</a>
<br/><br/>
<big>Hacking</big>
</h1>
@@ -2509,11 +2501,11 @@
<p>
<hr style="display: none"/>
<div id="hacking.scm" class="section">
<h2 class="title">
- <a href="#a-607323788">6.1</a>
+ <a href="#a-607337768">6.1</a>
Getting the source code
</h2>
@@ -2530,11 +2522,11 @@
<p>
<hr style="display: none"/>
<div id="hacking.release-packages" class="section">
<h2 class="title">
- <a href="#a-607326418">6.2</a>
+ <a href="#a-607340498">6.2</a>
Building release packages
</h2>
@@ -2558,11 +2550,11 @@
<p>
<hr style="display: none"/>
<div id="hacking.manual" class="section">
<h2 class="title">
- <a href="#a-607328648">6.3</a>
+ <a href="#a-607344628">6.3</a>
Editing this manual
</h2>
@@ -2576,11 +2568,11 @@
<hr style="display: none"/>
<div id="problems" class="chapter">
<h1 class="title">
- Chapter <a href="#a-607380138">7</a>
+ Chapter <a href="#a-607417768">7</a>
<br/><br/>
<big>Known problems</big>
</h1>
@@ -2591,43 +2583,46 @@
<p>
<hr style="display: none"/>
<div id="problem.ivl" class="section">
<h2 class="title">
- <a href="#a-607358828">7.1</a>
+ <a href="#a-607385318">7.1</a>
Icarus Verilog
</h2>
-
-<hr style="display: none"/>
+ <p>The following sections describe problems that occur when Icarus Verilog is used with Ruby-VPI.</p>
-<div id="problems.ivl.vpi_handle_by_name.absolute-paths" class="section">
- <h3 class="title">
- <a href="#a-607339198">7.1.1</a>
-
+ <p>
+ <hr style="display: none"/>
- Give full paths to Verilog objects
- </h3>
+ <div id="problems.ivl.vpi_handle_by_name.absolute-paths" class="section">
+ <h3 class="title">
+ <a href="#a-607359978">7.1.1</a>
- <p>In version 0.8 and snapshot 20061009 of Icarus Verilog, the <code class="code">vpi_handle_by_name</code> function requires an <em>absolute</em> path (including the name of the bench which instantiates the design) to a Verilog object. In addition, <code class="code">vpi_handle_by_name</code> always returns <code class="code"><span style="color:#038; font-weight:bold">nil</span></code> when its second parameter is specified.</p>
+
+ Give full paths to Verilog objects
+ </h3>
+ <p>In version 0.8 and snapshot 20061009 of Icarus Verilog, the <code class="code">vpi_handle_by_name</code> function requires an <em>absolute</em> path (including the name of the bench which instantiates the design) to a Verilog object. In addition, <code class="code">vpi_handle_by_name</code> always returns <code class="code"><span style="color:#038; font-weight:bold">nil</span></code> when its second parameter is specified.</p>
+
+
<p>For example, consider <a href="#ex:TestFoo">Example 14</a>. Here, one must write <code class="code">vpi_handle_by_name(<span style="background-color:#fff0f0"><span style="color:#710">"</span><span style="color:#D20">TestFoo.my_foo.clk</span><span style="color:#710">"</span></span>, <span style="color:#038; font-weight:bold">nil</span>)</code> instead of <code class="code">vpi_handle_by_name(<span style="background-color:#fff0f0"><span style="color:#710">"</span><span style="color:#D20">my_foo.clk</span><span style="color:#710">"</span></span>, <span style="color:#036; font-weight:bold">TestFoo</span>)</code> in order to access the <code class="code">clk</code> input of the <code class="code">my_foo</code> module instance.</p>
<p>
<hr style="display: none"/>
<div class="formal">
<div class="example" id="ex:TestFoo">
- <p class="title"><a href="#a-607336038">Example 14</a>. Part of a bench which instantiates a Verilog design</p>
+ <p class="title"><a href="#a-607355728">Example 14</a>. Part of a bench which instantiates a Verilog design</p>
<pre class="code" lang="verilog">
module TestFoo;
reg clk_reg;
Foo my_foo(.clk(clk_reg));
@@ -2635,18 +2630,18 @@
</pre>
</div>
</div>
</p>
-</div>
-
+ </div>
+
<hr style="display: none"/>
<div id="problems.ivl.vpi_handle_by_name.connect-registers" class="section">
<h3 class="title">
- <a href="#a-607348888">7.1.2</a>
+ <a href="#a-607371468">7.1.2</a>
Registers must be connected
</h3>
@@ -2665,11 +2660,11 @@
<div class="formal">
<div class="example" id="ex:TestFoo_bad">
- <p class="title"><a href="#a-607342098">Example 15</a>. Bad design with unconnected registers</p>
+ <p class="title"><a href="#a-607364178">Example 15</a>. Bad design with unconnected registers</p>
Here the <code class="code">clk_reg</code> register is not connected to anything.
<pre class="code" lang="verilog">
@@ -2685,11 +2680,11 @@
<div class="formal">
<div class="example" id="ex:TestFoo_fix">
- <p class="title"><a href="#a-607344538">Example 16</a>. Fixed design with wired registers</p>
+ <p class="title"><a href="#a-607366888">Example 16</a>. Fixed design with wired registers</p>
Here the <code class="code">clk_reg</code> register is connected to the <code class="code">clk_wire</code> wire.
<pre class="code" lang="verilog">
@@ -2704,36 +2699,76 @@
</p>
</div>
+ <hr style="display: none"/>
+
+ <div id="problems.ivl.vpi_reset" class="section">
+ <h3 class="title">
+ <a href="#a-607373948">7.1.3</a>
+
+
+
+ Vpi::reset
+ </h3>
+
+ In version 0.8 of Icarus Verilog, the <code class="code">vpi_control(vpiReset)</code> VPI function causes an assertion to fail inside the simulator. As a result, the simulation terminates and a core dump is produced.
+
+ </div>
+</p>
+
</div>
<hr style="display: none"/>
- <div id="problems.ivl.vpi_reset" class="section">
+ <div id="problem.ncsim" class="section">
<h2 class="title">
- <a href="#a-607361048">7.2</a>
+ <a href="#a-607390998">7.2</a>
- Vpi::reset
+ Cadence NC-Sim
</h2>
- In version 0.8 of Icarus Verilog, the <code class="code">vpi_control(vpiReset)</code> VPI function causes an assertion to fail inside the simulator. As a result, the simulation terminates and a core dump is produced.
+ <p>The following sections describe problems that occur when Cadence NC-Sim (version 05.83-s003) is used with Ruby-VPI.</p>
+
+ <p>
+ <hr style="display: none"/>
+
+ <div id="problem.ncsim.vpiForceFlag" class="section">
+ <h3 class="title">
+ <a href="#a-607387788">7.2.1</a>
+
+
+
+ Cannot force values onto handles
+ </h3>
+
+ <p>When you write to a handle’s value using <code class="code">vpi_put_value()</code> with the <code class="code"><span style="color:#036; font-weight:bold">VpiForceFlag</span></code> propagation parameter, it does not have any effect. As a result, the “register_file” sample test fails when you run it with NC-Sim.</p>
+
+
+ <p>This might be a bug in NC-Sim itself: even though I specified the “+access+rwc” command-line option for NC-Sim, I’m thinking that the force/release capability is not really enabled. However, it’s more likely that there’s a bug in the “register_file” sample test.</p>
+
+
+ <p>If you happen to know the solution, please tell me either on the project forums or via e-mail (see the LICENSE file for my e-mail address). Thanks.</p>
+
+ </div>
+</p>
+
</div>
</p>
</div>
<hr style="display: none"/>
<div id="glossary" class="chapter">
<h1 class="title">
- Chapter <a href="#a-607138038">8</a>
+ Chapter <a href="#a-607450218">8</a>
<br/><br/>
<big>Glossary</big>
</h1>
@@ -2741,11 +2776,11 @@
<hr style="display: none"/>
<div id="glossary.test" class="section">
<h2 class="title">
- <a href="#a-607382968">8.1</a>
+ <a href="#a-607420598">8.1</a>
Test
</h2>
@@ -2757,11 +2792,11 @@
<hr style="display: none"/>
<div id="glossary.design" class="section">
<h2 class="title">
- <a href="#a-607385468">8.2</a>
+ <a href="#a-607423098">8.2</a>
Design
</h2>
@@ -2773,11 +2808,11 @@
<hr style="display: none"/>
<div id="glossary.specification" class="section">
<h2 class="title">
- <a href="#a-607076108">8.3</a>
+ <a href="#a-607425858">8.3</a>
Specification
</h2>
@@ -2789,11 +2824,11 @@
<hr style="display: none"/>
<div id="glossary.expectation" class="section">
<h2 class="title">
- <a href="#a-607080598">8.4</a>
+ <a href="#a-607428078">8.4</a>
Expectation
</h2>
@@ -2805,11 +2840,11 @@
<hr style="display: none"/>
<div id="glossary.handle" class="section">
<h2 class="title">
- <a href="#a-607087288">8.5</a>
+ <a href="#a-607430558">8.5</a>
Handle
</h2>
@@ -2821,11 +2856,11 @@
<hr style="display: none"/>
<div id="glossary.rake" class="section">
<h2 class="title">
- <a href="#a-607093708">8.6</a>
+ <a href="#a-607432818">8.6</a>
Rake
</h2>
@@ -2842,30 +2877,30 @@
<hr style="display: none"/>
<div id="glossary.RSpec" class="section">
<h2 class="title">
- <a href="#a-607099278">8.7</a>
+ <a href="#a-607435358">8.7</a>
RSpec
</h2>
<p>The <a href="#glossary.BDD">BDD</a> framework for Ruby.</p>
- <p>See the <a href="http://rspec.rubyforge.org">RSpec website</a> and <a href="http://rspec.rubyforge.org/tutorials/index.html">tutorial</a> for more information.</p>
+ <p>See the <a href="http://rspec.rubyforge.org">RSpec website</a> and <a href="http://rspec.rubyforge.org/documentation/index.html">tutorial</a> for more information.</p>
</div>
<hr style="display: none"/>
<div id="glossary.TDD" class="section">
<h2 class="title">
- <a href="#a-607104428">8.8</a>
+ <a href="#a-607437618">8.8</a>
Test driven development
</h2>
@@ -2880,11 +2915,11 @@
<hr style="display: none"/>
<div id="glossary.BDD" class="section">
<h2 class="title">
- <a href="#a-607113088">8.9</a>
+ <a href="#a-607439878">8.9</a>
Behavior driven development
</h2>
@@ -2900,55 +2935,52 @@
</div>
<hr style="display: none"/>
<div id="toc">
<h1 id="toc:contents">Contents</h1>
- <ul><li><span class="hide">1 </span><a id="a-607611558" href="#Ruby-VPI_17.0.0_user_manual">Ruby-VPI 17.0.0 user manual</a><ul><li><span class="hide">1.1 </span><a id="a-607604718" href="#About_this_manual">About this manual</a></li><li><span class="hide">1.2 </span><a id="a-607607248" href="#Legal_notice">Legal notice</a></li></ul></li><li><span class="hide">2 </span><a id="a-607687748" href="#intro">Welcome</a><ul><li><span class="hide">2.1 </span><a id="a-607624238" href="#resources">Resources</a><ul><li><span class="hide">2.1.1 </span><a id="a-607614278" href="#Records">Records</a></li><li><span class="hide">2.1.2 </span><a id="a-607616618" href="#Documentation">Documentation</a></li><li><span class="hide">2.1.3 </span><a id="a-607619258" href="#Facilities">Facilities</a></li></ul></li><li><span class="hide">2.2 </span><a id="a-607636548" href="#intro.features">Features</a><ul><li><span class="hide">2.2.1 </span><a id="a-607626878" href="#Portable">Portable</a></li><li><span class="hide">2.2.2 </span><a id="a-607629278" href="#Agile">Agile</a></li><li><span class="hide">2.2.3 </span><a id="a-607631678" href="#Powerful">Powerful</a></li></ul></li><li><span class="hide">2.3 </span><a id="a-607648378" href="#intro.reqs">Requirements</a><ul><li><span class="hide">2.3.1 </span><a id="a-607639108" href="#Verilog_simulator">Verilog simulator</a></li><li><span class="hide">2.3.2 </span><a id="a-607641448" href="#Compilers">Compilers</a></li><li><span class="hide">2.3.3 </span><a id="a-607643748" href="#Libraries">Libraries</a></li></ul></li><li><span class="hide">2.4 </span><a id="a-607650938" href="#intro.applications">Applications</a></li><li><span class="hide">2.5 </span><a id="a-607653538" href="#intro.appetizers">Appetizers</a></li><li><span class="hide">2.6 </span><a id="a-607656258" href="#intro.license">License</a></li><li><span class="hide">2.7 </span><a id="a-607661648" href="#intro.related-works">Related works</a><ul><li><span class="hide">2.7.1 </span><a id="a-607658708" href="#intro.related-works.pli">Ye olde PLI</a></li></ul></li></ul></li><li><span class="hide">3 </span><a id="a-607728418" href="#setup">Setup</a><ul><li><span class="hide">3.1 </span><a id="a-607690938" href="#setup.manifest">Manifest</a></li><li><span class="hide">3.2 </span><a id="a-607696378" href="#setup.reqs">Requirements</a></li><li><span class="hide">3.3 </span><a id="a-607702548" href="#setup.recom">Recommendations</a><ul><li><span class="hide">3.3.1 </span><a id="a-607699208" href="#setup.recom.merger">Text merging tool</a></li></ul></li><li><span class="hide">3.4 </span><a id="a-607711698" href="#setup.inst">Installation</a><ul><li><span class="hide">3.4.1 </span><a id="a-607707638" href="#setup.inst.windows">Installing on Windows</a></li></ul></li><li><span class="hide">3.5 </span><a id="a-607713978" href="#setup.maintenance">Maintenance</a></li></ul></li><li><span class="hide">4 </span><a id="a-607211338" href="#organization">Organization</a><ul><li><span class="hide">4.1 </span><a id="a-607737308" href="#overview.relay">Ruby/Verilog interaction</a></li><li><span class="hide">4.2 </span><a id="a-607073988" href="#organization.tests">Tests</a></li><li><span class="hide">4.3 </span><a id="a-607153008" href="#VPI_in_Ruby">VPI in Ruby</a><ul><li><span class="hide">4.3.1 </span><a id="a-607082938" href="#Deviations_from_the_VPI_standard">Deviations from the VPI standard</a><ul><li><span class="hide">4.3.1.1 </span><a id="a-607076508" href="#Names_are_capitalized">Names are capitalized</a></li><li><span class="hide">4.3.1.2 </span><a id="a-607079008" href="#a_vprintf__is__printf_"><code class="code">vprintf</code> is <code class="code">printf</code></a></li></ul></li><li><span class="hide">4.3.2 </span><a id="a-607114548" href="#vpi.handles">Handles</a><ul><li><span class="hide">4.3.2.1 </span><a id="a-607085598" href="#Shortcuts_for_productivity">Shortcuts for productivity</a></li><li><span class="hide">4.3.2.2 </span><a id="a-607088158" href="#Accessing_a_handle_s_relatives">Accessing a handle’s relatives</a></li><li><span class="hide">4.3.2.3 </span><a id="a-607091098" href="#Accessing_a_handle_s_properties">Accessing a handle’s properties</a></li></ul></li><li><span class="hide">4.3.3 </span><a id="a-607126458" href="#vpi.callbacks">Callbacks</a></li></ul></li></ul></li><li><span class="hide">5 </span><a id="a-607321458" href="#usage">Usage</a><ul><li><span class="hide">5.1 </span><a id="a-607223668" href="#usage.prototyping">Prototyping</a><ul><li><span class="hide">5.1.1 </span><a id="a-607215768" href="#Getting_started">Getting started</a></li><li><span class="hide">5.1.2 </span><a id="a-607218048" href="#How_does_prototyping_work_">How does prototyping work?</a></li></ul></li><li><span class="hide">5.2 </span><a id="a-607229298" href="#usage.debugger">Debugging</a><ul><li><span class="hide">5.2.1 </span><a id="a-607226228" href="#usage.debugger.init">Advanced initialization</a></li></ul></li><li><span class="hide">5.3 </span><a id="a-607246068" href="#usage.test-runner">Test runner</a><ul><li><span class="hide">5.3.1 </span><a id="a-607238958" href="#usage.test-runner.env-vars">Environment variables</a><ul><li><span class="hide">5.3.1.1 </span><a id="a-607232388" href="#Variables_as_command-line_arguments">Variables as command-line arguments</a></li></ul></li></ul></li><li><span class="hide">5.4 </span><a id="a-607265218" href="#usage.tools">Tools</a><ul><li><span class="hide">5.4.1 </span><a id="a-607255398" href="#usage.tools.generate">Automated test generation</a></li><li><span class="hide">5.4.2 </span><a id="a-607257688" href="#usage.tools.convert">Verilog to Ruby conversion</a></li></ul></li><li><span class="hide">5.5 </span><a id="a-607267438" href="#usage.examples">Sample tests</a></li><li><span class="hide">5.6 </span><a id="a-607188458" href="#usage.tutorial">Tutorial</a><ul><li><span class="hide">5.6.1 </span><a id="a-607274848" href="#usage.tutorial.declare-design">Start with a Verilog design</a></li><li><span class="hide">5.6.2 </span><a id="a-607081228" href="#usage.tutorial.generate-test">Generate a test</a></li><li><span class="hide">5.6.3 </span><a id="a-607098358" href="#usage.tutorial.specification">Specify your expectations</a></li><li><span class="hide">5.6.4 </span><a id="a-607106078" href="#usage.tutorial.implement-proto">Implement the prototype</a></li><li><span class="hide">5.6.5 </span><a id="a-607132558" href="#usage.tutorial.test-proto">Verify the prototype</a></li><li><span class="hide">5.6.6 </span><a id="a-607138718" href="#usage.tutorial.implement-design">Implement the design</a></li><li><span class="hide">5.6.7 </span><a id="a-607149178" href="#usage.tutorial.test-design">Verify the design</a></li></ul></li></ul></li><li><span class="hide">6 </span><a id="a-607333248" href="#hacking">Hacking</a><ul><li><span class="hide">6.1 </span><a id="a-607323788" href="#hacking.scm">Getting the source code</a></li><li><span class="hide">6.2 </span><a id="a-607326418" href="#hacking.release-packages">Building release packages</a></li><li><span class="hide">6.3 </span><a id="a-607328648" href="#hacking.manual">Editing this manual</a></li></ul></li><li><span class="hide">7 </span><a id="a-607380138" href="#problems">Known problems</a><ul><li><span class="hide">7.1 </span><a id="a-607358828" href="#problem.ivl">Icarus Verilog</a><ul><li><span class="hide">7.1.1 </span><a id="a-607339198" href="#problems.ivl.vpi_handle_by_name.absolute-paths">Give full paths to Verilog objects</a></li><li><span class="hide">7.1.2 </span><a id="a-607348888" href="#problems.ivl.vpi_handle_by_name.connect-registers">Registers must be connected</a></li></ul></li><li><span class="hide">7.2 </span><a id="a-607361048" href="#problems.ivl.vpi_reset">Vpi::reset</a></li></ul></li><li><span class="hide">8 </span><a id="a-607138038" href="#glossary">Glossary</a><ul><li><span class="hide">8.1 </span><a id="a-607382968" href="#glossary.test">Test</a></li><li><span class="hide">8.2 </span><a id="a-607385468" href="#glossary.design">Design</a></li><li><span class="hide">8.3 </span><a id="a-607076108" href="#glossary.specification">Specification</a></li><li><span class="hide">8.4 </span><a id="a-607080598" href="#glossary.expectation">Expectation</a></li><li><span class="hide">8.5 </span><a id="a-607087288" href="#glossary.handle">Handle</a></li><li><span class="hide">8.6 </span><a id="a-607093708" href="#glossary.rake">Rake</a></li><li><span class="hide">8.7 </span><a id="a-607099278" href="#glossary.RSpec">RSpec</a></li><li><span class="hide">8.8 </span><a id="a-607104428" href="#glossary.TDD">Test driven development</a></li><li><span class="hide">8.9 </span><a id="a-607113088" href="#glossary.BDD">Behavior driven development</a></li></ul></li></ul>
+ <ul><li><span class="hide">1 </span><a id="a-606440488" href="#Ruby-VPI_18.0.0_user_manual">Ruby-VPI 18.0.0 user manual</a><ul><li><span class="hide">1.1 </span><a id="a-606415398" href="#About_this_manual">About this manual</a></li><li><span class="hide">1.2 </span><a id="a-606424618" href="#Legal_notice">Legal notice</a></li></ul></li><li><span class="hide">2 </span><a id="a-607201618" href="#intro">Welcome</a><ul><li><span class="hide">2.1 </span><a id="a-605996598" href="#resources">Resources</a><ul><li><span class="hide">2.1.1 </span><a id="a-606452258" href="#Records">Records</a></li><li><span class="hide">2.1.2 </span><a id="a-606462328" href="#Documentation">Documentation</a></li><li><span class="hide">2.1.3 </span><a id="a-605931928" href="#Facilities">Facilities</a></li></ul></li><li><span class="hide">2.2 </span><a id="a-605842608" href="#intro.features">Features</a><ul><li><span class="hide">2.2.1 </span><a id="a-606012168" href="#Portable">Portable</a></li><li><span class="hide">2.2.2 </span><a id="a-606021388" href="#Agile">Agile</a></li><li><span class="hide">2.2.3 </span><a id="a-606032478" href="#Powerful">Powerful</a></li></ul></li><li><span class="hide">2.3 </span><a id="a-607160758" href="#intro.reqs">Requirements</a><ul><li><span class="hide">2.3.1 </span><a id="a-605864868" href="#Verilog_simulator">Verilog simulator</a></li><li><span class="hide">2.3.2 </span><a id="a-607153788" href="#Compilers">Compilers</a></li><li><span class="hide">2.3.3 </span><a id="a-607156088" href="#Libraries">Libraries</a></li></ul></li><li><span class="hide">2.4 </span><a id="a-607163318" href="#intro.applications">Applications</a></li><li><span class="hide">2.5 </span><a id="a-607165918" href="#intro.appetizers">Appetizers</a></li><li><span class="hide">2.6 </span><a id="a-607168788" href="#intro.license">License</a></li><li><span class="hide">2.7 </span><a id="a-607174178" href="#intro.related-works">Related works</a><ul><li><span class="hide">2.7.1 </span><a id="a-607171238" href="#intro.related-works.pli">Ye olde PLI</a></li></ul></li></ul></li><li><span class="hide">3 </span><a id="a-607242278" href="#setup">Setup</a><ul><li><span class="hide">3.1 </span><a id="a-607204808" href="#setup.manifest">Manifest</a></li><li><span class="hide">3.2 </span><a id="a-607210248" href="#setup.reqs">Requirements</a></li><li><span class="hide">3.3 </span><a id="a-607216418" href="#setup.recom">Recommendations</a><ul><li><span class="hide">3.3.1 </span><a id="a-607213078" href="#setup.recom.merger">Text merging tool</a></li></ul></li><li><span class="hide">3.4 </span><a id="a-607225558" href="#setup.inst">Installation</a><ul><li><span class="hide">3.4.1 </span><a id="a-607221498" href="#setup.inst.windows">Installing on Windows</a></li></ul></li><li><span class="hide">3.5 </span><a id="a-607227838" href="#setup.maintenance">Maintenance</a></li></ul></li><li><span class="hide">4 </span><a id="a-607196488" href="#organization">Organization</a><ul><li><span class="hide">4.1 </span><a id="a-607251168" href="#overview.relay">Ruby/Verilog interaction</a></li><li><span class="hide">4.2 </span><a id="a-607256738" href="#organization.tests">Tests</a></li><li><span class="hide">4.3 </span><a id="a-607326178" href="#VPI_in_Ruby">VPI in Ruby</a><ul><li><span class="hide">4.3.1 </span><a id="a-607265658" href="#Deviations_from_the_VPI_standard">Deviations from the VPI standard</a><ul><li><span class="hide">4.3.1.1 </span><a id="a-607259228" href="#Names_are_capitalized">Names are capitalized</a></li><li><span class="hide">4.3.1.2 </span><a id="a-607261728" href="#a_vprintf__is__printf_"><code class="code">vprintf</code> is <code class="code">printf</code></a></li></ul></li><li><span class="hide">4.3.2 </span><a id="a-607291198" href="#vpi.handles">Handles</a><ul><li><span class="hide">4.3.2.1 </span><a id="a-607268318" href="#Shortcuts_for_productivity">Shortcuts for productivity</a></li><li><span class="hide">4.3.2.2 </span><a id="a-607270878" href="#Accessing_a_handle_s_relatives">Accessing a handle’s relatives</a></li><li><span class="hide">4.3.2.3 </span><a id="a-607273818" href="#Accessing_a_handle_s_properties">Accessing a handle’s properties</a></li></ul></li><li><span class="hide">4.3.3 </span><a id="a-607299628" href="#vpi.callbacks">Callbacks</a></li></ul></li></ul></li><li><span class="hide">5 </span><a id="a-607334198" href="#usage">Usage</a><ul><li><span class="hide">5.1 </span><a id="a-607215298" href="#usage.prototyping">Prototyping</a><ul><li><span class="hide">5.1.1 </span><a id="a-607200928" href="#Getting_started">Getting started</a></li><li><span class="hide">5.1.2 </span><a id="a-607205498" href="#How_does_prototyping_work_">How does prototyping work?</a></li></ul></li><li><span class="hide">5.2 </span><a id="a-607224358" href="#usage.debugger">Debugging</a><ul><li><span class="hide">5.2.1 </span><a id="a-607219398" href="#usage.debugger.init">Advanced initialization</a></li></ul></li><li><span class="hide">5.3 </span><a id="a-607246938" href="#usage.test-runner">Test runner</a><ul><li><span class="hide">5.3.1 </span><a id="a-607236808" href="#usage.test-runner.env-vars">Environment variables</a><ul><li><span class="hide">5.3.1.1 </span><a id="a-607229738" href="#Variables_as_command-line_arguments">Variables as command-line arguments</a></li></ul></li></ul></li><li><span class="hide">5.4 </span><a id="a-607278778" href="#usage.tools">Tools</a><ul><li><span class="hide">5.4.1 </span><a id="a-607262938" href="#usage.tools.generate">Automated test generation</a></li><li><span class="hide">5.4.2 </span><a id="a-607265448" href="#usage.tools.convert">Verilog to Ruby conversion</a></li></ul></li><li><span class="hide">5.5 </span><a id="a-607282618" href="#usage.examples">Sample tests</a></li><li><span class="hide">5.6 </span><a id="a-607395798" href="#usage.tutorial">Tutorial</a><ul><li><span class="hide">5.6.1 </span><a id="a-607290888" href="#usage.tutorial.declare-design">Start with a Verilog design</a></li><li><span class="hide">5.6.2 </span><a id="a-607305468" href="#usage.tutorial.generate-test">Generate a test</a></li><li><span class="hide">5.6.3 </span><a id="a-607315968" href="#usage.tutorial.specification">Specify your expectations</a></li><li><span class="hide">5.6.4 </span><a id="a-607322378" href="#usage.tutorial.implement-proto">Implement the prototype</a></li><li><span class="hide">5.6.5 </span><a id="a-607341078" href="#usage.tutorial.test-proto">Verify the prototype</a></li><li><span class="hide">5.6.6 </span><a id="a-607349478" href="#usage.tutorial.implement-design">Implement the design</a></li><li><span class="hide">5.6.7 </span><a id="a-607359608" href="#usage.tutorial.test-design">Verify the design</a></li></ul></li></ul></li><li><span class="hide">6 </span><a id="a-607351098" href="#hacking">Hacking</a><ul><li><span class="hide">6.1 </span><a id="a-607337768" href="#hacking.scm">Getting the source code</a></li><li><span class="hide">6.2 </span><a id="a-607340498" href="#hacking.release-packages">Building release packages</a></li><li><span class="hide">6.3 </span><a id="a-607344628" href="#hacking.manual">Editing this manual</a></li></ul></li><li><span class="hide">7 </span><a id="a-607417768" href="#problems">Known problems</a><ul><li><span class="hide">7.1 </span><a id="a-607385318" href="#problem.ivl">Icarus Verilog</a><ul><li><span class="hide">7.1.1 </span><a id="a-607359978" href="#problems.ivl.vpi_handle_by_name.absolute-paths">Give full paths to Verilog objects</a></li><li><span class="hide">7.1.2 </span><a id="a-607371468" href="#problems.ivl.vpi_handle_by_name.connect-registers">Registers must be connected</a></li><li><span class="hide">7.1.3 </span><a id="a-607373948" href="#problems.ivl.vpi_reset">Vpi::reset</a></li></ul></li><li><span class="hide">7.2 </span><a id="a-607390998" href="#problem.ncsim">Cadence NC-Sim</a><ul><li><span class="hide">7.2.1 </span><a id="a-607387788" href="#problem.ncsim.vpiForceFlag">Cannot force values onto handles</a></li></ul></li></ul></li><li><span class="hide">8 </span><a id="a-607450218" href="#glossary">Glossary</a><ul><li><span class="hide">8.1 </span><a id="a-607420598" href="#glossary.test">Test</a></li><li><span class="hide">8.2 </span><a id="a-607423098" href="#glossary.design">Design</a></li><li><span class="hide">8.3 </span><a id="a-607425858" href="#glossary.specification">Specification</a></li><li><span class="hide">8.4 </span><a id="a-607428078" href="#glossary.expectation">Expectation</a></li><li><span class="hide">8.5 </span><a id="a-607430558" href="#glossary.handle">Handle</a></li><li><span class="hide">8.6 </span><a id="a-607432818" href="#glossary.rake">Rake</a></li><li><span class="hide">8.7 </span><a id="a-607435358" href="#glossary.RSpec">RSpec</a></li><li><span class="hide">8.8 </span><a id="a-607437618" href="#glossary.TDD">Test driven development</a></li><li><span class="hide">8.9 </span><a id="a-607439878" href="#glossary.BDD">Behavior driven development</a></li></ul></li></ul>
<h1 id="toc:tip">Tips</h1>
<ol>
- <li><a href="#Add_support_for_your_Verilog_simulator" id="a-607693408">Add support for your Verilog simulator</a></li>
- <li><a href="#Using__kdiff3__with_the_automated_test_generator." id="a-607251318">Using <strong>kdiff3</strong> with the automated test generator.</a></li>
- <li><a href="#What_can_the_test_runner_do_" id="a-607126068">What can the test runner do?</a></li>
+ <li><a href="#Add_support_for_your_Verilog_simulator" id="a-607207278">Add support for your Verilog simulator</a></li>
+ <li><a href="#Tuning_for_maximum_performance" id="a-607218968">Tuning for maximum performance</a></li>
+ <li><a href="#Using__kdiff3__with_the_automated_test_generator." id="a-607255718">Using <strong>kdiff3</strong> with the automated test generator.</a></li>
+ <li><a href="#What_can_the_test_runner_do_" id="a-607335018">What can the test runner do?</a></li>
</ol>
- <h1 id="toc:note">Notes</h1>
- <ol>
- <li><a href="#Tuning_for_maximum_performance" id="a-607705108">Tuning for maximum performance</a></li>
- </ol>
<h1 id="toc:caution">Cautions</h1>
<ol>
- <li><a href="#Do_not_rename_generated_files" id="a-607248828">Do not rename generated files</a></li>
+ <li><a href="#Do_not_rename_generated_files" id="a-607250958">Do not rename generated files</a></li>
</ol>
<h1 id="toc:figure">Figures</h1>
<ol>
- <li><a href="#fig:organization.detail" id="a-607731018">Where does Ruby-VPI fit in?</a></li>
- <li><a href="#fig:ruby_relay" id="a-607733828">Interaction between Ruby and Verilog</a></li>
- <li><a href="#fig:organization" id="a-607070888">Organization of a test in Ruby-VPI</a></li>
- <li><a href="#fig:method_naming_format" id="a-607093898">Method naming format for accessing a handle’s properties</a></li>
+ <li><a href="#fig:organization.detail" id="a-607244878">Where does Ruby-VPI fit in?</a></li>
+ <li><a href="#fig:ruby_relay" id="a-607247688">Interaction between Ruby and Verilog</a></li>
+ <li><a href="#fig:organization" id="a-607253638">Organization of a test in Ruby-VPI</a></li>
+ <li><a href="#fig:method_naming_format" id="a-607276618">Method naming format for accessing a handle’s properties</a></li>
</ol>
<h1 id="toc:table">Tables</h1>
<ol>
- <li><a href="#tbl:accessors" id="a-607096328">Possible accessors and their implications</a></li>
- <li><a href="#ex:properties" id="a-607099288">Examples of accessing a handle’s properties</a></li>
+ <li><a href="#tbl:accessors" id="a-607279048">Possible accessors and their implications</a></li>
+ <li><a href="#ex:properties" id="a-607281988">Examples of accessing a handle’s properties</a></li>
</ol>
<h1 id="toc:example">Examples</h1>
<ol>
- <li><a href="#ex:callback" id="a-607121788">Using a callback for value change notification</a></li>
- <li><a href="#Running_a_test_with_environment_variables" id="a-607234788">Running a test with environment variables</a></li>
- <li><a href="#fig:counter.v_decl" id="a-607271338">Declaration of a simple up-counter with synchronous reset</a></li>
- <li><a href="#fig:generate-test.RSpec" id="a-607278188">Generating a test with specification in RSpec format</a></li>
- <li><a href="#fig:generate-test.xUnit" id="a-607073088">Generating a test with specification in xUnit format</a></li>
- <li><a href="#fig:RSpec_counter_spec.rb" id="a-607085368">Specification implemented in RSpec format</a></li>
- <li><a href="#fig:xUnit_counter_spec.rb" id="a-607089898">Specification implemented in xUnit format</a></li>
- <li><a href="#fig:counter_proto.rb" id="a-607102138">Ruby prototype of our Verilog design</a></li>
- <li><a href="#fig:test-proto.RSpec" id="a-607119008">Running a test with specification in RSpec format</a></li>
- <li><a href="#fig:test-proto.unit-test" id="a-607123158">Running a test with specification in xUnit format</a></li>
- <li><a href="#fig:counter.v_impl" id="a-607135238">Implementation of a simple up-counter with synchronous reset</a></li>
- <li><a href="#fig:test-design.RSpec" id="a-607141778">Running a test with specification in RSpec format</a></li>
- <li><a href="#fig:test-design.unit-test" id="a-607144398">Running a test with specification in xUnit format</a></li>
- <li><a href="#ex:TestFoo" id="a-607336038">Part of a bench which instantiates a Verilog design</a></li>
- <li><a href="#ex:TestFoo_bad" id="a-607342098">Bad design with unconnected registers</a></li>
- <li><a href="#ex:TestFoo_fix" id="a-607344538">Fixed design with wired registers</a></li>
+ <li><a href="#ex:callback" id="a-607295148">Using a callback for value change notification</a></li>
+ <li><a href="#Running_a_test_with_environment_variables" id="a-607232388">Running a test with environment variables</a></li>
+ <li><a href="#fig:counter.v_decl" id="a-607287308">Declaration of a simple up-counter with synchronous reset</a></li>
+ <li><a href="#fig:generate-test.RSpec" id="a-607296778">Generating a test with specification in RSpec format</a></li>
+ <li><a href="#fig:generate-test.xUnit" id="a-607299658">Generating a test with specification in xUnit format</a></li>
+ <li><a href="#fig:RSpec_counter_spec.rb" id="a-607308538">Specification implemented in RSpec format</a></li>
+ <li><a href="#fig:xUnit_counter_spec.rb" id="a-607310978">Specification implemented in xUnit format</a></li>
+ <li><a href="#fig:counter_proto.rb" id="a-607318638">Ruby prototype of our Verilog design</a></li>
+ <li><a href="#fig:test-proto.RSpec" id="a-607325878">Running a test with specification in RSpec format</a></li>
+ <li><a href="#fig:test-proto.unit-test" id="a-607330448">Running a test with specification in xUnit format</a></li>
+ <li><a href="#fig:counter.v_impl" id="a-607343828">Implementation of a simple up-counter with synchronous reset</a></li>
+ <li><a href="#fig:test-design.RSpec" id="a-607352688">Running a test with specification in RSpec format</a></li>
+ <li><a href="#fig:test-design.unit-test" id="a-607355168">Running a test with specification in xUnit format</a></li>
+ <li><a href="#ex:TestFoo" id="a-607355728">Part of a bench which instantiates a Verilog design</a></li>
+ <li><a href="#ex:TestFoo_bad" id="a-607364178">Bad design with unconnected registers</a></li>
+ <li><a href="#ex:TestFoo_fix" id="a-607366888">Fixed design with wired registers</a></li>
</ol>
</div>
</body>
</html>