ruby-vpi 16.0.1 → 17.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 (247) hide show
  1. data/LICENSE +19 -19
  2. data/README +1 -1
  3. data/Rakefile +35 -32
  4. data/bin/convert.rb +28 -0
  5. data/bin/generate/design.rb +16 -0
  6. data/bin/generate/proto.rb +13 -0
  7. data/bin/generate/runner.rake +33 -0
  8. data/bin/generate/spec.rb +45 -0
  9. data/bin/generate.rb +177 -0
  10. data/bin/ruby-vpi +56 -0
  11. data/doc/Rakefile +20 -4
  12. data/doc/common.css +92 -33
  13. data/doc/common.inc +13 -0
  14. data/doc/common.tpl +42 -28
  15. data/doc/history.doc +11 -11
  16. data/doc/history.html +769 -248
  17. data/doc/history.inc +909 -0
  18. data/doc/history.rb +9 -0
  19. data/doc/history.yaml +69 -0
  20. data/doc/intro.inc +170 -178
  21. data/doc/lib/doc_format.rb +57 -144
  22. data/doc/lib/doc_proxy.rb +504 -88
  23. data/doc/lib/erb_content.rb +8 -8
  24. data/doc/lib/erb_proxy.rb +17 -17
  25. data/doc/manual.doc +626 -777
  26. data/doc/manual.html +1541 -1031
  27. data/doc/memo.doc +38 -36
  28. data/doc/memo.html +64 -28
  29. data/doc/readme.doc +4 -31
  30. data/doc/readme.html +221 -163
  31. data/doc/rss.erb +1 -1
  32. data/doc/rss.xml +73 -1761
  33. data/ext/Rakefile +6 -5
  34. data/ext/main.c +17 -15
  35. data/ext/relay.c +4 -7
  36. data/ext/relay.h +2 -2
  37. data/ext/swig_vpi.h +2 -2
  38. data/ext/swig_vpi.i +1 -2
  39. data/ext/swig_wrap.cin +12 -16
  40. data/ext/vlog.c +5 -5
  41. data/ext/vlog.h +2 -2
  42. data/lib/ruby-vpi/erb.rb +3 -3
  43. data/lib/ruby-vpi/float.rb +2 -2
  44. data/lib/ruby-vpi/rcov.rb +5 -7
  45. data/lib/ruby-vpi/runner.rb +43 -41
  46. data/lib/ruby-vpi/runner_boot_loader.rb +117 -0
  47. data/lib/ruby-vpi/runner_proxy.rb +6 -8
  48. data/lib/ruby-vpi/util.rb +10 -0
  49. data/lib/ruby-vpi/verilog_parser.rb +28 -56
  50. data/lib/ruby-vpi/vpi.rb +168 -123
  51. data/lib/ruby-vpi.rb +22 -143
  52. data/ref/c/annotated.html +1 -1
  53. data/ref/c/common_8h.html +1 -1
  54. data/ref/c/files.html +1 -1
  55. data/ref/c/functions.html +1 -1
  56. data/ref/c/functions_vars.html +1 -1
  57. data/ref/c/globals.html +1 -1
  58. data/ref/c/globals_0x63.html +1 -1
  59. data/ref/c/globals_0x65.html +1 -1
  60. data/ref/c/globals_0x66.html +1 -1
  61. data/ref/c/globals_0x6d.html +1 -1
  62. data/ref/c/globals_0x70.html +1 -1
  63. data/ref/c/globals_0x72.html +1 -1
  64. data/ref/c/globals_0x73.html +1 -1
  65. data/ref/c/globals_0x74.html +1 -1
  66. data/ref/c/globals_0x76.html +1 -1
  67. data/ref/c/globals_0x78.html +1 -1
  68. data/ref/c/globals_defs.html +1 -1
  69. data/ref/c/globals_defs_0x65.html +1 -1
  70. data/ref/c/globals_defs_0x70.html +1 -1
  71. data/ref/c/globals_defs_0x76.html +1 -1
  72. data/ref/c/globals_defs_0x78.html +1 -1
  73. data/ref/c/globals_enum.html +1 -1
  74. data/ref/c/globals_eval.html +1 -1
  75. data/ref/c/globals_func.html +1 -1
  76. data/ref/c/globals_type.html +1 -1
  77. data/ref/c/globals_vars.html +1 -1
  78. data/ref/c/index.html +1 -1
  79. data/ref/c/main_8c.html +1 -1
  80. data/ref/c/main_8h.html +1 -1
  81. data/ref/c/relay_8c.html +1 -1
  82. data/ref/c/relay_8h.html +1 -1
  83. data/ref/c/structt__cb__data.html +1 -1
  84. data/ref/c/structt__vpi__delay.html +1 -1
  85. data/ref/c/structt__vpi__error__info.html +1 -1
  86. data/ref/c/structt__vpi__strengthval.html +1 -1
  87. data/ref/c/structt__vpi__systf__data.html +1 -1
  88. data/ref/c/structt__vpi__time.html +1 -1
  89. data/ref/c/structt__vpi__value.html +1 -1
  90. data/ref/c/structt__vpi__vecval.html +1 -1
  91. data/ref/c/structt__vpi__vlog__info.html +1 -1
  92. data/ref/c/verilog_8h.html +1 -1
  93. data/ref/c/vlog_8c.html +1 -1
  94. data/ref/c/vlog_8h.html +1 -1
  95. data/ref/c/vpi__user_8h.html +1 -1
  96. data/ref/ruby/classes/ERB.html +5 -5
  97. data/ref/ruby/classes/ERB.src/{M000024.html → M000026.html} +0 -0
  98. data/ref/ruby/classes/FileUtils.html +11 -11
  99. data/ref/ruby/classes/FileUtils.src/{M000025.html → M000027.html} +0 -0
  100. data/ref/ruby/classes/FileUtils.src/{M000026.html → M000028.html} +0 -0
  101. data/ref/ruby/classes/Float.html +6 -6
  102. data/ref/ruby/classes/Float.src/{M000020.html → M000021.html} +0 -0
  103. data/ref/ruby/classes/Integer.html +65 -65
  104. data/ref/ruby/classes/Integer.src/M000009.html +12 -5
  105. data/ref/ruby/classes/Integer.src/M000010.html +5 -5
  106. data/ref/ruby/classes/Integer.src/M000011.html +5 -5
  107. data/ref/ruby/classes/Integer.src/M000012.html +5 -5
  108. data/ref/ruby/classes/Integer.src/M000013.html +5 -5
  109. data/ref/ruby/classes/Integer.src/M000014.html +18 -0
  110. data/ref/ruby/classes/Integer.src/M000017.html +12 -18
  111. data/ref/ruby/classes/Integer.src/M000018.html +18 -12
  112. data/ref/ruby/classes/Integer.src/M000019.html +12 -17
  113. data/ref/ruby/classes/Integer.src/M000020.html +30 -0
  114. data/ref/ruby/classes/RDoc.html +5 -5
  115. data/ref/ruby/classes/RDoc.src/{M000053.html → M000058.html} +0 -0
  116. data/ref/ruby/classes/{RubyVpi/Config.html → RubyVPI.html} +20 -6
  117. data/ref/ruby/classes/String.html +34 -15
  118. data/ref/ruby/classes/String.src/M000022.html +5 -28
  119. data/ref/ruby/classes/String.src/M000023.html +5 -5
  120. data/ref/ruby/classes/String.src/{M000021.html → M000024.html} +0 -0
  121. data/ref/ruby/classes/String.src/M000025.html +41 -0
  122. data/ref/ruby/classes/VerilogParser/Module/Port.html +16 -36
  123. data/ref/ruby/classes/VerilogParser/Module/Port.src/M000006.html +10 -5
  124. data/ref/ruby/classes/VerilogParser/Module/Port.src/{M000004.html → M000007.html} +4 -4
  125. data/ref/ruby/classes/VerilogParser/Module/Port.src/{M000005.html → M000008.html} +4 -4
  126. data/ref/ruby/classes/VerilogParser/Module.html +28 -9
  127. data/ref/ruby/classes/VerilogParser/Module.src/M000005.html +29 -0
  128. data/ref/ruby/classes/VerilogParser.html +5 -39
  129. data/ref/ruby/classes/VerilogParser.src/M000004.html +26 -0
  130. data/ref/ruby/classes/Vpi/Handle.html +179 -77
  131. data/ref/ruby/classes/Vpi/Handle.src/M000035.html +18 -0
  132. data/ref/ruby/classes/Vpi/Handle.src/M000036.html +5 -5
  133. data/ref/ruby/classes/Vpi/Handle.src/M000037.html +5 -5
  134. data/ref/ruby/classes/Vpi/Handle.src/M000038.html +5 -5
  135. data/ref/ruby/classes/Vpi/Handle.src/M000039.html +5 -5
  136. data/ref/ruby/classes/Vpi/Handle.src/M000040.html +5 -8
  137. data/ref/ruby/classes/Vpi/Handle.src/M000041.html +5 -8
  138. data/ref/ruby/classes/Vpi/Handle.src/M000042.html +5 -9
  139. data/ref/ruby/classes/Vpi/Handle.src/M000043.html +8 -31
  140. data/ref/ruby/classes/Vpi/Handle.src/M000044.html +8 -74
  141. data/ref/ruby/classes/Vpi/Handle.src/M000045.html +9 -17
  142. data/ref/ruby/classes/Vpi/Handle.src/M000046.html +31 -11
  143. data/ref/ruby/classes/Vpi/Handle.src/M000047.html +86 -0
  144. data/ref/ruby/classes/Vpi/Handle.src/M000048.html +17 -18
  145. data/ref/ruby/classes/Vpi/Handle.src/M000050.html +18 -0
  146. data/ref/ruby/classes/Vpi/Handle.src/M000051.html +24 -0
  147. data/ref/ruby/classes/Vpi/Handle.src/M000053.html +31 -0
  148. data/ref/ruby/classes/Vpi/Handle.src/M000054.html +89 -0
  149. data/ref/ruby/classes/Vpi/S_vpi_time.html +16 -16
  150. data/ref/ruby/classes/Vpi/S_vpi_time.src/{M000050.html → M000055.html} +4 -4
  151. data/ref/ruby/classes/Vpi/S_vpi_time.src/{M000051.html → M000056.html} +5 -5
  152. data/ref/ruby/classes/Vpi/S_vpi_value.html +15 -15
  153. data/ref/ruby/classes/Vpi/S_vpi_value.src/{M000035.html → M000032.html} +5 -5
  154. data/ref/ruby/classes/Vpi/S_vpi_value.src/M000033.html +5 -5
  155. data/ref/ruby/classes/Vpi/S_vpi_value.src/M000034.html +5 -5
  156. data/ref/ruby/classes/Vpi.html +6 -42
  157. data/ref/ruby/classes/Vpi.src/M000029.html +15 -5
  158. data/ref/ruby/classes/Vpi.src/M000030.html +24 -24
  159. data/ref/ruby/classes/Vpi.src/M000031.html +6 -8
  160. data/ref/ruby/created.rid +1 -1
  161. data/ref/ruby/files/bin/{header_to_ruby_rb.html → convert_rb.html} +5 -5
  162. data/ref/ruby/files/bin/{generate_test_rb.html → generate_rb.html} +8 -21
  163. data/ref/ruby/files/lib/ruby-vpi/erb_rb.html +1 -1
  164. data/ref/ruby/files/lib/ruby-vpi/float_rb.html +1 -1
  165. data/ref/ruby/files/lib/ruby-vpi/integer_rb.html +1 -1
  166. data/ref/ruby/files/lib/ruby-vpi/rake_rb.html +1 -1
  167. data/ref/ruby/files/lib/ruby-vpi/rcov_rb.html +1 -1
  168. data/ref/ruby/files/lib/ruby-vpi/rdoc_rb.html +1 -1
  169. data/ref/ruby/files/lib/ruby-vpi/runner_boot_loader_rb.html +197 -0
  170. data/ref/ruby/files/lib/ruby-vpi/runner_boot_loader_rb.src/M000001.html +17 -0
  171. data/ref/ruby/files/lib/ruby-vpi/runner_boot_loader_rb.src/M000002.html +18 -0
  172. data/ref/ruby/files/lib/ruby-vpi/runner_proxy_rb.html +1 -1
  173. data/ref/ruby/files/lib/ruby-vpi/runner_rb.html +6 -19
  174. data/ref/ruby/files/lib/ruby-vpi/util_rb.html +101 -0
  175. data/ref/ruby/files/lib/ruby-vpi/verilog_parser_rb.html +8 -1
  176. data/ref/ruby/files/lib/ruby-vpi/vpi_rb.html +1 -1
  177. data/ref/ruby/files/lib/ruby-vpi_rb.html +2 -14
  178. data/ref/ruby/fr_class_index.html +1 -3
  179. data/ref/ruby/fr_file_index.html +4 -2
  180. data/ref/ruby/fr_method_index.html +56 -51
  181. data/ref/ruby/index.html +1 -1
  182. data/samp/counter/RSpec/Rakefile +1 -0
  183. data/samp/counter/RSpec/counter_design.rb +15 -0
  184. data/samp/counter/RSpec/counter_proto.rb +10 -0
  185. data/samp/counter/RSpec/counter_runner.rake +44 -0
  186. data/samp/counter/RSpec/counter_spec.rb +39 -0
  187. data/samp/counter/Rakefile +1 -1
  188. data/samp/counter/counter.v +7 -7
  189. data/samp/counter/xUnit/Rakefile +1 -0
  190. data/samp/counter/xUnit/counter_bench.rb +95 -0
  191. data/samp/counter/{counter_xunit_bench.v → xUnit/counter_bench.v} +0 -0
  192. data/samp/counter/xUnit/counter_design.rb +15 -0
  193. data/samp/counter/xUnit/counter_proto.rb +10 -0
  194. data/samp/counter/xUnit/counter_runner.rake +44 -0
  195. data/samp/counter/{counter_xunit_spec.rb → xUnit/counter_spec.rb} +9 -9
  196. data/samp/pipelined_alu/Rakefile +1 -1
  197. data/samp/pipelined_alu/TestHw5UnitModel.rb +4 -5
  198. data/samp/pipelined_alu/hw5_unit.v +55 -85
  199. data/samp/pipelined_alu/hw5_unit_design.rb +51 -0
  200. data/samp/pipelined_alu/hw5_unit_proto.rb +4 -0
  201. data/samp/pipelined_alu/hw5_unit_runner.rake +43 -0
  202. data/samp/pipelined_alu/hw5_unit_spec.rb +64 -0
  203. data/samp/register_file/LICENSE +20 -0
  204. data/samp/register_file/README +4 -0
  205. data/samp/register_file/Rakefile +1 -0
  206. data/samp/register_file/register_file.v +18 -0
  207. data/samp/register_file/register_file_design.rb +11 -0
  208. data/samp/register_file/register_file_proto.rb +11 -0
  209. data/samp/register_file/register_file_runner.rake +43 -0
  210. data/samp/register_file/register_file_spec.rb +58 -0
  211. metadata +78 -66
  212. data/bin/generate_test.rb +0 -200
  213. data/bin/generate_test_tpl/bench.rb +0 -89
  214. data/bin/generate_test_tpl/bench.v +0 -26
  215. data/bin/generate_test_tpl/design.rb +0 -11
  216. data/bin/generate_test_tpl/proto.rb +0 -16
  217. data/bin/generate_test_tpl/runner.rake +0 -42
  218. data/bin/generate_test_tpl/spec.rb +0 -37
  219. data/bin/header_to_ruby.rb +0 -27
  220. data/ref/ruby/classes/Integer.src/M000008.html +0 -25
  221. data/ref/ruby/classes/Integer.src/M000016.html +0 -25
  222. data/ref/ruby/classes/RubyVpi.html +0 -199
  223. data/ref/ruby/classes/RubyVpi.src/M000027.html +0 -121
  224. data/ref/ruby/classes/VerilogParser/Module/Parameter.html +0 -160
  225. data/ref/ruby/classes/VerilogParser/Module/Parameter.src/M000007.html +0 -19
  226. data/ref/ruby/classes/VerilogParser/Module/Port.src/M000003.html +0 -21
  227. data/ref/ruby/classes/VerilogParser/Module.src/M000002.html +0 -34
  228. data/ref/ruby/classes/VerilogParser.src/M000001.html +0 -34
  229. data/ref/ruby/classes/Vpi/Handle.src/M000049.html +0 -69
  230. data/ref/ruby/classes/Vpi.src/M000028.html +0 -28
  231. data/ref/ruby/classes/Vpi.src/M000032.html +0 -22
  232. data/samp/counter/counter_rspec_bench.rb +0 -86
  233. data/samp/counter/counter_rspec_bench.v +0 -9
  234. data/samp/counter/counter_rspec_design.rb +0 -8
  235. data/samp/counter/counter_rspec_proto.rb +0 -13
  236. data/samp/counter/counter_rspec_runner.rake +0 -52
  237. data/samp/counter/counter_rspec_spec.rb +0 -39
  238. data/samp/counter/counter_xunit_bench.rb +0 -86
  239. data/samp/counter/counter_xunit_design.rb +0 -8
  240. data/samp/counter/counter_xunit_proto.rb +0 -13
  241. data/samp/counter/counter_xunit_runner.rake +0 -52
  242. data/samp/pipelined_alu/hw5_unit_test_bench.rb +0 -86
  243. data/samp/pipelined_alu/hw5_unit_test_bench.v +0 -14
  244. data/samp/pipelined_alu/hw5_unit_test_design.rb +0 -61
  245. data/samp/pipelined_alu/hw5_unit_test_proto.rb +0 -7
  246. data/samp/pipelined_alu/hw5_unit_test_runner.rake +0 -52
  247. data/samp/pipelined_alu/hw5_unit_test_spec.rb +0 -68
data/doc/readme.html CHANGED
@@ -8,37 +8,9 @@
8
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
- }
16
-
17
- #resources {
18
- position: absolute;
19
- left: 0;
20
- top: 0;
21
- width: 200px;
22
- padding: 1em;
23
-
24
- border: thin solid red;
25
- border-left: none;
26
- border-top: none;
27
- background-color: snow;
28
- }
29
-
30
- #resources li {
31
- margin-top: 1em;
32
- margin-left: -1em;
33
- }
34
-
35
- #resources h2 {
36
- display: none;
37
- }
38
- </style>
39
-
40
- <h1 style="margin-top: 0;"><a id="Ruby-VPI" href="#a-607628178">1</a> &nbsp; Ruby-VPI</h1>
41
-
11
+
12
+ <div id="body"><div style="float: right">Version 17.0.0</div>
13
+ <h1 style="padding-top: 0">Ruby-VPI</h1>
42
14
 
43
15
  <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>
44
16
 
@@ -47,58 +19,70 @@
47
19
 
48
20
 
49
21
  <ul>
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>
22
+ <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 VPI</a> interface from Ruby.</li>
51
23
  <li>Create complex Verilog test benches easily and wholly in Ruby.</li>
52
24
  <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>
25
+ <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">PDF version</a>).</li>
54
26
  </ul>
55
27
 
56
28
 
57
29
  <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
30
 
59
31
 
60
- <div id="resources">
61
-
62
- <h2><a id="Resources" href="#a-607629158">1.1</a> &nbsp; Resources</h2>
32
+ <p>
33
+ <hr style="display: none"/>
63
34
 
35
+ <div id="resources" class="section">
36
+ <h1 class="title">
37
+ <a href="#a-607522818">1</a>
64
38
 
65
- <p class="title">Records</p>
39
+ &nbsp;
66
40
 
41
+ Resources
42
+ </h1>
67
43
 
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>
44
+
45
+ <div id="Records" class="paragraph">
46
+ <p class="title">Records</p>
47
+ <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>
69
48
 
70
49
 
71
50
  <ul>
72
- <li><a href="history.html">What&#8217;s new?</a>
73
- &#8211; a record of all release notes.</li>
51
+ <li><a href="history.html">What&#8217;s new</a>
52
+ &#8211; a history of all release notes.</li>
74
53
  <li><a href="memo.html">Plans</a>
75
54
  &#8211; pending tasks for future releases.</li>
76
55
  <li><a href="http://ruby-vpi.rubyforge.org/talks/">Talks</a>
77
56
  &#8211; materials from presentations and seminars.</li>
78
57
  <li><a href="http://ruby-vpi.rubyforge.org/papers/">Papers</a>
79
58
  &#8211; research publications.</li>
59
+ <li><a href="http://ruby-vpi.rubyforge.org/papers/masters_thesis.html#tth_sEc5.2">Motivation</a>
60
+ &#8211; why does Ruby-VPI exist?</li>
80
61
  </ul>
62
+ </div>
63
+
81
64
 
82
-
83
- <p class="title">Documentation</p>
84
-
85
-
65
+ <div id="Documentation" class="paragraph">
66
+ <p class="title">Documentation</p>
67
+ <ul>
68
+ <li><a href="manual.html">User manual</a>
69
+ &#8211; complete documentation for users. <em>Start here!</em>
86
70
  <ul>
87
71
  <li><a href="manual.html#usage.tutorial">Tutorial</a>
88
72
  &#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>
73
+ </ul>
74
+ </li>
91
75
  <li><a href="../ref/">Reference</a>
92
- &#8211; <span class="caps">API</span> documentation for Ruby libraries and C extension.</li>
76
+ &#8211; API documentation for Ruby libraries and C extension.</li>
93
77
  </ul>
78
+ </div>
79
+
94
80
 
95
-
96
- <p class="title">Facilities</p>
97
-
98
-
99
- <ul>
81
+ <div id="Facilities" class="paragraph">
82
+ <p class="title">Facilities</p>
83
+ <ul>
100
84
  <li><a href="http://rubyforge.org/frs/?group_id=1339">Downloads</a>
101
- &#8211; obtain release packages.</li>
85
+ &#8211; obtain release packages</li>
102
86
  <li><a href="http://ruby-vpi.rubyforge.org/src/ruby-vpi">Source code</a>
103
87
  &#8211; browse online or obtain with <a href="http://darcs.net">Darcs</a>.</li>
104
88
  <li><a href="http://rubyforge.org/forum/?group_id=1339">Forums</a>
@@ -112,27 +96,39 @@
112
96
  <li><a href="http://rubyforge.org/projects/ruby-vpi">Project portal</a>
113
97
  &#8211; hosted generously by <a href="http://rubyforge.org">RubyForge</a>.</li>
114
98
  </ul>
99
+ </div>
100
+
115
101
 
102
+ </div>
103
+ </p>
116
104
 
117
- </div>
118
105
 
119
- <h2 ><a id="intro.features" href="#a-607630098">1.2</a> &nbsp; Features</h2>
106
+ <p>
107
+ <hr style="display: none"/>
120
108
 
109
+ <div id="intro.features" class="section">
110
+ <h1 class="title">
111
+ <a href="#a-607537108">2</a>
121
112
 
122
- <p class="title">Portable</p>
113
+ &nbsp;
123
114
 
115
+ Features
116
+ </h1>
124
117
 
125
- <ul>
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>
118
+
119
+ <div id="Portable" class="paragraph">
120
+ <p class="title">Portable</p>
121
+ <ul>
122
+ <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>
127
123
  <li>Works with all <a href="#intro.reqs">major Verilog simulators</a> available today.</li>
128
124
  <li>Compiled <em>just once</em> during <a href="manual.html#setup.installation">installation</a> and used forever!</li>
129
125
  </ul>
126
+ </div>
127
+
130
128
 
131
-
132
- <p class="title">Agile</p>
133
-
134
-
135
- <ul>
129
+ <div id="Agile" class="paragraph">
130
+ <p class="title">Agile</p>
131
+ <ul>
136
132
  <li>Enables <a href="http://agilemanifesto.org/">agile practices</a> such as
137
133
  <ul>
138
134
  <li><a href="http://www.testdriven.com">test-driven</a> development</li>
@@ -150,12 +146,12 @@
150
146
  <li>There is absolutely <em>no compiling</em>!</li>
151
147
  </ul></li>
152
148
  </ul>
149
+ </div>
150
+
153
151
 
154
-
155
- <p class="title">Powerful</p>
156
-
157
-
158
- <ul>
152
+ <div id="Powerful" class="paragraph">
153
+ <p class="title">Powerful</p>
154
+ <ul>
159
155
  <li>Inherits the <a href="http://www.ruby-lang.org/en/about/">power and elegance</a> of Ruby:
160
156
  <ul>
161
157
  <li>Unlimited length integers</li>
@@ -171,94 +167,94 @@
171
167
  <li>Uses <a href="http://rubyforge.org/projects/ruby-debug/">ruby-debug</a> for <a href="manual.html#usage.debugger">interactive debugging</a>.</li>
172
168
  <li>Uses <a href="http://eigenclass.org/hiki.rb?rcov">rcov</a> for test <a href="manual.html#usage.test-runner.env-vars">coverage analysis and report generation</a>.</li>
173
169
  </ul>
170
+ </div>
171
+
174
172
 
173
+ </div>
174
+ </p>
175
175
 
176
- <h2 ><a id="intro.reqs" href="#a-607631128">1.3</a> &nbsp; Requirements</h2>
177
176
 
177
+ <p>
178
+ <hr style="display: none"/>
178
179
 
179
- <p>The following software is necessary in order to use Ruby-VPI.</p>
180
+ <div id="intro.reqs" class="section">
181
+ <h1 class="title">
182
+ <a href="#a-607549738">3</a>
180
183
 
184
+ &nbsp;
181
185
 
182
- <p class="title">Verilog simulator</p>
186
+ Requirements
187
+ </h1>
183
188
 
189
+ <p>The following software is necessary in order to use Ruby-VPI.</p>
184
190
 
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
191
 
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
+ <p>
193
+ <div id="Verilog_simulator" class="paragraph">
194
+ <p class="title">Verilog simulator</p>
195
+ Ruby-VPI is known to work with the following simulators. However, you should be able to use it with any Verilog simulator that supports VPI.
192
196
 
193
197
 
194
198
  <ul>
195
- <li><a href="http://www.model.com">Mentor Modelsim</a>
199
+ <li><a href="http://www.synopsys.com/products/simulation/simulation.html">Synopsys VCS</a>
200
+ &#8211; any version that supports the <tt>-load</tt> option is acceptable.</li>
201
+ <li><a href="http://www.model.com">Mentor Modelsim</a>
196
202
  &#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>
203
+ <li><a href="http://www.cadence.com/products/functional_ver/nc-verilog/">Cadence NC-Sim / NC-Verilog</a>
202
204
  &#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>
205
+ <li><a href="http://www.pragmatic-c.com/gpl-cver/">GPL Cver</a>
208
206
  &#8211; version 2.11a or newer is acceptable.</li>
207
+ <li><a href="http://www.icarus.com/eda/Verilog/">Icarus Verilog</a>
208
+ &#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="manual.html#problems.ivl.vpi_handle_by_name.absolute-paths">in the user manual</a>.</li>
209
209
  </ul>
210
+ </div>
211
+
210
212
 
211
-
212
- <ul>
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>
215
- </ul>
216
-
217
-
218
- <p class="title">Compilers</p>
219
-
220
-
221
- <ul>
213
+ <div id="Compilers" class="paragraph">
214
+ <p class="title">Compilers</p>
215
+ <ul>
222
216
  <li><a href="http://en.wikipedia.org/wiki/Make">make</a>
223
217
  &#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>
218
+ <li>C compiler
219
+ &#8211; the <a href="http://www.gnu.org/software/gcc/" title="GCC">GNU Compiler Collection</a> is preferred, but any C compiler should be acceptable.</li>
220
+ <li><a href="http://www.ruby-lang.org">Ruby</a>
235
221
  &#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
222
  </ul>
223
+ </div>
224
+
237
225
 
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>
226
+ <div id="Libraries" class="paragraph">
227
+ <p class="title">Libraries</p>
228
+ <ul>
229
+ <li><a href="http://en.wikipedia.org/wiki/Pthreads" title="pthreads">POSIX threads</a>
244
230
  &#8211; header and linkable object files, and operating system support for this library are necessary.</li>
231
+ <li><a href="http://rubyforge.org/frs/?group_id=126">RubyGems</a>
232
+ &#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>
245
233
  </ul>
234
+ </div>
235
+ </p>
246
236
 
237
+ </div>
238
+ </p>
247
239
 
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
240
 
241
+ <p>
242
+ <hr style="display: none"/>
243
+
244
+ <div id="intro.applications" class="section">
245
+ <h1 class="title">
246
+ <a href="#a-607552458">4</a>
253
247
 
254
- <h2 ><a id="intro.applications" href="#a-607632078">1.4</a> &nbsp; Applications</h2>
248
+ &nbsp;
255
249
 
250
+ Applications
251
+ </h1>
256
252
 
257
- <p>Examples of tasks that can be performed with Ruby-VPI are:</p>
253
+ Examples of tasks that can be performed with Ruby-VPI are:
258
254
 
259
255
 
260
256
  <ul>
261
- <li>From the second edition of <a href="http://www.sutherland-hdl.com/publications.html"><em>The Verilog <span class="caps">PLI</span> Handbook</em></a>:
257
+ <li>From the second edition of <a href="http://www.sutherland-hdl.com/publications.html"><em>The Verilog PLI Handbook</em></a>:
262
258
  <ul>
263
259
  <li>C language bus-functional models</li>
264
260
  <li>Reading test vector files</li>
@@ -284,11 +280,23 @@
284
280
  </ul></li>
285
281
  </ul>
286
282
 
283
+ </div>
284
+ </p>
287
285
 
288
- <h2 ><a id="intro.appetizers" href="#a-607633188">1.5</a> &nbsp; Appetizers</h2>
289
286
 
287
+ <p>
288
+ <hr style="display: none"/>
290
289
 
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>
290
+ <div id="intro.appetizers" class="section">
291
+ <h1 class="title">
292
+ <a href="#a-607555198">5</a>
293
+
294
+ &nbsp;
295
+
296
+ Appetizers
297
+ </h1>
298
+
299
+ <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>
292
300
 
293
301
 
294
302
  <ul>
@@ -297,7 +305,7 @@
297
305
 
298
306
 
299
307
  <blockquote>
300
- <p><code class="code">some_register.intVal = <span style="color:#00D; font-weight:bold">2</span> ** <span style="color:#00D; font-weight:bold">2048</span></code></p>
308
+ <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>
301
309
  </blockquote>
302
310
 
303
311
 
@@ -307,7 +315,7 @@
307
315
 
308
316
 
309
317
  <blockquote>
310
- <p><code class="code">some_module.all_net? { |net| net.z? }</code></p>
318
+ <p><code class="code">your_module.all_net? { |net| net.z? }</code></p>
311
319
  </blockquote>
312
320
 
313
321
 
@@ -317,73 +325,123 @@
317
325
 
318
326
 
319
327
  <blockquote>
320
- <p><code class="code">puts some_register</code></p>
328
+ <p><code class="code">puts your_register</code></p>
321
329
  </blockquote>
322
330
 
323
331
 
324
332
  <ul>
325
- <li>Simulate fifteen clock cycles:</li>
333
+ <li>Access the first five elements in a memory:</li>
326
334
  </ul>
327
335
 
328
336
 
329
337
  <blockquote>
330
- <p><code class="code"><span style="color:#00D; font-weight:bold">15</span>.times { simulate }</code></p>
338
+ <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>
331
339
  </blockquote>
332
340
 
333
341
 
334
- <h2 ><a id="intro.license" href="#a-607634248">1.6</a> &nbsp; License</h2>
342
+ <ul>
343
+ <li>Clear a memory by filling it with zeroes:</li>
344
+ </ul>
335
345
 
336
346
 
337
- <p>Copyright&#169; 2006-2007 Suraj N. Kurapati</p>
347
+ <blockquote>
348
+ <p><code class="code">your_memory.each_memoryWord {|w| w.intVal = <span style="color:#00D; font-weight:bold">0</span>}</code></p>
349
+ </blockquote>
338
350
 
351
+ </div>
352
+ </p>
339
353
 
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
354
 
355
+ <p>
356
+ <hr style="display: none"/>
347
357
 
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>
358
+ <div id="intro.license" class="section">
359
+ <h1 class="title">
360
+ <a href="#a-607558088">6</a>
354
361
 
362
+ &nbsp;
355
363
 
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>
364
+ License
365
+ </h1>
363
366
 
367
+ <p>Copyright 2006 Suraj N. Kurapati &lt;snk@gna.org&gt;</p>
364
368
 
365
- <h2 ><a id="intro.related-works" href="#a-607635258">1.7</a> &nbsp; Related works</h2>
366
369
 
370
+ <p>Permission is hereby granted, free of charge, to any person obtaining a copy of
371
+ this software and associated documentation files (the &quot;Software&quot;), to deal in
372
+ the Software without restriction, including without limitation the rights to
373
+ use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
374
+ the Software, and to permit persons to whom the Software is furnished to do so,
375
+ subject to the following conditions:</p>
367
376
 
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>
377
+
378
+ <p>1. All modified and unmodified copies and substantial portions of the Software
379
+ (the &quot;Derivatives&quot;) and their corresponding machine-readable source code (the
380
+ &quot;Code&quot;) must include the above copyright notice and this permission notice.</p>
381
+
382
+
383
+ <p>2. Upon distribution, the Derivatives must be accompanied either by the Code or,
384
+ if the Code is obtainable for no more than the cost of distribution plus a
385
+ nominal fee, by information on how to obtain the Code.</p>
386
+
387
+
388
+ <p><span class="caps">THE SOFTWARE IS PROVIDED</span> &quot;AS IS&quot;, <span class="caps">WITHOUT WARRANTY OF ANY KIND</span>, EXPRESS OR
389
+ IMPLIED, INCLUDING <span class="caps">BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY</span>, FITNESS
390
+ <span class="caps">FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT</span>. IN <span class="caps">NO EVENT SHALL THE AUTHORS OR</span>
391
+ <span class="caps">COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM</span>, DAMAGES <span class="caps">OR OTHER LIABILITY</span>, WHETHER
392
+ <span class="caps">IN AN ACTION OF CONTRACT</span>, TORT <span class="caps">OR OTHERWISE</span>, ARISING FROM, OUT <span class="caps">OF OR IN</span>
393
+ <span class="caps">CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE</span>.</p>
394
+
395
+ </div>
396
+ </p>
397
+
398
+
399
+ <p>
400
+ <hr style="display: none"/>
401
+
402
+ <div id="intro.related-works" class="section">
403
+ <h1 class="title">
404
+ <a href="#a-607563868">7</a>
405
+
406
+ &nbsp;
407
+
408
+ Related works
409
+ </h1>
410
+
411
+ <ul>
412
+ <li><a href="http://jove.sourceforge.net">JOVE</a> is a Java interface to VPI.</li>
413
+ <li><a href="http://teal.sourceforge.net">Teal</a> is a C++ interface to VPI.</li>
414
+ <li><a href="http://embedded.eecs.berkeley.edu/Alumni/pinhong/scriptEDA/">ScriptEDA</a> is a Perl, Python, and Tcl interface to VPI.</li>
415
+ <li><a href="http://rhdl.rubyforge.org">RHDL</a> is a hardware description and verification language based on Ruby.</li>
373
416
  <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
417
  </ul>
375
418
 
376
419
 
377
- <h3 ><a id="intro.related-works.pli" href="#a-607636448">1.7.1</a> &nbsp; Ye olde <span class="caps">PLI</span></h3>
420
+ <p>
421
+ <hr style="display: none"/>
378
422
 
423
+ <div id="intro.related-works.pli" class="section">
424
+ <h2 class="title">
425
+ <a href="#a-607560688">7.1</a>
379
426
 
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>
427
+ &nbsp;
428
+
429
+ Ye olde PLI
430
+ </h2>
431
+
432
+ 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.
381
433
 
382
434
 
383
435
  <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>
436
+ <li><a href="http://www.nelsim.com">ScriptSim</a> is a Perl, Python, and Tcl/Tk interface to PLI.</li>
437
+ <li><a href="http://www.veripool.com/verilog-pli.html">Verilog::Pli</a> is a Perl interface to PLI.</li>
387
438
  </ul>
388
- </body>
439
+
440
+ </div>
441
+ </p>
442
+
443
+ </div>
444
+ </p></div>
445
+
446
+ </body>
389
447
  </html>
data/doc/rss.erb CHANGED
@@ -12,7 +12,7 @@
12
12
  <link><%= PROJECT_URL %></link>
13
13
  <description><%= PROJECT_DETAIL %></description>
14
14
  <%
15
- @history.each do |entry|
15
+ @history[0,3].each do |entry|
16
16
  link = HISTORY_URL + '#' + entry['Version'].to_html_anchor
17
17
 
18
18
  stamp = Time.parse entry['Date'].to_s