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.
Files changed (208) hide show
  1. data/LICENSE +23 -340
  2. data/Rakefile +169 -192
  3. data/bin/generate_test.rb +26 -25
  4. data/bin/generate_test_tpl/runner.rake +4 -10
  5. data/bin/header_to_ruby.rb +3 -20
  6. data/doc/README +11 -0
  7. data/doc/Rakefile +8 -21
  8. data/doc/common.css +44 -10
  9. data/doc/common.tpl +5 -10
  10. data/doc/history.doc +8 -7
  11. data/doc/history.html +228 -560
  12. data/doc/history.rb +7 -11
  13. data/doc/{history.yml → history.yaml} +325 -128
  14. data/doc/images/{feed-icon.png → feed-icon-28x28.png} +0 -0
  15. data/doc/images/ruby/LICENSE +15 -0
  16. data/doc/images/ruby/logo-reflection.png +0 -0
  17. data/doc/images/ruby/logo-reflection.xcf +0 -0
  18. data/doc/images/ruby/logo.png +0 -0
  19. data/doc/images/{LICENSE → tango/LICENSE} +0 -0
  20. data/doc/images/{caution.png → tango/caution.png} +0 -0
  21. data/doc/images/{caution.svg → tango/caution.svg} +0 -0
  22. data/doc/images/{home.png → tango/home.png} +0 -0
  23. data/doc/images/{home.svg → tango/home.svg} +0 -0
  24. data/doc/images/{important.png → tango/important.png} +0 -0
  25. data/doc/images/{important.svg → tango/important.svg} +0 -0
  26. data/doc/images/{next.png → tango/next.png} +0 -0
  27. data/doc/images/{next.svg → tango/next.svg} +0 -0
  28. data/doc/images/{note.png → tango/note.png} +0 -0
  29. data/doc/images/{note.svg → tango/note.svg} +0 -0
  30. data/doc/images/{prev.png → tango/prev.png} +0 -0
  31. data/doc/images/{prev.svg → tango/prev.svg} +0 -0
  32. data/doc/images/{tip.png → tango/tip.png} +0 -0
  33. data/doc/images/{tip.svg → tango/tip.svg} +0 -0
  34. data/doc/images/{up.png → tango/up.png} +0 -0
  35. data/doc/images/{up.svg → tango/up.svg} +0 -0
  36. data/doc/images/{warning.png → tango/warning.png} +0 -0
  37. data/doc/images/{warning.svg → tango/warning.svg} +0 -0
  38. data/doc/intro.inc +105 -36
  39. data/doc/lib/doc_format.rb +151 -29
  40. data/doc/lib/doc_proxy.rb +28 -69
  41. data/doc/lib/erb_content.rb +10 -22
  42. data/doc/lib/erb_proxy.rb +13 -24
  43. data/doc/manual.doc +16 -60
  44. data/doc/manual.html +257 -340
  45. data/doc/memo.doc +2 -0
  46. data/doc/memo.html +11 -11
  47. data/doc/readme.doc +36 -2
  48. data/doc/readme.html +214 -51
  49. data/doc/rss.erb +3 -3
  50. data/doc/rss.xml +217 -269
  51. data/ext/Rakefile +7 -22
  52. data/ext/common.h +10 -21
  53. data/ext/extconf.rb +5 -0
  54. data/ext/main.c +2 -18
  55. data/ext/main.h +1 -16
  56. data/ext/relay.c +3 -17
  57. data/ext/relay.h +3 -17
  58. data/ext/verilog.h +6 -18
  59. data/ext/vlog.c +3 -21
  60. data/ext/vlog.h +3 -17
  61. data/lib/ruby-vpi/erb.rb +7 -20
  62. data/lib/ruby-vpi/float.rb +6 -20
  63. data/lib/ruby-vpi/integer.rb +27 -47
  64. data/lib/ruby-vpi/rake.rb +4 -19
  65. data/lib/ruby-vpi/rcov.rb +6 -21
  66. data/lib/ruby-vpi/rdoc.rb +3 -21
  67. data/lib/ruby-vpi/runner.rb +28 -29
  68. data/lib/ruby-vpi/runner_proxy.rb +5 -21
  69. data/lib/ruby-vpi/verilog_parser.rb +5 -20
  70. data/lib/ruby-vpi/vpi.rb +420 -376
  71. data/lib/ruby-vpi.rb +26 -32
  72. data/ref/c/annotated.html +1 -1
  73. data/ref/c/common_8h.html +1 -1
  74. data/ref/c/files.html +1 -1
  75. data/ref/c/functions.html +1 -1
  76. data/ref/c/functions_vars.html +1 -1
  77. data/ref/c/globals.html +1 -1
  78. data/ref/c/globals_0x63.html +1 -1
  79. data/ref/c/globals_0x65.html +1 -1
  80. data/ref/c/globals_0x66.html +1 -1
  81. data/ref/c/globals_0x6d.html +1 -1
  82. data/ref/c/globals_0x70.html +1 -1
  83. data/ref/c/globals_0x72.html +1 -1
  84. data/ref/c/globals_0x73.html +1 -1
  85. data/ref/c/globals_0x74.html +1 -1
  86. data/ref/c/globals_0x76.html +1 -1
  87. data/ref/c/globals_0x78.html +1 -1
  88. data/ref/c/globals_defs.html +1 -1
  89. data/ref/c/globals_defs_0x65.html +1 -1
  90. data/ref/c/globals_defs_0x70.html +1 -1
  91. data/ref/c/globals_defs_0x76.html +1 -1
  92. data/ref/c/globals_defs_0x78.html +1 -1
  93. data/ref/c/globals_enum.html +1 -1
  94. data/ref/c/globals_eval.html +1 -1
  95. data/ref/c/globals_func.html +1 -1
  96. data/ref/c/globals_type.html +1 -1
  97. data/ref/c/globals_vars.html +1 -1
  98. data/ref/c/index.html +1 -1
  99. data/ref/c/main_8c.html +1 -1
  100. data/ref/c/main_8h.html +1 -1
  101. data/ref/c/relay_8c.html +1 -1
  102. data/ref/c/relay_8h.html +1 -1
  103. data/ref/c/structt__cb__data.html +1 -1
  104. data/ref/c/structt__vpi__delay.html +1 -1
  105. data/ref/c/structt__vpi__error__info.html +1 -1
  106. data/ref/c/structt__vpi__strengthval.html +1 -1
  107. data/ref/c/structt__vpi__systf__data.html +1 -1
  108. data/ref/c/structt__vpi__time.html +1 -1
  109. data/ref/c/structt__vpi__value.html +1 -1
  110. data/ref/c/structt__vpi__vecval.html +1 -1
  111. data/ref/c/structt__vpi__vlog__info.html +1 -1
  112. data/ref/c/verilog_8h.html +1 -1
  113. data/ref/c/vlog_8c.html +1 -1
  114. data/ref/c/vlog_8h.html +1 -1
  115. data/ref/c/vpi__user_8h.html +1 -1
  116. data/ref/ruby/classes/ERB.html +5 -5
  117. data/ref/ruby/classes/ERB.src/{M000026.html → M000024.html} +15 -15
  118. data/ref/ruby/classes/FileUtils.html +10 -10
  119. data/ref/ruby/classes/FileUtils.src/{M000027.html → M000025.html} +4 -4
  120. data/ref/ruby/classes/FileUtils.src/{M000028.html → M000026.html} +4 -4
  121. data/ref/ruby/classes/Float.html +5 -5
  122. data/ref/ruby/classes/Float.src/{M000022.html → M000020.html} +5 -5
  123. data/ref/ruby/classes/Integer.html +20 -56
  124. data/ref/ruby/classes/Integer.src/M000008.html +11 -11
  125. data/ref/ruby/classes/Integer.src/M000009.html +4 -4
  126. data/ref/ruby/classes/Integer.src/M000010.html +4 -4
  127. data/ref/ruby/classes/Integer.src/M000011.html +4 -4
  128. data/ref/ruby/classes/Integer.src/M000012.html +4 -4
  129. data/ref/ruby/classes/Integer.src/M000013.html +4 -4
  130. data/ref/ruby/classes/Integer.src/M000016.html +12 -9
  131. data/ref/ruby/classes/Integer.src/M000017.html +18 -9
  132. data/ref/ruby/classes/Integer.src/M000018.html +12 -12
  133. data/ref/ruby/classes/Integer.src/M000019.html +17 -18
  134. data/ref/ruby/classes/RDoc.src/M000053.html +25 -25
  135. data/ref/ruby/classes/RubyVpi/Config.html +3 -3
  136. data/ref/ruby/classes/RubyVpi.html +11 -5
  137. data/ref/ruby/classes/RubyVpi.src/{M000029.html → M000027.html} +103 -101
  138. data/ref/ruby/classes/String.html +21 -15
  139. data/ref/ruby/classes/String.src/M000021.html +36 -0
  140. data/ref/ruby/classes/String.src/{M000024.html → M000022.html} +24 -24
  141. data/ref/ruby/classes/String.src/M000023.html +5 -23
  142. data/ref/ruby/classes/VerilogParser/Module/Parameter.src/M000007.html +5 -5
  143. data/ref/ruby/classes/VerilogParser/Module/Port.src/M000003.html +7 -7
  144. data/ref/ruby/classes/VerilogParser/Module/Port.src/M000004.html +4 -4
  145. data/ref/ruby/classes/VerilogParser/Module/Port.src/M000005.html +4 -4
  146. data/ref/ruby/classes/VerilogParser/Module/Port.src/M000006.html +4 -4
  147. data/ref/ruby/classes/VerilogParser/Module.src/M000002.html +20 -20
  148. data/ref/ruby/classes/VerilogParser.html +6 -0
  149. data/ref/ruby/classes/VerilogParser.src/M000001.html +20 -20
  150. data/ref/ruby/classes/Vpi/Handle.html +89 -88
  151. data/ref/ruby/classes/Vpi/Handle.src/M000036.html +18 -0
  152. data/ref/ruby/classes/Vpi/Handle.src/M000037.html +5 -5
  153. data/ref/ruby/classes/Vpi/Handle.src/M000038.html +5 -5
  154. data/ref/ruby/classes/Vpi/Handle.src/M000039.html +5 -5
  155. data/ref/ruby/classes/Vpi/Handle.src/M000040.html +8 -5
  156. data/ref/ruby/classes/Vpi/Handle.src/M000041.html +8 -8
  157. data/ref/ruby/classes/Vpi/Handle.src/M000042.html +7 -6
  158. data/ref/ruby/classes/Vpi/Handle.src/M000043.html +31 -9
  159. data/ref/ruby/classes/Vpi/Handle.src/M000044.html +74 -31
  160. data/ref/ruby/classes/Vpi/Handle.src/M000045.html +17 -74
  161. data/ref/ruby/classes/Vpi/Handle.src/M000046.html +11 -17
  162. data/ref/ruby/classes/Vpi/Handle.src/M000048.html +31 -0
  163. data/ref/ruby/classes/Vpi/Handle.src/M000049.html +53 -52
  164. data/ref/ruby/classes/Vpi/S_vpi_time.src/M000050.html +4 -4
  165. data/ref/ruby/classes/Vpi/S_vpi_time.src/M000051.html +5 -5
  166. data/ref/ruby/classes/Vpi/S_vpi_value.html +15 -15
  167. data/ref/ruby/classes/Vpi/S_vpi_value.src/{M000036.html → M000033.html} +5 -5
  168. data/ref/ruby/classes/Vpi/S_vpi_value.src/M000034.html +5 -5
  169. data/ref/ruby/classes/Vpi/S_vpi_value.src/M000035.html +5 -5
  170. data/ref/ruby/classes/Vpi.html +48 -19
  171. data/ref/ruby/classes/Vpi.src/M000028.html +28 -0
  172. data/ref/ruby/classes/Vpi.src/M000029.html +18 -0
  173. data/ref/ruby/classes/Vpi.src/M000030.html +25 -15
  174. data/ref/ruby/classes/Vpi.src/M000031.html +9 -5
  175. data/ref/ruby/classes/Vpi.src/M000032.html +9 -25
  176. data/ref/ruby/created.rid +1 -1
  177. data/ref/ruby/files/bin/generate_test_rb.html +2 -1
  178. data/ref/ruby/files/bin/header_to_ruby_rb.html +1 -1
  179. data/ref/ruby/files/lib/ruby-vpi/erb_rb.html +7 -1
  180. data/ref/ruby/files/lib/ruby-vpi/float_rb.html +7 -1
  181. data/ref/ruby/files/lib/ruby-vpi/integer_rb.html +7 -1
  182. data/ref/ruby/files/lib/ruby-vpi/rake_rb.html +7 -1
  183. data/ref/ruby/files/lib/ruby-vpi/rcov_rb.html +7 -1
  184. data/ref/ruby/files/lib/ruby-vpi/rdoc_rb.html +1 -1
  185. data/ref/ruby/files/lib/ruby-vpi/runner_proxy_rb.html +1 -1
  186. data/ref/ruby/files/lib/ruby-vpi/runner_rb.html +1 -1
  187. data/ref/ruby/files/lib/ruby-vpi/verilog_parser_rb.html +1 -1
  188. data/ref/ruby/files/lib/ruby-vpi/vpi_rb.html +1 -1
  189. data/ref/ruby/files/lib/ruby-vpi_rb.html +7 -1
  190. data/ref/ruby/fr_method_index.html +34 -34
  191. data/samp/counter/counter_rspec_runner.rake +4 -0
  192. data/samp/counter/counter_xunit_runner.rake +4 -0
  193. data/samp/pipelined_alu/Hw5UnitModel.rb +3 -19
  194. data/samp/pipelined_alu/README +38 -13
  195. data/samp/pipelined_alu/TestHw5UnitModel.rb +9 -20
  196. data/samp/pipelined_alu/hw5_unit.v +1 -16
  197. data/samp/pipelined_alu/hw5_unit_test_runner.rake +4 -0
  198. data/samp/pipelined_alu/hw5_unit_test_spec.rb +3 -20
  199. data/samp/pipelined_alu/int_gen.rb +6 -20
  200. metadata +47 -43
  201. data/doc/LICENSE +0 -397
  202. data/doc/images/feed-icon.LICENSE +0 -2
  203. data/doc/images/feed-icon.svg +0 -18
  204. data/ref/ruby/classes/Integer.src/M000020.html +0 -25
  205. data/ref/ruby/classes/Integer.src/M000021.html +0 -30
  206. data/ref/ruby/classes/String.src/M000025.html +0 -18
  207. data/ref/ruby/classes/Vpi/Handle.src/M000047.html +0 -24
  208. data/ref/ruby/classes/Vpi.src/M000033.html +0 -22
data/doc/memo.doc CHANGED
@@ -13,6 +13,8 @@ h1. Pending tasks
13
13
 
14
14
  * clean up the teriminology section... unnecessary
15
15
 
16
+ * write unit tests for the non-VPI libraries like integer.rb and float.rb
17
+
16
18
 
17
19
  h1. Finished tasks
18
20
 
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
- <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>
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="anchor1">1 &nbsp; Pending tasks</h1>
24
+ <h1><a id="Pending_tasks" href="#a-606616158">1</a> &nbsp; Pending tasks</h1>
30
25
 
31
26
 
32
27
  <ul>
@@ -59,7 +54,12 @@
59
54
  </ul>
60
55
 
61
56
 
62
- <h1 id="anchor2">2 &nbsp; Finished tasks</h1>
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> &nbsp; Finished tasks</h1>
63
63
 
64
64
 
65
65
  <ul>
@@ -127,7 +127,7 @@
127
127
  </ul>
128
128
 
129
129
 
130
- <h1 id="anchor3">3 &nbsp; Obsolete tasks</h1>
130
+ <h1><a id="Obsolete_tasks" href="#a-606619638">3</a> &nbsp; Obsolete tasks</h1>
131
131
 
132
132
 
133
133
  <ul>
data/doc/readme.doc CHANGED
@@ -1,5 +1,39 @@
1
- <% table_of_contents = false %>
1
+ <%
2
+ insert_toc = false
3
+ page_title = "Ruby-VPI: Ruby interface to Verilog VPI"
4
+ %>
2
5
 
3
- h1{margin-top: 0}. Welcome to Ruby-VPI
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>Welcome to Ruby-VPI</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
- <h1 style="margin-top: 0;" id="anchor132">1 &nbsp; Welcome to Ruby-VPI</h1>
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
- <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>
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> &nbsp; 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
- <p class="title">Documentation</p>
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><a href="manual.html#usage.tutorial">Tutorial</a>
23
- &#8211; learn how to use Ruby-VPI quickly.</li>
24
- <li><a href="manual.html">Manual</a>
25
- &#8211; complete documentation for users. <em>Start here!</em></li>
26
- <li><a href="../ref/">Reference</a>
27
- &#8211; <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> &nbsp; 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 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>
36
- &#8211; keep track of new releases at your leisure.</li>
37
- <li><a href="history.html">Release history</a>
38
- &#8211; record of all release notes.</li>
39
- <li><a href="memo.html">Memorandum</a>
72
+ <li><a href="history.html">What&#8217;s new?</a>
73
+ &#8211; a record of all release notes.</li>
74
+ <li><a href="memo.html">Plans</a>
40
75
  &#8211; pending tasks for future releases.</li>
76
+ <li><a href="http://ruby-vpi.rubyforge.org/talks/">Talks</a>
77
+ &#8211; materials from presentations and seminars.</li>
78
+ <li><a href="http://ruby-vpi.rubyforge.org/papers/">Papers</a>
79
+ &#8211; 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
+ &#8211; learn how to use Ruby-VPI quickly.</li>
89
+ <li><a href="manual.html">Manual</a>
90
+ &#8211; complete documentation for users. <em>Start here!</em></li>
91
+ <li><a href="../ref/">Reference</a>
92
+ &#8211; <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/projects/ruby-vpi">Project portal</a>
49
- &#8211; 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
- &#8211; 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
  &#8211; obtain release packages.</li>
102
+ <li><a href="http://ruby-vpi.rubyforge.org/src/ruby-vpi">Source code</a>
103
+ &#8211; 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
+ &#8211; discuss things and ask questions.</li>
54
106
  <li><a href="http://rubyforge.org/tracker/?group_id=1339">Bugs</a>
55
107
  &#8211; report defects in the software.</li>
56
108
  <li><a href="http://rubyforge.org/tracker/?group_id=1339">Patches</a>
57
109
  &#8211; submit patches to source code.</li>
58
110
  <li><a href="http://rubyforge.org/tracker/?group_id=1339">Requests</a>
59
111
  &#8211; request new features or get support.</li>
60
- <li><a href="http://rubyforge.org/forum/?group_id=1339">Forums</a>
61
- &#8211; discuss things and ask questions.</li>
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
- &#8211; see what&#8217;s cooking for the next release.</li>
71
- <li><a href="http://ruby-vpi.rubyforge.org/talks">Talks</a>
72
- &#8211; materials from presentations and seminars.</li>
112
+ <li><a href="http://rubyforge.org/projects/ruby-vpi">Project portal</a>
113
+ &#8211; hosted generously by <a href="http://rubyforge.org">RubyForge</a>.</li>
73
114
  </ul>
74
115
 
75
116
 
76
- <h2 id="intro.features">1.1 &nbsp; Prominent features</h2>
77
-
117
+ </div>
78
118
 
79
- <h3 id="anchor133">1.1.1 &nbsp; Portable</h3>
119
+ <h2 ><a id="intro.features" href="#a-606777368">1.2</a> &nbsp; Features</h2>
80
120
 
81
121
 
82
- <ul>
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>Works with all <a href="manual.html#setup.reqs">major Verilog simulators</a> available today.
89
- <ul>
90
- <li>Compiled <em>just once</em> during <a href="manual.html#setup.installation">installation</a> and used forever!</li>
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
- <h3 id="anchor134">1.1.2 &nbsp; Agile</h3>
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
- <h3 id="anchor135">1.1.3 &nbsp; Powerful</h3>
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
- <h3 id="anchor136">1.1.4 &nbsp; Free</h3>
176
+ <h2 ><a id="intro.reqs" href="#a-606778438">1.3</a> &nbsp; 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
+ &#8211; 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
+ &#8211; 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
+ &#8211; 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
+ &#8211; version 2.11a or newer is acceptable.</li>
209
+ </ul>
140
210
 
141
211
 
142
212
  <ul>
143
- <li>Gives you the <em>freedom</em> to study, modify, and distribute this software, in accordance with the <a href="http://www.gnu.org/copyleft/gpl.html"><span class="caps">GNU</span> General Public License</a>.</li>
213
+ <li><a href="http://www.icarus.com/eda/Verilog/">Icarus Verilog</a>
214
+ &#8211; version 0.8 is <em>mostly</em> acceptable&#8212;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
- <h2 id="intro.applications">1.2 &nbsp; Applications</h2>
218
+ <p class="title">Compilers</p>
148
219
 
149
220
 
150
- <p>Here is a modest sampling of tasks that Ruby-VPI can be used to perform.</p>
221
+ <ul>
222
+ <li><a href="http://en.wikipedia.org/wiki/Make">make</a>
223
+ &#8211; any flavor should be acceptable.</li>
224
+ </ul>
225
+
226
+
227
+ <ul>
228
+ <li>C compiler
229
+ &#8211; 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
+ &#8211; version 1.8 or newer, including header and linkable object files for building extensions, is necessary. You can install Ruby by following <a href="http://www.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
+ &#8211; 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
+ &#8211; any recent version should be acceptable. You can install RubyGems by following <a href="http://www.rubygems.org/read/chapter/3">these instructions</a>.</li>
251
+ </ul>
252
+
253
+
254
+ <h2 ><a id="intro.applications" href="#a-606779428">1.4</a> &nbsp; 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.3 &nbsp; Appetizers</h2>
288
+ <h2 ><a id="intro.appetizers" href="#a-606780568">1.5</a> &nbsp; Appetizers</h2>
182
289
 
183
290
 
184
- <p>Here is a modest sampling of code to whet your appetite.</p>
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> &nbsp; License</h2>
335
+
336
+
337
+ <p>Copyright&#169; 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 &#8220;Software&#8221;),
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 &#8220;Derivatives&#8221;) and
349
+ their corresponding machine-readable source code (the &#8220;Code&#8221;) 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> &#8220;AS IS&#8221;, <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> &nbsp; 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> &nbsp; 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
- # note: this file depends on constants defined in Rakefile
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 format_history_entry(entry).to_html %></description>
25
+ <description><%=ERB::Util.h entry.to_html %></description>
26
26
  <pubDate><%= rfc822 %></pubDate>
27
27
  </item>
28
28
  <% end %>