ruby-vpi 17.0.0 → 18.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (126) hide show
  1. data/LICENSE +8 -6
  2. data/Rakefile +4 -4
  3. data/doc/common.css +6 -9
  4. data/doc/common.inc +3 -3
  5. data/doc/common.tpl +14 -6
  6. data/doc/history.html +152 -44
  7. data/doc/history.inc +55 -3
  8. data/doc/history.yaml +62 -2
  9. data/doc/intro.inc +20 -16
  10. data/doc/manual.doc +23 -9
  11. data/doc/manual.html +232 -200
  12. data/doc/memo.doc +7 -6
  13. data/doc/memo.html +28 -17
  14. data/doc/readme.doc +1 -1
  15. data/doc/readme.html +51 -35
  16. data/doc/rss.xml +96 -70
  17. data/ext/Rakefile +24 -11
  18. data/ext/swig_vpi.h +1 -1
  19. data/ext/swig_wrap.cin +17 -42
  20. data/lib/ruby-vpi/pli.tab +1 -0
  21. data/lib/ruby-vpi/runner.rb +34 -10
  22. data/lib/ruby-vpi/vpi.rb +483 -438
  23. data/ref/c/annotated.html +1 -1
  24. data/ref/c/common_8h.html +1 -1
  25. data/ref/c/files.html +1 -1
  26. data/ref/c/functions.html +1 -1
  27. data/ref/c/functions_vars.html +1 -1
  28. data/ref/c/globals.html +1 -1
  29. data/ref/c/globals_0x63.html +1 -1
  30. data/ref/c/globals_0x65.html +1 -1
  31. data/ref/c/globals_0x66.html +1 -1
  32. data/ref/c/globals_0x6d.html +1 -1
  33. data/ref/c/globals_0x70.html +1 -1
  34. data/ref/c/globals_0x72.html +1 -1
  35. data/ref/c/globals_0x73.html +1 -1
  36. data/ref/c/globals_0x74.html +1 -1
  37. data/ref/c/globals_0x76.html +1 -1
  38. data/ref/c/globals_0x78.html +1 -1
  39. data/ref/c/globals_defs.html +1 -1
  40. data/ref/c/globals_defs_0x65.html +1 -1
  41. data/ref/c/globals_defs_0x70.html +1 -1
  42. data/ref/c/globals_defs_0x76.html +1 -1
  43. data/ref/c/globals_defs_0x78.html +1 -1
  44. data/ref/c/globals_enum.html +1 -1
  45. data/ref/c/globals_eval.html +1 -1
  46. data/ref/c/globals_func.html +1 -1
  47. data/ref/c/globals_type.html +1 -1
  48. data/ref/c/globals_vars.html +1 -1
  49. data/ref/c/index.html +1 -1
  50. data/ref/c/main_8c.html +1 -1
  51. data/ref/c/main_8h.html +1 -1
  52. data/ref/c/relay_8c.html +1 -1
  53. data/ref/c/relay_8h.html +1 -1
  54. data/ref/c/structt__cb__data.html +1 -1
  55. data/ref/c/structt__vpi__delay.html +1 -1
  56. data/ref/c/structt__vpi__error__info.html +1 -1
  57. data/ref/c/structt__vpi__strengthval.html +1 -1
  58. data/ref/c/structt__vpi__systf__data.html +1 -1
  59. data/ref/c/structt__vpi__time.html +1 -1
  60. data/ref/c/structt__vpi__value.html +1 -1
  61. data/ref/c/structt__vpi__vecval.html +1 -1
  62. data/ref/c/structt__vpi__vlog__info.html +1 -1
  63. data/ref/c/verilog_8h.html +1 -1
  64. data/ref/c/vlog_8c.html +1 -1
  65. data/ref/c/vlog_8h.html +1 -1
  66. data/ref/c/vpi__user_8h.html +1 -1
  67. data/ref/ruby/classes/RDoc.html +5 -5
  68. data/ref/ruby/classes/RDoc.src/{M000058.html → M000061.html} +0 -0
  69. data/ref/ruby/classes/String.html +24 -24
  70. data/ref/ruby/classes/String.src/M000022.html +23 -5
  71. data/ref/ruby/classes/String.src/M000023.html +28 -5
  72. data/ref/ruby/classes/String.src/M000024.html +5 -23
  73. data/ref/ruby/classes/String.src/M000025.html +5 -28
  74. data/ref/ruby/classes/Vpi/Handle.html +94 -49
  75. data/ref/ruby/classes/Vpi/Handle.src/M000035.html +4 -4
  76. data/ref/ruby/classes/Vpi/Handle.src/M000036.html +4 -4
  77. data/ref/ruby/classes/Vpi/Handle.src/M000037.html +4 -4
  78. data/ref/ruby/classes/Vpi/Handle.src/M000038.html +4 -4
  79. data/ref/ruby/classes/Vpi/Handle.src/M000039.html +4 -4
  80. data/ref/ruby/classes/Vpi/Handle.src/M000040.html +4 -4
  81. data/ref/ruby/classes/Vpi/Handle.src/M000041.html +4 -4
  82. data/ref/ruby/classes/Vpi/Handle.src/M000042.html +4 -4
  83. data/ref/ruby/classes/Vpi/Handle.src/M000043.html +7 -7
  84. data/ref/ruby/classes/Vpi/Handle.src/M000044.html +7 -7
  85. data/ref/ruby/classes/Vpi/Handle.src/M000045.html +8 -8
  86. data/ref/ruby/classes/Vpi/Handle.src/M000046.html +36 -30
  87. data/ref/ruby/classes/Vpi/Handle.src/M000047.html +72 -67
  88. data/ref/ruby/classes/Vpi/Handle.src/M000048.html +6 -17
  89. data/ref/ruby/classes/Vpi/Handle.src/M000049.html +19 -0
  90. data/ref/ruby/classes/Vpi/Handle.src/M000050.html +5 -5
  91. data/ref/ruby/classes/Vpi/Handle.src/M000051.html +16 -10
  92. data/ref/ruby/classes/Vpi/Handle.src/M000053.html +5 -18
  93. data/ref/ruby/classes/Vpi/Handle.src/M000054.html +11 -76
  94. data/ref/ruby/classes/Vpi/Handle.src/M000056.html +31 -0
  95. data/ref/ruby/classes/Vpi/Handle.src/M000057.html +40 -0
  96. data/ref/ruby/classes/Vpi/S_vpi_time.html +16 -16
  97. data/ref/ruby/classes/Vpi/S_vpi_time.src/{M000055.html → M000058.html} +4 -4
  98. data/ref/ruby/classes/Vpi/S_vpi_time.src/M000059.html +19 -0
  99. data/ref/ruby/classes/Vpi/S_vpi_value.src/M000032.html +4 -4
  100. data/ref/ruby/classes/Vpi/S_vpi_value.src/M000033.html +4 -4
  101. data/ref/ruby/classes/Vpi/S_vpi_value.src/M000034.html +4 -4
  102. data/ref/ruby/classes/Vpi.html +0 -7
  103. data/ref/ruby/classes/Vpi.src/M000029.html +14 -14
  104. data/ref/ruby/classes/Vpi.src/M000030.html +25 -24
  105. data/ref/ruby/classes/Vpi.src/M000031.html +6 -6
  106. data/ref/ruby/created.rid +1 -1
  107. data/ref/ruby/files/bin/convert_rb.html +1 -1
  108. data/ref/ruby/files/bin/generate_rb.html +1 -1
  109. data/ref/ruby/files/lib/ruby-vpi/erb_rb.html +1 -1
  110. data/ref/ruby/files/lib/ruby-vpi/float_rb.html +1 -1
  111. data/ref/ruby/files/lib/ruby-vpi/integer_rb.html +1 -1
  112. data/ref/ruby/files/lib/ruby-vpi/rake_rb.html +1 -1
  113. data/ref/ruby/files/lib/ruby-vpi/rcov_rb.html +1 -1
  114. data/ref/ruby/files/lib/ruby-vpi/rdoc_rb.html +1 -1
  115. data/ref/ruby/files/lib/ruby-vpi/runner_boot_loader_rb.html +1 -1
  116. data/ref/ruby/files/lib/ruby-vpi/runner_proxy_rb.html +1 -1
  117. data/ref/ruby/files/lib/ruby-vpi/runner_rb.html +1 -1
  118. data/ref/ruby/files/lib/ruby-vpi/util_rb.html +1 -1
  119. data/ref/ruby/files/lib/ruby-vpi/verilog_parser_rb.html +1 -1
  120. data/ref/ruby/files/lib/ruby-vpi/vpi_rb.html +8 -1
  121. data/ref/ruby/files/lib/ruby-vpi_rb.html +1 -1
  122. data/ref/ruby/fr_method_index.html +19 -16
  123. data/samp/register_file/register_file.v +1 -1
  124. data/samp/register_file/register_file_spec.rb +9 -5
  125. metadata +42 -38
  126. data/ref/ruby/classes/Vpi/S_vpi_time.src/M000056.html +0 -19
data/doc/manual.html CHANGED
@@ -5,31 +5,31 @@
5
5
  <link rel="stylesheet" type="text/css" href="common.css" media="screen" />
6
6
  <link rel="stylesheet" type="text/css" href="print.css" media="print" />
7
7
  <link rel="alternate" type="application/rss+xml" href="http://ruby-vpi.rubyforge.org/doc/rss.xml" title="RSS feed for this project." />
8
- <title>Ruby-VPI 17.0.0 user manual</title>
8
+ <title>Ruby-VPI 18.0.0 user manual</title>
9
9
  </head>
10
10
  <body>
11
+ <div id="site-links">
12
+ <a href="readme.html">Home</a>
13
+ &middot; <a href="manual.html">Manual</a>
14
+ &middot; <a href="memo.html">Memo</a>
15
+ &middot; <a href="history.html">History</a>
16
+ <hr style="display: none"/>
17
+ </div>
18
+
11
19
  <div id="toc-links">
12
- <a href="#toc:contents">Contents</a> &middot;
13
- <a href="#toc:tip">Tips</a> &middot;
14
- <a href="#toc:note">Notes</a> &middot;
15
- <a href="#toc:caution">Cautions</a> &middot;
16
- <a href="#toc:figure">Figures</a> &middot;
17
- <a href="#toc:table">Tables</a> &middot;
18
- <a href="#toc:example">Examples</a> &middot;
19
-
20
- <a href="readme.html" style="color: green; font-size: larger;">Home page</a>
20
+ <a href="#toc:contents">Contents</a> &middot; <a href="#toc:tip">Tips</a> &middot; <a href="#toc:caution">Cautions</a> &middot; <a href="#toc:figure">Figures</a> &middot; <a href="#toc:table">Tables</a> &middot; <a href="#toc:example">Examples</a>
21
21
  </div>
22
22
 
23
23
  <div id="body">
24
24
  <hr style="display: none"/>
25
25
 
26
- <div id="Ruby-VPI_17.0.0_user_manual" class="front_cover">
27
- <h1 class="title"><big>Ruby-VPI 17.0.0 user manual</big></h1>
26
+ <div id="Ruby-VPI_18.0.0_user_manual" class="front_cover">
27
+ <h1 class="title"><big>Ruby-VPI 18.0.0 user manual</big></h1>
28
28
 
29
29
  <h2 class="author">Suraj N. Kurapati</h2>
30
30
 
31
31
 
32
- <h3 class="date">22 July 2007</h3>
32
+ <h3 class="date">31 July 2007</h3>
33
33
 
34
34
 
35
35
  <p>
@@ -44,7 +44,7 @@
44
44
  <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&#8217;s built-in text search mechanism. This facilitates offline reading, where an Internet search engine is not available.</p>
45
45
 
46
46
 
47
- <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>
47
+ <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>
48
48
  </div>
49
49
 
50
50
 
@@ -53,7 +53,7 @@
53
53
  <p>This manual is distributed under <a href="#intro.license">the same license as Ruby-VPI</a>.</p>
54
54
 
55
55
 
56
- <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>
56
+ <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>
57
57
  </div>
58
58
  </p>
59
59
 
@@ -64,7 +64,7 @@
64
64
 
65
65
  <div id="intro" class="chapter">
66
66
  <h1 class="title">
67
- Chapter <a href="#a-607687748">2</a>
67
+ Chapter <a href="#a-607201618">2</a>
68
68
 
69
69
  <br/><br/>
70
70
 
@@ -90,7 +90,7 @@
90
90
 
91
91
  <div id="resources" class="section">
92
92
  <h2 class="title">
93
- <a href="#a-607624238">2.1</a>
93
+ <a href="#a-605996598">2.1</a>
94
94
 
95
95
  &nbsp;
96
96
 
@@ -100,20 +100,22 @@
100
100
 
101
101
  <div id="Records" class="paragraph">
102
102
  <p class="title">Records</p>
103
- <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>
104
-
105
-
103
+ <ul>
104
+ <li><a href="history.html#a18.0.0">What&#8217;s new</a>
105
+ &#8211; release notes for version 18.0.0.
106
106
  <ul>
107
- <li><a href="history.html">What&#8217;s new</a>
108
- &#8211; a history of all release notes.</li>
107
+ <li><a href="history.html">History</a>
108
+ &#8211; a record of all release notes.</li>
109
+ <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>
110
+ &#8211; keep track of new releases at your leisure.</li>
111
+ </ul>
112
+ </li>
109
113
  <li><a href="memo.html">Plans</a>
110
114
  &#8211; pending tasks for future releases.</li>
111
115
  <li><a href="http://ruby-vpi.rubyforge.org/talks/">Talks</a>
112
116
  &#8211; materials from presentations and seminars.</li>
113
117
  <li><a href="http://ruby-vpi.rubyforge.org/papers/">Papers</a>
114
118
  &#8211; research publications.</li>
115
- <li><a href="http://ruby-vpi.rubyforge.org/papers/masters_thesis.html#tth_sEc5.2">Motivation</a>
116
- &#8211; why does Ruby-VPI exist?</li>
117
119
  </ul>
118
120
  </div>
119
121
 
@@ -121,8 +123,10 @@
121
123
  <div id="Documentation" class="paragraph">
122
124
  <p class="title">Documentation</p>
123
125
  <ul>
124
- <li><a href="manual.html">User manual</a>
125
- &#8211; complete documentation for users. <em>Start here!</em>
126
+ <li><a href="http://ruby-vpi.rubyforge.org/papers/masters_thesis.html#tth_sEc5.2">Motivation</a>
127
+ &#8211; why was Ruby-VPI developed?</li>
128
+ <li><a href="manual.html">User manual</a>
129
+ &#8211; complete documentation for users.
126
130
  <ul>
127
131
  <li><a href="manual.html#usage.tutorial">Tutorial</a>
128
132
  &#8211; learn how to use Ruby-VPI quickly.</li>
@@ -139,7 +143,7 @@
139
143
  <ul>
140
144
  <li><a href="http://rubyforge.org/frs/?group_id=1339">Downloads</a>
141
145
  &#8211; obtain release packages</li>
142
- <li><a href="http://ruby-vpi.rubyforge.org/src/ruby-vpi">Source code</a>
146
+ <li><a href="http://ruby-vpi.rubyforge.org/src/ruby-vpi/">Source code</a>
143
147
  &#8211; browse online or obtain with <a href="http://darcs.net">Darcs</a>.</li>
144
148
  <li><a href="http://rubyforge.org/forum/?group_id=1339">Forums</a>
145
149
  &#8211; discuss things and ask questions.</li>
@@ -149,7 +153,7 @@
149
153
  &#8211; submit patches to source code.</li>
150
154
  <li><a href="http://rubyforge.org/tracker/?group_id=1339">Requests</a>
151
155
  &#8211; request new features or get support.</li>
152
- <li><a href="http://rubyforge.org/projects/ruby-vpi">Project portal</a>
156
+ <li><a href="http://rubyforge.org/projects/ruby-vpi/">Project portal</a>
153
157
  &#8211; hosted generously by <a href="http://rubyforge.org">RubyForge</a>.</li>
154
158
  </ul>
155
159
  </div>
@@ -164,7 +168,7 @@
164
168
 
165
169
  <div id="intro.features" class="section">
166
170
  <h2 class="title">
167
- <a href="#a-607636548">2.2</a>
171
+ <a href="#a-605842608">2.2</a>
168
172
 
169
173
  &nbsp;
170
174
 
@@ -177,7 +181,7 @@
177
181
  <ul>
178
182
  <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>
179
183
  <li>Works with all <a href="#intro.reqs">major Verilog simulators</a> available today.</li>
180
- <li>Compiled <em>just once</em> during <a href="manual.html#setup.installation">installation</a> and used forever!</li>
184
+ <li>Compiled <em>just once</em> during <a href="manual.html#setup.inst">installation</a> and used forever!</li>
181
185
  </ul>
182
186
  </div>
183
187
 
@@ -198,7 +202,7 @@
198
202
  <li>Eliminates unneccesary work:
199
203
  <ul>
200
204
  <li><a href="manual.html#usage.tutorial.specification">Specifications</a> are readable, portable, and <em>executable</em>.</li>
201
- <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>
205
+ <li>The <a href="manual.html#usage.tools.generate">automated test generator</a> helps you accomodate design changes with <em>minimal</em> effort.</li>
202
206
  <li>There is absolutely <em>no compiling</em>!</li>
203
207
  </ul></li>
204
208
  </ul>
@@ -235,7 +239,7 @@
235
239
 
236
240
  <div id="intro.reqs" class="section">
237
241
  <h2 class="title">
238
- <a href="#a-607648378">2.3</a>
242
+ <a href="#a-607160758">2.3</a>
239
243
 
240
244
  &nbsp;
241
245
 
@@ -256,12 +260,12 @@
256
260
  &#8211; any version that supports the <tt>-load</tt> option is acceptable.</li>
257
261
  <li><a href="http://www.model.com">Mentor Modelsim</a>
258
262
  &#8211; any version that supports the <tt>-pli</tt> option is acceptable.</li>
259
- <li><a href="http://www.cadence.com/products/functional_ver/nc-verilog/">Cadence NC-Sim / NC-Verilog</a>
260
- &#8211; any version that supports the <tt>+loadvpi</tt> option is acceptable.</li>
263
+ <li><a href="http://www.cadence.com/products/functional_ver/nc-verilog/">Cadence NC-Sim</a>
264
+ &#8211; 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>
261
265
  <li><a href="http://www.pragmatic-c.com/gpl-cver/">GPL Cver</a>
262
266
  &#8211; version 2.11a or newer is acceptable.</li>
263
- <li><a href="http://www.icarus.com/eda/Verilog/">Icarus Verilog</a>
264
- &#8211; version 0.8 is <em>mostly</em> acceptable&#8212;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>
267
+ <li><a href="http://www.geda.seul.org/tools/icarus/index.html">Icarus Verilog</a>
268
+ &#8211; 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>
265
269
  </ul>
266
270
  </div>
267
271
 
@@ -273,8 +277,10 @@
273
277
  &#8211; any flavor should be acceptable.</li>
274
278
  <li>C compiler
275
279
  &#8211; 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>
276
- <li><a href="http://www.ruby-lang.org">Ruby</a>
277
- &#8211; 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>
280
+ <li><a href="http://www.swig.org/download.html">SWIG</a>
281
+ &#8211; version 1.3.29 or newer is necessary.</li>
282
+ <li><a href="http://www.ruby-lang.org/en/downloads/">Ruby</a>
283
+ &#8211; 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>
278
284
  </ul>
279
285
  </div>
280
286
 
@@ -299,7 +305,7 @@
299
305
 
300
306
  <div id="intro.applications" class="section">
301
307
  <h2 class="title">
302
- <a href="#a-607650938">2.4</a>
308
+ <a href="#a-607163318">2.4</a>
303
309
 
304
310
  &nbsp;
305
311
 
@@ -345,7 +351,7 @@
345
351
 
346
352
  <div id="intro.appetizers" class="section">
347
353
  <h2 class="title">
348
- <a href="#a-607653538">2.5</a>
354
+ <a href="#a-607165918">2.5</a>
349
355
 
350
356
  &nbsp;
351
357
 
@@ -413,14 +419,15 @@
413
419
 
414
420
  <div id="intro.license" class="section">
415
421
  <h2 class="title">
416
- <a href="#a-607656258">2.6</a>
422
+ <a href="#a-607168788">2.6</a>
417
423
 
418
424
  &nbsp;
419
425
 
420
426
  License
421
427
  </h2>
422
428
 
423
- <p>Copyright 2006 Suraj N. Kurapati &lt;snk@gna.org&gt;</p>
429
+ <p>Copyright 2006 Suraj N. Kurapati &lt;SNK at GNA dot ORG&gt;<br/>
430
+ Copyright 1999 Kazuhiro HIWADA &lt;HIWADA at KUEE dot KYOTO-U dot AC dot JP&gt;<br/></p>
424
431
 
425
432
 
426
433
  <p>Permission is hereby granted, free of charge, to any person obtaining a copy of
@@ -431,13 +438,14 @@ the Software, and to permit persons to whom the Software is furnished to do so,
431
438
  subject to the following conditions:</p>
432
439
 
433
440
 
434
- <p>1. All modified and unmodified copies and substantial portions of the Software
435
- (the &quot;Derivatives&quot;) and their corresponding machine-readable source code (the
436
- &quot;Code&quot;) must include the above copyright notice and this permission notice.</p>
441
+ <p>1. All copies and substantial portions of the Software, whether modified or
442
+ unmodified, (the &quot;Derivatives&quot;) and their corresponding machine-readable
443
+ source code (the &quot;Code&quot;) must include the above copyright notice and this
444
+ permission notice.</p>
437
445
 
438
446
 
439
- <p>2. Upon distribution, the Derivatives must be accompanied either by the Code or,
440
- if the Code is obtainable for no more than the cost of distribution plus a
447
+ <p>2. The Derivatives, upon distribution, must be accompanied by the Code or, if
448
+ the Code is obtainable for no more than the cost of distribution plus a
441
449
  nominal fee, by information on how to obtain the Code.</p>
442
450
 
443
451
 
@@ -457,7 +465,7 @@ IMPLIED, INCLUDING <span class="caps">BUT NOT LIMITED TO THE WARRANTIES OF MERCH
457
465
 
458
466
  <div id="intro.related-works" class="section">
459
467
  <h2 class="title">
460
- <a href="#a-607661648">2.7</a>
468
+ <a href="#a-607174178">2.7</a>
461
469
 
462
470
  &nbsp;
463
471
 
@@ -478,7 +486,7 @@ IMPLIED, INCLUDING <span class="caps">BUT NOT LIMITED TO THE WARRANTIES OF MERCH
478
486
 
479
487
  <div id="intro.related-works.pli" class="section">
480
488
  <h3 class="title">
481
- <a href="#a-607658708">2.7.1</a>
489
+ <a href="#a-607171238">2.7.1</a>
482
490
 
483
491
  &nbsp;
484
492
 
@@ -505,7 +513,7 @@ IMPLIED, INCLUDING <span class="caps">BUT NOT LIMITED TO THE WARRANTIES OF MERCH
505
513
 
506
514
  <div id="setup" class="chapter">
507
515
  <h1 class="title">
508
- Chapter <a href="#a-607728418">3</a>
516
+ Chapter <a href="#a-607242278">3</a>
509
517
 
510
518
  <br/><br/>
511
519
 
@@ -517,7 +525,7 @@ IMPLIED, INCLUDING <span class="caps">BUT NOT LIMITED TO THE WARRANTIES OF MERCH
517
525
 
518
526
  <div id="setup.manifest" class="section">
519
527
  <h2 class="title">
520
- <a href="#a-607690938">3.1</a>
528
+ <a href="#a-607204808">3.1</a>
521
529
 
522
530
  &nbsp;
523
531
 
@@ -543,7 +551,7 @@ IMPLIED, INCLUDING <span class="caps">BUT NOT LIMITED TO THE WARRANTIES OF MERCH
543
551
 
544
552
  <div id="setup.reqs" class="section">
545
553
  <h2 class="title">
546
- <a href="#a-607696378">3.2</a>
554
+ <a href="#a-607210248">3.2</a>
547
555
 
548
556
  &nbsp;
549
557
 
@@ -560,7 +568,7 @@ IMPLIED, INCLUDING <span class="caps">BUT NOT LIMITED TO THE WARRANTIES OF MERCH
560
568
  <div class="tip" id="Add_support_for_your_Verilog_simulator">
561
569
  <img src="images/tango/tip.png" alt="tip" class="icon"/>
562
570
 
563
- <p class="title"><a href="#a-607693408">Tip 1</a>. &nbsp; Add support for your Verilog simulator</p>
571
+ <p class="title"><a href="#a-607207278">Tip 1</a>. &nbsp; Add support for your Verilog simulator</p>
564
572
 
565
573
  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!
566
574
  </div>
@@ -574,7 +582,7 @@ IMPLIED, INCLUDING <span class="caps">BUT NOT LIMITED TO THE WARRANTIES OF MERCH
574
582
 
575
583
  <div id="setup.recom" class="section">
576
584
  <h2 class="title">
577
- <a href="#a-607702548">3.3</a>
585
+ <a href="#a-607216418">3.3</a>
578
586
 
579
587
  &nbsp;
580
588
 
@@ -589,7 +597,7 @@ IMPLIED, INCLUDING <span class="caps">BUT NOT LIMITED TO THE WARRANTIES OF MERCH
589
597
 
590
598
  <div id="setup.recom.merger" class="section">
591
599
  <h3 class="title">
592
- <a href="#a-607699208">3.3.1</a>
600
+ <a href="#a-607213078">3.3.1</a>
593
601
 
594
602
  &nbsp;
595
603
 
@@ -633,7 +641,7 @@ IMPLIED, INCLUDING <span class="caps">BUT NOT LIMITED TO THE WARRANTIES OF MERCH
633
641
 
634
642
  <div id="setup.inst" class="section">
635
643
  <h2 class="title">
636
- <a href="#a-607711698">3.4</a>
644
+ <a href="#a-607225558">3.4</a>
637
645
 
638
646
  &nbsp;
639
647
 
@@ -647,7 +655,7 @@ IMPLIED, INCLUDING <span class="caps">BUT NOT LIMITED TO THE WARRANTIES OF MERCH
647
655
  $ gem env gemdir
648
656
  /usr/lib/ruby/gems/1.8
649
657
 
650
- $ ls -d /usr/lib/ruby/gems/1.8/gems/ruby-vpi*
658
+ $ ls -d `gem env gemdir`/gems/ruby-vpi*
651
659
  /usr/lib/ruby/gems/1.8/gems/ruby-vpi-7.0.0/
652
660
  </pre>
653
661
 
@@ -656,10 +664,10 @@ $ ls -d /usr/lib/ruby/gems/1.8/gems/ruby-vpi*
656
664
  <hr style="display: none"/>
657
665
 
658
666
  <div class="admonition">
659
- <div class="note" id="Tuning_for_maximum_performance">
660
- <img src="images/tango/note.png" alt="note" class="icon"/>
667
+ <div class="tip" id="Tuning_for_maximum_performance">
668
+ <img src="images/tango/tip.png" alt="tip" class="icon"/>
661
669
 
662
- <p class="title"><a href="#a-607705108">Note 1</a>. &nbsp; Tuning for maximum performance</p>
670
+ <p class="title"><a href="#a-607218968">Tip 2</a>. &nbsp; Tuning for maximum performance</p>
663
671
 
664
672
  You can tune your installation of Ruby-VPI for maximum performance by adding your C compiler&#8217;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.
665
673
  </div>
@@ -670,7 +678,7 @@ $ ls -d /usr/lib/ruby/gems/1.8/gems/ruby-vpi*
670
678
 
671
679
  <div id="setup.inst.windows" class="section">
672
680
  <h3 class="title">
673
- <a href="#a-607707638">3.4.1</a>
681
+ <a href="#a-607221498">3.4.1</a>
674
682
 
675
683
  &nbsp;
676
684
 
@@ -721,7 +729,7 @@ $ ls -d /usr/lib/ruby/gems/1.8/gems/ruby-vpi*
721
729
 
722
730
  <div id="setup.maintenance" class="section">
723
731
  <h2 class="title">
724
- <a href="#a-607713978">3.5</a>
732
+ <a href="#a-607227838">3.5</a>
725
733
 
726
734
  &nbsp;
727
735
 
@@ -745,7 +753,7 @@ $ ls -d /usr/lib/ruby/gems/1.8/gems/ruby-vpi*
745
753
 
746
754
  <div id="organization" class="chapter">
747
755
  <h1 class="title">
748
- Chapter <a href="#a-607211338">4</a>
756
+ Chapter <a href="#a-607196488">4</a>
749
757
 
750
758
  <br/><br/>
751
759
 
@@ -765,7 +773,7 @@ $ ls -d /usr/lib/ruby/gems/1.8/gems/ruby-vpi*
765
773
  <div class="figure" id="fig:organization.detail">
766
774
 
767
775
 
768
- <p class="title"><a href="#a-607731018">Figure 1</a>. &nbsp; Where does Ruby-VPI fit in?</p>
776
+ <p class="title"><a href="#a-607244878">Figure 1</a>. &nbsp; Where does Ruby-VPI fit in?</p>
769
777
 
770
778
  <img src="figures/organization_detailed.png" alt="" />
771
779
  </div>
@@ -779,7 +787,7 @@ As <a href="#fig:organization.detail">Figure 1</a> shows, Ruby-VPI is composed o
779
787
 
780
788
  <div id="overview.relay" class="section">
781
789
  <h2 class="title">
782
- <a href="#a-607737308">4.1</a>
790
+ <a href="#a-607251168">4.1</a>
783
791
 
784
792
  &nbsp;
785
793
 
@@ -802,7 +810,7 @@ As <a href="#fig:organization.detail">Figure 1</a> shows, Ruby-VPI is composed o
802
810
  <div class="figure" id="fig:ruby_relay">
803
811
 
804
812
 
805
- <p class="title"><a href="#a-607733828">Figure 2</a>. &nbsp; Interaction between Ruby and Verilog</p>
813
+ <p class="title"><a href="#a-607247688">Figure 2</a>. &nbsp; Interaction between Ruby and Verilog</p>
806
814
 
807
815
  <img src="figures/ruby_relay.png" alt="" />
808
816
 
@@ -828,7 +836,7 @@ Another means of transferring control from the specification to the Verilog simu
828
836
 
829
837
  <div id="organization.tests" class="section">
830
838
  <h2 class="title">
831
- <a href="#a-607073988">4.2</a>
839
+ <a href="#a-607256738">4.2</a>
832
840
 
833
841
  &nbsp;
834
842
 
@@ -845,7 +853,7 @@ Another means of transferring control from the specification to the Verilog simu
845
853
  <div class="figure" id="fig:organization">
846
854
 
847
855
 
848
- <p class="title"><a href="#a-607070888">Figure 3</a>. &nbsp; Organization of a test in Ruby-VPI</p>
856
+ <p class="title"><a href="#a-607253638">Figure 3</a>. &nbsp; Organization of a test in Ruby-VPI</p>
849
857
 
850
858
  <img src="figures/organization.png" alt="" />
851
859
  </div>
@@ -868,7 +876,7 @@ Another means of transferring control from the specification to the Verilog simu
868
876
 
869
877
  <div id="VPI_in_Ruby" class="section">
870
878
  <h2 class="title">
871
- <a href="#a-607153008">4.3</a>
879
+ <a href="#a-607326178">4.3</a>
872
880
 
873
881
  &nbsp;
874
882
 
@@ -880,7 +888,7 @@ Another means of transferring control from the specification to the Verilog simu
880
888
 
881
889
  <div id="Deviations_from_the_VPI_standard" class="section">
882
890
  <h3 class="title">
883
- <a href="#a-607082938">4.3.1</a>
891
+ <a href="#a-607265658">4.3.1</a>
884
892
 
885
893
  &nbsp;
886
894
 
@@ -895,7 +903,7 @@ Another means of transferring control from the specification to the Verilog simu
895
903
 
896
904
  <div id="Names_are_capitalized" class="section">
897
905
  <h4 class="title">
898
- <a href="#a-607076508">4.3.1.1</a>
906
+ <a href="#a-607259228">4.3.1.1</a>
899
907
 
900
908
  &nbsp;
901
909
 
@@ -916,7 +924,7 @@ Another means of transferring control from the specification to the Verilog simu
916
924
 
917
925
  <div id="a_vprintf__is__printf_" class="section">
918
926
  <h4 class="title">
919
- <a href="#a-607079008">4.3.1.2</a>
927
+ <a href="#a-607261728">4.3.1.2</a>
920
928
 
921
929
  &nbsp;
922
930
 
@@ -927,7 +935,7 @@ Another means of transferring control from the specification to the Verilog simu
927
935
 
928
936
 
929
937
  <ul>
930
- <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>
938
+ <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>
931
939
  </ul>
932
940
 
933
941
 
@@ -953,7 +961,7 @@ Another means of transferring control from the specification to the Verilog simu
953
961
 
954
962
  <div id="vpi.handles" class="section">
955
963
  <h3 class="title">
956
- <a href="#a-607114548">4.3.2</a>
964
+ <a href="#a-607291198">4.3.2</a>
957
965
 
958
966
  &nbsp;
959
967
 
@@ -982,7 +990,7 @@ Another means of transferring control from the specification to the Verilog simu
982
990
 
983
991
  <div id="Accessing_a_handle_s_relatives" class="section">
984
992
  <h4 class="title">
985
- <a href="#a-607088158">4.3.2.2</a>
993
+ <a href="#a-607270878">4.3.2.2</a>
986
994
 
987
995
  &nbsp;
988
996
 
@@ -1019,7 +1027,7 @@ baz = vpi_handle_by_name( <span style="background-color:#fff0f0"><span style="co
1019
1027
 
1020
1028
  <div id="Accessing_a_handle_s_properties" class="section">
1021
1029
  <h4 class="title">
1022
- <a href="#a-607091098">4.3.2.3</a>
1030
+ <a href="#a-607273818">4.3.2.3</a>
1023
1031
 
1024
1032
  &nbsp;
1025
1033
 
@@ -1062,7 +1070,7 @@ result = wrapper.value.str.to_i( <span style="color:#00D; font-weight:bold">16</
1062
1070
  <div class="figure" id="fig:method_naming_format">
1063
1071
 
1064
1072
 
1065
- <p class="title"><a href="#a-607093898">Figure 4</a>. &nbsp; Method naming format for accessing a handle&#8217;s properties</p>
1073
+ <p class="title"><a href="#a-607276618">Figure 4</a>. &nbsp; Method naming format for accessing a handle&#8217;s properties</p>
1066
1074
 
1067
1075
  <table>
1068
1076
  <tr>
@@ -1115,7 +1123,7 @@ result = wrapper.value.str.to_i( <span style="color:#00D; font-weight:bold">16</
1115
1123
  <div class="table" id="tbl:accessors">
1116
1124
 
1117
1125
 
1118
- <p class="title"><a href="#a-607096328">Table 1</a>. &nbsp; Possible accessors and their implications</p>
1126
+ <p class="title"><a href="#a-607279048">Table 1</a>. &nbsp; Possible accessors and their implications</p>
1119
1127
 
1120
1128
  <table>
1121
1129
  <tr>
@@ -1169,7 +1177,7 @@ result = wrapper.value.str.to_i( <span style="color:#00D; font-weight:bold">16</
1169
1177
  <div class="table" id="ex:properties">
1170
1178
 
1171
1179
 
1172
- <p class="title"><a href="#a-607099288">Table 2</a>. &nbsp; Examples of accessing a handle&#8217;s properties</p>
1180
+ <p class="title"><a href="#a-607281988">Table 2</a>. &nbsp; Examples of accessing a handle&#8217;s properties</p>
1173
1181
 
1174
1182
  <table>
1175
1183
  <tr>
@@ -1494,7 +1502,7 @@ result = wrapper.value.str.to_i( <span style="color:#00D; font-weight:bold">16</
1494
1502
 
1495
1503
  <div id="vpi.callbacks" class="section">
1496
1504
  <h3 class="title">
1497
- <a href="#a-607126458">4.3.3</a>
1505
+ <a href="#a-607299628">4.3.3</a>
1498
1506
 
1499
1507
  &nbsp;
1500
1508
 
@@ -1514,7 +1522,7 @@ result = wrapper.value.str.to_i( <span style="color:#00D; font-weight:bold">16</
1514
1522
  <div class="example" id="ex:callback">
1515
1523
 
1516
1524
 
1517
- <p class="title"><a href="#a-607121788">Example 1</a>. &nbsp; Using a callback for value change notification</p>
1525
+ <p class="title"><a href="#a-607295148">Example 1</a>. &nbsp; Using a callback for value change notification</p>
1518
1526
 
1519
1527
  <p>This example shows how to use a callback for notification of changes in a handle&#8217;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>
1520
1528
 
@@ -1563,7 +1571,7 @@ cbHandle = vpi_register_cb(cbData) <span style="color:#080; font-weight:bold">do
1563
1571
 
1564
1572
  <div id="usage" class="chapter">
1565
1573
  <h1 class="title">
1566
- Chapter <a href="#a-607321458">5</a>
1574
+ Chapter <a href="#a-607334198">5</a>
1567
1575
 
1568
1576
  <br/><br/>
1569
1577
 
@@ -1575,7 +1583,7 @@ cbHandle = vpi_register_cb(cbData) <span style="color:#080; font-weight:bold">do
1575
1583
 
1576
1584
  <div id="usage.prototyping" class="section">
1577
1585
  <h2 class="title">
1578
- <a href="#a-607223668">5.1</a>
1586
+ <a href="#a-607215298">5.1</a>
1579
1587
 
1580
1588
  &nbsp;
1581
1589
 
@@ -1617,7 +1625,7 @@ cbHandle = vpi_register_cb(cbData) <span style="color:#080; font-weight:bold">do
1617
1625
 
1618
1626
  <div id="How_does_prototyping_work_" class="section">
1619
1627
  <h3 class="title">
1620
- <a href="#a-607218048">5.1.2</a>
1628
+ <a href="#a-607205498">5.1.2</a>
1621
1629
 
1622
1630
  &nbsp;
1623
1631
 
@@ -1639,7 +1647,7 @@ cbHandle = vpi_register_cb(cbData) <span style="color:#080; font-weight:bold">do
1639
1647
 
1640
1648
  <div id="usage.debugger" class="section">
1641
1649
  <h2 class="title">
1642
- <a href="#a-607229298">5.2</a>
1650
+ <a href="#a-607224358">5.2</a>
1643
1651
 
1644
1652
  &nbsp;
1645
1653
 
@@ -1660,7 +1668,7 @@ cbHandle = vpi_register_cb(cbData) <span style="color:#080; font-weight:bold">do
1660
1668
 
1661
1669
  <div id="usage.debugger.init" class="section">
1662
1670
  <h3 class="title">
1663
- <a href="#a-607226228">5.2.1</a>
1671
+ <a href="#a-607219398">5.2.1</a>
1664
1672
 
1665
1673
  &nbsp;
1666
1674
 
@@ -1685,7 +1693,7 @@ cbHandle = vpi_register_cb(cbData) <span style="color:#080; font-weight:bold">do
1685
1693
 
1686
1694
  <div id="usage.test-runner" class="section">
1687
1695
  <h2 class="title">
1688
- <a href="#a-607246068">5.3</a>
1696
+ <a href="#a-607246938">5.3</a>
1689
1697
 
1690
1698
  &nbsp;
1691
1699
 
@@ -1698,7 +1706,7 @@ cbHandle = vpi_register_cb(cbData) <span style="color:#080; font-weight:bold">do
1698
1706
  <p>When you invoke a test runner without any arguments, it will show you a list of available tasks:
1699
1707
  <pre>$ rake -f your_test_runner.rake
1700
1708
 
1701
- (in /home/sun/tmp/ruby-vpi/doc)
1709
+ (in /home/sun/src/ruby-vpi/doc)
1702
1710
  rake clean # Remove any temporary products.
1703
1711
  rake clobber # Remove any generated file.
1704
1712
  rake cver # Simulate with GPL Cver.
@@ -1715,7 +1723,7 @@ rake vsim # Simulate with Mentor Modelsim.
1715
1723
 
1716
1724
  <div id="usage.test-runner.env-vars" class="section">
1717
1725
  <h3 class="title">
1718
- <a href="#a-607238958">5.3.1</a>
1726
+ <a href="#a-607236808">5.3.1</a>
1719
1727
 
1720
1728
  &nbsp;
1721
1729
 
@@ -1762,7 +1770,7 @@ rake
1762
1770
  <div class="example" id="Running_a_test_with_environment_variables">
1763
1771
 
1764
1772
 
1765
- <p class="title"><a href="#a-607234788">Example 2</a>. &nbsp; Running a test with environment variables</p>
1773
+ <p class="title"><a href="#a-607232388">Example 2</a>. &nbsp; Running a test with environment variables</p>
1766
1774
 
1767
1775
  <p>Below, we enable the prototype and code coverage analysis:
1768
1776
  <pre>rake -f your_test_runner.rake PROTOTYPE=1 COVERAGE=1</pre></p>
@@ -1786,7 +1794,7 @@ rake
1786
1794
 
1787
1795
  <div id="usage.tools" class="section">
1788
1796
  <h2 class="title">
1789
- <a href="#a-607265218">5.4</a>
1797
+ <a href="#a-607278778">5.4</a>
1790
1798
 
1791
1799
  &nbsp;
1792
1800
 
@@ -1822,7 +1830,7 @@ Simulators:
1822
1830
 
1823
1831
  <div id="usage.tools.generate" class="section">
1824
1832
  <h3 class="title">
1825
- <a href="#a-607255398">5.4.1</a>
1833
+ <a href="#a-607262938">5.4.1</a>
1826
1834
 
1827
1835
  &nbsp;
1828
1836
 
@@ -1852,7 +1860,7 @@ A Ruby-VPI test is composed of the following files:
1852
1860
  <div class="caution" id="Do_not_rename_generated_files">
1853
1861
  <img src="images/tango/caution.png" alt="caution" class="icon"/>
1854
1862
 
1855
- <p class="title"><a href="#a-607248828">Caution 1</a>. &nbsp; Do not rename generated files</p>
1863
+ <p class="title"><a href="#a-607250958">Caution 1</a>. &nbsp; Do not rename generated files</p>
1856
1864
 
1857
1865
  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.
1858
1866
  </div>
@@ -1871,7 +1879,7 @@ By producing multiple files, the automated test generator physically decouples t
1871
1879
  <div class="tip" id="Using__kdiff3__with_the_automated_test_generator.">
1872
1880
  <img src="images/tango/tip.png" alt="tip" class="icon"/>
1873
1881
 
1874
- <p class="title"><a href="#a-607251318">Tip 2</a>. &nbsp; Using <strong>kdiff3</strong> with the automated test generator.</p>
1882
+ <p class="title"><a href="#a-607255718">Tip 3</a>. &nbsp; Using <strong>kdiff3</strong> with the automated test generator.</p>
1875
1883
 
1876
1884
  <ol>
1877
1885
  <li>Create a file named <tt>merge2</tt> with the following content: <pre class="code">
@@ -1897,7 +1905,7 @@ kdiff3 --auto --output <span style="background-color:#fff0f0"><span style="color
1897
1905
 
1898
1906
  <div id="usage.tools.convert" class="section">
1899
1907
  <h3 class="title">
1900
- <a href="#a-607257688">5.4.2</a>
1908
+ <a href="#a-607265448">5.4.2</a>
1901
1909
 
1902
1910
  &nbsp;
1903
1911
 
@@ -1919,14 +1927,14 @@ kdiff3 --auto --output <span style="background-color:#fff0f0"><span style="color
1919
1927
 
1920
1928
  <div id="usage.examples" class="section">
1921
1929
  <h2 class="title">
1922
- <a href="#a-607267438">5.5</a>
1930
+ <a href="#a-607282618">5.5</a>
1923
1931
 
1924
1932
  &nbsp;
1925
1933
 
1926
1934
  Sample tests
1927
1935
  </h2>
1928
1936
 
1929
- 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.
1937
+ 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.
1930
1938
 
1931
1939
  </div>
1932
1940
 
@@ -1935,7 +1943,7 @@ kdiff3 --auto --output <span style="background-color:#fff0f0"><span style="color
1935
1943
 
1936
1944
  <div id="usage.tutorial" class="section">
1937
1945
  <h2 class="title">
1938
- <a href="#a-607188458">5.6</a>
1946
+ <a href="#a-607395798">5.6</a>
1939
1947
 
1940
1948
  &nbsp;
1941
1949
 
@@ -1958,7 +1966,7 @@ kdiff3 --auto --output <span style="background-color:#fff0f0"><span style="color
1958
1966
 
1959
1967
  <div id="usage.tutorial.declare-design" class="section">
1960
1968
  <h3 class="title">
1961
- <a href="#a-607274848">5.6.1</a>
1969
+ <a href="#a-607290888">5.6.1</a>
1962
1970
 
1963
1971
  &nbsp;
1964
1972
 
@@ -1983,7 +1991,7 @@ kdiff3 --auto --output <span style="background-color:#fff0f0"><span style="color
1983
1991
  <div class="example" id="fig:counter.v_decl">
1984
1992
 
1985
1993
 
1986
- <p class="title"><a href="#a-607271338">Example 3</a>. &nbsp; Declaration of a simple up-counter with synchronous reset</p>
1994
+ <p class="title"><a href="#a-607287308">Example 3</a>. &nbsp; Declaration of a simple up-counter with synchronous reset</p>
1987
1995
 
1988
1996
  <pre class="code" lang="verilog">
1989
1997
  module counter #(parameter Size = 5) (
@@ -2007,7 +2015,7 @@ Before we continue, save the source code shown in <a href="#fig:counter.v_decl">
2007
2015
 
2008
2016
  <div id="usage.tutorial.generate-test" class="section">
2009
2017
  <h3 class="title">
2010
- <a href="#a-607081228">5.6.2</a>
2018
+ <a href="#a-607305468">5.6.2</a>
2011
2019
 
2012
2020
  &nbsp;
2013
2021
 
@@ -2043,7 +2051,7 @@ $ cp counter.v xUnit
2043
2051
  <div class="example" id="fig:generate-test.RSpec">
2044
2052
 
2045
2053
 
2046
- <p class="title"><a href="#a-607278188">Example 4</a>. &nbsp; Generating a test with specification in RSpec format</p>
2054
+ <p class="title"><a href="#a-607296778">Example 4</a>. &nbsp; Generating a test with specification in RSpec format</p>
2047
2055
 
2048
2056
  <pre>
2049
2057
  $ ruby-vpi generate counter.v --RSpec
@@ -2065,7 +2073,7 @@ $ ruby-vpi generate counter.v --RSpec
2065
2073
  <div class="example" id="fig:generate-test.xUnit">
2066
2074
 
2067
2075
 
2068
- <p class="title"><a href="#a-607073088">Example 5</a>. &nbsp; Generating a test with specification in xUnit format</p>
2076
+ <p class="title"><a href="#a-607299658">Example 5</a>. &nbsp; Generating a test with specification in xUnit format</p>
2069
2077
 
2070
2078
  <pre>
2071
2079
  $ ruby-vpi generate counter.v --xUnit
@@ -2090,7 +2098,7 @@ $ ruby-vpi generate counter.v --xUnit
2090
2098
 
2091
2099
  <div id="usage.tutorial.specification" class="section">
2092
2100
  <h3 class="title">
2093
- <a href="#a-607098358">5.6.3</a>
2101
+ <a href="#a-607315968">5.6.3</a>
2094
2102
 
2095
2103
  &nbsp;
2096
2104
 
@@ -2118,7 +2126,7 @@ Here are some reasonable expectations for our simple counter:
2118
2126
  <div class="example" id="fig:RSpec_counter_spec.rb">
2119
2127
 
2120
2128
 
2121
- <p class="title"><a href="#a-607085368">Example 6</a>. &nbsp; Specification implemented in RSpec format</p>
2129
+ <p class="title"><a href="#a-607308538">Example 6</a>. &nbsp; Specification implemented in RSpec format</p>
2122
2130
 
2123
2131
  <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>
2124
2132
 
@@ -2170,7 +2178,7 @@ describe <span style="background-color:#fff0f0"><span style="color:#710">&quot;<
2170
2178
  <div class="example" id="fig:xUnit_counter_spec.rb">
2171
2179
 
2172
2180
 
2173
- <p class="title"><a href="#a-607089898">Example 7</a>. &nbsp; Specification implemented in xUnit format</p>
2181
+ <p class="title"><a href="#a-607310978">Example 7</a>. &nbsp; Specification implemented in xUnit format</p>
2174
2182
 
2175
2183
  <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>
2176
2184
 
@@ -2219,22 +2227,6 @@ Before we continue,
2219
2227
  <ol>
2220
2228
  <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>
2221
2229
  <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>
2222
- <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">
2223
- <span style="color:#888"># Simulates the design under test for one clock cycle.</span>
2224
- <span style="color:#080; font-weight:bold">def</span> <span style="color:#06B; font-weight:bold">cycle!</span>
2225
- clock.high!
2226
- advance_time
2227
- clock.low!
2228
- advance_time
2229
- <span style="color:#080; font-weight:bold">end</span>
2230
-
2231
- <span style="color:#888"># Brings the design under test into a blank state.</span>
2232
- <span style="color:#080; font-weight:bold">def</span> <span style="color:#06B; font-weight:bold">reset!</span>
2233
- reset.high!
2234
- cycle!
2235
- reset.low!
2236
- <span style="color:#080; font-weight:bold">end</span>
2237
- </pre></li>
2238
2230
  </ol>
2239
2231
 
2240
2232
  </div>
@@ -2246,7 +2238,7 @@ Before we continue,
2246
2238
 
2247
2239
  <div id="usage.tutorial.implement-proto" class="section">
2248
2240
  <h3 class="title">
2249
- <a href="#a-607106078">5.6.4</a>
2241
+ <a href="#a-607322378">5.6.4</a>
2250
2242
 
2251
2243
  &nbsp;
2252
2244
 
@@ -2263,7 +2255,7 @@ Before we continue,
2263
2255
  <div class="example" id="fig:counter_proto.rb">
2264
2256
 
2265
2257
 
2266
- <p class="title"><a href="#a-607102138">Example 8</a>. &nbsp; Ruby prototype of our Verilog design</p>
2258
+ <p class="title"><a href="#a-607318638">Example 8</a>. &nbsp; Ruby prototype of our Verilog design</p>
2267
2259
 
2268
2260
  <pre class="code"><span style="color:#888"># Ruby prototype of the design under test's Verilog implementation.</span>
2269
2261
  <span style="color:#080; font-weight:bold">def</span> <span style="color:#06B; font-weight:bold">feign!</span>
@@ -2290,7 +2282,7 @@ Before we continue, replace the contents of the files named <tt>RSpec/counter_pr
2290
2282
 
2291
2283
  <div id="usage.tutorial.test-proto" class="section">
2292
2284
  <h3 class="title">
2293
- <a href="#a-607132558">5.6.5</a>
2285
+ <a href="#a-607341078">5.6.5</a>
2294
2286
 
2295
2287
  &nbsp;
2296
2288
 
@@ -2310,7 +2302,7 @@ Before we continue, replace the contents of the files named <tt>RSpec/counter_pr
2310
2302
  <div class="example" id="fig:test-proto.RSpec">
2311
2303
 
2312
2304
 
2313
- <p class="title"><a href="#a-607119008">Example 9</a>. &nbsp; Running a test with specification in RSpec format</p>
2305
+ <p class="title"><a href="#a-607325878">Example 9</a>. &nbsp; Running a test with specification in RSpec format</p>
2314
2306
 
2315
2307
  <pre>
2316
2308
  $ cd RSpec
@@ -2334,7 +2326,7 @@ cd -
2334
2326
  <div class="example" id="fig:test-proto.unit-test">
2335
2327
 
2336
2328
 
2337
- <p class="title"><a href="#a-607123158">Example 10</a>. &nbsp; Running a test with specification in xUnit format</p>
2329
+ <p class="title"><a href="#a-607330448">Example 10</a>. &nbsp; Running a test with specification in xUnit format</p>
2338
2330
 
2339
2331
  <pre>
2340
2332
  $ cd xUnit
@@ -2358,7 +2350,7 @@ Finished in 0.043859 seconds.
2358
2350
  <div class="tip" id="What_can_the_test_runner_do_">
2359
2351
  <img src="images/tango/tip.png" alt="tip" class="icon"/>
2360
2352
 
2361
- <p class="title"><a href="#a-607126068">Tip 3</a>. &nbsp; What can the test runner do?</p>
2353
+ <p class="title"><a href="#a-607335018">Tip 4</a>. &nbsp; What can the test runner do?</p>
2362
2354
 
2363
2355
  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.
2364
2356
  </div>
@@ -2374,7 +2366,7 @@ Finished in 0.043859 seconds.
2374
2366
 
2375
2367
  <div id="usage.tutorial.implement-design" class="section">
2376
2368
  <h3 class="title">
2377
- <a href="#a-607138718">5.6.6</a>
2369
+ <a href="#a-607349478">5.6.6</a>
2378
2370
 
2379
2371
  &nbsp;
2380
2372
 
@@ -2391,7 +2383,7 @@ Finished in 0.043859 seconds.
2391
2383
  <div class="example" id="fig:counter.v_impl">
2392
2384
 
2393
2385
 
2394
- <p class="title"><a href="#a-607135238">Example 11</a>. &nbsp; Implementation of a simple up-counter with synchronous reset</p>
2386
+ <p class="title"><a href="#a-607343828">Example 11</a>. &nbsp; Implementation of a simple up-counter with synchronous reset</p>
2395
2387
 
2396
2388
  <pre class="code" lang="verilog">/**
2397
2389
  A simple up-counter with synchronous reset.
@@ -2428,7 +2420,7 @@ Before we continue, replace the contents of the files named <tt>RSpec/counter.v<
2428
2420
 
2429
2421
  <div id="usage.tutorial.test-design" class="section">
2430
2422
  <h3 class="title">
2431
- <a href="#a-607149178">5.6.7</a>
2423
+ <a href="#a-607359608">5.6.7</a>
2432
2424
 
2433
2425
  &nbsp;
2434
2426
 
@@ -2448,7 +2440,7 @@ Before we continue, replace the contents of the files named <tt>RSpec/counter.v<
2448
2440
  <div class="example" id="fig:test-design.RSpec">
2449
2441
 
2450
2442
 
2451
- <p class="title"><a href="#a-607141778">Example 12</a>. &nbsp; Running a test with specification in RSpec format</p>
2443
+ <p class="title"><a href="#a-607352688">Example 12</a>. &nbsp; Running a test with specification in RSpec format</p>
2452
2444
 
2453
2445
  <pre>
2454
2446
  $ cd RSpec
@@ -2470,7 +2462,7 @@ Finished in 0.041198 seconds
2470
2462
  <div class="example" id="fig:test-design.unit-test">
2471
2463
 
2472
2464
 
2473
- <p class="title"><a href="#a-607144398">Example 13</a>. &nbsp; Running a test with specification in xUnit format</p>
2465
+ <p class="title"><a href="#a-607355168">Example 13</a>. &nbsp; Running a test with specification in xUnit format</p>
2474
2466
 
2475
2467
  <pre>
2476
2468
  $ cd xUnit
@@ -2499,7 +2491,7 @@ Finished in 0.040262 seconds.
2499
2491
 
2500
2492
  <div id="hacking" class="chapter">
2501
2493
  <h1 class="title">
2502
- Chapter <a href="#a-607333248">6</a>
2494
+ Chapter <a href="#a-607351098">6</a>
2503
2495
 
2504
2496
  <br/><br/>
2505
2497
 
@@ -2511,7 +2503,7 @@ Finished in 0.040262 seconds.
2511
2503
 
2512
2504
  <div id="hacking.scm" class="section">
2513
2505
  <h2 class="title">
2514
- <a href="#a-607323788">6.1</a>
2506
+ <a href="#a-607337768">6.1</a>
2515
2507
 
2516
2508
  &nbsp;
2517
2509
 
@@ -2532,7 +2524,7 @@ Finished in 0.040262 seconds.
2532
2524
 
2533
2525
  <div id="hacking.release-packages" class="section">
2534
2526
  <h2 class="title">
2535
- <a href="#a-607326418">6.2</a>
2527
+ <a href="#a-607340498">6.2</a>
2536
2528
 
2537
2529
  &nbsp;
2538
2530
 
@@ -2560,7 +2552,7 @@ Finished in 0.040262 seconds.
2560
2552
 
2561
2553
  <div id="hacking.manual" class="section">
2562
2554
  <h2 class="title">
2563
- <a href="#a-607328648">6.3</a>
2555
+ <a href="#a-607344628">6.3</a>
2564
2556
 
2565
2557
  &nbsp;
2566
2558
 
@@ -2578,7 +2570,7 @@ Finished in 0.040262 seconds.
2578
2570
 
2579
2571
  <div id="problems" class="chapter">
2580
2572
  <h1 class="title">
2581
- Chapter <a href="#a-607380138">7</a>
2573
+ Chapter <a href="#a-607417768">7</a>
2582
2574
 
2583
2575
  <br/><br/>
2584
2576
 
@@ -2593,26 +2585,29 @@ Finished in 0.040262 seconds.
2593
2585
 
2594
2586
  <div id="problem.ivl" class="section">
2595
2587
  <h2 class="title">
2596
- <a href="#a-607358828">7.1</a>
2588
+ <a href="#a-607385318">7.1</a>
2597
2589
 
2598
2590
  &nbsp;
2599
2591
 
2600
2592
  Icarus Verilog
2601
2593
  </h2>
2602
2594
 
2603
-
2604
- <hr style="display: none"/>
2595
+ <p>The following sections describe problems that occur when Icarus Verilog is used with Ruby-VPI.</p>
2605
2596
 
2606
- <div id="problems.ivl.vpi_handle_by_name.absolute-paths" class="section">
2607
- <h3 class="title">
2608
- <a href="#a-607339198">7.1.1</a>
2609
2597
 
2610
- &nbsp;
2598
+ <p>
2599
+ <hr style="display: none"/>
2611
2600
 
2612
- Give full paths to Verilog objects
2613
- </h3>
2601
+ <div id="problems.ivl.vpi_handle_by_name.absolute-paths" class="section">
2602
+ <h3 class="title">
2603
+ <a href="#a-607359978">7.1.1</a>
2604
+
2605
+ &nbsp;
2614
2606
 
2615
- <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>
2607
+ Give full paths to Verilog objects
2608
+ </h3>
2609
+
2610
+ <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>
2616
2611
 
2617
2612
 
2618
2613
  <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">&quot;</span><span style="color:#D20">TestFoo.my_foo.clk</span><span style="color:#710">&quot;</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">&quot;</span><span style="color:#D20">my_foo.clk</span><span style="color:#710">&quot;</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>
@@ -2625,7 +2620,7 @@ Finished in 0.040262 seconds.
2625
2620
  <div class="example" id="ex:TestFoo">
2626
2621
 
2627
2622
 
2628
- <p class="title"><a href="#a-607336038">Example 14</a>. &nbsp; Part of a bench which instantiates a Verilog design</p>
2623
+ <p class="title"><a href="#a-607355728">Example 14</a>. &nbsp; Part of a bench which instantiates a Verilog design</p>
2629
2624
 
2630
2625
  <pre class="code" lang="verilog">
2631
2626
  module TestFoo;
@@ -2637,14 +2632,14 @@ endmodule
2637
2632
  </div>
2638
2633
  </p>
2639
2634
 
2640
- </div>
2641
-
2635
+ </div>
2636
+
2642
2637
 
2643
2638
  <hr style="display: none"/>
2644
2639
 
2645
2640
  <div id="problems.ivl.vpi_handle_by_name.connect-registers" class="section">
2646
2641
  <h3 class="title">
2647
- <a href="#a-607348888">7.1.2</a>
2642
+ <a href="#a-607371468">7.1.2</a>
2648
2643
 
2649
2644
  &nbsp;
2650
2645
 
@@ -2667,7 +2662,7 @@ endmodule
2667
2662
  <div class="example" id="ex:TestFoo_bad">
2668
2663
 
2669
2664
 
2670
- <p class="title"><a href="#a-607342098">Example 15</a>. &nbsp; Bad design with unconnected registers</p>
2665
+ <p class="title"><a href="#a-607364178">Example 15</a>. &nbsp; Bad design with unconnected registers</p>
2671
2666
 
2672
2667
  Here the <code class="code">clk_reg</code> register is not connected to anything.
2673
2668
 
@@ -2687,7 +2682,7 @@ endmodule
2687
2682
  <div class="example" id="ex:TestFoo_fix">
2688
2683
 
2689
2684
 
2690
- <p class="title"><a href="#a-607344538">Example 16</a>. &nbsp; Fixed design with wired registers</p>
2685
+ <p class="title"><a href="#a-607366888">Example 16</a>. &nbsp; Fixed design with wired registers</p>
2691
2686
 
2692
2687
  Here the <code class="code">clk_reg</code> register is connected to the <code class="code">clk_wire</code> wire.
2693
2688
 
@@ -2706,21 +2701,61 @@ endmodule
2706
2701
  </div>
2707
2702
 
2708
2703
 
2704
+ <hr style="display: none"/>
2705
+
2706
+ <div id="problems.ivl.vpi_reset" class="section">
2707
+ <h3 class="title">
2708
+ <a href="#a-607373948">7.1.3</a>
2709
+
2710
+ &nbsp;
2711
+
2712
+ Vpi::reset
2713
+ </h3>
2714
+
2715
+ 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.
2716
+
2717
+ </div>
2718
+ </p>
2719
+
2709
2720
  </div>
2710
2721
 
2711
2722
 
2712
2723
  <hr style="display: none"/>
2713
2724
 
2714
- <div id="problems.ivl.vpi_reset" class="section">
2725
+ <div id="problem.ncsim" class="section">
2715
2726
  <h2 class="title">
2716
- <a href="#a-607361048">7.2</a>
2727
+ <a href="#a-607390998">7.2</a>
2717
2728
 
2718
2729
  &nbsp;
2719
2730
 
2720
- Vpi::reset
2731
+ Cadence NC-Sim
2721
2732
  </h2>
2722
2733
 
2723
- 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.
2734
+ <p>The following sections describe problems that occur when Cadence NC-Sim (version 05.83-s003) is used with Ruby-VPI.</p>
2735
+
2736
+
2737
+ <p>
2738
+ <hr style="display: none"/>
2739
+
2740
+ <div id="problem.ncsim.vpiForceFlag" class="section">
2741
+ <h3 class="title">
2742
+ <a href="#a-607387788">7.2.1</a>
2743
+
2744
+ &nbsp;
2745
+
2746
+ Cannot force values onto handles
2747
+ </h3>
2748
+
2749
+ <p>When you write to a handle&#8217;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 &#8220;register_file&#8221; sample test fails when you run it with NC-Sim.</p>
2750
+
2751
+
2752
+ <p>This might be a bug in NC-Sim itself: even though I specified the &#8220;+access+rwc&#8221; command-line option for NC-Sim, I&#8217;m thinking that the force/release capability is not really enabled. However, it&#8217;s more likely that there&#8217;s a bug in the &#8220;register_file&#8221; sample test.</p>
2753
+
2754
+
2755
+ <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>
2756
+
2757
+ </div>
2758
+ </p>
2724
2759
 
2725
2760
  </div>
2726
2761
  </p>
@@ -2731,7 +2766,7 @@ endmodule
2731
2766
 
2732
2767
  <div id="glossary" class="chapter">
2733
2768
  <h1 class="title">
2734
- Chapter <a href="#a-607138038">8</a>
2769
+ Chapter <a href="#a-607450218">8</a>
2735
2770
 
2736
2771
  <br/><br/>
2737
2772
 
@@ -2743,7 +2778,7 @@ endmodule
2743
2778
 
2744
2779
  <div id="glossary.test" class="section">
2745
2780
  <h2 class="title">
2746
- <a href="#a-607382968">8.1</a>
2781
+ <a href="#a-607420598">8.1</a>
2747
2782
 
2748
2783
  &nbsp;
2749
2784
 
@@ -2759,7 +2794,7 @@ endmodule
2759
2794
 
2760
2795
  <div id="glossary.design" class="section">
2761
2796
  <h2 class="title">
2762
- <a href="#a-607385468">8.2</a>
2797
+ <a href="#a-607423098">8.2</a>
2763
2798
 
2764
2799
  &nbsp;
2765
2800
 
@@ -2775,7 +2810,7 @@ endmodule
2775
2810
 
2776
2811
  <div id="glossary.specification" class="section">
2777
2812
  <h2 class="title">
2778
- <a href="#a-607076108">8.3</a>
2813
+ <a href="#a-607425858">8.3</a>
2779
2814
 
2780
2815
  &nbsp;
2781
2816
 
@@ -2791,7 +2826,7 @@ endmodule
2791
2826
 
2792
2827
  <div id="glossary.expectation" class="section">
2793
2828
  <h2 class="title">
2794
- <a href="#a-607080598">8.4</a>
2829
+ <a href="#a-607428078">8.4</a>
2795
2830
 
2796
2831
  &nbsp;
2797
2832
 
@@ -2807,7 +2842,7 @@ endmodule
2807
2842
 
2808
2843
  <div id="glossary.handle" class="section">
2809
2844
  <h2 class="title">
2810
- <a href="#a-607087288">8.5</a>
2845
+ <a href="#a-607430558">8.5</a>
2811
2846
 
2812
2847
  &nbsp;
2813
2848
 
@@ -2823,7 +2858,7 @@ endmodule
2823
2858
 
2824
2859
  <div id="glossary.rake" class="section">
2825
2860
  <h2 class="title">
2826
- <a href="#a-607093708">8.6</a>
2861
+ <a href="#a-607432818">8.6</a>
2827
2862
 
2828
2863
  &nbsp;
2829
2864
 
@@ -2844,7 +2879,7 @@ endmodule
2844
2879
 
2845
2880
  <div id="glossary.RSpec" class="section">
2846
2881
  <h2 class="title">
2847
- <a href="#a-607099278">8.7</a>
2882
+ <a href="#a-607435358">8.7</a>
2848
2883
 
2849
2884
  &nbsp;
2850
2885
 
@@ -2854,7 +2889,7 @@ endmodule
2854
2889
  <p>The <a href="#glossary.BDD">BDD</a> framework for Ruby.</p>
2855
2890
 
2856
2891
 
2857
- <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>
2892
+ <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>
2858
2893
 
2859
2894
  </div>
2860
2895
 
@@ -2863,7 +2898,7 @@ endmodule
2863
2898
 
2864
2899
  <div id="glossary.TDD" class="section">
2865
2900
  <h2 class="title">
2866
- <a href="#a-607104428">8.8</a>
2901
+ <a href="#a-607437618">8.8</a>
2867
2902
 
2868
2903
  &nbsp;
2869
2904
 
@@ -2882,7 +2917,7 @@ endmodule
2882
2917
 
2883
2918
  <div id="glossary.BDD" class="section">
2884
2919
  <h2 class="title">
2885
- <a href="#a-607113088">8.9</a>
2920
+ <a href="#a-607439878">8.9</a>
2886
2921
 
2887
2922
  &nbsp;
2888
2923
 
@@ -2902,52 +2937,49 @@ endmodule
2902
2937
  <hr style="display: none"/>
2903
2938
  <div id="toc">
2904
2939
  <h1 id="toc:contents">Contents</h1>
2905
- <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&#8217;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&#8217;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>
2940
+ <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&#8217;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&#8217;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>
2906
2941
 
2907
2942
  <h1 id="toc:tip">Tips</h1>
2908
2943
  <ol>
2909
- <li><a href="#Add_support_for_your_Verilog_simulator" id="a-607693408">Add support for your Verilog simulator</a></li>
2910
- <li><a href="#Using__kdiff3__with_the_automated_test_generator." id="a-607251318">Using <strong>kdiff3</strong> with the automated test generator.</a></li>
2911
- <li><a href="#What_can_the_test_runner_do_" id="a-607126068">What can the test runner do?</a></li>
2912
- </ol>
2913
- <h1 id="toc:note">Notes</h1>
2914
- <ol>
2915
- <li><a href="#Tuning_for_maximum_performance" id="a-607705108">Tuning for maximum performance</a></li>
2944
+ <li><a href="#Add_support_for_your_Verilog_simulator" id="a-607207278">Add support for your Verilog simulator</a></li>
2945
+ <li><a href="#Tuning_for_maximum_performance" id="a-607218968">Tuning for maximum performance</a></li>
2946
+ <li><a href="#Using__kdiff3__with_the_automated_test_generator." id="a-607255718">Using <strong>kdiff3</strong> with the automated test generator.</a></li>
2947
+ <li><a href="#What_can_the_test_runner_do_" id="a-607335018">What can the test runner do?</a></li>
2916
2948
  </ol>
2917
2949
  <h1 id="toc:caution">Cautions</h1>
2918
2950
  <ol>
2919
- <li><a href="#Do_not_rename_generated_files" id="a-607248828">Do not rename generated files</a></li>
2951
+ <li><a href="#Do_not_rename_generated_files" id="a-607250958">Do not rename generated files</a></li>
2920
2952
  </ol>
2921
2953
  <h1 id="toc:figure">Figures</h1>
2922
2954
  <ol>
2923
- <li><a href="#fig:organization.detail" id="a-607731018">Where does Ruby-VPI fit in?</a></li>
2924
- <li><a href="#fig:ruby_relay" id="a-607733828">Interaction between Ruby and Verilog</a></li>
2925
- <li><a href="#fig:organization" id="a-607070888">Organization of a test in Ruby-VPI</a></li>
2926
- <li><a href="#fig:method_naming_format" id="a-607093898">Method naming format for accessing a handle&#8217;s properties</a></li>
2955
+ <li><a href="#fig:organization.detail" id="a-607244878">Where does Ruby-VPI fit in?</a></li>
2956
+ <li><a href="#fig:ruby_relay" id="a-607247688">Interaction between Ruby and Verilog</a></li>
2957
+ <li><a href="#fig:organization" id="a-607253638">Organization of a test in Ruby-VPI</a></li>
2958
+ <li><a href="#fig:method_naming_format" id="a-607276618">Method naming format for accessing a handle&#8217;s properties</a></li>
2927
2959
  </ol>
2928
2960
  <h1 id="toc:table">Tables</h1>
2929
2961
  <ol>
2930
- <li><a href="#tbl:accessors" id="a-607096328">Possible accessors and their implications</a></li>
2931
- <li><a href="#ex:properties" id="a-607099288">Examples of accessing a handle&#8217;s properties</a></li>
2962
+ <li><a href="#tbl:accessors" id="a-607279048">Possible accessors and their implications</a></li>
2963
+ <li><a href="#ex:properties" id="a-607281988">Examples of accessing a handle&#8217;s properties</a></li>
2932
2964
  </ol>
2933
2965
  <h1 id="toc:example">Examples</h1>
2934
2966
  <ol>
2935
- <li><a href="#ex:callback" id="a-607121788">Using a callback for value change notification</a></li>
2936
- <li><a href="#Running_a_test_with_environment_variables" id="a-607234788">Running a test with environment variables</a></li>
2937
- <li><a href="#fig:counter.v_decl" id="a-607271338">Declaration of a simple up-counter with synchronous reset</a></li>
2938
- <li><a href="#fig:generate-test.RSpec" id="a-607278188">Generating a test with specification in RSpec format</a></li>
2939
- <li><a href="#fig:generate-test.xUnit" id="a-607073088">Generating a test with specification in xUnit format</a></li>
2940
- <li><a href="#fig:RSpec_counter_spec.rb" id="a-607085368">Specification implemented in RSpec format</a></li>
2941
- <li><a href="#fig:xUnit_counter_spec.rb" id="a-607089898">Specification implemented in xUnit format</a></li>
2942
- <li><a href="#fig:counter_proto.rb" id="a-607102138">Ruby prototype of our Verilog design</a></li>
2943
- <li><a href="#fig:test-proto.RSpec" id="a-607119008">Running a test with specification in RSpec format</a></li>
2944
- <li><a href="#fig:test-proto.unit-test" id="a-607123158">Running a test with specification in xUnit format</a></li>
2945
- <li><a href="#fig:counter.v_impl" id="a-607135238">Implementation of a simple up-counter with synchronous reset</a></li>
2946
- <li><a href="#fig:test-design.RSpec" id="a-607141778">Running a test with specification in RSpec format</a></li>
2947
- <li><a href="#fig:test-design.unit-test" id="a-607144398">Running a test with specification in xUnit format</a></li>
2948
- <li><a href="#ex:TestFoo" id="a-607336038">Part of a bench which instantiates a Verilog design</a></li>
2949
- <li><a href="#ex:TestFoo_bad" id="a-607342098">Bad design with unconnected registers</a></li>
2950
- <li><a href="#ex:TestFoo_fix" id="a-607344538">Fixed design with wired registers</a></li>
2967
+ <li><a href="#ex:callback" id="a-607295148">Using a callback for value change notification</a></li>
2968
+ <li><a href="#Running_a_test_with_environment_variables" id="a-607232388">Running a test with environment variables</a></li>
2969
+ <li><a href="#fig:counter.v_decl" id="a-607287308">Declaration of a simple up-counter with synchronous reset</a></li>
2970
+ <li><a href="#fig:generate-test.RSpec" id="a-607296778">Generating a test with specification in RSpec format</a></li>
2971
+ <li><a href="#fig:generate-test.xUnit" id="a-607299658">Generating a test with specification in xUnit format</a></li>
2972
+ <li><a href="#fig:RSpec_counter_spec.rb" id="a-607308538">Specification implemented in RSpec format</a></li>
2973
+ <li><a href="#fig:xUnit_counter_spec.rb" id="a-607310978">Specification implemented in xUnit format</a></li>
2974
+ <li><a href="#fig:counter_proto.rb" id="a-607318638">Ruby prototype of our Verilog design</a></li>
2975
+ <li><a href="#fig:test-proto.RSpec" id="a-607325878">Running a test with specification in RSpec format</a></li>
2976
+ <li><a href="#fig:test-proto.unit-test" id="a-607330448">Running a test with specification in xUnit format</a></li>
2977
+ <li><a href="#fig:counter.v_impl" id="a-607343828">Implementation of a simple up-counter with synchronous reset</a></li>
2978
+ <li><a href="#fig:test-design.RSpec" id="a-607352688">Running a test with specification in RSpec format</a></li>
2979
+ <li><a href="#fig:test-design.unit-test" id="a-607355168">Running a test with specification in xUnit format</a></li>
2980
+ <li><a href="#ex:TestFoo" id="a-607355728">Part of a bench which instantiates a Verilog design</a></li>
2981
+ <li><a href="#ex:TestFoo_bad" id="a-607364178">Bad design with unconnected registers</a></li>
2982
+ <li><a href="#ex:TestFoo_fix" id="a-607366888">Fixed design with wired registers</a></li>
2951
2983
  </ol>
2952
2984
  </div>
2953
2985
  </body>