ruby-vpi 15.0.2 → 16.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/LICENSE +23 -340
- data/Rakefile +169 -192
- data/bin/generate_test.rb +26 -25
- data/bin/generate_test_tpl/runner.rake +4 -10
- data/bin/header_to_ruby.rb +3 -20
- data/doc/README +11 -0
- data/doc/Rakefile +8 -21
- data/doc/common.css +44 -10
- data/doc/common.tpl +5 -10
- data/doc/history.doc +8 -7
- data/doc/history.html +228 -560
- data/doc/history.rb +7 -11
- data/doc/{history.yml → history.yaml} +325 -128
- data/doc/images/{feed-icon.png → feed-icon-28x28.png} +0 -0
- data/doc/images/ruby/LICENSE +15 -0
- data/doc/images/ruby/logo-reflection.png +0 -0
- data/doc/images/ruby/logo-reflection.xcf +0 -0
- data/doc/images/ruby/logo.png +0 -0
- data/doc/images/{LICENSE → tango/LICENSE} +0 -0
- data/doc/images/{caution.png → tango/caution.png} +0 -0
- data/doc/images/{caution.svg → tango/caution.svg} +0 -0
- data/doc/images/{home.png → tango/home.png} +0 -0
- data/doc/images/{home.svg → tango/home.svg} +0 -0
- data/doc/images/{important.png → tango/important.png} +0 -0
- data/doc/images/{important.svg → tango/important.svg} +0 -0
- data/doc/images/{next.png → tango/next.png} +0 -0
- data/doc/images/{next.svg → tango/next.svg} +0 -0
- data/doc/images/{note.png → tango/note.png} +0 -0
- data/doc/images/{note.svg → tango/note.svg} +0 -0
- data/doc/images/{prev.png → tango/prev.png} +0 -0
- data/doc/images/{prev.svg → tango/prev.svg} +0 -0
- data/doc/images/{tip.png → tango/tip.png} +0 -0
- data/doc/images/{tip.svg → tango/tip.svg} +0 -0
- data/doc/images/{up.png → tango/up.png} +0 -0
- data/doc/images/{up.svg → tango/up.svg} +0 -0
- data/doc/images/{warning.png → tango/warning.png} +0 -0
- data/doc/images/{warning.svg → tango/warning.svg} +0 -0
- data/doc/intro.inc +105 -36
- data/doc/lib/doc_format.rb +151 -29
- data/doc/lib/doc_proxy.rb +28 -69
- data/doc/lib/erb_content.rb +10 -22
- data/doc/lib/erb_proxy.rb +13 -24
- data/doc/manual.doc +16 -60
- data/doc/manual.html +257 -340
- data/doc/memo.doc +2 -0
- data/doc/memo.html +11 -11
- data/doc/readme.doc +36 -2
- data/doc/readme.html +214 -51
- data/doc/rss.erb +3 -3
- data/doc/rss.xml +217 -269
- data/ext/Rakefile +7 -22
- data/ext/common.h +10 -21
- data/ext/extconf.rb +5 -0
- data/ext/main.c +2 -18
- data/ext/main.h +1 -16
- data/ext/relay.c +3 -17
- data/ext/relay.h +3 -17
- data/ext/verilog.h +6 -18
- data/ext/vlog.c +3 -21
- data/ext/vlog.h +3 -17
- data/lib/ruby-vpi/erb.rb +7 -20
- data/lib/ruby-vpi/float.rb +6 -20
- data/lib/ruby-vpi/integer.rb +27 -47
- data/lib/ruby-vpi/rake.rb +4 -19
- data/lib/ruby-vpi/rcov.rb +6 -21
- data/lib/ruby-vpi/rdoc.rb +3 -21
- data/lib/ruby-vpi/runner.rb +28 -29
- data/lib/ruby-vpi/runner_proxy.rb +5 -21
- data/lib/ruby-vpi/verilog_parser.rb +5 -20
- data/lib/ruby-vpi/vpi.rb +420 -376
- data/lib/ruby-vpi.rb +26 -32
- 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 +5 -5
- data/ref/ruby/classes/ERB.src/{M000026.html → M000024.html} +15 -15
- data/ref/ruby/classes/FileUtils.html +10 -10
- data/ref/ruby/classes/FileUtils.src/{M000027.html → M000025.html} +4 -4
- data/ref/ruby/classes/FileUtils.src/{M000028.html → M000026.html} +4 -4
- data/ref/ruby/classes/Float.html +5 -5
- data/ref/ruby/classes/Float.src/{M000022.html → M000020.html} +5 -5
- data/ref/ruby/classes/Integer.html +20 -56
- data/ref/ruby/classes/Integer.src/M000008.html +11 -11
- data/ref/ruby/classes/Integer.src/M000009.html +4 -4
- data/ref/ruby/classes/Integer.src/M000010.html +4 -4
- data/ref/ruby/classes/Integer.src/M000011.html +4 -4
- data/ref/ruby/classes/Integer.src/M000012.html +4 -4
- data/ref/ruby/classes/Integer.src/M000013.html +4 -4
- data/ref/ruby/classes/Integer.src/M000016.html +12 -9
- data/ref/ruby/classes/Integer.src/M000017.html +18 -9
- data/ref/ruby/classes/Integer.src/M000018.html +12 -12
- data/ref/ruby/classes/Integer.src/M000019.html +17 -18
- data/ref/ruby/classes/RDoc.src/M000053.html +25 -25
- data/ref/ruby/classes/RubyVpi/Config.html +3 -3
- data/ref/ruby/classes/RubyVpi.html +11 -5
- data/ref/ruby/classes/RubyVpi.src/{M000029.html → M000027.html} +103 -101
- data/ref/ruby/classes/String.html +21 -15
- data/ref/ruby/classes/String.src/M000021.html +36 -0
- data/ref/ruby/classes/String.src/{M000024.html → M000022.html} +24 -24
- data/ref/ruby/classes/String.src/M000023.html +5 -23
- data/ref/ruby/classes/VerilogParser/Module/Parameter.src/M000007.html +5 -5
- data/ref/ruby/classes/VerilogParser/Module/Port.src/M000003.html +7 -7
- data/ref/ruby/classes/VerilogParser/Module/Port.src/M000004.html +4 -4
- data/ref/ruby/classes/VerilogParser/Module/Port.src/M000005.html +4 -4
- data/ref/ruby/classes/VerilogParser/Module/Port.src/M000006.html +4 -4
- data/ref/ruby/classes/VerilogParser/Module.src/M000002.html +20 -20
- data/ref/ruby/classes/VerilogParser.html +6 -0
- data/ref/ruby/classes/VerilogParser.src/M000001.html +20 -20
- data/ref/ruby/classes/Vpi/Handle.html +89 -88
- data/ref/ruby/classes/Vpi/Handle.src/M000036.html +18 -0
- data/ref/ruby/classes/Vpi/Handle.src/M000037.html +5 -5
- data/ref/ruby/classes/Vpi/Handle.src/M000038.html +5 -5
- data/ref/ruby/classes/Vpi/Handle.src/M000039.html +5 -5
- data/ref/ruby/classes/Vpi/Handle.src/M000040.html +8 -5
- data/ref/ruby/classes/Vpi/Handle.src/M000041.html +8 -8
- data/ref/ruby/classes/Vpi/Handle.src/M000042.html +7 -6
- data/ref/ruby/classes/Vpi/Handle.src/M000043.html +31 -9
- data/ref/ruby/classes/Vpi/Handle.src/M000044.html +74 -31
- data/ref/ruby/classes/Vpi/Handle.src/M000045.html +17 -74
- data/ref/ruby/classes/Vpi/Handle.src/M000046.html +11 -17
- data/ref/ruby/classes/Vpi/Handle.src/M000048.html +31 -0
- data/ref/ruby/classes/Vpi/Handle.src/M000049.html +53 -52
- data/ref/ruby/classes/Vpi/S_vpi_time.src/M000050.html +4 -4
- data/ref/ruby/classes/Vpi/S_vpi_time.src/M000051.html +5 -5
- data/ref/ruby/classes/Vpi/S_vpi_value.html +15 -15
- data/ref/ruby/classes/Vpi/S_vpi_value.src/{M000036.html → M000033.html} +5 -5
- data/ref/ruby/classes/Vpi/S_vpi_value.src/M000034.html +5 -5
- data/ref/ruby/classes/Vpi/S_vpi_value.src/M000035.html +5 -5
- data/ref/ruby/classes/Vpi.html +48 -19
- data/ref/ruby/classes/Vpi.src/M000028.html +28 -0
- data/ref/ruby/classes/Vpi.src/M000029.html +18 -0
- data/ref/ruby/classes/Vpi.src/M000030.html +25 -15
- data/ref/ruby/classes/Vpi.src/M000031.html +9 -5
- data/ref/ruby/classes/Vpi.src/M000032.html +9 -25
- data/ref/ruby/created.rid +1 -1
- data/ref/ruby/files/bin/generate_test_rb.html +2 -1
- data/ref/ruby/files/bin/header_to_ruby_rb.html +1 -1
- data/ref/ruby/files/lib/ruby-vpi/erb_rb.html +7 -1
- data/ref/ruby/files/lib/ruby-vpi/float_rb.html +7 -1
- data/ref/ruby/files/lib/ruby-vpi/integer_rb.html +7 -1
- data/ref/ruby/files/lib/ruby-vpi/rake_rb.html +7 -1
- data/ref/ruby/files/lib/ruby-vpi/rcov_rb.html +7 -1
- data/ref/ruby/files/lib/ruby-vpi/rdoc_rb.html +1 -1
- 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/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 +7 -1
- data/ref/ruby/fr_method_index.html +34 -34
- data/samp/counter/counter_rspec_runner.rake +4 -0
- data/samp/counter/counter_xunit_runner.rake +4 -0
- data/samp/pipelined_alu/Hw5UnitModel.rb +3 -19
- data/samp/pipelined_alu/README +38 -13
- data/samp/pipelined_alu/TestHw5UnitModel.rb +9 -20
- data/samp/pipelined_alu/hw5_unit.v +1 -16
- data/samp/pipelined_alu/hw5_unit_test_runner.rake +4 -0
- data/samp/pipelined_alu/hw5_unit_test_spec.rb +3 -20
- data/samp/pipelined_alu/int_gen.rb +6 -20
- metadata +47 -43
- data/doc/LICENSE +0 -397
- data/doc/images/feed-icon.LICENSE +0 -2
- data/doc/images/feed-icon.svg +0 -18
- data/ref/ruby/classes/Integer.src/M000020.html +0 -25
- data/ref/ruby/classes/Integer.src/M000021.html +0 -30
- data/ref/ruby/classes/String.src/M000025.html +0 -18
- data/ref/ruby/classes/Vpi/Handle.src/M000047.html +0 -24
- data/ref/ruby/classes/Vpi.src/M000033.html +0 -22
data/doc/memo.doc
CHANGED
data/doc/memo.html
CHANGED
|
@@ -8,10 +8,9 @@
|
|
|
8
8
|
<title>Pending tasks</title>
|
|
9
9
|
</head>
|
|
10
10
|
<body>
|
|
11
|
+
<h1 style="margin-top: 0">Pending tasks</h1>
|
|
11
12
|
|
|
12
|
-
|
|
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>
|
|
13
|
+
<p style="text-align:center;"><a href="readme.html"><img src="images/tango/home.png" title="Return to main page" alt="Return to main page" /></a></p>
|
|
15
14
|
|
|
16
15
|
<div id="menu">
|
|
17
16
|
<a href="#index">Contents</a>
|
|
@@ -19,14 +18,10 @@
|
|
|
19
18
|
|
|
20
19
|
<div id="index">
|
|
21
20
|
<h1>Contents</h1>
|
|
22
|
-
<ul>
|
|
23
|
-
<li>1 <a href="#anchor1">Pending tasks</a></li>
|
|
24
|
-
<li>2 <a href="#anchor2">Finished tasks</a></li>
|
|
25
|
-
<li>3 <a href="#anchor3">Obsolete tasks</a></li>
|
|
26
|
-
</ul>
|
|
21
|
+
<ul><li><a id="a-606616158" href="#Pending_tasks">Pending tasks</a></li><li><a id="a-606618668" href="#Finished_tasks">Finished tasks</a></li><li><a id="a-606619638" href="#Obsolete_tasks">Obsolete tasks</a></li></ul>
|
|
27
22
|
|
|
28
23
|
</div>
|
|
29
|
-
<h1 id="
|
|
24
|
+
<h1><a id="Pending_tasks" href="#a-606616158">1</a> Pending tasks</h1>
|
|
30
25
|
|
|
31
26
|
|
|
32
27
|
<ul>
|
|
@@ -59,7 +54,12 @@
|
|
|
59
54
|
</ul>
|
|
60
55
|
|
|
61
56
|
|
|
62
|
-
<
|
|
57
|
+
<ul>
|
|
58
|
+
<li>write unit tests for the non-VPI libraries like integer.rb and float.rb</li>
|
|
59
|
+
</ul>
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
<h1><a id="Finished_tasks" href="#a-606618668">2</a> Finished tasks</h1>
|
|
63
63
|
|
|
64
64
|
|
|
65
65
|
<ul>
|
|
@@ -127,7 +127,7 @@
|
|
|
127
127
|
</ul>
|
|
128
128
|
|
|
129
129
|
|
|
130
|
-
<h1 id="
|
|
130
|
+
<h1><a id="Obsolete_tasks" href="#a-606619638">3</a> Obsolete tasks</h1>
|
|
131
131
|
|
|
132
132
|
|
|
133
133
|
<ul>
|
data/doc/readme.doc
CHANGED
|
@@ -1,5 +1,39 @@
|
|
|
1
|
-
<%
|
|
1
|
+
<%
|
|
2
|
+
insert_toc = false
|
|
3
|
+
page_title = "Ruby-VPI: Ruby interface to Verilog VPI"
|
|
4
|
+
%>
|
|
2
5
|
|
|
3
|
-
|
|
6
|
+
<style type="text/css">
|
|
7
|
+
body {
|
|
8
|
+
margin-left: 275px;
|
|
9
|
+
padding-right: 1em;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
#resources {
|
|
13
|
+
position: absolute;
|
|
14
|
+
left: 0;
|
|
15
|
+
top: 0;
|
|
16
|
+
width: 200px;
|
|
17
|
+
padding: 1em;
|
|
18
|
+
|
|
19
|
+
border: thin solid red;
|
|
20
|
+
border-left: none;
|
|
21
|
+
border-top: none;
|
|
22
|
+
background-color: snow;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
#resources li {
|
|
26
|
+
margin-top: 1em;
|
|
27
|
+
margin-left: -1em;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
#resources h2 {
|
|
31
|
+
display: none;
|
|
32
|
+
}
|
|
33
|
+
</style>
|
|
34
|
+
|
|
35
|
+
h1{margin-top: 0}. Ruby-VPI
|
|
36
|
+
|
|
37
|
+
<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; float: right"/></a>
|
|
4
38
|
|
|
5
39
|
<%= import 'intro.inc' %>
|
data/doc/readme.html
CHANGED
|
@@ -5,39 +5,91 @@
|
|
|
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>
|
|
8
|
+
<title>Ruby-VPI: Ruby interface to Verilog VPI</title>
|
|
9
9
|
</head>
|
|
10
10
|
<body>
|
|
11
|
+
<style type="text/css">
|
|
12
|
+
body {
|
|
13
|
+
margin-left: 275px;
|
|
14
|
+
padding-right: 1em;
|
|
15
|
+
}
|
|
11
16
|
|
|
12
|
-
|
|
17
|
+
#resources {
|
|
18
|
+
position: absolute;
|
|
19
|
+
left: 0;
|
|
20
|
+
top: 0;
|
|
21
|
+
width: 200px;
|
|
22
|
+
padding: 1em;
|
|
13
23
|
|
|
24
|
+
border: thin solid red;
|
|
25
|
+
border-left: none;
|
|
26
|
+
border-top: none;
|
|
27
|
+
background-color: snow;
|
|
28
|
+
}
|
|
14
29
|
|
|
15
|
-
|
|
30
|
+
#resources li {
|
|
31
|
+
margin-top: 1em;
|
|
32
|
+
margin-left: -1em;
|
|
33
|
+
}
|
|
16
34
|
|
|
35
|
+
#resources h2 {
|
|
36
|
+
display: none;
|
|
37
|
+
}
|
|
38
|
+
</style>
|
|
39
|
+
|
|
40
|
+
<h1 style="margin-top: 0;"><a id="Ruby-VPI" href="#a-606773538">1</a> Ruby-VPI</h1>
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
<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; float: right"/></a></p>
|
|
17
44
|
|
|
18
|
-
|
|
45
|
+
|
|
46
|
+
<p>Ruby-VPI is a platform for unit testing, rapid prototyping, and systems integration of Verilog modules through the <a href="http://www.ruby-lang.org">Ruby programming language</a>. It lets you:</p>
|
|
19
47
|
|
|
20
48
|
|
|
21
49
|
<ul>
|
|
22
|
-
<li
|
|
23
|
-
|
|
24
|
-
<li
|
|
25
|
-
|
|
26
|
-
<li><a href="../ref/">Reference</a>
|
|
27
|
-
– <span class="caps">API</span> documentation for Ruby libraries and C extension.</li>
|
|
50
|
+
<li>Access the <em>entire</em> <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> interface from Ruby.</li>
|
|
51
|
+
<li>Create complex Verilog test benches easily and wholly in Ruby.</li>
|
|
52
|
+
<li>Apply agile software development practices to develop hardware.</li>
|
|
53
|
+
<li>Perform <a href="http://ruby-vpi.rubyforge.org/papers/masters_thesis.html">specification-driven functional verification</a> (<a href="http://ruby-vpi.rubyforge.org/papers/masters_thesis.pdf"><span class="caps">PDF</span> version</a>).</li>
|
|
28
54
|
</ul>
|
|
29
55
|
|
|
30
56
|
|
|
57
|
+
<p>Ruby-VPI is <a href="http://en.wikipedia.org/wiki/Open_source_software">open source software</a> released under <a href="#intro.license">this license</a>.</p>
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
<div id="resources">
|
|
61
|
+
|
|
62
|
+
<h2><a id="Resources" href="#a-606776378">1.1</a> Resources</h2>
|
|
63
|
+
|
|
64
|
+
|
|
31
65
|
<p class="title">Records</p>
|
|
32
66
|
|
|
33
67
|
|
|
68
|
+
<p><a type="application/rss+xml" href="http://ruby-vpi.rubyforge.org/doc/rss.xml"><img src="images/feed-icon-28x28.png" alt="RSS feed for release notifications" style="float: right"/></a></p>
|
|
69
|
+
|
|
70
|
+
|
|
34
71
|
<ul>
|
|
35
|
-
<li><a
|
|
36
|
-
–
|
|
37
|
-
<li><a href="
|
|
38
|
-
– record of all release notes.</li>
|
|
39
|
-
<li><a href="memo.html">Memorandum</a>
|
|
72
|
+
<li><a href="history.html">What’s new?</a>
|
|
73
|
+
– a record of all release notes.</li>
|
|
74
|
+
<li><a href="memo.html">Plans</a>
|
|
40
75
|
– pending tasks for future releases.</li>
|
|
76
|
+
<li><a href="http://ruby-vpi.rubyforge.org/talks/">Talks</a>
|
|
77
|
+
– materials from presentations and seminars.</li>
|
|
78
|
+
<li><a href="http://ruby-vpi.rubyforge.org/papers/">Papers</a>
|
|
79
|
+
– research publications.</li>
|
|
80
|
+
</ul>
|
|
81
|
+
|
|
82
|
+
|
|
83
|
+
<p class="title">Documentation</p>
|
|
84
|
+
|
|
85
|
+
|
|
86
|
+
<ul>
|
|
87
|
+
<li><a href="manual.html#usage.tutorial">Tutorial</a>
|
|
88
|
+
– learn how to use Ruby-VPI quickly.</li>
|
|
89
|
+
<li><a href="manual.html">Manual</a>
|
|
90
|
+
– complete documentation for users. <em>Start here!</em></li>
|
|
91
|
+
<li><a href="../ref/">Reference</a>
|
|
92
|
+
– <span class="caps">API</span> documentation for Ruby libraries and C extension.</li>
|
|
41
93
|
</ul>
|
|
42
94
|
|
|
43
95
|
|
|
@@ -45,54 +97,39 @@
|
|
|
45
97
|
|
|
46
98
|
|
|
47
99
|
<ul>
|
|
48
|
-
<li><a href="http://rubyforge.org/
|
|
49
|
-
– hosted generously by <a href="http://rubyforge.org">RubyForge</a>.</li>
|
|
50
|
-
<li><a href="http://ruby-vpi.rubyforge.org/src/ruby-vpi">Source code</a>
|
|
51
|
-
– browse online or obtain through <a href="http://abridgegame.org/darcs/">Darcs</a>.</li>
|
|
52
|
-
<li><a href="http://rubyforge.org/frs/?group_id=1339">Downloads</a>
|
|
100
|
+
<li><a href="http://rubyforge.org/frs/?group_id=1339">Downloads</a>
|
|
53
101
|
– obtain release packages.</li>
|
|
102
|
+
<li><a href="http://ruby-vpi.rubyforge.org/src/ruby-vpi">Source code</a>
|
|
103
|
+
– browse online or obtain with <a href="http://darcs.net">Darcs</a>.</li>
|
|
104
|
+
<li><a href="http://rubyforge.org/forum/?group_id=1339">Forums</a>
|
|
105
|
+
– discuss things and ask questions.</li>
|
|
54
106
|
<li><a href="http://rubyforge.org/tracker/?group_id=1339">Bugs</a>
|
|
55
107
|
– report defects in the software.</li>
|
|
56
108
|
<li><a href="http://rubyforge.org/tracker/?group_id=1339">Patches</a>
|
|
57
109
|
– submit patches to source code.</li>
|
|
58
110
|
<li><a href="http://rubyforge.org/tracker/?group_id=1339">Requests</a>
|
|
59
111
|
– request new features or get support.</li>
|
|
60
|
-
<li><a href="http://rubyforge.org/
|
|
61
|
-
–
|
|
62
|
-
</ul>
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
<p class="title">Outreach</p>
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
<ul>
|
|
69
|
-
<li><a href="http://ruby-vpi.rubyforge.org/news">News</a>
|
|
70
|
-
– see what’s cooking for the next release.</li>
|
|
71
|
-
<li><a href="http://ruby-vpi.rubyforge.org/talks">Talks</a>
|
|
72
|
-
– materials from presentations and seminars.</li>
|
|
112
|
+
<li><a href="http://rubyforge.org/projects/ruby-vpi">Project portal</a>
|
|
113
|
+
– hosted generously by <a href="http://rubyforge.org">RubyForge</a>.</li>
|
|
73
114
|
</ul>
|
|
74
115
|
|
|
75
116
|
|
|
76
|
-
|
|
77
|
-
|
|
117
|
+
</div>
|
|
78
118
|
|
|
79
|
-
<
|
|
119
|
+
<h2 ><a id="intro.features" href="#a-606777368">1.2</a> Features</h2>
|
|
80
120
|
|
|
81
121
|
|
|
82
|
-
<
|
|
83
|
-
<li>Supports the <em>entire</em> <a href="http://ieeexplore.ieee.org/xpl/standardstoc.jsp?isnumber=33945"><span class="caps">IEEE</span> Std 1364-2005</a> VPI standard.</li>
|
|
84
|
-
</ul>
|
|
122
|
+
<p class="title">Portable</p>
|
|
85
123
|
|
|
86
124
|
|
|
87
125
|
<ul>
|
|
88
|
-
<li>
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
</ul></li>
|
|
126
|
+
<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 <span class="caps">VPI</span></a> standard.</li>
|
|
127
|
+
<li>Works with all <a href="#intro.reqs">major Verilog simulators</a> available today.</li>
|
|
128
|
+
<li>Compiled <em>just once</em> during <a href="manual.html#setup.installation">installation</a> and used forever!</li>
|
|
92
129
|
</ul>
|
|
93
130
|
|
|
94
131
|
|
|
95
|
-
<
|
|
132
|
+
<p class="title">Agile</p>
|
|
96
133
|
|
|
97
134
|
|
|
98
135
|
<ul>
|
|
@@ -115,7 +152,7 @@
|
|
|
115
152
|
</ul>
|
|
116
153
|
|
|
117
154
|
|
|
118
|
-
<
|
|
155
|
+
<p class="title">Powerful</p>
|
|
119
156
|
|
|
120
157
|
|
|
121
158
|
<ul>
|
|
@@ -136,18 +173,88 @@
|
|
|
136
173
|
</ul>
|
|
137
174
|
|
|
138
175
|
|
|
139
|
-
<
|
|
176
|
+
<h2 ><a id="intro.reqs" href="#a-606778438">1.3</a> Requirements</h2>
|
|
177
|
+
|
|
178
|
+
|
|
179
|
+
<p>The following software is necessary in order to use Ruby-VPI.</p>
|
|
180
|
+
|
|
181
|
+
|
|
182
|
+
<p class="title">Verilog simulator</p>
|
|
183
|
+
|
|
184
|
+
|
|
185
|
+
<p>Ruby-VPI is known to work with the following simulators. However, you should be able to use it with any Verilog simulator that supports <span class="caps">VPI</span>.</p>
|
|
186
|
+
|
|
187
|
+
|
|
188
|
+
<ul>
|
|
189
|
+
<li><a href="http://www.synopsys.com/products/simulation/simulation.html">Synopsys <span class="caps">VCS</span></a>
|
|
190
|
+
– any version that supports the <tt>-load</tt> option is acceptable.</li>
|
|
191
|
+
</ul>
|
|
192
|
+
|
|
193
|
+
|
|
194
|
+
<ul>
|
|
195
|
+
<li><a href="http://www.model.com">Mentor Modelsim</a>
|
|
196
|
+
– any version that supports the <tt>-pli</tt> option is acceptable.</li>
|
|
197
|
+
</ul>
|
|
198
|
+
|
|
199
|
+
|
|
200
|
+
<ul>
|
|
201
|
+
<li><a href="http://www.cadence.com/products/functional_ver/nc-verilog/">Cadence NC-Sim / NC-Verilog</a>
|
|
202
|
+
– any version that supports the <tt>+loadvpi</tt> option is acceptable.</li>
|
|
203
|
+
</ul>
|
|
204
|
+
|
|
205
|
+
|
|
206
|
+
<ul>
|
|
207
|
+
<li><a href="http://www.pragmatic-c.com/gpl-cver/"><span class="caps">GPL</span> Cver</a>
|
|
208
|
+
– version 2.11a or newer is acceptable.</li>
|
|
209
|
+
</ul>
|
|
140
210
|
|
|
141
211
|
|
|
142
212
|
<ul>
|
|
143
|
-
<li
|
|
213
|
+
<li><a href="http://www.icarus.com/eda/Verilog/">Icarus Verilog</a>
|
|
214
|
+
– version 0.8 is <em>mostly</em> acceptable—you <strong>will not</strong> be able to <a href="manual.html#background.org.vpi.util">access child handles through method calls</a>. The reason for this limitation is explained <a href="#problems.ivl.vpi_handle_by_name.absolute-paths">in the user manual</a>.</li>
|
|
144
215
|
</ul>
|
|
145
216
|
|
|
146
217
|
|
|
147
|
-
<
|
|
218
|
+
<p class="title">Compilers</p>
|
|
148
219
|
|
|
149
220
|
|
|
150
|
-
<
|
|
221
|
+
<ul>
|
|
222
|
+
<li><a href="http://en.wikipedia.org/wiki/Make">make</a>
|
|
223
|
+
– any flavor should be acceptable.</li>
|
|
224
|
+
</ul>
|
|
225
|
+
|
|
226
|
+
|
|
227
|
+
<ul>
|
|
228
|
+
<li>C compiler
|
|
229
|
+
– the <a href="http://www.gnu.org/software/gcc/" title="GCC"><span class="caps">GNU</span> Compiler Collection</a> is preferred, but any C compiler should be acceptable.</li>
|
|
230
|
+
</ul>
|
|
231
|
+
|
|
232
|
+
|
|
233
|
+
<ul>
|
|
234
|
+
<li><a href="http://www.ruby-lang.org">Ruby</a>
|
|
235
|
+
– 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.rubygarden.org/faq/section/show/3">these instructions</a>.</li>
|
|
236
|
+
</ul>
|
|
237
|
+
|
|
238
|
+
|
|
239
|
+
<p class="title">Libraries</p>
|
|
240
|
+
|
|
241
|
+
|
|
242
|
+
<ul>
|
|
243
|
+
<li><a href="http://en.wikipedia.org/wiki/Pthreads" title="pthreads"><span class="caps">POSIX</span> threads</a>
|
|
244
|
+
– header and linkable object files, and operating system support for this library are necessary.</li>
|
|
245
|
+
</ul>
|
|
246
|
+
|
|
247
|
+
|
|
248
|
+
<ul>
|
|
249
|
+
<li><a href="http://rubyforge.org/frs/?group_id=126">RubyGems</a>
|
|
250
|
+
– 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>
|
|
251
|
+
</ul>
|
|
252
|
+
|
|
253
|
+
|
|
254
|
+
<h2 ><a id="intro.applications" href="#a-606779428">1.4</a> Applications</h2>
|
|
255
|
+
|
|
256
|
+
|
|
257
|
+
<p>Examples of tasks that can be performed with Ruby-VPI are:</p>
|
|
151
258
|
|
|
152
259
|
|
|
153
260
|
<ul>
|
|
@@ -178,10 +285,10 @@
|
|
|
178
285
|
</ul>
|
|
179
286
|
|
|
180
287
|
|
|
181
|
-
<h2 id="intro.appetizers">1.
|
|
288
|
+
<h2 ><a id="intro.appetizers" href="#a-606780568">1.5</a> Appetizers</h2>
|
|
182
289
|
|
|
183
290
|
|
|
184
|
-
<p>Here is a
|
|
291
|
+
<p>Here is a tiny sampling of code to whet your appetite. See <a href="manual.html#usage.tutorial">the tutorial</a> for more samples.</p>
|
|
185
292
|
|
|
186
293
|
|
|
187
294
|
<ul>
|
|
@@ -222,5 +329,61 @@
|
|
|
222
329
|
<blockquote>
|
|
223
330
|
<p><code class="code"><span style="color:#00D; font-weight:bold">15</span>.times { simulate }</code></p>
|
|
224
331
|
</blockquote>
|
|
332
|
+
|
|
333
|
+
|
|
334
|
+
<h2 ><a id="intro.license" href="#a-606781628">1.6</a> License</h2>
|
|
335
|
+
|
|
336
|
+
|
|
337
|
+
<p>Copyright© 2006-2007 Suraj N. Kurapati</p>
|
|
338
|
+
|
|
339
|
+
|
|
340
|
+
<p>Permission is hereby granted, free of charge, to any person obtaining a
|
|
341
|
+
copy of this software and associated documentation files (the “Software”),
|
|
342
|
+
to deal in the Software without restriction, including without limitation the
|
|
343
|
+
rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
|
|
344
|
+
sell copies of the Software, and to permit persons to whom the Software is
|
|
345
|
+
furnished to do so, subject to the following conditions:</p>
|
|
346
|
+
|
|
347
|
+
|
|
348
|
+
<p>All copies and portions of the Software (together the “Derivatives”) and
|
|
349
|
+
their corresponding machine-readable source code (the “Code”) must include the
|
|
350
|
+
above copyright notice and this permission notice. The Code must reflect all
|
|
351
|
+
modifications made to the Derivatives. The Derivatives must be distributed
|
|
352
|
+
either with the Code or, if the Code is obtainable for no more than the cost
|
|
353
|
+
of distribution plus a nominal fee, with information on how to obtain the Code.</p>
|
|
354
|
+
|
|
355
|
+
|
|
356
|
+
<p><span class="caps">THE SOFTWARE IS PROVIDED</span> “AS IS”, <span class="caps">WITHOUT WARRANTY OF ANY KIND</span>, EXPRESS OR
|
|
357
|
+
<span class="caps">IMPLIED</span>, INCLUDING <span class="caps">BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY</span>,
|
|
358
|
+
<span class="caps">FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT</span>. <span class="caps">IN NO EVENT SHALL</span>
|
|
359
|
+
<span class="caps">THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM</span>, DAMAGES <span class="caps">OR OTHER</span>
|
|
360
|
+
<span class="caps">LIABILITY</span>, WHETHER <span class="caps">IN AN ACTION OF CONTRACT</span>, TORT <span class="caps">OR OTHERWISE</span>, ARISING <span class="caps">FROM</span>,
|
|
361
|
+
<span class="caps">OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN</span>
|
|
362
|
+
<span class="caps">THE SOFTWARE</span>.</p>
|
|
363
|
+
|
|
364
|
+
|
|
365
|
+
<h2 ><a id="intro.related-works" href="#a-606782898">1.7</a> Related works</h2>
|
|
366
|
+
|
|
367
|
+
|
|
368
|
+
<ul>
|
|
369
|
+
<li><a href="http://jove.sourceforge.net"><span class="caps">JOVE</span></a> is a Java interface to <span class="caps">VPI</span>.</li>
|
|
370
|
+
<li><a href="http://teal.sourceforge.net">Teal</a> is a C++ interface to <span class="caps">VPI</span>.</li>
|
|
371
|
+
<li><a href="http://embedded.eecs.berkeley.edu/Alumni/pinhong/scriptEDA/">ScriptEDA</a> is a Perl, Python, and Tcl interface to <span class="caps">VPI</span>.</li>
|
|
372
|
+
<li><a href="http://rhdl.rubyforge.org"><span class="caps">RHDL</span></a> is a hardware description and verification language based on Ruby.</li>
|
|
373
|
+
<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>
|
|
374
|
+
</ul>
|
|
375
|
+
|
|
376
|
+
|
|
377
|
+
<h3 ><a id="intro.related-works.pli" href="#a-606785918">1.7.1</a> Ye olde <span class="caps">PLI</span></h3>
|
|
378
|
+
|
|
379
|
+
|
|
380
|
+
<p>The following projects utilize the archaic <strong>tf</strong> and <strong>acc</strong> PLI interfaces, which have been officially deprecated in <span class="caps">IEEE</span> Std 1364-2005.</p>
|
|
381
|
+
|
|
382
|
+
|
|
383
|
+
<ul>
|
|
384
|
+
<li><a href="http://www.nelsim.com">ScriptSim</a> is a Perl, Python, and Tcl/Tk interface to <span class="caps">PLI</span>.</li>
|
|
385
|
+
<li><a href="http://www.veripool.com/verilog-pli.html">Verilog::Pli</a> is a Perl interface to <span class="caps">PLI</span>.</li>
|
|
386
|
+
<li><a href="http://www.time-rover.com/jpli/"><span class="caps">JPLI</span></a> is a proprietary Java interface to <span class="caps">PLI</span>.</li>
|
|
387
|
+
</ul>
|
|
225
388
|
</body>
|
|
226
389
|
</html>
|
data/doc/rss.erb
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<%
|
|
2
|
-
#
|
|
2
|
+
# NOTE: this file depends on constants defined in Rakefile
|
|
3
3
|
|
|
4
4
|
require 'history'
|
|
5
5
|
require 'date'
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
<description><%= PROJECT_DETAIL %></description>
|
|
14
14
|
<%
|
|
15
15
|
@history.each do |entry|
|
|
16
|
-
link = HISTORY_URL + '#' + entry['Version']
|
|
16
|
+
link = HISTORY_URL + '#' + entry['Version'].to_html_anchor
|
|
17
17
|
|
|
18
18
|
stamp = Time.parse entry['Date'].to_s
|
|
19
19
|
rfc822 = stamp.strftime "%a, %d %b %Y 00:00:00 %Z"
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
<title>Version <%= entry['Version'] %> released</title>
|
|
23
23
|
<link><%= link %></link>
|
|
24
24
|
<guid><%= link %></guid>
|
|
25
|
-
<description><%=ERB::Util.h
|
|
25
|
+
<description><%=ERB::Util.h entry.to_html %></description>
|
|
26
26
|
<pubDate><%= rfc822 %></pubDate>
|
|
27
27
|
</item>
|
|
28
28
|
<% end %>
|