ruby-vpi 18.0.0 → 18.0.1

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 (93) hide show
  1. data/bin/generate.rb +1 -1
  2. data/doc/common.inc +7 -6
  3. data/doc/history.html +76 -40
  4. data/doc/history.inc +14 -1
  5. data/doc/history.yaml +21 -0
  6. data/doc/intro.inc +11 -1
  7. data/doc/lib/doc_format.rb +1 -1
  8. data/doc/manual.html +181 -147
  9. data/doc/memo.html +4 -4
  10. data/doc/readme.html +61 -27
  11. data/doc/rss.xml +30 -25
  12. data/ext/extconf.rb +1 -1
  13. data/lib/ruby-vpi/erb.rb +1 -1
  14. data/lib/ruby-vpi/float.rb +1 -1
  15. data/lib/ruby-vpi/integer.rb +1 -1
  16. data/lib/ruby-vpi/rake.rb +1 -1
  17. data/lib/ruby-vpi/rcov.rb +1 -1
  18. data/lib/ruby-vpi/runner.rb +5 -4
  19. data/lib/ruby-vpi/runner_boot_loader.rb +9 -1
  20. data/lib/ruby-vpi/runner_proxy.rb +1 -1
  21. data/lib/ruby-vpi/util.rb +9 -3
  22. data/lib/ruby-vpi/verilog_parser.rb +1 -1
  23. data/lib/ruby-vpi/vpi.rb +4 -4
  24. data/lib/ruby-vpi.rb +1 -1
  25. data/ref/c/annotated.html +1 -1
  26. data/ref/c/common_8h.html +1 -1
  27. data/ref/c/files.html +1 -1
  28. data/ref/c/functions.html +1 -1
  29. data/ref/c/functions_vars.html +1 -1
  30. data/ref/c/globals.html +1 -1
  31. data/ref/c/globals_0x63.html +1 -1
  32. data/ref/c/globals_0x65.html +1 -1
  33. data/ref/c/globals_0x66.html +1 -1
  34. data/ref/c/globals_0x6d.html +1 -1
  35. data/ref/c/globals_0x70.html +1 -1
  36. data/ref/c/globals_0x72.html +1 -1
  37. data/ref/c/globals_0x73.html +1 -1
  38. data/ref/c/globals_0x74.html +1 -1
  39. data/ref/c/globals_0x76.html +1 -1
  40. data/ref/c/globals_0x78.html +1 -1
  41. data/ref/c/globals_defs.html +1 -1
  42. data/ref/c/globals_defs_0x65.html +1 -1
  43. data/ref/c/globals_defs_0x70.html +1 -1
  44. data/ref/c/globals_defs_0x76.html +1 -1
  45. data/ref/c/globals_defs_0x78.html +1 -1
  46. data/ref/c/globals_enum.html +1 -1
  47. data/ref/c/globals_eval.html +1 -1
  48. data/ref/c/globals_func.html +1 -1
  49. data/ref/c/globals_type.html +1 -1
  50. data/ref/c/globals_vars.html +1 -1
  51. data/ref/c/index.html +1 -1
  52. data/ref/c/main_8c.html +1 -1
  53. data/ref/c/main_8h.html +1 -1
  54. data/ref/c/relay_8c.html +1 -1
  55. data/ref/c/relay_8h.html +1 -1
  56. data/ref/c/structt__cb__data.html +1 -1
  57. data/ref/c/structt__vpi__delay.html +1 -1
  58. data/ref/c/structt__vpi__error__info.html +1 -1
  59. data/ref/c/structt__vpi__strengthval.html +1 -1
  60. data/ref/c/structt__vpi__systf__data.html +1 -1
  61. data/ref/c/structt__vpi__time.html +1 -1
  62. data/ref/c/structt__vpi__value.html +1 -1
  63. data/ref/c/structt__vpi__vecval.html +1 -1
  64. data/ref/c/structt__vpi__vlog__info.html +1 -1
  65. data/ref/c/verilog_8h.html +1 -1
  66. data/ref/c/vlog_8c.html +1 -1
  67. data/ref/c/vlog_8h.html +1 -1
  68. data/ref/c/vpi__user_8h.html +1 -1
  69. data/ref/ruby/classes/String.html +5 -2
  70. data/ref/ruby/classes/String.src/M000024.html +4 -4
  71. data/ref/ruby/classes/String.src/M000025.html +4 -4
  72. data/ref/ruby/classes/Vpi/Handle.src/M000047.html +2 -2
  73. data/ref/ruby/classes/Vpi.src/M000030.html +1 -1
  74. data/ref/ruby/created.rid +1 -1
  75. data/ref/ruby/files/bin/generate_rb.html +1 -1
  76. data/ref/ruby/files/lib/ruby-vpi/erb_rb.html +1 -1
  77. data/ref/ruby/files/lib/ruby-vpi/float_rb.html +1 -1
  78. data/ref/ruby/files/lib/ruby-vpi/integer_rb.html +1 -1
  79. data/ref/ruby/files/lib/ruby-vpi/rake_rb.html +1 -1
  80. data/ref/ruby/files/lib/ruby-vpi/rcov_rb.html +1 -1
  81. data/ref/ruby/files/lib/ruby-vpi/runner_boot_loader_rb.html +1 -1
  82. data/ref/ruby/files/lib/ruby-vpi/runner_boot_loader_rb.src/M000001.html +3 -3
  83. data/ref/ruby/files/lib/ruby-vpi/runner_boot_loader_rb.src/M000002.html +4 -4
  84. data/ref/ruby/files/lib/ruby-vpi/runner_proxy_rb.html +1 -1
  85. data/ref/ruby/files/lib/ruby-vpi/runner_rb.html +1 -1
  86. data/ref/ruby/files/lib/ruby-vpi/util_rb.html +7 -1
  87. data/ref/ruby/files/lib/ruby-vpi/verilog_parser_rb.html +1 -1
  88. data/ref/ruby/files/lib/ruby-vpi/vpi_rb.html +1 -1
  89. data/ref/ruby/files/lib/ruby-vpi_rb.html +1 -1
  90. data/samp/pipelined_alu/Hw5UnitModel.rb +0 -4
  91. data/samp/pipelined_alu/TestHw5UnitModel.rb +0 -4
  92. data/samp/pipelined_alu/hw5_unit.v +0 -5
  93. metadata +4 -4
data/doc/manual.html CHANGED
@@ -5,7 +5,7 @@
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 18.0.0 user manual</title>
8
+ <title>Ruby-VPI 18.0.1 user manual</title>
9
9
  </head>
10
10
  <body>
11
11
  <div id="site-links">
@@ -23,13 +23,13 @@
23
23
  <div id="body">
24
24
  <hr style="display: none"/>
25
25
 
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>
26
+ <div id="Ruby-VPI_18.0.1_user_manual" class="front_cover">
27
+ <h1 class="title"><big>Ruby-VPI 18.0.1 user manual</big></h1>
28
28
 
29
29
  <h2 class="author">Suraj N. Kurapati</h2>
30
30
 
31
31
 
32
- <h3 class="date">31 July 2007</h3>
32
+ <h3 class="date">02 August 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://ruby-vpi.rubyforge.org/forum/">project forums</a>. Furthermore, you can <a href="#hacking.manual">edit this manual</a> and contribute your improvements to the <a href="http://ruby-vpi.rubyforge.org/tracker/">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
 
@@ -64,7 +64,7 @@
64
64
 
65
65
  <div id="intro" class="chapter">
66
66
  <h1 class="title">
67
- Chapter <a href="#a-607201618">2</a>
67
+ Chapter <a href="#a-606978988">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-605996598">2.1</a>
93
+ <a href="#a-606913148">2.1</a>
94
94
 
95
95
  &nbsp;
96
96
 
@@ -101,8 +101,8 @@
101
101
  <div id="Records" class="paragraph">
102
102
  <p class="title">Records</p>
103
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.
104
+ <li><a href="history.html#a18.0.1">What&#8217;s new</a>
105
+ &#8211; release notes for version 18.0.1.
106
106
  <ul>
107
107
  <li><a href="history.html">History</a>
108
108
  &#8211; a record of all release notes.</li>
@@ -141,19 +141,21 @@
141
141
  <div id="Facilities" class="paragraph">
142
142
  <p class="title">Facilities</p>
143
143
  <ul>
144
- <li><a href="http://rubyforge.org/frs/?group_id=1339">Downloads</a>
144
+ <li><a href="http://ruby-vpi.rubyforge.org/download/">Downloads</a>
145
145
  &#8211; obtain release packages</li>
146
- <li><a href="http://ruby-vpi.rubyforge.org/src/ruby-vpi/">Source code</a>
146
+ <li><a href="http://ruby-vpi.rubyforge.org/code/">Source code</a>
147
147
  &#8211; browse online or obtain with <a href="http://darcs.net">Darcs</a>.</li>
148
- <li><a href="http://rubyforge.org/forum/?group_id=1339">Forums</a>
148
+ <li><a href="http://ruby-vpi.rubyforge.org/forum/">Forums</a>
149
149
  &#8211; discuss things and ask questions.</li>
150
- <li><a href="http://rubyforge.org/tracker/?group_id=1339">Bugs</a>
150
+ <li><a href="http://ruby-vpi.rubyforge.org/mail/">Mailing list</a>
151
+ &#8211; discuss things and ask questions.</li>
152
+ <li><a href="http://ruby-vpi.rubyforge.org/tracker/">Bugs</a>
151
153
  &#8211; report defects in the software.</li>
152
- <li><a href="http://rubyforge.org/tracker/?group_id=1339">Patches</a>
154
+ <li><a href="http://ruby-vpi.rubyforge.org/tracker/">Patches</a>
153
155
  &#8211; submit patches to source code.</li>
154
- <li><a href="http://rubyforge.org/tracker/?group_id=1339">Requests</a>
156
+ <li><a href="http://ruby-vpi.rubyforge.org/tracker/">Requests</a>
155
157
  &#8211; request new features or get support.</li>
156
- <li><a href="http://rubyforge.org/projects/ruby-vpi/">Project portal</a>
158
+ <li><a href="http://ruby-vpi.rubyforge.org/portal/">Project portal</a>
157
159
  &#8211; hosted generously by <a href="http://rubyforge.org">RubyForge</a>.</li>
158
160
  </ul>
159
161
  </div>
@@ -168,7 +170,7 @@
168
170
 
169
171
  <div id="intro.features" class="section">
170
172
  <h2 class="title">
171
- <a href="#a-605842608">2.2</a>
173
+ <a href="#a-606925458">2.2</a>
172
174
 
173
175
  &nbsp;
174
176
 
@@ -239,7 +241,7 @@
239
241
 
240
242
  <div id="intro.reqs" class="section">
241
243
  <h2 class="title">
242
- <a href="#a-607160758">2.3</a>
244
+ <a href="#a-606937688">2.3</a>
243
245
 
244
246
  &nbsp;
245
247
 
@@ -258,13 +260,29 @@
258
260
  <ul>
259
261
  <li><a href="http://www.synopsys.com/products/simulation/simulation.html">Synopsys VCS</a>
260
262
  &#8211; any version that supports the <tt>-load</tt> option is acceptable.</li>
261
- <li><a href="http://www.model.com">Mentor Modelsim</a>
263
+ </ul>
264
+
265
+
266
+ <ul>
267
+ <li><a href="http://www.model.com">Mentor Modelsim</a>
262
268
  &#8211; any version that supports the <tt>-pli</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>
265
- <li><a href="http://www.pragmatic-c.com/gpl-cver/">GPL Cver</a>
269
+ </ul>
270
+
271
+
272
+ <ul>
273
+ <li><a href="http://www.cadence.com/products/functional_ver/nc-verilog/">Cadence NC-Sim</a>
274
+ &#8211; any version that supports the <tt>+loadvpi</tt> option should be acceptable. However, version 05.83-s003 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>
275
+ </ul>
276
+
277
+
278
+ <ul>
279
+ <li><a href="http://www.pragmatic-c.com/gpl-cver/">GPL Cver</a>
266
280
  &#8211; version 2.11a or newer is acceptable.</li>
267
- <li><a href="http://www.geda.seul.org/tools/icarus/index.html">Icarus Verilog</a>
281
+ </ul>
282
+
283
+
284
+ <ul>
285
+ <li><a href="http://www.geda.seul.org/tools/icarus/index.html">Icarus Verilog</a>
268
286
  &#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>
269
287
  </ul>
270
288
  </div>
@@ -275,11 +293,23 @@
275
293
  <ul>
276
294
  <li><a href="http://en.wikipedia.org/wiki/Make">make</a>
277
295
  &#8211; any flavor should be acceptable.</li>
278
- <li>C compiler
296
+ </ul>
297
+
298
+
299
+ <ul>
300
+ <li>C compiler
279
301
  &#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>
280
- <li><a href="http://www.swig.org/download.html">SWIG</a>
302
+ </ul>
303
+
304
+
305
+ <ul>
306
+ <li><a href="http://www.swig.org/download.html">SWIG</a>
281
307
  &#8211; version 1.3.29 or newer is necessary.</li>
282
- <li><a href="http://www.ruby-lang.org/en/downloads/">Ruby</a>
308
+ </ul>
309
+
310
+
311
+ <ul>
312
+ <li><a href="http://www.ruby-lang.org/en/downloads/">Ruby</a>
283
313
  &#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>
284
314
  </ul>
285
315
  </div>
@@ -290,7 +320,11 @@
290
320
  <ul>
291
321
  <li><a href="http://en.wikipedia.org/wiki/Pthreads" title="pthreads">POSIX threads</a>
292
322
  &#8211; header and linkable object files, and operating system support for this library are necessary.</li>
293
- <li><a href="http://rubyforge.org/frs/?group_id=126">RubyGems</a>
323
+ </ul>
324
+
325
+
326
+ <ul>
327
+ <li><a href="http://rubyforge.org/frs/?group_id=126">RubyGems</a>
294
328
  &#8211; any recent version should be acceptable. You can install RubyGems by following <a href="http://www.rubygems.org/read/chapter/3">these instructions</a>.</li>
295
329
  </ul>
296
330
  </div>
@@ -305,7 +339,7 @@
305
339
 
306
340
  <div id="intro.applications" class="section">
307
341
  <h2 class="title">
308
- <a href="#a-607163318">2.4</a>
342
+ <a href="#a-606940248">2.4</a>
309
343
 
310
344
  &nbsp;
311
345
 
@@ -351,7 +385,7 @@
351
385
 
352
386
  <div id="intro.appetizers" class="section">
353
387
  <h2 class="title">
354
- <a href="#a-607165918">2.5</a>
388
+ <a href="#a-606942848">2.5</a>
355
389
 
356
390
  &nbsp;
357
391
 
@@ -419,7 +453,7 @@
419
453
 
420
454
  <div id="intro.license" class="section">
421
455
  <h2 class="title">
422
- <a href="#a-607168788">2.6</a>
456
+ <a href="#a-606945718">2.6</a>
423
457
 
424
458
  &nbsp;
425
459
 
@@ -465,7 +499,7 @@ IMPLIED, INCLUDING <span class="caps">BUT NOT LIMITED TO THE WARRANTIES OF MERCH
465
499
 
466
500
  <div id="intro.related-works" class="section">
467
501
  <h2 class="title">
468
- <a href="#a-607174178">2.7</a>
502
+ <a href="#a-606951108">2.7</a>
469
503
 
470
504
  &nbsp;
471
505
 
@@ -486,7 +520,7 @@ IMPLIED, INCLUDING <span class="caps">BUT NOT LIMITED TO THE WARRANTIES OF MERCH
486
520
 
487
521
  <div id="intro.related-works.pli" class="section">
488
522
  <h3 class="title">
489
- <a href="#a-607171238">2.7.1</a>
523
+ <a href="#a-606948168">2.7.1</a>
490
524
 
491
525
  &nbsp;
492
526
 
@@ -513,7 +547,7 @@ IMPLIED, INCLUDING <span class="caps">BUT NOT LIMITED TO THE WARRANTIES OF MERCH
513
547
 
514
548
  <div id="setup" class="chapter">
515
549
  <h1 class="title">
516
- Chapter <a href="#a-607242278">3</a>
550
+ Chapter <a href="#a-607019648">3</a>
517
551
 
518
552
  <br/><br/>
519
553
 
@@ -525,7 +559,7 @@ IMPLIED, INCLUDING <span class="caps">BUT NOT LIMITED TO THE WARRANTIES OF MERCH
525
559
 
526
560
  <div id="setup.manifest" class="section">
527
561
  <h2 class="title">
528
- <a href="#a-607204808">3.1</a>
562
+ <a href="#a-606982178">3.1</a>
529
563
 
530
564
  &nbsp;
531
565
 
@@ -551,7 +585,7 @@ IMPLIED, INCLUDING <span class="caps">BUT NOT LIMITED TO THE WARRANTIES OF MERCH
551
585
 
552
586
  <div id="setup.reqs" class="section">
553
587
  <h2 class="title">
554
- <a href="#a-607210248">3.2</a>
588
+ <a href="#a-606987618">3.2</a>
555
589
 
556
590
  &nbsp;
557
591
 
@@ -568,7 +602,7 @@ IMPLIED, INCLUDING <span class="caps">BUT NOT LIMITED TO THE WARRANTIES OF MERCH
568
602
  <div class="tip" id="Add_support_for_your_Verilog_simulator">
569
603
  <img src="images/tango/tip.png" alt="tip" class="icon"/>
570
604
 
571
- <p class="title"><a href="#a-607207278">Tip 1</a>. &nbsp; Add support for your Verilog simulator</p>
605
+ <p class="title"><a href="#a-606984648">Tip 1</a>. &nbsp; Add support for your Verilog simulator</p>
572
606
 
573
607
  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!
574
608
  </div>
@@ -582,7 +616,7 @@ IMPLIED, INCLUDING <span class="caps">BUT NOT LIMITED TO THE WARRANTIES OF MERCH
582
616
 
583
617
  <div id="setup.recom" class="section">
584
618
  <h2 class="title">
585
- <a href="#a-607216418">3.3</a>
619
+ <a href="#a-606993788">3.3</a>
586
620
 
587
621
  &nbsp;
588
622
 
@@ -597,7 +631,7 @@ IMPLIED, INCLUDING <span class="caps">BUT NOT LIMITED TO THE WARRANTIES OF MERCH
597
631
 
598
632
  <div id="setup.recom.merger" class="section">
599
633
  <h3 class="title">
600
- <a href="#a-607213078">3.3.1</a>
634
+ <a href="#a-606990448">3.3.1</a>
601
635
 
602
636
  &nbsp;
603
637
 
@@ -641,7 +675,7 @@ IMPLIED, INCLUDING <span class="caps">BUT NOT LIMITED TO THE WARRANTIES OF MERCH
641
675
 
642
676
  <div id="setup.inst" class="section">
643
677
  <h2 class="title">
644
- <a href="#a-607225558">3.4</a>
678
+ <a href="#a-607002928">3.4</a>
645
679
 
646
680
  &nbsp;
647
681
 
@@ -667,7 +701,7 @@ $ ls -d `gem env gemdir`/gems/ruby-vpi*
667
701
  <div class="tip" id="Tuning_for_maximum_performance">
668
702
  <img src="images/tango/tip.png" alt="tip" class="icon"/>
669
703
 
670
- <p class="title"><a href="#a-607218968">Tip 2</a>. &nbsp; Tuning for maximum performance</p>
704
+ <p class="title"><a href="#a-606996338">Tip 2</a>. &nbsp; Tuning for maximum performance</p>
671
705
 
672
706
  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.
673
707
  </div>
@@ -678,7 +712,7 @@ $ ls -d `gem env gemdir`/gems/ruby-vpi*
678
712
 
679
713
  <div id="setup.inst.windows" class="section">
680
714
  <h3 class="title">
681
- <a href="#a-607221498">3.4.1</a>
715
+ <a href="#a-606998868">3.4.1</a>
682
716
 
683
717
  &nbsp;
684
718
 
@@ -729,7 +763,7 @@ $ ls -d `gem env gemdir`/gems/ruby-vpi*
729
763
 
730
764
  <div id="setup.maintenance" class="section">
731
765
  <h2 class="title">
732
- <a href="#a-607227838">3.5</a>
766
+ <a href="#a-607005208">3.5</a>
733
767
 
734
768
  &nbsp;
735
769
 
@@ -753,7 +787,7 @@ $ ls -d `gem env gemdir`/gems/ruby-vpi*
753
787
 
754
788
  <div id="organization" class="chapter">
755
789
  <h1 class="title">
756
- Chapter <a href="#a-607196488">4</a>
790
+ Chapter <a href="#a-607025428">4</a>
757
791
 
758
792
  <br/><br/>
759
793
 
@@ -773,7 +807,7 @@ $ ls -d `gem env gemdir`/gems/ruby-vpi*
773
807
  <div class="figure" id="fig:organization.detail">
774
808
 
775
809
 
776
- <p class="title"><a href="#a-607244878">Figure 1</a>. &nbsp; Where does Ruby-VPI fit in?</p>
810
+ <p class="title"><a href="#a-607022248">Figure 1</a>. &nbsp; Where does Ruby-VPI fit in?</p>
777
811
 
778
812
  <img src="figures/organization_detailed.png" alt="" />
779
813
  </div>
@@ -787,7 +821,7 @@ As <a href="#fig:organization.detail">Figure 1</a> shows, Ruby-VPI is composed o
787
821
 
788
822
  <div id="overview.relay" class="section">
789
823
  <h2 class="title">
790
- <a href="#a-607251168">4.1</a>
824
+ <a href="#a-607028538">4.1</a>
791
825
 
792
826
  &nbsp;
793
827
 
@@ -810,7 +844,7 @@ As <a href="#fig:organization.detail">Figure 1</a> shows, Ruby-VPI is composed o
810
844
  <div class="figure" id="fig:ruby_relay">
811
845
 
812
846
 
813
- <p class="title"><a href="#a-607247688">Figure 2</a>. &nbsp; Interaction between Ruby and Verilog</p>
847
+ <p class="title"><a href="#a-607025058">Figure 2</a>. &nbsp; Interaction between Ruby and Verilog</p>
814
848
 
815
849
  <img src="figures/ruby_relay.png" alt="" />
816
850
 
@@ -836,7 +870,7 @@ Another means of transferring control from the specification to the Verilog simu
836
870
 
837
871
  <div id="organization.tests" class="section">
838
872
  <h2 class="title">
839
- <a href="#a-607256738">4.2</a>
873
+ <a href="#a-607034108">4.2</a>
840
874
 
841
875
  &nbsp;
842
876
 
@@ -853,7 +887,7 @@ Another means of transferring control from the specification to the Verilog simu
853
887
  <div class="figure" id="fig:organization">
854
888
 
855
889
 
856
- <p class="title"><a href="#a-607253638">Figure 3</a>. &nbsp; Organization of a test in Ruby-VPI</p>
890
+ <p class="title"><a href="#a-607031008">Figure 3</a>. &nbsp; Organization of a test in Ruby-VPI</p>
857
891
 
858
892
  <img src="figures/organization.png" alt="" />
859
893
  </div>
@@ -876,7 +910,7 @@ Another means of transferring control from the specification to the Verilog simu
876
910
 
877
911
  <div id="VPI_in_Ruby" class="section">
878
912
  <h2 class="title">
879
- <a href="#a-607326178">4.3</a>
913
+ <a href="#a-606948098">4.3</a>
880
914
 
881
915
  &nbsp;
882
916
 
@@ -888,7 +922,7 @@ Another means of transferring control from the specification to the Verilog simu
888
922
 
889
923
  <div id="Deviations_from_the_VPI_standard" class="section">
890
924
  <h3 class="title">
891
- <a href="#a-607265658">4.3.1</a>
925
+ <a href="#a-607043028">4.3.1</a>
892
926
 
893
927
  &nbsp;
894
928
 
@@ -903,7 +937,7 @@ Another means of transferring control from the specification to the Verilog simu
903
937
 
904
938
  <div id="Names_are_capitalized" class="section">
905
939
  <h4 class="title">
906
- <a href="#a-607259228">4.3.1.1</a>
940
+ <a href="#a-607036598">4.3.1.1</a>
907
941
 
908
942
  &nbsp;
909
943
 
@@ -924,7 +958,7 @@ Another means of transferring control from the specification to the Verilog simu
924
958
 
925
959
  <div id="a_vprintf__is__printf_" class="section">
926
960
  <h4 class="title">
927
- <a href="#a-607261728">4.3.1.2</a>
961
+ <a href="#a-607039098">4.3.1.2</a>
928
962
 
929
963
  &nbsp;
930
964
 
@@ -961,7 +995,7 @@ Another means of transferring control from the specification to the Verilog simu
961
995
 
962
996
  <div id="vpi.handles" class="section">
963
997
  <h3 class="title">
964
- <a href="#a-607291198">4.3.2</a>
998
+ <a href="#a-607068568">4.3.2</a>
965
999
 
966
1000
  &nbsp;
967
1001
 
@@ -990,7 +1024,7 @@ Another means of transferring control from the specification to the Verilog simu
990
1024
 
991
1025
  <div id="Accessing_a_handle_s_relatives" class="section">
992
1026
  <h4 class="title">
993
- <a href="#a-607270878">4.3.2.2</a>
1027
+ <a href="#a-607048248">4.3.2.2</a>
994
1028
 
995
1029
  &nbsp;
996
1030
 
@@ -1027,7 +1061,7 @@ baz = vpi_handle_by_name( <span style="background-color:#fff0f0"><span style="co
1027
1061
 
1028
1062
  <div id="Accessing_a_handle_s_properties" class="section">
1029
1063
  <h4 class="title">
1030
- <a href="#a-607273818">4.3.2.3</a>
1064
+ <a href="#a-607051188">4.3.2.3</a>
1031
1065
 
1032
1066
  &nbsp;
1033
1067
 
@@ -1070,7 +1104,7 @@ result = wrapper.value.str.to_i( <span style="color:#00D; font-weight:bold">16</
1070
1104
  <div class="figure" id="fig:method_naming_format">
1071
1105
 
1072
1106
 
1073
- <p class="title"><a href="#a-607276618">Figure 4</a>. &nbsp; Method naming format for accessing a handle&#8217;s properties</p>
1107
+ <p class="title"><a href="#a-607053988">Figure 4</a>. &nbsp; Method naming format for accessing a handle&#8217;s properties</p>
1074
1108
 
1075
1109
  <table>
1076
1110
  <tr>
@@ -1123,7 +1157,7 @@ result = wrapper.value.str.to_i( <span style="color:#00D; font-weight:bold">16</
1123
1157
  <div class="table" id="tbl:accessors">
1124
1158
 
1125
1159
 
1126
- <p class="title"><a href="#a-607279048">Table 1</a>. &nbsp; Possible accessors and their implications</p>
1160
+ <p class="title"><a href="#a-607056418">Table 1</a>. &nbsp; Possible accessors and their implications</p>
1127
1161
 
1128
1162
  <table>
1129
1163
  <tr>
@@ -1177,7 +1211,7 @@ result = wrapper.value.str.to_i( <span style="color:#00D; font-weight:bold">16</
1177
1211
  <div class="table" id="ex:properties">
1178
1212
 
1179
1213
 
1180
- <p class="title"><a href="#a-607281988">Table 2</a>. &nbsp; Examples of accessing a handle&#8217;s properties</p>
1214
+ <p class="title"><a href="#a-607059358">Table 2</a>. &nbsp; Examples of accessing a handle&#8217;s properties</p>
1181
1215
 
1182
1216
  <table>
1183
1217
  <tr>
@@ -1502,7 +1536,7 @@ result = wrapper.value.str.to_i( <span style="color:#00D; font-weight:bold">16</
1502
1536
 
1503
1537
  <div id="vpi.callbacks" class="section">
1504
1538
  <h3 class="title">
1505
- <a href="#a-607299628">4.3.3</a>
1539
+ <a href="#a-607076998">4.3.3</a>
1506
1540
 
1507
1541
  &nbsp;
1508
1542
 
@@ -1522,7 +1556,7 @@ result = wrapper.value.str.to_i( <span style="color:#00D; font-weight:bold">16</
1522
1556
  <div class="example" id="ex:callback">
1523
1557
 
1524
1558
 
1525
- <p class="title"><a href="#a-607295148">Example 1</a>. &nbsp; Using a callback for value change notification</p>
1559
+ <p class="title"><a href="#a-607072518">Example 1</a>. &nbsp; Using a callback for value change notification</p>
1526
1560
 
1527
1561
  <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>
1528
1562
 
@@ -1571,7 +1605,7 @@ cbHandle = vpi_register_cb(cbData) <span style="color:#080; font-weight:bold">do
1571
1605
 
1572
1606
  <div id="usage" class="chapter">
1573
1607
  <h1 class="title">
1574
- Chapter <a href="#a-607334198">5</a>
1608
+ Chapter <a href="#a-607149688">5</a>
1575
1609
 
1576
1610
  <br/><br/>
1577
1611
 
@@ -1583,7 +1617,7 @@ cbHandle = vpi_register_cb(cbData) <span style="color:#080; font-weight:bold">do
1583
1617
 
1584
1618
  <div id="usage.prototyping" class="section">
1585
1619
  <h2 class="title">
1586
- <a href="#a-607215298">5.1</a>
1620
+ <a href="#a-607049328">5.1</a>
1587
1621
 
1588
1622
  &nbsp;
1589
1623
 
@@ -1625,7 +1659,7 @@ cbHandle = vpi_register_cb(cbData) <span style="color:#080; font-weight:bold">do
1625
1659
 
1626
1660
  <div id="How_does_prototyping_work_" class="section">
1627
1661
  <h3 class="title">
1628
- <a href="#a-607205498">5.1.2</a>
1662
+ <a href="#a-607039268">5.1.2</a>
1629
1663
 
1630
1664
  &nbsp;
1631
1665
 
@@ -1647,7 +1681,7 @@ cbHandle = vpi_register_cb(cbData) <span style="color:#080; font-weight:bold">do
1647
1681
 
1648
1682
  <div id="usage.debugger" class="section">
1649
1683
  <h2 class="title">
1650
- <a href="#a-607224358">5.2</a>
1684
+ <a href="#a-607058778">5.2</a>
1651
1685
 
1652
1686
  &nbsp;
1653
1687
 
@@ -1668,7 +1702,7 @@ cbHandle = vpi_register_cb(cbData) <span style="color:#080; font-weight:bold">do
1668
1702
 
1669
1703
  <div id="usage.debugger.init" class="section">
1670
1704
  <h3 class="title">
1671
- <a href="#a-607219398">5.2.1</a>
1705
+ <a href="#a-607053478">5.2.1</a>
1672
1706
 
1673
1707
  &nbsp;
1674
1708
 
@@ -1693,7 +1727,7 @@ cbHandle = vpi_register_cb(cbData) <span style="color:#080; font-weight:bold">do
1693
1727
 
1694
1728
  <div id="usage.test-runner" class="section">
1695
1729
  <h2 class="title">
1696
- <a href="#a-607246938">5.3</a>
1730
+ <a href="#a-607082308">5.3</a>
1697
1731
 
1698
1732
  &nbsp;
1699
1733
 
@@ -1723,7 +1757,7 @@ rake vsim # Simulate with Mentor Modelsim.
1723
1757
 
1724
1758
  <div id="usage.test-runner.env-vars" class="section">
1725
1759
  <h3 class="title">
1726
- <a href="#a-607236808">5.3.1</a>
1760
+ <a href="#a-607072228">5.3.1</a>
1727
1761
 
1728
1762
  &nbsp;
1729
1763
 
@@ -1770,7 +1804,7 @@ rake
1770
1804
  <div class="example" id="Running_a_test_with_environment_variables">
1771
1805
 
1772
1806
 
1773
- <p class="title"><a href="#a-607232388">Example 2</a>. &nbsp; Running a test with environment variables</p>
1807
+ <p class="title"><a href="#a-607065588">Example 2</a>. &nbsp; Running a test with environment variables</p>
1774
1808
 
1775
1809
  <p>Below, we enable the prototype and code coverage analysis:
1776
1810
  <pre>rake -f your_test_runner.rake PROTOTYPE=1 COVERAGE=1</pre></p>
@@ -1794,7 +1828,7 @@ rake
1794
1828
 
1795
1829
  <div id="usage.tools" class="section">
1796
1830
  <h2 class="title">
1797
- <a href="#a-607278778">5.4</a>
1831
+ <a href="#a-607101458">5.4</a>
1798
1832
 
1799
1833
  &nbsp;
1800
1834
 
@@ -1830,7 +1864,7 @@ Simulators:
1830
1864
 
1831
1865
  <div id="usage.tools.generate" class="section">
1832
1866
  <h3 class="title">
1833
- <a href="#a-607262938">5.4.1</a>
1867
+ <a href="#a-607091638">5.4.1</a>
1834
1868
 
1835
1869
  &nbsp;
1836
1870
 
@@ -1860,7 +1894,7 @@ A Ruby-VPI test is composed of the following files:
1860
1894
  <div class="caution" id="Do_not_rename_generated_files">
1861
1895
  <img src="images/tango/caution.png" alt="caution" class="icon"/>
1862
1896
 
1863
- <p class="title"><a href="#a-607250958">Caution 1</a>. &nbsp; Do not rename generated files</p>
1897
+ <p class="title"><a href="#a-607085068">Caution 1</a>. &nbsp; Do not rename generated files</p>
1864
1898
 
1865
1899
  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.
1866
1900
  </div>
@@ -1879,7 +1913,7 @@ By producing multiple files, the automated test generator physically decouples t
1879
1913
  <div class="tip" id="Using__kdiff3__with_the_automated_test_generator.">
1880
1914
  <img src="images/tango/tip.png" alt="tip" class="icon"/>
1881
1915
 
1882
- <p class="title"><a href="#a-607255718">Tip 3</a>. &nbsp; Using <strong>kdiff3</strong> with the automated test generator.</p>
1916
+ <p class="title"><a href="#a-607087558">Tip 3</a>. &nbsp; Using <strong>kdiff3</strong> with the automated test generator.</p>
1883
1917
 
1884
1918
  <ol>
1885
1919
  <li>Create a file named <tt>merge2</tt> with the following content: <pre class="code">
@@ -1905,7 +1939,7 @@ kdiff3 --auto --output <span style="background-color:#fff0f0"><span style="color
1905
1939
 
1906
1940
  <div id="usage.tools.convert" class="section">
1907
1941
  <h3 class="title">
1908
- <a href="#a-607265448">5.4.2</a>
1942
+ <a href="#a-607093928">5.4.2</a>
1909
1943
 
1910
1944
  &nbsp;
1911
1945
 
@@ -1927,14 +1961,14 @@ kdiff3 --auto --output <span style="background-color:#fff0f0"><span style="color
1927
1961
 
1928
1962
  <div id="usage.examples" class="section">
1929
1963
  <h2 class="title">
1930
- <a href="#a-607282618">5.5</a>
1964
+ <a href="#a-607103698">5.5</a>
1931
1965
 
1932
1966
  &nbsp;
1933
1967
 
1934
1968
  Sample tests
1935
1969
  </h2>
1936
1970
 
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.
1971
+ The <tt>samp</tt> directory (<a href="http://ruby-vpi.rubyforge.org/code//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.
1938
1972
 
1939
1973
  </div>
1940
1974
 
@@ -1943,7 +1977,7 @@ kdiff3 --auto --output <span style="background-color:#fff0f0"><span style="color
1943
1977
 
1944
1978
  <div id="usage.tutorial" class="section">
1945
1979
  <h2 class="title">
1946
- <a href="#a-607395798">5.6</a>
1980
+ <a href="#a-606970248">5.6</a>
1947
1981
 
1948
1982
  &nbsp;
1949
1983
 
@@ -1966,7 +2000,7 @@ kdiff3 --auto --output <span style="background-color:#fff0f0"><span style="color
1966
2000
 
1967
2001
  <div id="usage.tutorial.declare-design" class="section">
1968
2002
  <h3 class="title">
1969
- <a href="#a-607290888">5.6.1</a>
2003
+ <a href="#a-607111108">5.6.1</a>
1970
2004
 
1971
2005
  &nbsp;
1972
2006
 
@@ -1991,7 +2025,7 @@ kdiff3 --auto --output <span style="background-color:#fff0f0"><span style="color
1991
2025
  <div class="example" id="fig:counter.v_decl">
1992
2026
 
1993
2027
 
1994
- <p class="title"><a href="#a-607287308">Example 3</a>. &nbsp; Declaration of a simple up-counter with synchronous reset</p>
2028
+ <p class="title"><a href="#a-607107598">Example 3</a>. &nbsp; Declaration of a simple up-counter with synchronous reset</p>
1995
2029
 
1996
2030
  <pre class="code" lang="verilog">
1997
2031
  module counter #(parameter Size = 5) (
@@ -2015,7 +2049,7 @@ Before we continue, save the source code shown in <a href="#fig:counter.v_decl">
2015
2049
 
2016
2050
  <div id="usage.tutorial.generate-test" class="section">
2017
2051
  <h3 class="title">
2018
- <a href="#a-607305468">5.6.2</a>
2052
+ <a href="#a-607121708">5.6.2</a>
2019
2053
 
2020
2054
  &nbsp;
2021
2055
 
@@ -2051,7 +2085,7 @@ $ cp counter.v xUnit
2051
2085
  <div class="example" id="fig:generate-test.RSpec">
2052
2086
 
2053
2087
 
2054
- <p class="title"><a href="#a-607296778">Example 4</a>. &nbsp; Generating a test with specification in RSpec format</p>
2088
+ <p class="title"><a href="#a-607114448">Example 4</a>. &nbsp; Generating a test with specification in RSpec format</p>
2055
2089
 
2056
2090
  <pre>
2057
2091
  $ ruby-vpi generate counter.v --RSpec
@@ -2073,7 +2107,7 @@ $ ruby-vpi generate counter.v --RSpec
2073
2107
  <div class="example" id="fig:generate-test.xUnit">
2074
2108
 
2075
2109
 
2076
- <p class="title"><a href="#a-607299658">Example 5</a>. &nbsp; Generating a test with specification in xUnit format</p>
2110
+ <p class="title"><a href="#a-607116908">Example 5</a>. &nbsp; Generating a test with specification in xUnit format</p>
2077
2111
 
2078
2112
  <pre>
2079
2113
  $ ruby-vpi generate counter.v --xUnit
@@ -2098,7 +2132,7 @@ $ ruby-vpi generate counter.v --xUnit
2098
2132
 
2099
2133
  <div id="usage.tutorial.specification" class="section">
2100
2134
  <h3 class="title">
2101
- <a href="#a-607315968">5.6.3</a>
2135
+ <a href="#a-607131808">5.6.3</a>
2102
2136
 
2103
2137
  &nbsp;
2104
2138
 
@@ -2126,7 +2160,7 @@ Here are some reasonable expectations for our simple counter:
2126
2160
  <div class="example" id="fig:RSpec_counter_spec.rb">
2127
2161
 
2128
2162
 
2129
- <p class="title"><a href="#a-607308538">Example 6</a>. &nbsp; Specification implemented in RSpec format</p>
2163
+ <p class="title"><a href="#a-607124618">Example 6</a>. &nbsp; Specification implemented in RSpec format</p>
2130
2164
 
2131
2165
  <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>
2132
2166
 
@@ -2178,7 +2212,7 @@ describe <span style="background-color:#fff0f0"><span style="color:#710">&quot;<
2178
2212
  <div class="example" id="fig:xUnit_counter_spec.rb">
2179
2213
 
2180
2214
 
2181
- <p class="title"><a href="#a-607310978">Example 7</a>. &nbsp; Specification implemented in xUnit format</p>
2215
+ <p class="title"><a href="#a-607126978">Example 7</a>. &nbsp; Specification implemented in xUnit format</p>
2182
2216
 
2183
2217
  <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>
2184
2218
 
@@ -2238,7 +2272,7 @@ Before we continue,
2238
2272
 
2239
2273
  <div id="usage.tutorial.implement-proto" class="section">
2240
2274
  <h3 class="title">
2241
- <a href="#a-607322378">5.6.4</a>
2275
+ <a href="#a-607137798">5.6.4</a>
2242
2276
 
2243
2277
  &nbsp;
2244
2278
 
@@ -2255,7 +2289,7 @@ Before we continue,
2255
2289
  <div class="example" id="fig:counter_proto.rb">
2256
2290
 
2257
2291
 
2258
- <p class="title"><a href="#a-607318638">Example 8</a>. &nbsp; Ruby prototype of our Verilog design</p>
2292
+ <p class="title"><a href="#a-607134398">Example 8</a>. &nbsp; Ruby prototype of our Verilog design</p>
2259
2293
 
2260
2294
  <pre class="code"><span style="color:#888"># Ruby prototype of the design under test's Verilog implementation.</span>
2261
2295
  <span style="color:#080; font-weight:bold">def</span> <span style="color:#06B; font-weight:bold">feign!</span>
@@ -2282,7 +2316,7 @@ Before we continue, replace the contents of the files named <tt>RSpec/counter_pr
2282
2316
 
2283
2317
  <div id="usage.tutorial.test-proto" class="section">
2284
2318
  <h3 class="title">
2285
- <a href="#a-607341078">5.6.5</a>
2319
+ <a href="#a-607151048">5.6.5</a>
2286
2320
 
2287
2321
  &nbsp;
2288
2322
 
@@ -2302,7 +2336,7 @@ Before we continue, replace the contents of the files named <tt>RSpec/counter_pr
2302
2336
  <div class="example" id="fig:test-proto.RSpec">
2303
2337
 
2304
2338
 
2305
- <p class="title"><a href="#a-607325878">Example 9</a>. &nbsp; Running a test with specification in RSpec format</p>
2339
+ <p class="title"><a href="#a-607140918">Example 9</a>. &nbsp; Running a test with specification in RSpec format</p>
2306
2340
 
2307
2341
  <pre>
2308
2342
  $ cd RSpec
@@ -2326,7 +2360,7 @@ cd -
2326
2360
  <div class="example" id="fig:test-proto.unit-test">
2327
2361
 
2328
2362
 
2329
- <p class="title"><a href="#a-607330448">Example 10</a>. &nbsp; Running a test with specification in xUnit format</p>
2363
+ <p class="title"><a href="#a-607143418">Example 10</a>. &nbsp; Running a test with specification in xUnit format</p>
2330
2364
 
2331
2365
  <pre>
2332
2366
  $ cd xUnit
@@ -2350,7 +2384,7 @@ Finished in 0.043859 seconds.
2350
2384
  <div class="tip" id="What_can_the_test_runner_do_">
2351
2385
  <img src="images/tango/tip.png" alt="tip" class="icon"/>
2352
2386
 
2353
- <p class="title"><a href="#a-607335018">Tip 4</a>. &nbsp; What can the test runner do?</p>
2387
+ <p class="title"><a href="#a-607145688">Tip 4</a>. &nbsp; What can the test runner do?</p>
2354
2388
 
2355
2389
  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.
2356
2390
  </div>
@@ -2366,7 +2400,7 @@ Finished in 0.043859 seconds.
2366
2400
 
2367
2401
  <div id="usage.tutorial.implement-design" class="section">
2368
2402
  <h3 class="title">
2369
- <a href="#a-607349478">5.6.6</a>
2403
+ <a href="#a-607157038">5.6.6</a>
2370
2404
 
2371
2405
  &nbsp;
2372
2406
 
@@ -2383,7 +2417,7 @@ Finished in 0.043859 seconds.
2383
2417
  <div class="example" id="fig:counter.v_impl">
2384
2418
 
2385
2419
 
2386
- <p class="title"><a href="#a-607343828">Example 11</a>. &nbsp; Implementation of a simple up-counter with synchronous reset</p>
2420
+ <p class="title"><a href="#a-607153638">Example 11</a>. &nbsp; Implementation of a simple up-counter with synchronous reset</p>
2387
2421
 
2388
2422
  <pre class="code" lang="verilog">/**
2389
2423
  A simple up-counter with synchronous reset.
@@ -2420,7 +2454,7 @@ Before we continue, replace the contents of the files named <tt>RSpec/counter.v<
2420
2454
 
2421
2455
  <div id="usage.tutorial.test-design" class="section">
2422
2456
  <h3 class="title">
2423
- <a href="#a-607359608">5.6.7</a>
2457
+ <a href="#a-606917698">5.6.7</a>
2424
2458
 
2425
2459
  &nbsp;
2426
2460
 
@@ -2440,7 +2474,7 @@ Before we continue, replace the contents of the files named <tt>RSpec/counter.v<
2440
2474
  <div class="example" id="fig:test-design.RSpec">
2441
2475
 
2442
2476
 
2443
- <p class="title"><a href="#a-607352688">Example 12</a>. &nbsp; Running a test with specification in RSpec format</p>
2477
+ <p class="title"><a href="#a-607159998">Example 12</a>. &nbsp; Running a test with specification in RSpec format</p>
2444
2478
 
2445
2479
  <pre>
2446
2480
  $ cd RSpec
@@ -2462,7 +2496,7 @@ Finished in 0.041198 seconds
2462
2496
  <div class="example" id="fig:test-design.unit-test">
2463
2497
 
2464
2498
 
2465
- <p class="title"><a href="#a-607355168">Example 13</a>. &nbsp; Running a test with specification in xUnit format</p>
2499
+ <p class="title"><a href="#a-606910818">Example 13</a>. &nbsp; Running a test with specification in xUnit format</p>
2466
2500
 
2467
2501
  <pre>
2468
2502
  $ cd xUnit
@@ -2491,7 +2525,7 @@ Finished in 0.040262 seconds.
2491
2525
 
2492
2526
  <div id="hacking" class="chapter">
2493
2527
  <h1 class="title">
2494
- Chapter <a href="#a-607351098">6</a>
2528
+ Chapter <a href="#a-607168058">6</a>
2495
2529
 
2496
2530
  <br/><br/>
2497
2531
 
@@ -2503,7 +2537,7 @@ Finished in 0.040262 seconds.
2503
2537
 
2504
2538
  <div id="hacking.scm" class="section">
2505
2539
  <h2 class="title">
2506
- <a href="#a-607337768">6.1</a>
2540
+ <a href="#a-607153878">6.1</a>
2507
2541
 
2508
2542
  &nbsp;
2509
2543
 
@@ -2524,7 +2558,7 @@ Finished in 0.040262 seconds.
2524
2558
 
2525
2559
  <div id="hacking.release-packages" class="section">
2526
2560
  <h2 class="title">
2527
- <a href="#a-607340498">6.2</a>
2561
+ <a href="#a-607161228">6.2</a>
2528
2562
 
2529
2563
  &nbsp;
2530
2564
 
@@ -2552,7 +2586,7 @@ Finished in 0.040262 seconds.
2552
2586
 
2553
2587
  <div id="hacking.manual" class="section">
2554
2588
  <h2 class="title">
2555
- <a href="#a-607344628">6.3</a>
2589
+ <a href="#a-607163458">6.3</a>
2556
2590
 
2557
2591
  &nbsp;
2558
2592
 
@@ -2570,7 +2604,7 @@ Finished in 0.040262 seconds.
2570
2604
 
2571
2605
  <div id="problems" class="chapter">
2572
2606
  <h1 class="title">
2573
- Chapter <a href="#a-607417768">7</a>
2607
+ Chapter <a href="#a-607224248">7</a>
2574
2608
 
2575
2609
  <br/><br/>
2576
2610
 
@@ -2585,7 +2619,7 @@ Finished in 0.040262 seconds.
2585
2619
 
2586
2620
  <div id="problem.ivl" class="section">
2587
2621
  <h2 class="title">
2588
- <a href="#a-607385318">7.1</a>
2622
+ <a href="#a-607196648">7.1</a>
2589
2623
 
2590
2624
  &nbsp;
2591
2625
 
@@ -2600,7 +2634,7 @@ Finished in 0.040262 seconds.
2600
2634
 
2601
2635
  <div id="problems.ivl.vpi_handle_by_name.absolute-paths" class="section">
2602
2636
  <h3 class="title">
2603
- <a href="#a-607359978">7.1.1</a>
2637
+ <a href="#a-607174028">7.1.1</a>
2604
2638
 
2605
2639
  &nbsp;
2606
2640
 
@@ -2620,7 +2654,7 @@ Finished in 0.040262 seconds.
2620
2654
  <div class="example" id="ex:TestFoo">
2621
2655
 
2622
2656
 
2623
- <p class="title"><a href="#a-607355728">Example 14</a>. &nbsp; Part of a bench which instantiates a Verilog design</p>
2657
+ <p class="title"><a href="#a-607170868">Example 14</a>. &nbsp; Part of a bench which instantiates a Verilog design</p>
2624
2658
 
2625
2659
  <pre class="code" lang="verilog">
2626
2660
  module TestFoo;
@@ -2639,7 +2673,7 @@ endmodule
2639
2673
 
2640
2674
  <div id="problems.ivl.vpi_handle_by_name.connect-registers" class="section">
2641
2675
  <h3 class="title">
2642
- <a href="#a-607371468">7.1.2</a>
2676
+ <a href="#a-607183718">7.1.2</a>
2643
2677
 
2644
2678
  &nbsp;
2645
2679
 
@@ -2662,7 +2696,7 @@ endmodule
2662
2696
  <div class="example" id="ex:TestFoo_bad">
2663
2697
 
2664
2698
 
2665
- <p class="title"><a href="#a-607364178">Example 15</a>. &nbsp; Bad design with unconnected registers</p>
2699
+ <p class="title"><a href="#a-607176928">Example 15</a>. &nbsp; Bad design with unconnected registers</p>
2666
2700
 
2667
2701
  Here the <code class="code">clk_reg</code> register is not connected to anything.
2668
2702
 
@@ -2682,7 +2716,7 @@ endmodule
2682
2716
  <div class="example" id="ex:TestFoo_fix">
2683
2717
 
2684
2718
 
2685
- <p class="title"><a href="#a-607366888">Example 16</a>. &nbsp; Fixed design with wired registers</p>
2719
+ <p class="title"><a href="#a-607179368">Example 16</a>. &nbsp; Fixed design with wired registers</p>
2686
2720
 
2687
2721
  Here the <code class="code">clk_reg</code> register is connected to the <code class="code">clk_wire</code> wire.
2688
2722
 
@@ -2705,7 +2739,7 @@ endmodule
2705
2739
 
2706
2740
  <div id="problems.ivl.vpi_reset" class="section">
2707
2741
  <h3 class="title">
2708
- <a href="#a-607373948">7.1.3</a>
2742
+ <a href="#a-607185968">7.1.3</a>
2709
2743
 
2710
2744
  &nbsp;
2711
2745
 
@@ -2724,7 +2758,7 @@ endmodule
2724
2758
 
2725
2759
  <div id="problem.ncsim" class="section">
2726
2760
  <h2 class="title">
2727
- <a href="#a-607390998">7.2</a>
2761
+ <a href="#a-607202038">7.2</a>
2728
2762
 
2729
2763
  &nbsp;
2730
2764
 
@@ -2739,7 +2773,7 @@ endmodule
2739
2773
 
2740
2774
  <div id="problem.ncsim.vpiForceFlag" class="section">
2741
2775
  <h3 class="title">
2742
- <a href="#a-607387788">7.2.1</a>
2776
+ <a href="#a-607199078">7.2.1</a>
2743
2777
 
2744
2778
  &nbsp;
2745
2779
 
@@ -2766,7 +2800,7 @@ endmodule
2766
2800
 
2767
2801
  <div id="glossary" class="chapter">
2768
2802
  <h1 class="title">
2769
- Chapter <a href="#a-607450218">8</a>
2803
+ Chapter <a href="#a-607256698">8</a>
2770
2804
 
2771
2805
  <br/><br/>
2772
2806
 
@@ -2778,7 +2812,7 @@ endmodule
2778
2812
 
2779
2813
  <div id="glossary.test" class="section">
2780
2814
  <h2 class="title">
2781
- <a href="#a-607420598">8.1</a>
2815
+ <a href="#a-607227078">8.1</a>
2782
2816
 
2783
2817
  &nbsp;
2784
2818
 
@@ -2794,7 +2828,7 @@ endmodule
2794
2828
 
2795
2829
  <div id="glossary.design" class="section">
2796
2830
  <h2 class="title">
2797
- <a href="#a-607423098">8.2</a>
2831
+ <a href="#a-607229578">8.2</a>
2798
2832
 
2799
2833
  &nbsp;
2800
2834
 
@@ -2810,7 +2844,7 @@ endmodule
2810
2844
 
2811
2845
  <div id="glossary.specification" class="section">
2812
2846
  <h2 class="title">
2813
- <a href="#a-607425858">8.3</a>
2847
+ <a href="#a-607232338">8.3</a>
2814
2848
 
2815
2849
  &nbsp;
2816
2850
 
@@ -2826,7 +2860,7 @@ endmodule
2826
2860
 
2827
2861
  <div id="glossary.expectation" class="section">
2828
2862
  <h2 class="title">
2829
- <a href="#a-607428078">8.4</a>
2863
+ <a href="#a-607234558">8.4</a>
2830
2864
 
2831
2865
  &nbsp;
2832
2866
 
@@ -2842,7 +2876,7 @@ endmodule
2842
2876
 
2843
2877
  <div id="glossary.handle" class="section">
2844
2878
  <h2 class="title">
2845
- <a href="#a-607430558">8.5</a>
2879
+ <a href="#a-607237038">8.5</a>
2846
2880
 
2847
2881
  &nbsp;
2848
2882
 
@@ -2858,7 +2892,7 @@ endmodule
2858
2892
 
2859
2893
  <div id="glossary.rake" class="section">
2860
2894
  <h2 class="title">
2861
- <a href="#a-607432818">8.6</a>
2895
+ <a href="#a-607239298">8.6</a>
2862
2896
 
2863
2897
  &nbsp;
2864
2898
 
@@ -2879,7 +2913,7 @@ endmodule
2879
2913
 
2880
2914
  <div id="glossary.RSpec" class="section">
2881
2915
  <h2 class="title">
2882
- <a href="#a-607435358">8.7</a>
2916
+ <a href="#a-607241838">8.7</a>
2883
2917
 
2884
2918
  &nbsp;
2885
2919
 
@@ -2898,7 +2932,7 @@ endmodule
2898
2932
 
2899
2933
  <div id="glossary.TDD" class="section">
2900
2934
  <h2 class="title">
2901
- <a href="#a-607437618">8.8</a>
2935
+ <a href="#a-607244098">8.8</a>
2902
2936
 
2903
2937
  &nbsp;
2904
2938
 
@@ -2917,7 +2951,7 @@ endmodule
2917
2951
 
2918
2952
  <div id="glossary.BDD" class="section">
2919
2953
  <h2 class="title">
2920
- <a href="#a-607439878">8.9</a>
2954
+ <a href="#a-607246358">8.9</a>
2921
2955
 
2922
2956
  &nbsp;
2923
2957
 
@@ -2937,49 +2971,49 @@ endmodule
2937
2971
  <hr style="display: none"/>
2938
2972
  <div id="toc">
2939
2973
  <h1 id="toc:contents">Contents</h1>
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>
2974
+ <ul><li><span class="hide">1 </span><a id="a-605815698" href="#Ruby-VPI_18.0.1_user_manual">Ruby-VPI 18.0.1 user manual</a><ul><li><span class="hide">1.1 </span><a id="a-605717698" href="#About_this_manual">About this manual</a></li><li><span class="hide">1.2 </span><a id="a-605744638" href="#Legal_notice">Legal notice</a></li></ul></li><li><span class="hide">2 </span><a id="a-606978988" href="#intro">Welcome</a><ul><li><span class="hide">2.1 </span><a id="a-606913148" href="#resources">Resources</a><ul><li><span class="hide">2.1.1 </span><a id="a-605838518" href="#Records">Records</a></li><li><span class="hide">2.1.2 </span><a id="a-605610268" href="#Documentation">Documentation</a></li><li><span class="hide">2.1.3 </span><a id="a-606907548" href="#Facilities">Facilities</a></li></ul></li><li><span class="hide">2.2 </span><a id="a-606925458" href="#intro.features">Features</a><ul><li><span class="hide">2.2.1 </span><a id="a-606915788" href="#Portable">Portable</a></li><li><span class="hide">2.2.2 </span><a id="a-606918188" href="#Agile">Agile</a></li><li><span class="hide">2.2.3 </span><a id="a-606920588" href="#Powerful">Powerful</a></li></ul></li><li><span class="hide">2.3 </span><a id="a-606937688" href="#intro.reqs">Requirements</a><ul><li><span class="hide">2.3.1 </span><a id="a-606928098" href="#Verilog_simulator">Verilog simulator</a></li><li><span class="hide">2.3.2 </span><a id="a-606930538" href="#Compilers">Compilers</a></li><li><span class="hide">2.3.3 </span><a id="a-606932858" href="#Libraries">Libraries</a></li></ul></li><li><span class="hide">2.4 </span><a id="a-606940248" href="#intro.applications">Applications</a></li><li><span class="hide">2.5 </span><a id="a-606942848" href="#intro.appetizers">Appetizers</a></li><li><span class="hide">2.6 </span><a id="a-606945718" href="#intro.license">License</a></li><li><span class="hide">2.7 </span><a id="a-606951108" href="#intro.related-works">Related works</a><ul><li><span class="hide">2.7.1 </span><a id="a-606948168" href="#intro.related-works.pli">Ye olde PLI</a></li></ul></li></ul></li><li><span class="hide">3 </span><a id="a-607019648" href="#setup">Setup</a><ul><li><span class="hide">3.1 </span><a id="a-606982178" href="#setup.manifest">Manifest</a></li><li><span class="hide">3.2 </span><a id="a-606987618" href="#setup.reqs">Requirements</a></li><li><span class="hide">3.3 </span><a id="a-606993788" href="#setup.recom">Recommendations</a><ul><li><span class="hide">3.3.1 </span><a id="a-606990448" href="#setup.recom.merger">Text merging tool</a></li></ul></li><li><span class="hide">3.4 </span><a id="a-607002928" href="#setup.inst">Installation</a><ul><li><span class="hide">3.4.1 </span><a id="a-606998868" href="#setup.inst.windows">Installing on Windows</a></li></ul></li><li><span class="hide">3.5 </span><a id="a-607005208" href="#setup.maintenance">Maintenance</a></li></ul></li><li><span class="hide">4 </span><a id="a-607025428" href="#organization">Organization</a><ul><li><span class="hide">4.1 </span><a id="a-607028538" href="#overview.relay">Ruby/Verilog interaction</a></li><li><span class="hide">4.2 </span><a id="a-607034108" href="#organization.tests">Tests</a></li><li><span class="hide">4.3 </span><a id="a-606948098" href="#VPI_in_Ruby">VPI in Ruby</a><ul><li><span class="hide">4.3.1 </span><a id="a-607043028" 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-607036598" href="#Names_are_capitalized">Names are capitalized</a></li><li><span class="hide">4.3.1.2 </span><a id="a-607039098" 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-607068568" href="#vpi.handles">Handles</a><ul><li><span class="hide">4.3.2.1 </span><a id="a-607045688" href="#Shortcuts_for_productivity">Shortcuts for productivity</a></li><li><span class="hide">4.3.2.2 </span><a id="a-607048248" 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-607051188" 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-607076998" href="#vpi.callbacks">Callbacks</a></li></ul></li></ul></li><li><span class="hide">5 </span><a id="a-607149688" href="#usage">Usage</a><ul><li><span class="hide">5.1 </span><a id="a-607049328" href="#usage.prototyping">Prototyping</a><ul><li><span class="hide">5.1.1 </span><a id="a-607035478" href="#Getting_started">Getting started</a></li><li><span class="hide">5.1.2 </span><a id="a-607039268" href="#How_does_prototyping_work_">How does prototyping work?</a></li></ul></li><li><span class="hide">5.2 </span><a id="a-607058778" href="#usage.debugger">Debugging</a><ul><li><span class="hide">5.2.1 </span><a id="a-607053478" href="#usage.debugger.init">Advanced initialization</a></li></ul></li><li><span class="hide">5.3 </span><a id="a-607082308" href="#usage.test-runner">Test runner</a><ul><li><span class="hide">5.3.1 </span><a id="a-607072228" href="#usage.test-runner.env-vars">Environment variables</a><ul><li><span class="hide">5.3.1.1 </span><a id="a-607063028" 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-607101458" href="#usage.tools">Tools</a><ul><li><span class="hide">5.4.1 </span><a id="a-607091638" href="#usage.tools.generate">Automated test generation</a></li><li><span class="hide">5.4.2 </span><a id="a-607093928" href="#usage.tools.convert">Verilog to Ruby conversion</a></li></ul></li><li><span class="hide">5.5 </span><a id="a-607103698" href="#usage.examples">Sample tests</a></li><li><span class="hide">5.6 </span><a id="a-606970248" href="#usage.tutorial">Tutorial</a><ul><li><span class="hide">5.6.1 </span><a id="a-607111108" href="#usage.tutorial.declare-design">Start with a Verilog design</a></li><li><span class="hide">5.6.2 </span><a id="a-607121708" href="#usage.tutorial.generate-test">Generate a test</a></li><li><span class="hide">5.6.3 </span><a id="a-607131808" href="#usage.tutorial.specification">Specify your expectations</a></li><li><span class="hide">5.6.4 </span><a id="a-607137798" href="#usage.tutorial.implement-proto">Implement the prototype</a></li><li><span class="hide">5.6.5 </span><a id="a-607151048" href="#usage.tutorial.test-proto">Verify the prototype</a></li><li><span class="hide">5.6.6 </span><a id="a-607157038" href="#usage.tutorial.implement-design">Implement the design</a></li><li><span class="hide">5.6.7 </span><a id="a-606917698" href="#usage.tutorial.test-design">Verify the design</a></li></ul></li></ul></li><li><span class="hide">6 </span><a id="a-607168058" href="#hacking">Hacking</a><ul><li><span class="hide">6.1 </span><a id="a-607153878" href="#hacking.scm">Getting the source code</a></li><li><span class="hide">6.2 </span><a id="a-607161228" href="#hacking.release-packages">Building release packages</a></li><li><span class="hide">6.3 </span><a id="a-607163458" href="#hacking.manual">Editing this manual</a></li></ul></li><li><span class="hide">7 </span><a id="a-607224248" href="#problems">Known problems</a><ul><li><span class="hide">7.1 </span><a id="a-607196648" href="#problem.ivl">Icarus Verilog</a><ul><li><span class="hide">7.1.1 </span><a id="a-607174028" 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-607183718" 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-607185968" href="#problems.ivl.vpi_reset">Vpi::reset</a></li></ul></li><li><span class="hide">7.2 </span><a id="a-607202038" href="#problem.ncsim">Cadence NC-Sim</a><ul><li><span class="hide">7.2.1 </span><a id="a-607199078" href="#problem.ncsim.vpiForceFlag">Cannot force values onto handles</a></li></ul></li></ul></li><li><span class="hide">8 </span><a id="a-607256698" href="#glossary">Glossary</a><ul><li><span class="hide">8.1 </span><a id="a-607227078" href="#glossary.test">Test</a></li><li><span class="hide">8.2 </span><a id="a-607229578" href="#glossary.design">Design</a></li><li><span class="hide">8.3 </span><a id="a-607232338" href="#glossary.specification">Specification</a></li><li><span class="hide">8.4 </span><a id="a-607234558" href="#glossary.expectation">Expectation</a></li><li><span class="hide">8.5 </span><a id="a-607237038" href="#glossary.handle">Handle</a></li><li><span class="hide">8.6 </span><a id="a-607239298" href="#glossary.rake">Rake</a></li><li><span class="hide">8.7 </span><a id="a-607241838" href="#glossary.RSpec">RSpec</a></li><li><span class="hide">8.8 </span><a id="a-607244098" href="#glossary.TDD">Test driven development</a></li><li><span class="hide">8.9 </span><a id="a-607246358" href="#glossary.BDD">Behavior driven development</a></li></ul></li></ul>
2941
2975
 
2942
2976
  <h1 id="toc:tip">Tips</h1>
2943
2977
  <ol>
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>
2978
+ <li><a href="#Add_support_for_your_Verilog_simulator" id="a-606984648">Add support for your Verilog simulator</a></li>
2979
+ <li><a href="#Tuning_for_maximum_performance" id="a-606996338">Tuning for maximum performance</a></li>
2980
+ <li><a href="#Using__kdiff3__with_the_automated_test_generator." id="a-607087558">Using <strong>kdiff3</strong> with the automated test generator.</a></li>
2981
+ <li><a href="#What_can_the_test_runner_do_" id="a-607145688">What can the test runner do?</a></li>
2948
2982
  </ol>
2949
2983
  <h1 id="toc:caution">Cautions</h1>
2950
2984
  <ol>
2951
- <li><a href="#Do_not_rename_generated_files" id="a-607250958">Do not rename generated files</a></li>
2985
+ <li><a href="#Do_not_rename_generated_files" id="a-607085068">Do not rename generated files</a></li>
2952
2986
  </ol>
2953
2987
  <h1 id="toc:figure">Figures</h1>
2954
2988
  <ol>
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>
2989
+ <li><a href="#fig:organization.detail" id="a-607022248">Where does Ruby-VPI fit in?</a></li>
2990
+ <li><a href="#fig:ruby_relay" id="a-607025058">Interaction between Ruby and Verilog</a></li>
2991
+ <li><a href="#fig:organization" id="a-607031008">Organization of a test in Ruby-VPI</a></li>
2992
+ <li><a href="#fig:method_naming_format" id="a-607053988">Method naming format for accessing a handle&#8217;s properties</a></li>
2959
2993
  </ol>
2960
2994
  <h1 id="toc:table">Tables</h1>
2961
2995
  <ol>
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>
2996
+ <li><a href="#tbl:accessors" id="a-607056418">Possible accessors and their implications</a></li>
2997
+ <li><a href="#ex:properties" id="a-607059358">Examples of accessing a handle&#8217;s properties</a></li>
2964
2998
  </ol>
2965
2999
  <h1 id="toc:example">Examples</h1>
2966
3000
  <ol>
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>
3001
+ <li><a href="#ex:callback" id="a-607072518">Using a callback for value change notification</a></li>
3002
+ <li><a href="#Running_a_test_with_environment_variables" id="a-607065588">Running a test with environment variables</a></li>
3003
+ <li><a href="#fig:counter.v_decl" id="a-607107598">Declaration of a simple up-counter with synchronous reset</a></li>
3004
+ <li><a href="#fig:generate-test.RSpec" id="a-607114448">Generating a test with specification in RSpec format</a></li>
3005
+ <li><a href="#fig:generate-test.xUnit" id="a-607116908">Generating a test with specification in xUnit format</a></li>
3006
+ <li><a href="#fig:RSpec_counter_spec.rb" id="a-607124618">Specification implemented in RSpec format</a></li>
3007
+ <li><a href="#fig:xUnit_counter_spec.rb" id="a-607126978">Specification implemented in xUnit format</a></li>
3008
+ <li><a href="#fig:counter_proto.rb" id="a-607134398">Ruby prototype of our Verilog design</a></li>
3009
+ <li><a href="#fig:test-proto.RSpec" id="a-607140918">Running a test with specification in RSpec format</a></li>
3010
+ <li><a href="#fig:test-proto.unit-test" id="a-607143418">Running a test with specification in xUnit format</a></li>
3011
+ <li><a href="#fig:counter.v_impl" id="a-607153638">Implementation of a simple up-counter with synchronous reset</a></li>
3012
+ <li><a href="#fig:test-design.RSpec" id="a-607159998">Running a test with specification in RSpec format</a></li>
3013
+ <li><a href="#fig:test-design.unit-test" id="a-606910818">Running a test with specification in xUnit format</a></li>
3014
+ <li><a href="#ex:TestFoo" id="a-607170868">Part of a bench which instantiates a Verilog design</a></li>
3015
+ <li><a href="#ex:TestFoo_bad" id="a-607176928">Bad design with unconnected registers</a></li>
3016
+ <li><a href="#ex:TestFoo_fix" id="a-607179368">Fixed design with wired registers</a></li>
2983
3017
  </ol>
2984
3018
  </div>
2985
3019
  </body>