ruby-vpi 16.0.1 → 17.0.0

Sign up to get free protection for your applications and to get access to all the features.
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