ruby-vpi 18.0.0 → 18.0.1

Sign up to get free protection for your applications and to get access to all the features.
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>