ruby-vpi 18.0.2 → 19.0.0
Sign up to get free protection for your applications and to get access to all the features.
- data/Rakefile +15 -19
- data/bin/generate/proto.rb +15 -10
- data/bin/ruby-vpi +2 -0
- data/doc/README +3 -5
- data/doc/Rakefile +3 -3
- data/doc/common.css +24 -136
- data/doc/common.tpl +48 -37
- data/doc/figures/figures.dia +19 -19
- data/doc/figures/ruby_relay.png +0 -0
- data/doc/history.html +252 -67
- data/doc/history.inc +98 -1
- data/doc/history.yaml +105 -0
- data/doc/intro.inc +43 -32
- data/doc/lib/doc_format.rb +19 -13
- data/doc/lib/doc_proxy.rb +7 -7
- data/doc/manual.doc +156 -117
- data/doc/manual.html +601 -560
- data/doc/memo.html +29 -25
- data/doc/print.css +63 -4
- data/doc/readme.doc +4 -6
- data/doc/readme.html +129 -111
- data/doc/rss.xml +168 -7
- data/doc/screen.css +146 -0
- data/doc/spacing.css +57 -0
- data/{samp → examples}/counter/RSpec/Rakefile +0 -0
- data/{samp → examples}/counter/RSpec/counter_design.rb +0 -0
- data/examples/counter/RSpec/counter_proto.rb +9 -0
- data/{samp → examples}/counter/RSpec/counter_runner.rake +0 -0
- data/{samp → examples}/counter/RSpec/counter_spec.rb +0 -0
- data/{samp → examples}/counter/Rakefile +0 -0
- data/{samp → examples}/counter/counter.v +0 -0
- data/{samp → examples}/counter/xUnit/Rakefile +0 -0
- data/{samp → examples}/counter/xUnit/counter_bench.rb +0 -0
- data/{samp → examples}/counter/xUnit/counter_bench.v +0 -0
- data/{samp → examples}/counter/xUnit/counter_design.rb +0 -0
- data/examples/counter/xUnit/counter_proto.rb +9 -0
- data/{samp → examples}/counter/xUnit/counter_runner.rake +0 -0
- data/{samp → examples}/counter/xUnit/counter_spec.rb +0 -0
- data/{samp → examples}/pipelined_alu/Hw5UnitModel.rb +0 -0
- data/{samp → examples}/pipelined_alu/README +0 -0
- data/{samp → examples}/pipelined_alu/Rakefile +0 -0
- data/{samp → examples}/pipelined_alu/TestHw5UnitModel.rb +0 -0
- data/{samp → examples}/pipelined_alu/hw5_unit.v +0 -0
- data/{samp → examples}/pipelined_alu/hw5_unit_design.rb +0 -7
- data/examples/pipelined_alu/hw5_unit_proto.rb +2 -0
- data/{samp → examples}/pipelined_alu/hw5_unit_runner.rake +0 -0
- data/{samp → examples}/pipelined_alu/hw5_unit_spec.rb +0 -0
- data/{samp → examples}/pipelined_alu/int_gen.rb +0 -0
- data/{samp → examples}/register_file/LICENSE +0 -0
- data/{samp → examples}/register_file/README +0 -0
- data/{samp → examples}/register_file/Rakefile +0 -0
- data/{samp → examples}/register_file/register_file.v +0 -0
- data/{samp → examples}/register_file/register_file_design.rb +0 -0
- data/examples/register_file/register_file_proto.rb +11 -0
- data/{samp → examples}/register_file/register_file_runner.rake +0 -0
- data/{samp → examples}/register_file/register_file_spec.rb +0 -0
- data/ext/main.c +5 -5
- data/ext/swig_vpi.i +6 -2
- data/lib/ruby-vpi/core/callback.rb +142 -0
- data/lib/ruby-vpi/core/edge.rb +128 -0
- data/lib/ruby-vpi/core/handle.rb +421 -0
- data/lib/ruby-vpi/core/scheduler.rb +244 -0
- data/lib/ruby-vpi/core/struct.rb +123 -0
- data/lib/ruby-vpi/core.rb +41 -0
- data/lib/ruby-vpi/rcov.rb +25 -12
- data/lib/ruby-vpi/runner.rb +30 -26
- data/lib/ruby-vpi/runner_boot_loader.rb +67 -37
- data/lib/ruby-vpi.rb +2 -2
- 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/ERB.html +7 -5
- data/ref/ruby/classes/ERB.src/{M000026.html → M000024.html} +0 -0
- data/ref/ruby/classes/FileUtils.html +11 -11
- data/ref/ruby/classes/FileUtils.src/{M000027.html → M000025.html} +0 -0
- data/ref/ruby/classes/FileUtils.src/{M000028.html → M000026.html} +0 -0
- data/ref/ruby/classes/Float.html +8 -6
- data/ref/ruby/classes/Float.src/{M000021.html → M000019.html} +0 -0
- data/ref/ruby/classes/Integer.html +67 -65
- data/ref/ruby/classes/Integer.src/M000007.html +25 -0
- data/ref/ruby/classes/Integer.src/{M000014.html → M000008.html} +5 -5
- data/ref/ruby/classes/Integer.src/M000009.html +5 -12
- data/ref/ruby/classes/Integer.src/M000010.html +5 -5
- data/ref/ruby/classes/Integer.src/M000011.html +5 -5
- data/ref/ruby/classes/Integer.src/M000012.html +5 -5
- data/ref/ruby/classes/Integer.src/M000015.html +25 -0
- data/ref/ruby/classes/Integer.src/M000016.html +31 -0
- data/ref/ruby/classes/Integer.src/M000017.html +12 -12
- data/ref/ruby/classes/Integer.src/M000018.html +17 -18
- data/ref/ruby/classes/Object.html +126 -0
- data/ref/ruby/classes/RDoc.html +5 -5
- data/ref/ruby/classes/RDoc.src/{M000061.html → M000081.html} +0 -0
- data/ref/ruby/classes/RubyVPI.html +50 -9
- data/ref/ruby/classes/String.html +22 -20
- data/ref/ruby/classes/String.src/M000020.html +36 -0
- data/ref/ruby/classes/String.src/M000021.html +41 -0
- data/ref/ruby/classes/String.src/M000022.html +5 -23
- data/ref/ruby/classes/String.src/M000023.html +5 -28
- data/ref/ruby/classes/{Vpi → VPI}/Handle.html +442 -140
- data/ref/ruby/classes/{Vpi/Handle.src/M000042.html → VPI/Handle.src/M000037.html} +4 -4
- data/ref/ruby/classes/VPI/Handle.src/M000038.html +21 -0
- data/ref/ruby/classes/VPI/Handle.src/M000039.html +18 -0
- data/ref/ruby/classes/{Vpi/Handle.src/M000036.html → VPI/Handle.src/M000040.html} +5 -5
- data/ref/ruby/classes/VPI/Handle.src/M000045.html +18 -0
- data/ref/ruby/classes/{Vpi/Handle.src/M000038.html → VPI/Handle.src/M000046.html} +5 -5
- data/ref/ruby/classes/VPI/Handle.src/M000057.html +18 -0
- data/ref/ruby/classes/{Vpi/Handle.src/M000040.html → VPI/Handle.src/M000058.html} +5 -5
- data/ref/ruby/classes/VPI/Handle.src/M000061.html +18 -0
- data/ref/ruby/classes/VPI/Handle.src/M000062.html +18 -0
- data/ref/ruby/classes/{Vpi/Handle.src/M000054.html → VPI/Handle.src/M000065.html} +11 -11
- data/ref/ruby/classes/VPI/Handle.src/M000067.html +21 -0
- data/ref/ruby/classes/VPI/Handle.src/M000068.html +28 -0
- data/ref/ruby/classes/VPI/Handle.src/M000069.html +50 -0
- data/ref/ruby/classes/{Vpi/Handle.src/M000048.html → VPI/Handle.src/M000070.html} +6 -6
- data/ref/ruby/classes/{Vpi/Handle.src/M000049.html → VPI/Handle.src/M000071.html} +6 -6
- data/ref/ruby/classes/{Vpi/Handle.src/M000050.html → VPI/Handle.src/M000072.html} +5 -5
- data/ref/ruby/classes/{Vpi/Handle.src/M000051.html → VPI/Handle.src/M000073.html} +17 -17
- data/ref/ruby/classes/VPI/Handle.src/M000075.html +18 -0
- data/ref/ruby/classes/VPI/Handle.src/M000076.html +40 -0
- data/ref/ruby/classes/{Vpi/Handle.src/M000056.html → VPI/Handle.src/M000077.html} +18 -18
- data/ref/ruby/classes/{Vpi → VPI}/S_vpi_time.html +22 -20
- data/ref/ruby/classes/VPI/S_vpi_time.src/M000078.html +18 -0
- data/ref/ruby/classes/VPI/S_vpi_time.src/M000079.html +19 -0
- data/ref/ruby/classes/{Vpi → VPI}/S_vpi_value.html +37 -23
- data/ref/ruby/classes/VPI/S_vpi_value.src/M000034.html +35 -0
- data/ref/ruby/classes/VPI/S_vpi_value.src/M000035.html +42 -0
- data/ref/ruby/classes/VPI/S_vpi_value.src/M000036.html +42 -0
- data/ref/ruby/classes/{Vpi.html → VPI.html} +129 -34
- data/ref/ruby/classes/VPI.src/M000027.html +19 -0
- data/ref/ruby/classes/VPI.src/M000028.html +18 -0
- data/ref/ruby/classes/VPI.src/M000029.html +19 -0
- data/ref/ruby/classes/VPI.src/M000031.html +25 -0
- data/ref/ruby/classes/VPI.src/M000032.html +26 -0
- data/ref/ruby/classes/VerilogParser/Module/Port.html +17 -15
- data/ref/ruby/classes/VerilogParser/Module/Port.src/M000004.html +23 -0
- data/ref/ruby/classes/VerilogParser/Module/Port.src/{M000007.html → M000005.html} +0 -0
- data/ref/ruby/classes/VerilogParser/Module/Port.src/M000006.html +5 -10
- data/ref/ruby/classes/VerilogParser/Module.html +7 -5
- data/ref/ruby/classes/VerilogParser/Module.src/{M000005.html → M000003.html} +0 -0
- data/ref/ruby/classes/VerilogParser.html +7 -5
- data/ref/ruby/classes/VerilogParser.src/{M000004.html → M000002.html} +0 -0
- data/ref/ruby/created.rid +1 -1
- data/ref/ruby/files/bin/generate_rb.html +2 -2
- data/ref/ruby/files/lib/ruby-vpi/{vpi_rb.html → core/callback_rb.html} +7 -8
- data/ref/ruby/files/lib/ruby-vpi/core/edge_rb.html +114 -0
- data/ref/ruby/files/lib/ruby-vpi/core/handle_rb.html +107 -0
- data/ref/ruby/files/lib/ruby-vpi/core/scheduler_rb.html +114 -0
- data/ref/ruby/files/lib/ruby-vpi/core/struct_rb.html +108 -0
- data/ref/ruby/files/lib/ruby-vpi/core_rb.html +121 -0
- data/ref/ruby/files/lib/ruby-vpi/rcov_rb.html +1 -1
- data/ref/ruby/files/lib/ruby-vpi/runner_boot_loader_rb.html +5 -41
- data/ref/ruby/files/lib/ruby-vpi/runner_boot_loader_rb.src/M000001.html +3 -3
- data/ref/ruby/files/lib/ruby-vpi/runner_rb.html +1 -1
- data/ref/ruby/files/lib/ruby-vpi_rb.html +1 -1
- data/ref/ruby/fr_class_index.html +5 -4
- data/ref/ruby/fr_file_index.html +6 -1
- data/ref/ruby/fr_method_index.html +80 -60
- metadata +126 -103
- data/ext/swig_vpi.h +0 -924
- data/ext/swig_wrap.cin +0 -7083
- data/lib/ruby-vpi/vpi.rb +0 -651
- data/ref/ruby/classes/Integer.src/M000013.html +0 -18
- data/ref/ruby/classes/Integer.src/M000019.html +0 -25
- data/ref/ruby/classes/Integer.src/M000020.html +0 -30
- data/ref/ruby/classes/String.src/M000024.html +0 -18
- data/ref/ruby/classes/String.src/M000025.html +0 -18
- data/ref/ruby/classes/VerilogParser/Module/Port.src/M000008.html +0 -18
- data/ref/ruby/classes/Vpi/Handle.src/M000035.html +0 -18
- data/ref/ruby/classes/Vpi/Handle.src/M000037.html +0 -18
- data/ref/ruby/classes/Vpi/Handle.src/M000039.html +0 -18
- data/ref/ruby/classes/Vpi/Handle.src/M000041.html +0 -18
- data/ref/ruby/classes/Vpi/Handle.src/M000043.html +0 -21
- data/ref/ruby/classes/Vpi/Handle.src/M000044.html +0 -21
- data/ref/ruby/classes/Vpi/Handle.src/M000045.html +0 -22
- data/ref/ruby/classes/Vpi/Handle.src/M000046.html +0 -50
- data/ref/ruby/classes/Vpi/Handle.src/M000047.html +0 -91
- data/ref/ruby/classes/Vpi/Handle.src/M000053.html +0 -18
- data/ref/ruby/classes/Vpi/Handle.src/M000057.html +0 -40
- data/ref/ruby/classes/Vpi/S_vpi_time.src/M000058.html +0 -18
- data/ref/ruby/classes/Vpi/S_vpi_time.src/M000059.html +0 -19
- data/ref/ruby/classes/Vpi/S_vpi_value.src/M000032.html +0 -18
- data/ref/ruby/classes/Vpi/S_vpi_value.src/M000033.html +0 -18
- data/ref/ruby/classes/Vpi/S_vpi_value.src/M000034.html +0 -18
- data/ref/ruby/classes/Vpi.src/M000029.html +0 -28
- data/ref/ruby/classes/Vpi.src/M000030.html +0 -39
- data/ref/ruby/classes/Vpi.src/M000031.html +0 -20
- data/ref/ruby/files/lib/ruby-vpi/runner_boot_loader_rb.src/M000002.html +0 -18
- data/samp/counter/RSpec/counter_proto.rb +0 -10
- data/samp/counter/xUnit/counter_proto.rb +0 -10
- data/samp/pipelined_alu/hw5_unit_proto.rb +0 -4
- data/samp/register_file/register_file_proto.rb +0 -11
data/doc/memo.html
CHANGED
@@ -2,30 +2,37 @@
|
|
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="
|
5
|
+
<link rel="stylesheet" type="text/css" href="screen.css" media="screen" />
|
6
6
|
<link rel="stylesheet" type="text/css" href="print.css" media="print" />
|
7
|
+
<link rel="alternate stylesheet" type="text/css" href="print.css" title="Print Preview" />
|
7
8
|
<link rel="alternate" type="application/rss+xml" href="http://ruby-vpi.rubyforge.org/doc/rss.xml" title="RSS feed for this project." />
|
8
9
|
<title>Pending tasks</title>
|
9
10
|
</head>
|
10
11
|
<body>
|
11
|
-
<div id="
|
12
|
-
<
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
12
|
+
<div id="menu">
|
13
|
+
<h1>Site navigation</h1>
|
14
|
+
<ul id="site-links">
|
15
|
+
<li><a href="readme.html">Home</a></li>
|
16
|
+
<li><a href="manual.html">Manual</a></li>
|
17
|
+
<li><a href="memo.html">Memo</a></li>
|
18
|
+
<li><a href="history.html">History</a></li>
|
19
|
+
</ul>
|
20
|
+
|
21
|
+
|
22
|
+
<div id="toc">
|
23
|
+
<h1 id="toc-contents">Contents</h1>
|
24
|
+
<ul><li>1 <a id="a-607246108" href="#Pending_tasks" class="ref">Pending tasks</a></li><li>2 <a id="a-607251748" href="#Finished_tasks" class="ref">Finished tasks</a></li><li>3 <a id="a-607255818" href="#Obsolete_tasks" class="ref">Obsolete tasks</a></li></ul>
|
25
|
+
|
26
|
+
</div>
|
27
|
+
</div>
|
18
28
|
|
19
|
-
|
20
|
-
<
|
21
|
-
</div>
|
22
|
-
|
23
|
-
<div id="body"><p>
|
29
|
+
<div id="body">
|
30
|
+
<p>
|
24
31
|
<hr style="display: none"/>
|
25
32
|
|
26
33
|
<div id="Pending_tasks" class="section">
|
27
34
|
<h1 class="title">
|
28
|
-
<a href="#a-
|
35
|
+
<a href="#a-607246108" class="ref">1</a>
|
29
36
|
|
30
37
|
|
31
38
|
|
@@ -70,7 +77,7 @@
|
|
70
77
|
|
71
78
|
<div id="Finished_tasks" class="section">
|
72
79
|
<h1 class="title">
|
73
|
-
<a href="#a-
|
80
|
+
<a href="#a-607251748" class="ref">2</a>
|
74
81
|
|
75
82
|
|
76
83
|
|
@@ -160,7 +167,7 @@
|
|
160
167
|
|
161
168
|
<div id="Obsolete_tasks" class="section">
|
162
169
|
<h1 class="title">
|
163
|
-
<a href="#a-
|
170
|
+
<a href="#a-607255818" class="ref">3</a>
|
164
171
|
|
165
172
|
|
166
173
|
|
@@ -194,13 +201,10 @@
|
|
194
201
|
</ul>
|
195
202
|
|
196
203
|
</div>
|
197
|
-
</p
|
198
|
-
|
199
|
-
<hr
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
</div>
|
205
|
-
</body>
|
204
|
+
</p>
|
205
|
+
<br/>
|
206
|
+
<hr/>
|
207
|
+
This website is maintained by Suraj N. Kurapati (SNK at GNA dot ORG). This particular webpage was last updated on Mon Aug 27 19:26:43 -0700 2007.
|
208
|
+
</div>
|
209
|
+
</body>
|
206
210
|
</html>
|
data/doc/print.css
CHANGED
@@ -1,10 +1,69 @@
|
|
1
|
-
@import
|
1
|
+
@import 'common.css';
|
2
2
|
|
3
|
-
body {
|
4
|
-
|
3
|
+
#body {
|
4
|
+
border: none;
|
5
5
|
max-width: none;
|
6
|
+
width: auto;
|
6
7
|
}
|
7
8
|
|
8
|
-
#menu
|
9
|
+
#menu {
|
9
10
|
display: none;
|
10
11
|
}
|
12
|
+
|
13
|
+
code.code {
|
14
|
+
border: none;
|
15
|
+
line-height: inherit;
|
16
|
+
}
|
17
|
+
|
18
|
+
|
19
|
+
/* hyperlinks */
|
20
|
+
|
21
|
+
a {
|
22
|
+
color: #520;
|
23
|
+
font-weight: bold;
|
24
|
+
text-decoration: underline;
|
25
|
+
}
|
26
|
+
|
27
|
+
a:after {
|
28
|
+
content: " (" attr(href) ")";
|
29
|
+
font-family: sans-serif;
|
30
|
+
font-weight: normal;
|
31
|
+
font-size: 90%;
|
32
|
+
}
|
33
|
+
|
34
|
+
a.ref {
|
35
|
+
color: inherit;
|
36
|
+
font-weight: inherit;
|
37
|
+
text-decoration: none;
|
38
|
+
}
|
39
|
+
|
40
|
+
a.ref:after {
|
41
|
+
content: "";
|
42
|
+
}
|
43
|
+
|
44
|
+
|
45
|
+
/* source code */
|
46
|
+
|
47
|
+
pre {
|
48
|
+
line-height: 1.5em;
|
49
|
+
}
|
50
|
+
|
51
|
+
|
52
|
+
/* emphasis */
|
53
|
+
|
54
|
+
body {
|
55
|
+
font-family: serif;
|
56
|
+
}
|
57
|
+
|
58
|
+
h1, h2, h3, h4, h5, h6, th, .title {
|
59
|
+
font-family: sans-serif;
|
60
|
+
font-weight: bolder;
|
61
|
+
}
|
62
|
+
|
63
|
+
|
64
|
+
/* firefox quirks */
|
65
|
+
|
66
|
+
li {
|
67
|
+
padding-left: 0.5em;
|
68
|
+
margin-left: 2em;
|
69
|
+
}
|
data/doc/readme.doc
CHANGED
@@ -1,11 +1,9 @@
|
|
1
1
|
<doc_proxy_include common.inc>
|
2
|
-
<%
|
3
|
-
insert_toc = false
|
4
|
-
page_title = "Ruby-VPI: Ruby interface to Verilog VPI"
|
5
|
-
%>
|
2
|
+
<% page_title = "Ruby-VPI: Ruby interface to Verilog VPI" %>
|
6
3
|
|
7
|
-
<
|
8
|
-
|
4
|
+
<hr style="display: none"/>
|
5
|
+
|
6
|
+
<h1 style="padding-top: 0">Ruby-VPI <a style="float: right; position: relative; top: -1em; margin-bottom: -1em;" href="history.html#<%= version.to_html_anchor %>"><%= version %></a></h1>
|
9
7
|
|
10
8
|
<a href="http://www.ruby-lang.org"><img src="images/ruby/logo-reflection.png" alt="Logo of the Ruby programming language" style="margin: 0; margin-left: 2em; margin-bottom: 1em; float: right"/></a>
|
11
9
|
|
data/doc/readme.html
CHANGED
@@ -2,23 +2,34 @@
|
|
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="
|
5
|
+
<link rel="stylesheet" type="text/css" href="screen.css" media="screen" />
|
6
6
|
<link rel="stylesheet" type="text/css" href="print.css" media="print" />
|
7
|
+
<link rel="alternate stylesheet" type="text/css" href="print.css" title="Print Preview" />
|
7
8
|
<link rel="alternate" type="application/rss+xml" href="http://ruby-vpi.rubyforge.org/doc/rss.xml" title="RSS feed for this project." />
|
8
9
|
<title>Ruby-VPI: Ruby interface to Verilog VPI</title>
|
9
10
|
</head>
|
10
11
|
<body>
|
11
|
-
<div id="
|
12
|
-
<
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
12
|
+
<div id="menu">
|
13
|
+
<h1>Site navigation</h1>
|
14
|
+
<ul id="site-links">
|
15
|
+
<li><a href="readme.html">Home</a></li>
|
16
|
+
<li><a href="manual.html">Manual</a></li>
|
17
|
+
<li><a href="memo.html">Memo</a></li>
|
18
|
+
<li><a href="history.html">History</a></li>
|
19
|
+
</ul>
|
20
|
+
|
21
|
+
|
22
|
+
<div id="toc">
|
23
|
+
<h1 id="toc-contents">Contents</h1>
|
24
|
+
<ul><li>1 <a id="a-607217228" href="#resources" class="ref">Resources</a><ul><li>1.1 <a id="a-607205968" href="#Records" class="ref">Records</a></li><li>1.2 <a id="a-607208408" href="#Documentation" class="ref">Documentation</a></li><li>1.3 <a id="a-607211248" href="#Facilities" class="ref">Facilities</a></li></ul></li><li>2 <a id="a-607230458" href="#intro.features" class="ref">Features</a><ul><li>2.1 <a id="a-607220078" href="#Portable" class="ref">Portable</a></li><li>2.2 <a id="a-607222628" href="#Agile" class="ref">Agile</a></li><li>2.3 <a id="a-607225228" href="#Powerful" class="ref">Powerful</a></li></ul></li><li>3 <a id="a-607243448" href="#intro.reqs" class="ref">Requirements</a><ul><li>3.1 <a id="a-607233248" href="#Verilog_simulator" class="ref">Verilog simulator</a></li><li>3.2 <a id="a-607235818" href="#Compilers" class="ref">Compilers</a></li><li>3.3 <a id="a-607238348" href="#Libraries" class="ref">Libraries</a></li></ul></li><li>4 <a id="a-607247078" href="#intro.appetizers" class="ref">Appetizers</a></li><li>5 <a id="a-607250138" href="#intro.applications" class="ref">Applications</a></li><li>6 <a id="a-607257618" href="#intro.related-works" class="ref">Related works</a><ul><li>6.1 <a id="a-607253438" href="#intro.related-works.pli" class="ref">Ye olde PLI</a></li></ul></li><li>7 <a id="a-607261148" href="#intro.license" class="ref">License</a></li></ul>
|
25
|
+
|
26
|
+
</div>
|
27
|
+
</div>
|
28
|
+
|
29
|
+
<div id="body">
|
30
|
+
<hr style="display: none"/>
|
18
31
|
|
19
|
-
|
20
|
-
<div id="body"><div style="float: right">Version 18.0.2</div>
|
21
|
-
<h1 style="padding-top: 0">Ruby-VPI</h1>
|
32
|
+
<h1 style="padding-top: 0">Ruby-VPI <a style="float: right; position: relative; top: -1em; margin-bottom: -1em;" href="history.html#a19.0.0">19.0.0</a></h1>
|
22
33
|
|
23
34
|
<p><a href="http://www.ruby-lang.org"><img src="images/ruby/logo-reflection.png" alt="Logo of the Ruby programming language" style="margin: 0; margin-left: 2em; margin-bottom: 1em; float: right"/></a></p>
|
24
35
|
|
@@ -42,7 +53,7 @@
|
|
42
53
|
|
43
54
|
<div id="resources" class="section">
|
44
55
|
<h1 class="title">
|
45
|
-
<a href="#a-
|
56
|
+
<a href="#a-607217228" class="ref">1</a>
|
46
57
|
|
47
58
|
|
48
59
|
|
@@ -53,8 +64,8 @@
|
|
53
64
|
<div id="Records" class="paragraph">
|
54
65
|
<p class="title">Records</p>
|
55
66
|
<ul>
|
56
|
-
<li><a href="history.html#
|
57
|
-
– release notes for version
|
67
|
+
<li><a href="history.html#a19.0.0">What’s new</a>
|
68
|
+
– release notes for version 19.0.0.
|
58
69
|
<ul>
|
59
70
|
<li><a href="history.html">History</a>
|
60
71
|
– a record of all release notes.</li>
|
@@ -122,7 +133,7 @@
|
|
122
133
|
|
123
134
|
<div id="intro.features" class="section">
|
124
135
|
<h1 class="title">
|
125
|
-
<a href="#a-
|
136
|
+
<a href="#a-607230458" class="ref">2</a>
|
126
137
|
|
127
138
|
|
128
139
|
|
@@ -134,7 +145,7 @@
|
|
134
145
|
<p class="title">Portable</p>
|
135
146
|
<ul>
|
136
147
|
<li>Supports the <em>entire</em> <a href="http://ieeexplore.ieee.org/xpl/standardstoc.jsp?isnumber=33945"><span class="caps">IEEE 1364</span>-2005 Verilog VPI</a> standard.</li>
|
137
|
-
<li>Works with all <a href="#intro.reqs">major Verilog simulators</a> available today.</li>
|
148
|
+
<li>Works with all <a href="#intro.reqs" class="ref">major Verilog simulators</a> available today.</li>
|
138
149
|
<li>Compiled <em>just once</em> during <a href="manual.html#setup.inst">installation</a> and used forever!</li>
|
139
150
|
</ul>
|
140
151
|
</div>
|
@@ -193,7 +204,7 @@
|
|
193
204
|
|
194
205
|
<div id="intro.reqs" class="section">
|
195
206
|
<h1 class="title">
|
196
|
-
<a href="#a-
|
207
|
+
<a href="#a-607243448" class="ref">3</a>
|
197
208
|
|
198
209
|
|
199
210
|
|
@@ -223,7 +234,7 @@
|
|
223
234
|
|
224
235
|
<ul>
|
225
236
|
<li><a href="http://www.cadence.com/products/functional_ver/nc-verilog/">Cadence NC-Sim</a>
|
226
|
-
– any version that supports the <tt>+loadvpi</tt> option should be acceptable
|
237
|
+
– any version that supports the <tt>+loadvpi</tt> option should be acceptable.</li>
|
227
238
|
</ul>
|
228
239
|
|
229
240
|
|
@@ -289,9 +300,80 @@
|
|
289
300
|
<p>
|
290
301
|
<hr style="display: none"/>
|
291
302
|
|
303
|
+
<div id="intro.appetizers" class="section">
|
304
|
+
<h1 class="title">
|
305
|
+
<a href="#a-607247078" class="ref">4</a>
|
306
|
+
|
307
|
+
|
308
|
+
|
309
|
+
Appetizers
|
310
|
+
</h1>
|
311
|
+
|
312
|
+
Here is a tiny sampling of code to whet your appetite. See <a href="manual.html#usage.tutorial">the tutorial</a> for more samples.
|
313
|
+
|
314
|
+
|
315
|
+
<ul>
|
316
|
+
<li>Assign the value 2<sup>2048</sup> to a register:
|
317
|
+
<ul>
|
318
|
+
<li><code class="code">your_register.intVal = <span style="color:#00D; font-weight:bold">2</span> ** <span style="color:#00D; font-weight:bold">2048</span></code></li>
|
319
|
+
<li><code class="code">your_register.put_value <span style="color:#00D; font-weight:bold">2</span> ** <span style="color:#00D; font-weight:bold">2048</span></code></li>
|
320
|
+
</ul></li>
|
321
|
+
</ul>
|
322
|
+
|
323
|
+
|
324
|
+
<ul>
|
325
|
+
<li>Check if all nets in a module are at high impedance:
|
326
|
+
<ul>
|
327
|
+
<li><code class="code">your_module.all_net? { |your_net| your_net.z? }</code></li>
|
328
|
+
<li><pre class="code">
|
329
|
+
your_nets = your_module.net_a
|
330
|
+
your_nets.all? { |net| net.z? }</pre></li>
|
331
|
+
</ul></li>
|
332
|
+
</ul>
|
333
|
+
|
334
|
+
|
335
|
+
<ul>
|
336
|
+
<li>See a register’s path, width, and location (file & line number):
|
337
|
+
<ul>
|
338
|
+
<li><code class="code">puts your_register</code></li>
|
339
|
+
<li><pre class="code">
|
340
|
+
p <span style="color:#A60">:path</span> => your_register.fullName
|
341
|
+
p <span style="color:#A60">:width</span> => your_register.size
|
342
|
+
p <span style="color:#A60">:file</span> => your_register.fileName
|
343
|
+
p <span style="color:#A60">:file</span> => your_register.lineNo</pre></li>
|
344
|
+
</ul></li>
|
345
|
+
</ul>
|
346
|
+
|
347
|
+
|
348
|
+
<ul>
|
349
|
+
<li>Access the first five elements in a memory:
|
350
|
+
<ul>
|
351
|
+
<li><code class="code">your_memory.memoryWord_a.first(<span style="color:#00D; font-weight:bold">5</span>)</code></li>
|
352
|
+
<li><code class="code">your_memory.memoryWord_a[<span style="color:#00D; font-weight:bold">0</span>..<span style="color:#00D; font-weight:bold">4</span>]</code></li>
|
353
|
+
<li><code class="code">your_memory.memoryWord_a[<span style="color:#00D; font-weight:bold">0</span>, <span style="color:#00D; font-weight:bold">5</span>]</code></li>
|
354
|
+
</ul></li>
|
355
|
+
</ul>
|
356
|
+
|
357
|
+
|
358
|
+
<ul>
|
359
|
+
<li>Clear a memory by filling it with zeroes:
|
360
|
+
<ul>
|
361
|
+
<li><code class="code">your_memory.each_memoryWord { |w| w.zero! }</code></li>
|
362
|
+
<li><code class="code">your_memory.each_memoryWord { |w| w.intVal = <span style="color:#00D; font-weight:bold">0</span> }</code></li>
|
363
|
+
<li><code class="code">your_memory.each_memoryWord { |w| w.put_value <span style="color:#00D; font-weight:bold">0</span> }</code></li>
|
364
|
+
</ul></li>
|
365
|
+
</ul>
|
366
|
+
|
367
|
+
</div>
|
368
|
+
</p>
|
369
|
+
|
370
|
+
|
371
|
+
<p>
|
372
|
+
<hr style="display: none"/>
|
373
|
+
|
292
374
|
<div id="intro.applications" class="section">
|
293
375
|
<h1 class="title">
|
294
|
-
<a href="#a-
|
376
|
+
<a href="#a-607250138" class="ref">5</a>
|
295
377
|
|
296
378
|
|
297
379
|
|
@@ -335,66 +417,47 @@
|
|
335
417
|
<p>
|
336
418
|
<hr style="display: none"/>
|
337
419
|
|
338
|
-
<div id="intro.
|
420
|
+
<div id="intro.related-works" class="section">
|
339
421
|
<h1 class="title">
|
340
|
-
<a href="#a-
|
422
|
+
<a href="#a-607257618" class="ref">6</a>
|
341
423
|
|
342
424
|
|
343
425
|
|
344
|
-
|
426
|
+
Related works
|
345
427
|
</h1>
|
346
428
|
|
347
|
-
<
|
348
|
-
|
349
|
-
|
350
|
-
|
351
|
-
|
352
|
-
|
353
|
-
|
354
|
-
|
355
|
-
<blockquote>
|
356
|
-
<p><code class="code">your_register.intVal = <span style="color:#00D; font-weight:bold">2</span> ** <span style="color:#00D; font-weight:bold">2048</span></code></p>
|
357
|
-
</blockquote>
|
358
|
-
|
359
|
-
|
360
|
-
<ul>
|
361
|
-
<li>Check if all nets in a module are at high impedance:</li>
|
362
|
-
</ul>
|
363
|
-
|
364
|
-
|
365
|
-
<blockquote>
|
366
|
-
<p><code class="code">your_module.all_net? { |net| net.z? }</code></p>
|
367
|
-
</blockquote>
|
368
|
-
|
369
|
-
|
370
|
-
<ul>
|
371
|
-
<li>See a register’s path, width, and location (file & line number):</li>
|
429
|
+
<ul>
|
430
|
+
<li><a href="http://anvil.sourceforge.net">ANVIL</a> is a C++ interface to VPI.</li>
|
431
|
+
<li><a href="http://teal.sourceforge.net">Teal</a> is a C++ interface to VPI.</li>
|
432
|
+
<li><a href="http://jove.sourceforge.net">JOVE</a> is a Java interface to VPI.</li>
|
433
|
+
<li><a href="http://embedded.eecs.berkeley.edu/Alumni/pinhong/scriptEDA/">ScriptEDA</a> is a Perl, Python, and Tcl interface to VPI.</li>
|
434
|
+
<li><a href="http://rhdl.rubyforge.org">RHDL</a> is a hardware description and verification language based on Ruby.</li>
|
435
|
+
<li><a href="http://myhdl.jandecaluwe.com">MyHDL</a> is a hardware description and verification language based on Python, which features conversion to Verilog and co-simulation.</li>
|
372
436
|
</ul>
|
373
437
|
|
374
438
|
|
375
|
-
<
|
376
|
-
|
377
|
-
</blockquote>
|
439
|
+
<p>
|
440
|
+
<hr style="display: none"/>
|
378
441
|
|
442
|
+
<div id="intro.related-works.pli" class="section">
|
443
|
+
<h2 class="title">
|
444
|
+
<a href="#a-607253438" class="ref">6.1</a>
|
379
445
|
|
380
|
-
|
381
|
-
<li>Access the first five elements in a memory:</li>
|
382
|
-
</ul>
|
446
|
+
|
383
447
|
|
448
|
+
Ye olde PLI
|
449
|
+
</h2>
|
384
450
|
|
385
|
-
|
386
|
-
<p><code class="code">your_memory.memoryWord_a[<span style="color:#00D; font-weight:bold">0</span>..<span style="color:#00D; font-weight:bold">4</span>]</code></p>
|
387
|
-
</blockquote>
|
451
|
+
The following projects utilize the archaic <strong>tf</strong> and <strong>acc</strong> PLI interfaces, which have been officially deprecated in IEEE Std 1364-2005.
|
388
452
|
|
389
453
|
|
390
454
|
<ul>
|
391
|
-
<li>
|
455
|
+
<li><a href="http://www.nelsim.com">ScriptSim</a> is a Perl, Python, and Tcl/Tk interface to PLI.</li>
|
456
|
+
<li><a href="http://www.veripool.com/verilog-pli.html">Verilog::Pli</a> is a Perl interface to PLI.</li>
|
392
457
|
</ul>
|
393
458
|
|
394
|
-
|
395
|
-
|
396
|
-
<p><code class="code">your_memory.each_memoryWord {|w| w.intVal = <span style="color:#00D; font-weight:bold">0</span>}</code></p>
|
397
|
-
</blockquote>
|
459
|
+
</div>
|
460
|
+
</p>
|
398
461
|
|
399
462
|
</div>
|
400
463
|
</p>
|
@@ -405,7 +468,7 @@
|
|
405
468
|
|
406
469
|
<div id="intro.license" class="section">
|
407
470
|
<h1 class="title">
|
408
|
-
<a href="#a-
|
471
|
+
<a href="#a-607261148" class="ref">7</a>
|
409
472
|
|
410
473
|
|
411
474
|
|
@@ -444,54 +507,9 @@ IMPLIED, INCLUDING <span class="caps">BUT NOT LIMITED TO THE WARRANTIES OF MERCH
|
|
444
507
|
|
445
508
|
</div>
|
446
509
|
</p>
|
447
|
-
|
448
|
-
|
449
|
-
|
450
|
-
<hr style="display: none"/>
|
451
|
-
|
452
|
-
<div id="intro.related-works" class="section">
|
453
|
-
<h1 class="title">
|
454
|
-
<a href="#a-607290678">7</a>
|
455
|
-
|
456
|
-
|
457
|
-
|
458
|
-
Related works
|
459
|
-
</h1>
|
460
|
-
|
461
|
-
<ul>
|
462
|
-
<li><a href="http://jove.sourceforge.net">JOVE</a> is a Java interface to VPI.</li>
|
463
|
-
<li><a href="http://teal.sourceforge.net">Teal</a> is a C++ interface to VPI.</li>
|
464
|
-
<li><a href="http://embedded.eecs.berkeley.edu/Alumni/pinhong/scriptEDA/">ScriptEDA</a> is a Perl, Python, and Tcl interface to VPI.</li>
|
465
|
-
<li><a href="http://rhdl.rubyforge.org">RHDL</a> is a hardware description and verification language based on Ruby.</li>
|
466
|
-
<li><a href="http://myhdl.jandecaluwe.com">MyHDL</a> is a hardware description and verification language based on Python, which features conversion to Verilog and co-simulation.</li>
|
467
|
-
</ul>
|
468
|
-
|
469
|
-
|
470
|
-
<p>
|
471
|
-
<hr style="display: none"/>
|
472
|
-
|
473
|
-
<div id="intro.related-works.pli" class="section">
|
474
|
-
<h2 class="title">
|
475
|
-
<a href="#a-607287248">7.1</a>
|
476
|
-
|
477
|
-
|
478
|
-
|
479
|
-
Ye olde PLI
|
480
|
-
</h2>
|
481
|
-
|
482
|
-
The following projects utilize the archaic <strong>tf</strong> and <strong>acc</strong> PLI interfaces, which have been officially deprecated in IEEE Std 1364-2005.
|
483
|
-
|
484
|
-
|
485
|
-
<ul>
|
486
|
-
<li><a href="http://www.nelsim.com">ScriptSim</a> is a Perl, Python, and Tcl/Tk interface to PLI.</li>
|
487
|
-
<li><a href="http://www.veripool.com/verilog-pli.html">Verilog::Pli</a> is a Perl interface to PLI.</li>
|
488
|
-
</ul>
|
489
|
-
|
510
|
+
<br/>
|
511
|
+
<hr/>
|
512
|
+
This website is maintained by Suraj N. Kurapati (SNK at GNA dot ORG). This particular webpage was last updated on Mon Aug 27 19:26:45 -0700 2007.
|
490
513
|
</div>
|
491
|
-
</
|
492
|
-
|
493
|
-
</div>
|
494
|
-
</p></div>
|
495
|
-
|
496
|
-
</body>
|
514
|
+
</body>
|
497
515
|
</html>
|