ruby-vpi 15.0.0 → 15.0.1
Sign up to get free protection for your applications and to get access to all the features.
- data/Rakefile +2 -2
- data/doc/common.css +10 -18
- data/doc/common.tpl +28 -15
- data/doc/history.doc +4 -6
- data/doc/history.html +327 -286
- data/doc/history.yml +19 -0
- data/doc/intro.inc +47 -2
- data/doc/lib/doc_proxy.rb +16 -0
- data/doc/lib/erb_proxy.rb +5 -0
- data/doc/manual.doc +35 -26
- data/doc/manual.html +152 -100
- data/doc/memo.doc +16 -10
- data/doc/memo.html +29 -18
- data/doc/print.css +10 -0
- data/doc/readme.doc +2 -43
- data/doc/readme.html +42 -49
- data/doc/rss.xml +37 -0
- data/ext/Rakefile +10 -1
- data/ext/swig_vpi.h +924 -0
- data/ext/swig_vpi.i +2 -3
- data/ext/swig_wrap.cin +20 -37
- data/ref/c/annotated.html +1 -1
- data/ref/c/common_8h.html +1 -1
- data/ref/c/files.html +2 -1
- data/ref/c/functions.html +17 -17
- data/ref/c/functions_vars.html +17 -17
- data/ref/c/globals.html +3 -5
- data/ref/c/globals_0x62.html +1 -1
- data/ref/c/globals_0x63.html +30 -30
- data/ref/c/globals_0x65.html +2 -2
- data/ref/c/globals_0x66.html +1 -1
- data/ref/c/globals_0x67.html +1 -1
- data/ref/c/globals_0x69.html +1 -1
- data/ref/c/globals_0x6c.html +1 -1
- data/ref/c/globals_0x6d.html +1 -1
- data/ref/c/globals_0x6e.html +1 -1
- data/ref/c/globals_0x70.html +18 -18
- data/ref/c/globals_0x72.html +1 -1
- data/ref/c/globals_0x73.html +12 -13
- data/ref/c/globals_0x74.html +1 -1
- data/ref/c/globals_0x75.html +1 -1
- data/ref/c/globals_0x76.html +413 -413
- data/ref/c/globals_0x78.html +2 -2
- data/ref/c/globals_defs.html +30 -30
- data/ref/c/globals_defs_0x65.html +2 -2
- data/ref/c/globals_defs_0x6c.html +1 -1
- data/ref/c/globals_defs_0x6e.html +1 -1
- data/ref/c/globals_defs_0x70.html +3 -3
- data/ref/c/globals_defs_0x72.html +1 -1
- data/ref/c/globals_defs_0x73.html +2 -3
- data/ref/c/globals_defs_0x75.html +1 -1
- data/ref/c/globals_defs_0x76.html +411 -411
- data/ref/c/globals_defs_0x78.html +2 -2
- 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_func_0x66.html +1 -1
- data/ref/c/globals_func_0x67.html +1 -1
- data/ref/c/globals_func_0x69.html +1 -1
- data/ref/c/globals_func_0x6d.html +1 -1
- data/ref/c/globals_func_0x70.html +2 -2
- data/ref/c/globals_func_0x72.html +1 -1
- data/ref/c/globals_func_0x73.html +1 -1
- data/ref/c/globals_func_0x76.html +1 -1
- data/ref/c/globals_type.html +26 -26
- data/ref/c/globals_vars.html +5 -7
- 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/structswig__cast__info.html +1 -1
- data/ref/c/structswig__class.html +1 -1
- data/ref/c/structswig__module__info.html +1 -1
- data/ref/c/structswig__type__info.html +1 -1
- data/ref/c/structt__cb__data.html +23 -6
- data/ref/c/structt__vpi__delay.html +20 -3
- data/ref/c/structt__vpi__error__info.html +71 -3
- data/ref/c/structt__vpi__strengthval.html +3 -3
- data/ref/c/structt__vpi__systf__data.html +46 -12
- data/ref/c/structt__vpi__time.html +3 -3
- data/ref/c/structt__vpi__value.html +113 -3
- data/ref/c/structt__vpi__vecval.html +3 -3
- data/ref/c/structt__vpi__vlog__info.html +54 -3
- data/ref/c/swig__vpi_8h.html +8739 -0
- data/ref/c/swig__wrap_8cin.html +49 -102
- data/ref/c/unions__vpi__value__value.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 +16 -16
- data/ref/ruby/created.rid +1 -1
- metadata +5 -2
data/doc/manual.html
CHANGED
@@ -2,14 +2,22 @@
|
|
2
2
|
<html>
|
3
3
|
<head>
|
4
4
|
<meta http-equiv="content-type" content="text/html; charset=utf-8"/>
|
5
|
-
<link rel="stylesheet" type="text/css" href="common.css" />
|
5
|
+
<link rel="stylesheet" type="text/css" href="common.css" media="screen" />
|
6
|
+
<link rel="stylesheet" type="text/css" href="print.css" media="print" />
|
6
7
|
<link rel="alternate" type="application/rss+xml" href="http://ruby-vpi.rubyforge.org/doc/rss.xml" title="RSS feed for this project." />
|
7
8
|
<title>Ruby-VPI user manual</title>
|
8
9
|
</head>
|
9
10
|
<body>
|
10
|
-
<div id="navigation">
|
11
|
-
<p><a href="readme.html"><img src="images/home.png" title="project home" alt="project home" /></a></p>
|
12
11
|
|
12
|
+
<br/><br/> <!-- give space below #menu -->
|
13
|
+
|
14
|
+
<p style="text-align:center;"><a href="readme.html"><img src="images/home.png" title="Return to main page" alt="Return to main page" /></a></p>
|
15
|
+
|
16
|
+
<div id="menu">
|
17
|
+
<a href="#index">Contents</a> · <a href="#figures">Figures</a> · <a href="#tables">Tables</a> · <a href="#examples">Examples</a> · <a href="#tips">Tips</a> · <a href="#notes">Notes</a> · <a href="#importants">Importants</a>
|
18
|
+
</div>
|
19
|
+
|
20
|
+
<div id="index">
|
13
21
|
<h1>Contents</h1>
|
14
22
|
<ul>
|
15
23
|
<li>1 <a href="#anchor4">Ruby-VPI user manual</a>
|
@@ -19,7 +27,7 @@
|
|
19
27
|
</li>
|
20
28
|
<li>2 <a href="#intro">Introduction</a>
|
21
29
|
<ul>
|
22
|
-
<li>2.1 <a href="#intro.features">
|
30
|
+
<li>2.1 <a href="#intro.features">Prominent features</a>
|
23
31
|
<ul>
|
24
32
|
<li>2.1.1 <a href="#anchor5">Portable</a></li>
|
25
33
|
<li>2.1.2 <a href="#anchor6">Agile</a></li>
|
@@ -153,53 +161,21 @@
|
|
153
161
|
</ul></li>
|
154
162
|
</ul>
|
155
163
|
|
156
|
-
<h1>
|
164
|
+
<h1>Formals</h1>
|
157
165
|
|
158
|
-
|
159
|
-
|
160
|
-
<li><a href="#tip1">Add support for your Verilog simulator</a></li>
|
161
|
-
<li><a href="#tip2">Running multiple tests at once.</a></li>
|
162
|
-
<li><a href="#tip3">Using <strong>kdiff3</strong> with the automated test generator.</a></li>
|
163
|
-
<li><a href="#tip4">What can the test runner do?</a></li>
|
164
|
-
</ol>
|
165
|
-
<h2>Notes</h2>
|
166
|
-
<ol>
|
167
|
-
<li><a href="#note1">note1</a></li>
|
168
|
-
<li><a href="#note2">Undefined symbols in Windows</a></li>
|
169
|
-
<li><a href="#note3">note3</a></li>
|
170
|
-
<li><a href="#note4">note4</a></li>
|
171
|
-
<li><a href="#note5">note5</a></li>
|
172
|
-
<li><a href="#note6">Fixed in 2.0.0.</a></li>
|
173
|
-
<li><a href="#note7">Fixed in 2.0.0.</a></li>
|
174
|
-
<li><a href="#note8">Fixed in 2.0.0.</a></li>
|
175
|
-
</ol>
|
176
|
-
<h2>Importants</h2>
|
177
|
-
<ol>
|
178
|
-
<li><a href="#important1">Before we continue…</a></li>
|
179
|
-
<li><a href="#important2">Before we continue…</a></li>
|
180
|
-
<li><a href="#important3">Before we continue…</a></li>
|
181
|
-
<li><a href="#important4">Before we continue…</a></li>
|
182
|
-
</ol>
|
183
|
-
<h2>Cautions</h2>
|
184
|
-
<ol>
|
185
|
-
<li><a href="#caution1">caution1</a></li>
|
186
|
-
</ol>
|
187
|
-
<h1>Formals</h1>
|
188
|
-
|
189
|
-
<h2>Figures</h2>
|
190
|
-
<ol>
|
166
|
+
<h2 id="figures">Figures</h2>
|
167
|
+
<ol>
|
191
168
|
<li><a href="#fig..organization">Overall organization of a test</a></li>
|
192
169
|
<li><a href="#fig..organization.detail">Detailed organization of a test</a></li>
|
193
170
|
<li><a href="#fig..ruby_relay">Interaction between Ruby and Verilog</a></li>
|
194
171
|
<li><a href="#figure4">Method naming format for accessing a handle’s properties</a></li>
|
195
|
-
<li><a href="#figure5">Output from <xref#ex..callback></a></li>
|
196
172
|
</ol>
|
197
|
-
|
198
|
-
|
173
|
+
<h2 id="tables">Tables</h2>
|
174
|
+
<ol>
|
199
175
|
<li><a href="#tbl..accessors">Possible accessors and their implications</a></li>
|
200
176
|
</ol>
|
201
|
-
|
202
|
-
|
177
|
+
<h2 id="examples">Examples</h2>
|
178
|
+
<ol>
|
203
179
|
<li><a href="#ex..properties">Examples of accessing a handle’s properties</a></li>
|
204
180
|
<li><a href="#ex..callback">Using a callback for value change notification</a></li>
|
205
181
|
<li><a href="#example3">Seeing what a test runner can do</a></li>
|
@@ -219,11 +195,38 @@
|
|
219
195
|
<li><a href="#ex..TestFoo_bad">Bad design with unconnected registers</a></li>
|
220
196
|
<li><a href="#ex..TestFoo_fix">Fixed design with wired registers</a></li>
|
221
197
|
</ol>
|
222
|
-
|
198
|
+
<h1>Admonitions</h1>
|
199
|
+
|
200
|
+
<h2 id="tips">Tips</h2>
|
201
|
+
<ol>
|
202
|
+
<li><a href="#tip1">Add support for your Verilog simulator</a></li>
|
203
|
+
<li><a href="#tip2">Running multiple tests at once.</a></li>
|
204
|
+
<li><a href="#tip3">Using <strong>kdiff3</strong> with the automated test generator.</a></li>
|
205
|
+
<li><a href="#tip4">What can the test runner do?</a></li>
|
206
|
+
</ol>
|
207
|
+
<h2 id="notes">Notes</h2>
|
208
|
+
<ol>
|
209
|
+
<li><a href="#note1">Glossary has definitions</a></li>
|
210
|
+
<li><a href="#note2">Undefined symbols in Windows</a></li>
|
211
|
+
<li><a href="#note3">No capitalization for <span class="caps">VPI</span> functions</a></li>
|
212
|
+
<li><a href="#note4"><code>Vpi::Handle</code> heritage</a></li>
|
213
|
+
<li><a href="#note5">note5</a></li>
|
214
|
+
<li><a href="#note6">Fixed in 2.0.0.</a></li>
|
215
|
+
<li><a href="#note7">Fixed in 2.0.0.</a></li>
|
216
|
+
<li><a href="#note8">Fixed in 2.0.0.</a></li>
|
217
|
+
</ol>
|
218
|
+
<h2 id="importants">Importants</h2>
|
219
|
+
<ol>
|
220
|
+
<li><a href="#important1">Before we continue…</a></li>
|
221
|
+
<li><a href="#important2">Before we continue…</a></li>
|
222
|
+
<li><a href="#important3">Before we continue…</a></li>
|
223
|
+
<li><a href="#important4">Before we continue…</a></li>
|
224
|
+
</ol>
|
225
|
+
</div>
|
223
226
|
<h1 id="anchor4">1 Ruby-VPI user manual</h1>
|
224
227
|
|
225
228
|
|
226
|
-
<p>This manual was last updated on
|
229
|
+
<p>This manual was last updated on Mon Jan 15 10:16:44 <span class="caps">PST 2007</span>.</p>
|
227
230
|
|
228
231
|
|
229
232
|
<p>It is meant to be read in conjunction with the <a href="../ref/ruby/index.html">reference documentation for Ruby-VPI</a>. In addition, if you are new to <a href="http://www.ruby-lang.org">the Ruby language</a>, you are encouraged to <a href="http://www.ruby-lang.org/en/documentation/">explore its documentation</a> alongside this manual.</p>
|
@@ -238,7 +241,7 @@
|
|
238
241
|
<h2 id="terms">1.1 Terms</h2>
|
239
242
|
|
240
243
|
|
241
|
-
<p>Copyright© 2006 Suraj N. Kurapati.</p>
|
244
|
+
<p>Copyright© 2006, 2007 Suraj N. Kurapati.</p>
|
242
245
|
|
243
246
|
|
244
247
|
<p>Permission is granted to copy, distribute and/or modify this document under the terms of the <a href="http://www.gnu.org/copyleft/fdl.html"><span class="caps">GNU</span> Free Documentation License</a>, Version 1.1 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts and no Back-Cover Texts. A copy of the license is included in the the file named <a href="./LICENSE"><span class="caps">LICENSE</span></a>.</p>
|
@@ -253,7 +256,65 @@
|
|
253
256
|
<p>Ruby-VPI is a <a href="http://www.ruby-lang.org">Ruby</a> interface to <a href="http://ieeexplore.ieee.org/xpl/standardstoc.jsp?isnumber=33945"><span class="caps">IEEE 1364</span>-2005 Verilog <span class="caps">VPI</span></a>. It lets you create complex Verilog test benches easily and wholly in Ruby.</p>
|
254
257
|
|
255
258
|
|
256
|
-
<
|
259
|
+
<p class="title">Documentation</p>
|
260
|
+
|
261
|
+
|
262
|
+
<ul>
|
263
|
+
<li><a href="manual.html#usage.tutorial">Tutorial</a>
|
264
|
+
– learn how to use Ruby-VPI quickly.</li>
|
265
|
+
<li><a href="manual.html">Manual</a>
|
266
|
+
– complete documentation for users. <em>Start here!</em></li>
|
267
|
+
<li><a href="../ref/">Reference</a>
|
268
|
+
– <span class="caps">API</span> documentation for Ruby libraries and C extension.</li>
|
269
|
+
</ul>
|
270
|
+
|
271
|
+
|
272
|
+
<p class="title">Records</p>
|
273
|
+
|
274
|
+
|
275
|
+
<ul>
|
276
|
+
<li><a type="application/rss+xml" href="http://ruby-vpi.rubyforge.org/doc/rss.xml"><img src="images/feed-icon.png" title="RSS feed icon" alt="RSS feed icon" /> RSS feed</a>
|
277
|
+
– keep track of new releases at your leisure.</li>
|
278
|
+
<li><a href="history.html">Release history</a>
|
279
|
+
– record of all release notes.</li>
|
280
|
+
<li><a href="memo.html">Memorandum</a>
|
281
|
+
– pending tasks for future releases.</li>
|
282
|
+
</ul>
|
283
|
+
|
284
|
+
|
285
|
+
<p class="title">Facilities</p>
|
286
|
+
|
287
|
+
|
288
|
+
<ul>
|
289
|
+
<li><a href="http://rubyforge.org/projects/ruby-vpi">Project portal</a>
|
290
|
+
– hosted generously by <a href="http://rubyforge.org">RubyForge</a>.</li>
|
291
|
+
<li><a href="http://ruby-vpi.rubyforge.org/src/ruby-vpi">Source code</a>
|
292
|
+
– browse online or obtain through <a href="http://abridgegame.org/darcs/">Darcs</a>.</li>
|
293
|
+
<li><a href="http://rubyforge.org/frs/?group_id=1339">Downloads</a>
|
294
|
+
– obtain release packages.</li>
|
295
|
+
<li><a href="http://rubyforge.org/tracker/?group_id=1339">Bugs</a>
|
296
|
+
– report defects in the software.</li>
|
297
|
+
<li><a href="http://rubyforge.org/tracker/?group_id=1339">Patches</a>
|
298
|
+
– submit patches to source code.</li>
|
299
|
+
<li><a href="http://rubyforge.org/tracker/?group_id=1339">Requests</a>
|
300
|
+
– request new features or get support.</li>
|
301
|
+
<li><a href="http://rubyforge.org/forum/?group_id=1339">Forums</a>
|
302
|
+
– discuss things and ask questions.</li>
|
303
|
+
</ul>
|
304
|
+
|
305
|
+
|
306
|
+
<p class="title">Outreach</p>
|
307
|
+
|
308
|
+
|
309
|
+
<ul>
|
310
|
+
<li><a href="http://ruby-vpi.rubyforge.org/news">News</a>
|
311
|
+
– see what’s cooking for the next release.</li>
|
312
|
+
<li><a href="http://ruby-vpi.rubyforge.org/talks">Talks</a>
|
313
|
+
– materials from presentations and seminars.</li>
|
314
|
+
</ul>
|
315
|
+
|
316
|
+
|
317
|
+
<h2 id="intro.features">2.1 Prominent features</h2>
|
257
318
|
|
258
319
|
|
259
320
|
<h3 id="anchor5">2.1.1 Portable</h3>
|
@@ -454,7 +515,7 @@
|
|
454
515
|
<p style="float:left"><img src="images/note.png" title="note" alt="note" /></p>
|
455
516
|
|
456
517
|
|
457
|
-
<p class="title">Note
|
518
|
+
<p class="title">Note: Glossary has definitions</p>
|
458
519
|
|
459
520
|
|
460
521
|
<p>Have a look at the <a href="#glossary">glossary</a> for definitions of terms used in this manual.</p>
|
@@ -738,6 +799,27 @@ $ ls -d /usr/lib/ruby/gems/1.8/gems/ruby-vpi*
|
|
738
799
|
</ul>
|
739
800
|
|
740
801
|
|
802
|
+
<p>Learn more about using and manipulating RubyGems in <a href="http://www.rubygems.org">the RubyGems user manual</a>.</p>
|
803
|
+
|
804
|
+
|
805
|
+
<h1 id="usage">5 Usage</h1>
|
806
|
+
|
807
|
+
|
808
|
+
<h2 id="usage.vpi">5.1 <span class="caps">VPI</span> in Ruby</h2>
|
809
|
+
|
810
|
+
|
811
|
+
<p>The <em>entire</em> IEEE Std 1364-2005 <span class="caps">VPI</span> interface is available in Ruby, but with a few minor differences.</p>
|
812
|
+
|
813
|
+
|
814
|
+
<p class="title">Capitalize those names!</p>
|
815
|
+
|
816
|
+
|
817
|
+
<p>The names of all <span class="caps">VPI</span> types, structures, and constants become <em>capitalized</em> because Ruby requires that the names of constants begin with a capital letter.</p>
|
818
|
+
|
819
|
+
|
820
|
+
<p>For example, the <code class="code">s_vpi_value</code> structure becomes the <code class="code"><span style="color:#036; font-weight:bold">S_vpi_value</span></code> class in Ruby. Likewise, the <code class="code">vpiIntVal</code> constant becomes the <code class="code"><span style="color:#036; font-weight:bold">VpiIntVal</span></code> constant in Ruby.</p>
|
821
|
+
|
822
|
+
|
741
823
|
<div class="admonition">
|
742
824
|
|
743
825
|
<div class="note" id="note3">
|
@@ -745,30 +827,31 @@ $ ls -d /usr/lib/ruby/gems/1.8/gems/ruby-vpi*
|
|
745
827
|
<p style="float:left"><img src="images/note.png" title="note" alt="note" /></p>
|
746
828
|
|
747
829
|
|
748
|
-
<p class="title">Note
|
830
|
+
<p class="title">Note: No capitalization for <span class="caps">VPI</span> functions</p>
|
749
831
|
|
750
832
|
|
751
|
-
<p>
|
833
|
+
<p>Ruby’s capitalization rule does <em>not</em> apply to <span class="caps">VPI</span> functions—their names remain unchanged in Ruby.</p>
|
752
834
|
|
753
835
|
|
754
836
|
</div>
|
755
837
|
|
756
838
|
</div>
|
757
839
|
|
758
|
-
<
|
840
|
+
<p class="title">Use Ruby’s <code class="code">printf</code></p>
|
759
841
|
|
760
842
|
|
761
|
-
<
|
762
|
-
|
843
|
+
<p>The <span class="caps">VPI</span> functions <code class="code">vpi_vprintf</code> and <code class="code">vpi_mcd_vprintf</code> are not made accessible to Ruby. However, this isn’t a big problem because you can use Ruby’s <code class="code">printf</code> method instead.</p>
|
763
844
|
|
764
|
-
<p>The <em>entire</em> IEEE Std 1364-2005 <span class="caps">VPI</span> interface is available in Ruby, but with one minor difference: the names of all <span class="caps">VPI</span> types, structures, and constants become <em>capitalized</em> because Ruby requires that the names of constants begin with a capital letter.</p>
|
765
845
|
|
846
|
+
<p>The reason for this limitation is that some C compilers have trouble with pointers to the <code class="code">va_list</code> type. For these compilers, the third line of source code shown below causes a “type mismatch” error.</p>
|
766
847
|
|
767
|
-
<p>For example, the <code class="code">s_vpi_value</code> structure becomes the <code class="code"><span style="color:#036; font-weight:bold">S_vpi_value</span></code> class in Ruby. Likewise, the <code class="code">vpiIntVal</code> constant becomes the <code class="code"><span style="color:#036; font-weight:bold">VpiIntVal</span></code> constant in Ruby.</p>
|
768
|
-
|
769
|
-
|
770
|
-
<p>Note that this capitalization rule does <em>not</em> apply to <span class="caps">VPI</span> functions; their names remain unchanged in Ruby.</p>
|
771
848
|
|
849
|
+
<pre class="code" lang="c">
|
850
|
+
<span style="color:#579">#include</span> <span style="color:#B44; font-weight:bold"><stdarg.h></span>
|
851
|
+
<span style="color:#339; font-weight:bold">void</span> foo(va_list ap) {
|
852
|
+
va_list *p = &ap;
|
853
|
+
}
|
854
|
+
</pre>
|
772
855
|
|
773
856
|
<h3 id="usage.vpi.handles">5.1.1 Handles</h3>
|
774
857
|
|
@@ -783,7 +866,7 @@ $ ls -d /usr/lib/ruby/gems/1.8/gems/ruby-vpi*
|
|
783
866
|
<p style="float:left"><img src="images/note.png" title="note" alt="note" /></p>
|
784
867
|
|
785
868
|
|
786
|
-
<p class="title">Note
|
869
|
+
<p class="title">Note: <code class="code"><span style="color:#036; font-weight:bold">Vpi</span>::<span style="color:#036; font-weight:bold">Handle</span></code> heritage</p>
|
787
870
|
|
788
871
|
|
789
872
|
<p>Handles are instances of the <code class="code"><span style="color:#036; font-weight:bold">Vpi</span>::<span style="color:#036; font-weight:bold">Handle</span></code> class (see <a href="../ref/ruby/classes/Vpi/Handle.html">reference documentation</a> for details) in Ruby-VPI.</p>
|
@@ -948,7 +1031,7 @@ reset_signal = counter_module.reset <span style="color:#888"># <== shortcut!<
|
|
948
1031
|
<table>
|
949
1032
|
<tr>
|
950
1033
|
<th rowspan="2">Ruby expression </th>
|
951
|
-
<th colspan="6">
|
1034
|
+
<th colspan="6">Method naming format </th>
|
952
1035
|
<th rowspan="2">Description </th>
|
953
1036
|
</tr>
|
954
1037
|
<tr>
|
@@ -967,7 +1050,7 @@ reset_signal = counter_module.reset <span style="color:#888"># <== shortcut!<
|
|
967
1050
|
<td> </td>
|
968
1051
|
<td> </td>
|
969
1052
|
<td> </td>
|
970
|
-
<td rowspan="4">These expressions access the logic value of the handle’s
|
1053
|
+
<td rowspan="4">These expressions access the <strong>logic value</strong> of the handle’s <code class="code"><span style="color:#036; font-weight:bold">VpiIntVal</span></code> property. </td>
|
971
1054
|
</tr>
|
972
1055
|
<tr>
|
973
1056
|
<td> <code class="code">handle.vpiIntVal_l</code> </td>
|
@@ -1004,7 +1087,7 @@ reset_signal = counter_module.reset <span style="color:#888"># <== shortcut!<
|
|
1004
1087
|
<td> </td>
|
1005
1088
|
<td> </td>
|
1006
1089
|
<td> = </td>
|
1007
|
-
<td rowspan="4">These expressions assign the number 15 to the logic value of the handle’s
|
1090
|
+
<td rowspan="4">These expressions assign the number 15 to the <strong>logic value</strong> of the handle’s <code class="code"><span style="color:#036; font-weight:bold">VpiIntVal</span></code> property. </td>
|
1008
1091
|
</tr>
|
1009
1092
|
<tr>
|
1010
1093
|
<td> <code class="code">handle.vpiIntVal_l = <span style="color:#00D; font-weight:bold">15</span></code> </td>
|
@@ -1041,7 +1124,7 @@ reset_signal = counter_module.reset <span style="color:#888"># <== shortcut!<
|
|
1041
1124
|
<td> </td>
|
1042
1125
|
<td> </td>
|
1043
1126
|
<td> </td>
|
1044
|
-
<td rowspan="4">These expressions access the integer value of the handle’s
|
1127
|
+
<td rowspan="4">These expressions access the <strong>integer value</strong> of the handle’s <code class="code"><span style="color:#036; font-weight:bold">VpiType</span></code> property. </td>
|
1045
1128
|
</tr>
|
1046
1129
|
<tr>
|
1047
1130
|
<td> <code class="code">handle.vpiType_i</code> </td>
|
@@ -1078,7 +1161,7 @@ reset_signal = counter_module.reset <span style="color:#888"># <== shortcut!<
|
|
1078
1161
|
<td> </td>
|
1079
1162
|
<td> </td>
|
1080
1163
|
<td> </td>
|
1081
|
-
<td rowspan="6">These expressions access the boolean value of the handle’s
|
1164
|
+
<td rowspan="6">These expressions access the <strong>boolean value</strong> of the handle’s <code class="code"><span style="color:#036; font-weight:bold">VpiProtected</span></code> property. </td>
|
1082
1165
|
</tr>
|
1083
1166
|
<tr>
|
1084
1167
|
<td> <code class="code">handle.vpiProtected_b</code> </td>
|
@@ -1133,7 +1216,7 @@ reset_signal = counter_module.reset <span style="color:#888"># <== shortcut!<
|
|
1133
1216
|
<td> </td>
|
1134
1217
|
<td> </td>
|
1135
1218
|
<td> </td>
|
1136
|
-
<td rowspan="4">These expressions access the string value of the handle’s
|
1219
|
+
<td rowspan="4">These expressions access the <strong>string value</strong> of the handle’s <code class="code"><span style="color:#036; font-weight:bold">VpiFullName</span></code> property. </td>
|
1137
1220
|
</tr>
|
1138
1221
|
<tr>
|
1139
1222
|
<td> <code class="code">handle.vpiFullName_s</code> </td>
|
@@ -1170,7 +1253,7 @@ reset_signal = counter_module.reset <span style="color:#888"># <== shortcut!<
|
|
1170
1253
|
<td> </td>
|
1171
1254
|
<td> </td>
|
1172
1255
|
<td> </td>
|
1173
|
-
<td rowspan="4">These expressions access the handle value of the handle’s
|
1256
|
+
<td rowspan="4">These expressions access the <strong>handle value</strong> of the handle’s <code class="code"><span style="color:#036; font-weight:bold">VpiParent</span></code> property. </td>
|
1174
1257
|
</tr>
|
1175
1258
|
<tr>
|
1176
1259
|
<td> <code class="code">handle.vpiParent_h</code> </td>
|
@@ -1310,21 +1393,7 @@ cbHandle = vpi_register_cb(cbData) <span style="color:#080; font-weight:bold">do
|
|
1310
1393
|
<span style="color:#080; font-weight:bold">end</span>
|
1311
1394
|
</pre>
|
1312
1395
|
|
1313
|
-
<p>
|
1314
|
-
|
1315
|
-
|
1316
|
-
</div>
|
1317
|
-
|
1318
|
-
</div>
|
1319
|
-
|
1320
|
-
<div class="formal">
|
1321
|
-
|
1322
|
-
<div class="figure" id="figure5">
|
1323
|
-
|
1324
|
-
<p class="title">Figure 5. Output from <a href="#ex..callback">the example named “Using a callback for value change notification”</a></p>
|
1325
|
-
|
1326
|
-
|
1327
|
-
<p>Shown below is the output from running the <a href="#usage.tutorial">counter_rspec test</a> after appending the code shown in <a href="#ex..callback">the example named “Using a callback for value change notification”</a> to the <tt>counter_rspec_spec.rb</tt> file.</p>
|
1396
|
+
<p>Shown below is the result of appending this code to the <tt>counter_rspec_spec.rb</tt> file (provided in <a href="#usage.examples">the section named “Sample tests”</a> and discussed in <a href="#usage.tutorial.specification">the section named “Specify your expectations”</a>) and running the <a href="#usage.tutorial">counter_rspec test</a>.</p>
|
1328
1397
|
|
1329
1398
|
|
1330
1399
|
<pre>
|
@@ -1429,7 +1498,7 @@ Finished in 0.042328 seconds
|
|
1429
1498
|
<p>Ruby-VPI enables you to rapidly prototype your designs in Ruby without having to do full-scale implementations in Verilog. This lets you explore and evaluate different design choices quickly.</p>
|
1430
1499
|
|
1431
1500
|
|
1432
|
-
|
1501
|
+
To create a prototype,
|
1433
1502
|
<ol>
|
1434
1503
|
<li><a href="#usage.tutorial.declare-design">Determine the <strong>interface</strong></a> (Verilog module declaration) of your design.</li>
|
1435
1504
|
<li><a href="#usage.tutorial.generate-test">Generate a test</a> for that interface.</li>
|
@@ -1647,7 +1716,7 @@ kdiff3 --auto --output <span style="background-color:#fff0f0"><span style="color
|
|
1647
1716
|
|
1648
1717
|
|
1649
1718
|
<ol>
|
1650
|
-
<li><a href="#usage.tutorial.declare-design">Declare
|
1719
|
+
<li><a href="#usage.tutorial.declare-design">Declare a design</a> using Verilog 2001 syntax.</li>
|
1651
1720
|
<li><a href="#usage.tutorial.generate-test">Generate a test</a> for the design using the <a href="#usage.tools.generate-test">automated test generator</a> tool.</li>
|
1652
1721
|
<li><a href="#usage.tutorial.specification">Identify your expectations</a> for the design and implement them in the specification.</li>
|
1653
1722
|
<li>(Optional) <a href="#usage.tutorial.implement-proto">Implement the prototype</a> of the design in Ruby.</li>
|
@@ -2342,23 +2411,6 @@ endmodule
|
|
2342
2411
|
<h3 id="problems.ivl.vpi_reset">7.2.2 Vpi::reset</h3>
|
2343
2412
|
|
2344
2413
|
|
2345
|
-
<div class="admonition">
|
2346
|
-
|
2347
|
-
<div class="caution" id="caution1">
|
2348
|
-
|
2349
|
-
<p style="float:left"><img src="images/caution.png" title="caution" alt="caution" /></p>
|
2350
|
-
|
2351
|
-
|
2352
|
-
<p class="title">Caution:</p>
|
2353
|
-
|
2354
|
-
|
2355
|
-
<p>The <code class="code">vpi_control</code> method was removed in release 3.0.0 (2006-04-23). Please use <code class="code"><span style="color:#036; font-weight:bold">Vpi</span>::vpi_control(<span style="color:#036; font-weight:bold">VpiReset</span>)</code> instead.</p>
|
2356
|
-
|
2357
|
-
|
2358
|
-
</div>
|
2359
|
-
|
2360
|
-
</div>
|
2361
|
-
|
2362
2414
|
<p>In version 0.8 of Icarus Verilog, the <code class="code">vpi_control(vpiReset)</code> VPI function causes an assertion to fail inside the simulator. As a result, the simulation terminates and a core dump is produced.</p>
|
2363
2415
|
|
2364
2416
|
|
data/doc/memo.doc
CHANGED
@@ -1,10 +1,11 @@
|
|
1
1
|
h1. Pending tasks
|
2
2
|
|
3
|
-
* add
|
3
|
+
* add shortcuts for reading & writing VPI delay values
|
4
4
|
|
5
5
|
* GHDL simulator supports VPI
|
6
|
-
**
|
7
|
-
|
6
|
+
** need way to invoke VPI tasks from VHDL, like @$ruby_init();@
|
7
|
+
|
8
|
+
+No need for system tasks/functions. Ruby-VPI uses callbacks now!+
|
8
9
|
|
9
10
|
* add instructions for using *ruby-debug* with a graphical debugging tool or IDE like RadRails
|
10
11
|
|
@@ -44,12 +45,17 @@ h1. Finished tasks
|
|
44
45
|
|
45
46
|
h1. Obsolete tasks
|
46
47
|
|
47
|
-
*
|
48
|
-
|
48
|
+
* smarter test generation, which adjusts to user modifications in previously generated output
|
49
|
+
|
50
|
+
+Just use a smart merging tool like *kdiff3*.+
|
51
|
+
|
52
|
+
* interactive console IRB wrapper for spec (just like Breakpoints in Rails)
|
53
|
+
|
54
|
+
+Use the *ruby-debug* library with "*debugger* command for breakpoints":http://www.datanoise.com/articles/category/ruby-debug instead!+
|
55
|
+
|
56
|
+
* need to dump signal values when expectation fails in rSpec
|
49
57
|
|
50
|
-
|
58
|
+
+You can use the interactive debugger instead.+
|
59
|
+
** maybe a waveform dump will also help
|
51
60
|
|
52
|
-
|
53
|
-
You can use the interactive debugger instead.
|
54
|
-
** -maybe a waveform dump will also help-
|
55
|
-
After reading some RTL verification books, this is not necessarily true.
|
61
|
+
+After reading some RTL verification books, this is not necessarily true.+
|
data/doc/memo.html
CHANGED
@@ -2,14 +2,22 @@
|
|
2
2
|
<html>
|
3
3
|
<head>
|
4
4
|
<meta http-equiv="content-type" content="text/html; charset=utf-8"/>
|
5
|
-
<link rel="stylesheet" type="text/css" href="common.css" />
|
5
|
+
<link rel="stylesheet" type="text/css" href="common.css" media="screen" />
|
6
|
+
<link rel="stylesheet" type="text/css" href="print.css" media="print" />
|
6
7
|
<link rel="alternate" type="application/rss+xml" href="http://ruby-vpi.rubyforge.org/doc/rss.xml" title="RSS feed for this project." />
|
7
8
|
<title>Pending tasks</title>
|
8
9
|
</head>
|
9
10
|
<body>
|
10
|
-
<div id="navigation">
|
11
|
-
<p><a href="readme.html"><img src="images/home.png" title="project home" alt="project home" /></a></p>
|
12
11
|
|
12
|
+
<br/><br/> <!-- give space below #menu -->
|
13
|
+
|
14
|
+
<p style="text-align:center;"><a href="readme.html"><img src="images/home.png" title="Return to main page" alt="Return to main page" /></a></p>
|
15
|
+
|
16
|
+
<div id="menu">
|
17
|
+
<a href="#index">Contents</a>
|
18
|
+
</div>
|
19
|
+
|
20
|
+
<div id="index">
|
13
21
|
<h1>Contents</h1>
|
14
22
|
<ul>
|
15
23
|
<li>1 <a href="#anchor1">Pending tasks</a></li>
|
@@ -17,24 +25,21 @@
|
|
17
25
|
<li>3 <a href="#anchor3">Obsolete tasks</a></li>
|
18
26
|
</ul>
|
19
27
|
|
20
|
-
|
21
|
-
|
22
|
-
<h1>Formals</h1>
|
23
|
-
|
24
|
-
</div>
|
28
|
+
</div>
|
25
29
|
<h1 id="anchor1">1 Pending tasks</h1>
|
26
30
|
|
27
31
|
|
28
32
|
<ul>
|
29
|
-
<li>add
|
33
|
+
<li>add shortcuts for reading & writing <span class="caps">VPI</span> delay values</li>
|
30
34
|
</ul>
|
31
35
|
|
32
36
|
|
33
37
|
<ul>
|
34
38
|
<li><span class="caps">GHDL</span> simulator supports <span class="caps">VPI</span>
|
35
39
|
<ul>
|
36
|
-
<li
|
37
|
-
|
40
|
+
<li>need way to invoke <span class="caps">VPI</span> tasks from <span class="caps">VHDL</span>, like <code class="code"><span style="color:#d70; font-weight:bold">$ruby_init</span>();</code>
|
41
|
+
|
42
|
+
<p><ins>No need for system tasks/functions. Ruby-VPI uses callbacks now!</ins></p></li>
|
38
43
|
</ul></li>
|
39
44
|
</ul>
|
40
45
|
|
@@ -126,22 +131,28 @@ No need for tasks; Ruby-VPI uses callbacks now!</li>
|
|
126
131
|
|
127
132
|
|
128
133
|
<ul>
|
129
|
-
<li
|
130
|
-
|
134
|
+
<li>smarter test generation, which adjusts to user modifications in previously generated output
|
135
|
+
|
136
|
+
<p><ins>Just use a smart merging tool like <strong>kdiff3</strong>.</ins></p></li>
|
131
137
|
</ul>
|
132
138
|
|
133
139
|
|
134
140
|
<ul>
|
135
|
-
<li
|
141
|
+
<li>interactive console <span class="caps">IRB</span> wrapper for spec (just like Breakpoints in Rails)
|
142
|
+
|
143
|
+
<p><ins>Use the <strong>ruby-debug</strong> library with <a href="http://www.datanoise.com/articles/category/ruby-debug"><strong>debugger</strong> command for breakpoints</a> instead!</ins></p></li>
|
136
144
|
</ul>
|
137
145
|
|
138
146
|
|
139
147
|
<ul>
|
140
|
-
<li
|
141
|
-
|
148
|
+
<li>need to dump signal values when expectation fails in rSpec
|
149
|
+
|
150
|
+
<p><ins>You can use the interactive debugger instead.</ins></p>
|
151
|
+
|
142
152
|
<ul>
|
143
|
-
<li
|
144
|
-
|
153
|
+
<li>maybe a waveform dump will also help
|
154
|
+
|
155
|
+
<p><ins>After reading some <span class="caps">RTL</span> verification books, this is not necessarily true.</ins></p></li>
|
145
156
|
</ul></li>
|
146
157
|
</ul>
|
147
158
|
</body>
|
data/doc/print.css
ADDED
data/doc/readme.doc
CHANGED
@@ -1,46 +1,5 @@
|
|
1
1
|
<% table_of_contents = false %>
|
2
|
-
<div id="navigation">
|
3
2
|
|
4
|
-
|
3
|
+
h1{margin-top: 0}. Welcome to Ruby-VPI
|
5
4
|
|
6
|
-
|
7
|
-
- learn how to use Ruby-VPI quickly.
|
8
|
-
|
9
|
-
* "Manual":manual.html
|
10
|
-
- complete documentation for users. _Start here!_
|
11
|
-
|
12
|
-
* "Reference":../ref/
|
13
|
-
- API documentation for Ruby libraries and C extension.
|
14
|
-
|
15
|
-
|
16
|
-
* "Facilities":http://rubyforge.org/projects/ruby-vpi
|
17
|
-
** "Downloads":http://rubyforge.org/frs/?group_id=1339
|
18
|
-
** "Bugs":http://rubyforge.org/tracker/?group_id=1339
|
19
|
-
** "Patches":http://rubyforge.org/tracker/?group_id=1339
|
20
|
-
** "Requests":http://rubyforge.org/tracker/?group_id=1339
|
21
|
-
** "Forums":http://rubyforge.org/forum/?group_id=1339
|
22
|
-
|
23
|
-
* "Sources":http://ruby-vpi.rubyforge.org/src/ruby-vpi
|
24
|
-
- browse or access the "Darcs":http://abridgegame.org/darcs/ source code repository.
|
25
|
-
|
26
|
-
|
27
|
-
* "News":http://ruby-vpi.rubyforge.org/news
|
28
|
-
- see what's cooking for the next release.
|
29
|
-
|
30
|
-
* "Talks":http://ruby-vpi.rubyforge.org/talks
|
31
|
-
- slides from public presentations about Ruby-VPI.
|
32
|
-
|
33
|
-
|
34
|
-
* "Memo":memo.html
|
35
|
-
- pending tasks for future releases.
|
36
|
-
|
37
|
-
* "History":history.html
|
38
|
-
- record of all release notes.
|
39
|
-
|
40
|
-
|
41
|
-
</div>
|
42
|
-
|
43
|
-
|
44
|
-
h1. Welcome to Ruby-VPI
|
45
|
-
|
46
|
-
<%= File.read 'intro.inc' %>
|
5
|
+
<%= import 'intro.inc' %>
|