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.
- data/bin/generate.rb +1 -1
- data/doc/common.inc +7 -6
- data/doc/history.html +76 -40
- data/doc/history.inc +14 -1
- data/doc/history.yaml +21 -0
- data/doc/intro.inc +11 -1
- data/doc/lib/doc_format.rb +1 -1
- data/doc/manual.html +181 -147
- data/doc/memo.html +4 -4
- data/doc/readme.html +61 -27
- data/doc/rss.xml +30 -25
- data/ext/extconf.rb +1 -1
- data/lib/ruby-vpi/erb.rb +1 -1
- data/lib/ruby-vpi/float.rb +1 -1
- data/lib/ruby-vpi/integer.rb +1 -1
- data/lib/ruby-vpi/rake.rb +1 -1
- data/lib/ruby-vpi/rcov.rb +1 -1
- data/lib/ruby-vpi/runner.rb +5 -4
- data/lib/ruby-vpi/runner_boot_loader.rb +9 -1
- data/lib/ruby-vpi/runner_proxy.rb +1 -1
- data/lib/ruby-vpi/util.rb +9 -3
- data/lib/ruby-vpi/verilog_parser.rb +1 -1
- data/lib/ruby-vpi/vpi.rb +4 -4
- data/lib/ruby-vpi.rb +1 -1
- data/ref/c/annotated.html +1 -1
- data/ref/c/common_8h.html +1 -1
- data/ref/c/files.html +1 -1
- data/ref/c/functions.html +1 -1
- data/ref/c/functions_vars.html +1 -1
- data/ref/c/globals.html +1 -1
- data/ref/c/globals_0x63.html +1 -1
- data/ref/c/globals_0x65.html +1 -1
- data/ref/c/globals_0x66.html +1 -1
- data/ref/c/globals_0x6d.html +1 -1
- data/ref/c/globals_0x70.html +1 -1
- data/ref/c/globals_0x72.html +1 -1
- data/ref/c/globals_0x73.html +1 -1
- data/ref/c/globals_0x74.html +1 -1
- data/ref/c/globals_0x76.html +1 -1
- data/ref/c/globals_0x78.html +1 -1
- data/ref/c/globals_defs.html +1 -1
- data/ref/c/globals_defs_0x65.html +1 -1
- data/ref/c/globals_defs_0x70.html +1 -1
- data/ref/c/globals_defs_0x76.html +1 -1
- data/ref/c/globals_defs_0x78.html +1 -1
- data/ref/c/globals_enum.html +1 -1
- data/ref/c/globals_eval.html +1 -1
- data/ref/c/globals_func.html +1 -1
- data/ref/c/globals_type.html +1 -1
- data/ref/c/globals_vars.html +1 -1
- data/ref/c/index.html +1 -1
- data/ref/c/main_8c.html +1 -1
- data/ref/c/main_8h.html +1 -1
- data/ref/c/relay_8c.html +1 -1
- data/ref/c/relay_8h.html +1 -1
- data/ref/c/structt__cb__data.html +1 -1
- data/ref/c/structt__vpi__delay.html +1 -1
- data/ref/c/structt__vpi__error__info.html +1 -1
- data/ref/c/structt__vpi__strengthval.html +1 -1
- data/ref/c/structt__vpi__systf__data.html +1 -1
- data/ref/c/structt__vpi__time.html +1 -1
- data/ref/c/structt__vpi__value.html +1 -1
- data/ref/c/structt__vpi__vecval.html +1 -1
- data/ref/c/structt__vpi__vlog__info.html +1 -1
- data/ref/c/verilog_8h.html +1 -1
- data/ref/c/vlog_8c.html +1 -1
- data/ref/c/vlog_8h.html +1 -1
- data/ref/c/vpi__user_8h.html +1 -1
- data/ref/ruby/classes/String.html +5 -2
- data/ref/ruby/classes/String.src/M000024.html +4 -4
- data/ref/ruby/classes/String.src/M000025.html +4 -4
- data/ref/ruby/classes/Vpi/Handle.src/M000047.html +2 -2
- data/ref/ruby/classes/Vpi.src/M000030.html +1 -1
- data/ref/ruby/created.rid +1 -1
- data/ref/ruby/files/bin/generate_rb.html +1 -1
- data/ref/ruby/files/lib/ruby-vpi/erb_rb.html +1 -1
- data/ref/ruby/files/lib/ruby-vpi/float_rb.html +1 -1
- data/ref/ruby/files/lib/ruby-vpi/integer_rb.html +1 -1
- data/ref/ruby/files/lib/ruby-vpi/rake_rb.html +1 -1
- data/ref/ruby/files/lib/ruby-vpi/rcov_rb.html +1 -1
- data/ref/ruby/files/lib/ruby-vpi/runner_boot_loader_rb.html +1 -1
- data/ref/ruby/files/lib/ruby-vpi/runner_boot_loader_rb.src/M000001.html +3 -3
- data/ref/ruby/files/lib/ruby-vpi/runner_boot_loader_rb.src/M000002.html +4 -4
- data/ref/ruby/files/lib/ruby-vpi/runner_proxy_rb.html +1 -1
- data/ref/ruby/files/lib/ruby-vpi/runner_rb.html +1 -1
- data/ref/ruby/files/lib/ruby-vpi/util_rb.html +7 -1
- data/ref/ruby/files/lib/ruby-vpi/verilog_parser_rb.html +1 -1
- data/ref/ruby/files/lib/ruby-vpi/vpi_rb.html +1 -1
- data/ref/ruby/files/lib/ruby-vpi_rb.html +1 -1
- data/samp/pipelined_alu/Hw5UnitModel.rb +0 -4
- data/samp/pipelined_alu/TestHw5UnitModel.rb +0 -4
- data/samp/pipelined_alu/hw5_unit.v +0 -5
- 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.
|
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.
|
27
|
-
<h1 class="title"><big>Ruby-VPI 18.0.
|
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">
|
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’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
|
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-
|
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-
|
93
|
+
<a href="#a-606913148">2.1</a>
|
94
94
|
|
95
95
|
|
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.
|
105
|
-
– release notes for version 18.0.
|
104
|
+
<li><a href="history.html#a18.0.1">What’s new</a>
|
105
|
+
– release notes for version 18.0.1.
|
106
106
|
<ul>
|
107
107
|
<li><a href="history.html">History</a>
|
108
108
|
– 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/
|
144
|
+
<li><a href="http://ruby-vpi.rubyforge.org/download/">Downloads</a>
|
145
145
|
– obtain release packages</li>
|
146
|
-
<li><a href="http://ruby-vpi.rubyforge.org/
|
146
|
+
<li><a href="http://ruby-vpi.rubyforge.org/code/">Source code</a>
|
147
147
|
– browse online or obtain with <a href="http://darcs.net">Darcs</a>.</li>
|
148
|
-
<li><a href="http://rubyforge.org/forum
|
148
|
+
<li><a href="http://ruby-vpi.rubyforge.org/forum/">Forums</a>
|
149
149
|
– discuss things and ask questions.</li>
|
150
|
-
<li><a href="http://rubyforge.org/
|
150
|
+
<li><a href="http://ruby-vpi.rubyforge.org/mail/">Mailing list</a>
|
151
|
+
– discuss things and ask questions.</li>
|
152
|
+
<li><a href="http://ruby-vpi.rubyforge.org/tracker/">Bugs</a>
|
151
153
|
– report defects in the software.</li>
|
152
|
-
<li><a href="http://rubyforge.org/tracker
|
154
|
+
<li><a href="http://ruby-vpi.rubyforge.org/tracker/">Patches</a>
|
153
155
|
– submit patches to source code.</li>
|
154
|
-
<li><a href="http://rubyforge.org/tracker
|
156
|
+
<li><a href="http://ruby-vpi.rubyforge.org/tracker/">Requests</a>
|
155
157
|
– request new features or get support.</li>
|
156
|
-
<li><a href="http://rubyforge.org/
|
158
|
+
<li><a href="http://ruby-vpi.rubyforge.org/portal/">Project portal</a>
|
157
159
|
– 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-
|
173
|
+
<a href="#a-606925458">2.2</a>
|
172
174
|
|
173
175
|
|
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-
|
244
|
+
<a href="#a-606937688">2.3</a>
|
243
245
|
|
244
246
|
|
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
|
– any version that supports the <tt>-load</tt> option is acceptable.</li>
|
261
|
-
|
263
|
+
</ul>
|
264
|
+
|
265
|
+
|
266
|
+
<ul>
|
267
|
+
<li><a href="http://www.model.com">Mentor Modelsim</a>
|
262
268
|
– any version that supports the <tt>-pli</tt> option is acceptable.</li>
|
263
|
-
|
264
|
-
|
265
|
-
|
269
|
+
</ul>
|
270
|
+
|
271
|
+
|
272
|
+
<ul>
|
273
|
+
<li><a href="http://www.cadence.com/products/functional_ver/nc-verilog/">Cadence NC-Sim</a>
|
274
|
+
– 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
|
– version 2.11a or newer is acceptable.</li>
|
267
|
-
|
281
|
+
</ul>
|
282
|
+
|
283
|
+
|
284
|
+
<ul>
|
285
|
+
<li><a href="http://www.geda.seul.org/tools/icarus/index.html">Icarus Verilog</a>
|
268
286
|
– 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
|
– any flavor should be acceptable.</li>
|
278
|
-
|
296
|
+
</ul>
|
297
|
+
|
298
|
+
|
299
|
+
<ul>
|
300
|
+
<li>C compiler
|
279
301
|
– 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
|
-
|
302
|
+
</ul>
|
303
|
+
|
304
|
+
|
305
|
+
<ul>
|
306
|
+
<li><a href="http://www.swig.org/download.html">SWIG</a>
|
281
307
|
– version 1.3.29 or newer is necessary.</li>
|
282
|
-
|
308
|
+
</ul>
|
309
|
+
|
310
|
+
|
311
|
+
<ul>
|
312
|
+
<li><a href="http://www.ruby-lang.org/en/downloads/">Ruby</a>
|
283
313
|
– 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
|
– header and linkable object files, and operating system support for this library are necessary.</li>
|
293
|
-
|
323
|
+
</ul>
|
324
|
+
|
325
|
+
|
326
|
+
<ul>
|
327
|
+
<li><a href="http://rubyforge.org/frs/?group_id=126">RubyGems</a>
|
294
328
|
– 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-
|
342
|
+
<a href="#a-606940248">2.4</a>
|
309
343
|
|
310
344
|
|
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-
|
388
|
+
<a href="#a-606942848">2.5</a>
|
355
389
|
|
356
390
|
|
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-
|
456
|
+
<a href="#a-606945718">2.6</a>
|
423
457
|
|
424
458
|
|
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-
|
502
|
+
<a href="#a-606951108">2.7</a>
|
469
503
|
|
470
504
|
|
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-
|
523
|
+
<a href="#a-606948168">2.7.1</a>
|
490
524
|
|
491
525
|
|
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-
|
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-
|
562
|
+
<a href="#a-606982178">3.1</a>
|
529
563
|
|
530
564
|
|
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-
|
588
|
+
<a href="#a-606987618">3.2</a>
|
555
589
|
|
556
590
|
|
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-
|
605
|
+
<p class="title"><a href="#a-606984648">Tip 1</a>. 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-
|
619
|
+
<a href="#a-606993788">3.3</a>
|
586
620
|
|
587
621
|
|
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-
|
634
|
+
<a href="#a-606990448">3.3.1</a>
|
601
635
|
|
602
636
|
|
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-
|
678
|
+
<a href="#a-607002928">3.4</a>
|
645
679
|
|
646
680
|
|
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-
|
704
|
+
<p class="title"><a href="#a-606996338">Tip 2</a>. 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’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-
|
715
|
+
<a href="#a-606998868">3.4.1</a>
|
682
716
|
|
683
717
|
|
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-
|
766
|
+
<a href="#a-607005208">3.5</a>
|
733
767
|
|
734
768
|
|
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-
|
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-
|
810
|
+
<p class="title"><a href="#a-607022248">Figure 1</a>. 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-
|
824
|
+
<a href="#a-607028538">4.1</a>
|
791
825
|
|
792
826
|
|
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-
|
847
|
+
<p class="title"><a href="#a-607025058">Figure 2</a>. 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-
|
873
|
+
<a href="#a-607034108">4.2</a>
|
840
874
|
|
841
875
|
|
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-
|
890
|
+
<p class="title"><a href="#a-607031008">Figure 3</a>. 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-
|
913
|
+
<a href="#a-606948098">4.3</a>
|
880
914
|
|
881
915
|
|
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-
|
925
|
+
<a href="#a-607043028">4.3.1</a>
|
892
926
|
|
893
927
|
|
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-
|
940
|
+
<a href="#a-607036598">4.3.1.1</a>
|
907
941
|
|
908
942
|
|
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-
|
961
|
+
<a href="#a-607039098">4.3.1.2</a>
|
928
962
|
|
929
963
|
|
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-
|
998
|
+
<a href="#a-607068568">4.3.2</a>
|
965
999
|
|
966
1000
|
|
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-
|
1027
|
+
<a href="#a-607048248">4.3.2.2</a>
|
994
1028
|
|
995
1029
|
|
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-
|
1064
|
+
<a href="#a-607051188">4.3.2.3</a>
|
1031
1065
|
|
1032
1066
|
|
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-
|
1107
|
+
<p class="title"><a href="#a-607053988">Figure 4</a>. Method naming format for accessing a handle’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-
|
1160
|
+
<p class="title"><a href="#a-607056418">Table 1</a>. 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-
|
1214
|
+
<p class="title"><a href="#a-607059358">Table 2</a>. Examples of accessing a handle’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-
|
1539
|
+
<a href="#a-607076998">4.3.3</a>
|
1506
1540
|
|
1507
1541
|
|
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-
|
1559
|
+
<p class="title"><a href="#a-607072518">Example 1</a>. 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’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-
|
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-
|
1620
|
+
<a href="#a-607049328">5.1</a>
|
1587
1621
|
|
1588
1622
|
|
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-
|
1662
|
+
<a href="#a-607039268">5.1.2</a>
|
1629
1663
|
|
1630
1664
|
|
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-
|
1684
|
+
<a href="#a-607058778">5.2</a>
|
1651
1685
|
|
1652
1686
|
|
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-
|
1705
|
+
<a href="#a-607053478">5.2.1</a>
|
1672
1706
|
|
1673
1707
|
|
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-
|
1730
|
+
<a href="#a-607082308">5.3</a>
|
1697
1731
|
|
1698
1732
|
|
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-
|
1760
|
+
<a href="#a-607072228">5.3.1</a>
|
1727
1761
|
|
1728
1762
|
|
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-
|
1807
|
+
<p class="title"><a href="#a-607065588">Example 2</a>. 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-
|
1831
|
+
<a href="#a-607101458">5.4</a>
|
1798
1832
|
|
1799
1833
|
|
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-
|
1867
|
+
<a href="#a-607091638">5.4.1</a>
|
1834
1868
|
|
1835
1869
|
|
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-
|
1897
|
+
<p class="title"><a href="#a-607085068">Caution 1</a>. 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-
|
1916
|
+
<p class="title"><a href="#a-607087558">Tip 3</a>. 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-
|
1942
|
+
<a href="#a-607093928">5.4.2</a>
|
1909
1943
|
|
1910
1944
|
|
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-
|
1964
|
+
<a href="#a-607103698">5.5</a>
|
1931
1965
|
|
1932
1966
|
|
1933
1967
|
|
1934
1968
|
Sample tests
|
1935
1969
|
</h2>
|
1936
1970
|
|
1937
|
-
The <tt>samp</tt> directory (<a href="http://ruby-vpi.rubyforge.org/
|
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-
|
1980
|
+
<a href="#a-606970248">5.6</a>
|
1947
1981
|
|
1948
1982
|
|
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-
|
2003
|
+
<a href="#a-607111108">5.6.1</a>
|
1970
2004
|
|
1971
2005
|
|
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-
|
2028
|
+
<p class="title"><a href="#a-607107598">Example 3</a>. 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-
|
2052
|
+
<a href="#a-607121708">5.6.2</a>
|
2019
2053
|
|
2020
2054
|
|
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-
|
2088
|
+
<p class="title"><a href="#a-607114448">Example 4</a>. 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-
|
2110
|
+
<p class="title"><a href="#a-607116908">Example 5</a>. 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-
|
2135
|
+
<a href="#a-607131808">5.6.3</a>
|
2102
2136
|
|
2103
2137
|
|
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-
|
2163
|
+
<p class="title"><a href="#a-607124618">Example 6</a>. 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">"<
|
|
2178
2212
|
<div class="example" id="fig:xUnit_counter_spec.rb">
|
2179
2213
|
|
2180
2214
|
|
2181
|
-
<p class="title"><a href="#a-
|
2215
|
+
<p class="title"><a href="#a-607126978">Example 7</a>. 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-
|
2275
|
+
<a href="#a-607137798">5.6.4</a>
|
2242
2276
|
|
2243
2277
|
|
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-
|
2292
|
+
<p class="title"><a href="#a-607134398">Example 8</a>. 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-
|
2319
|
+
<a href="#a-607151048">5.6.5</a>
|
2286
2320
|
|
2287
2321
|
|
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-
|
2339
|
+
<p class="title"><a href="#a-607140918">Example 9</a>. 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-
|
2363
|
+
<p class="title"><a href="#a-607143418">Example 10</a>. 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-
|
2387
|
+
<p class="title"><a href="#a-607145688">Tip 4</a>. 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-
|
2403
|
+
<a href="#a-607157038">5.6.6</a>
|
2370
2404
|
|
2371
2405
|
|
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-
|
2420
|
+
<p class="title"><a href="#a-607153638">Example 11</a>. 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-
|
2457
|
+
<a href="#a-606917698">5.6.7</a>
|
2424
2458
|
|
2425
2459
|
|
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-
|
2477
|
+
<p class="title"><a href="#a-607159998">Example 12</a>. 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-
|
2499
|
+
<p class="title"><a href="#a-606910818">Example 13</a>. 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-
|
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-
|
2540
|
+
<a href="#a-607153878">6.1</a>
|
2507
2541
|
|
2508
2542
|
|
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-
|
2561
|
+
<a href="#a-607161228">6.2</a>
|
2528
2562
|
|
2529
2563
|
|
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-
|
2589
|
+
<a href="#a-607163458">6.3</a>
|
2556
2590
|
|
2557
2591
|
|
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-
|
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-
|
2622
|
+
<a href="#a-607196648">7.1</a>
|
2589
2623
|
|
2590
2624
|
|
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-
|
2637
|
+
<a href="#a-607174028">7.1.1</a>
|
2604
2638
|
|
2605
2639
|
|
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-
|
2657
|
+
<p class="title"><a href="#a-607170868">Example 14</a>. 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-
|
2676
|
+
<a href="#a-607183718">7.1.2</a>
|
2643
2677
|
|
2644
2678
|
|
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-
|
2699
|
+
<p class="title"><a href="#a-607176928">Example 15</a>. 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-
|
2719
|
+
<p class="title"><a href="#a-607179368">Example 16</a>. 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-
|
2742
|
+
<a href="#a-607185968">7.1.3</a>
|
2709
2743
|
|
2710
2744
|
|
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-
|
2761
|
+
<a href="#a-607202038">7.2</a>
|
2728
2762
|
|
2729
2763
|
|
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-
|
2776
|
+
<a href="#a-607199078">7.2.1</a>
|
2743
2777
|
|
2744
2778
|
|
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-
|
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-
|
2815
|
+
<a href="#a-607227078">8.1</a>
|
2782
2816
|
|
2783
2817
|
|
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-
|
2831
|
+
<a href="#a-607229578">8.2</a>
|
2798
2832
|
|
2799
2833
|
|
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-
|
2847
|
+
<a href="#a-607232338">8.3</a>
|
2814
2848
|
|
2815
2849
|
|
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-
|
2863
|
+
<a href="#a-607234558">8.4</a>
|
2830
2864
|
|
2831
2865
|
|
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-
|
2879
|
+
<a href="#a-607237038">8.5</a>
|
2846
2880
|
|
2847
2881
|
|
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-
|
2895
|
+
<a href="#a-607239298">8.6</a>
|
2862
2896
|
|
2863
2897
|
|
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-
|
2916
|
+
<a href="#a-607241838">8.7</a>
|
2883
2917
|
|
2884
2918
|
|
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-
|
2935
|
+
<a href="#a-607244098">8.8</a>
|
2902
2936
|
|
2903
2937
|
|
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-
|
2954
|
+
<a href="#a-607246358">8.9</a>
|
2921
2955
|
|
2922
2956
|
|
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-
|
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’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’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-
|
2945
|
-
<li><a href="#Tuning_for_maximum_performance" id="a-
|
2946
|
-
<li><a href="#Using__kdiff3__with_the_automated_test_generator." id="a-
|
2947
|
-
<li><a href="#What_can_the_test_runner_do_" id="a-
|
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-
|
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-
|
2956
|
-
<li><a href="#fig:ruby_relay" id="a-
|
2957
|
-
<li><a href="#fig:organization" id="a-
|
2958
|
-
<li><a href="#fig:method_naming_format" id="a-
|
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’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-
|
2963
|
-
<li><a href="#ex:properties" id="a-
|
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’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-
|
2968
|
-
<li><a href="#Running_a_test_with_environment_variables" id="a-
|
2969
|
-
<li><a href="#fig:counter.v_decl" id="a-
|
2970
|
-
<li><a href="#fig:generate-test.RSpec" id="a-
|
2971
|
-
<li><a href="#fig:generate-test.xUnit" id="a-
|
2972
|
-
<li><a href="#fig:RSpec_counter_spec.rb" id="a-
|
2973
|
-
<li><a href="#fig:xUnit_counter_spec.rb" id="a-
|
2974
|
-
<li><a href="#fig:counter_proto.rb" id="a-
|
2975
|
-
<li><a href="#fig:test-proto.RSpec" id="a-
|
2976
|
-
<li><a href="#fig:test-proto.unit-test" id="a-
|
2977
|
-
<li><a href="#fig:counter.v_impl" id="a-
|
2978
|
-
<li><a href="#fig:test-design.RSpec" id="a-
|
2979
|
-
<li><a href="#fig:test-design.unit-test" id="a-
|
2980
|
-
<li><a href="#ex:TestFoo" id="a-
|
2981
|
-
<li><a href="#ex:TestFoo_bad" id="a-
|
2982
|
-
<li><a href="#ex:TestFoo_fix" id="a-
|
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>
|