ruby-vpi 8.2.0 → 9.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (252) hide show
  1. data/HEADER +0 -19
  2. data/HISTORY +40 -0
  3. data/README +20 -2
  4. data/Rakefile +38 -42
  5. data/bin/generate_test.rb +50 -35
  6. data/bin/generate_test_tpl/bench.rb +3 -3
  7. data/bin/generate_test_tpl/bench.v +1 -1
  8. data/bin/generate_test_tpl/runner.rake +3 -2
  9. data/bin/generate_test_tpl/spec.rb +2 -2
  10. data/doc/background.organization.html +1 -1
  11. data/doc/glossary.html +1 -1
  12. data/doc/index.html +2 -2
  13. data/doc/manual.txt +163 -83
  14. data/doc/problems.html +1 -1
  15. data/doc/problems.ruby.html +1 -1
  16. data/doc/src/manual.xml +132 -49
  17. data/doc/usage.examples.html +1 -1
  18. data/doc/usage.html +1 -1
  19. data/doc/usage.installation.html +2 -2
  20. data/doc/usage.recommendations.html +3 -0
  21. data/doc/usage.requirements.html +1 -1
  22. data/doc/usage.tutorial.html +46 -42
  23. data/ext/extconf.rb +5 -2
  24. data/ext/relay.c +138 -0
  25. data/ext/{relay.hin → relay.h} +7 -7
  26. data/ext/{swig.cin → swig.c} +5 -7
  27. data/ext/{swig.hin → swig.h} +4 -4
  28. data/ext/verilog.h +1 -2
  29. data/ext/vlog.c +86 -0
  30. data/ext/{vlog.hin → vlog.h} +9 -12
  31. data/header.html +0 -31
  32. data/header.part.html +0 -31
  33. data/history.html +72 -31
  34. data/history.part.html +72 -0
  35. data/lib/ruby-vpi.rb +16 -0
  36. data/lib/ruby-vpi/runner.rb +34 -16
  37. data/memo.html +0 -31
  38. data/readme.html +33 -33
  39. data/readme.part.html +34 -3
  40. data/ref/c/annotated.html +1 -1
  41. data/ref/c/common_8h.html +1 -1
  42. data/ref/c/files.html +7 -8
  43. data/ref/c/functions.html +2 -2
  44. data/ref/c/functions_vars.html +2 -2
  45. data/ref/c/globals.html +1 -1
  46. data/ref/c/globals_0x63.html +1 -1
  47. data/ref/c/globals_0x65.html +1 -1
  48. data/ref/c/globals_0x66.html +1 -1
  49. data/ref/c/globals_0x70.html +1 -1
  50. data/ref/c/globals_0x72.html +9 -9
  51. data/ref/c/globals_0x73.html +3 -3
  52. data/ref/c/globals_0x74.html +1 -1
  53. data/ref/c/globals_0x76.html +5 -5
  54. data/ref/c/globals_0x78.html +1 -1
  55. data/ref/c/globals_defs.html +1 -1
  56. data/ref/c/globals_defs_0x65.html +1 -1
  57. data/ref/c/globals_defs_0x70.html +1 -1
  58. data/ref/c/globals_defs_0x76.html +2 -2
  59. data/ref/c/globals_defs_0x78.html +1 -1
  60. data/ref/c/globals_enum.html +1 -1
  61. data/ref/c/globals_eval.html +1 -1
  62. data/ref/c/globals_func.html +11 -11
  63. data/ref/c/globals_type.html +1 -1
  64. data/ref/c/globals_vars.html +5 -5
  65. data/ref/c/index.html +1 -1
  66. data/ref/c/relay_8c.html +214 -0
  67. data/ref/c/{relay_8hin.html → relay_8h.html} +23 -23
  68. data/ref/c/structrelay____RubyOptions____def.html +6 -6
  69. data/ref/c/structt__cb__data.html +1 -1
  70. data/ref/c/structt__vpi__delay.html +1 -1
  71. data/ref/c/structt__vpi__error__info.html +1 -1
  72. data/ref/c/structt__vpi__strengthval.html +1 -1
  73. data/ref/c/structt__vpi__systf__data.html +1 -1
  74. data/ref/c/structt__vpi__time.html +1 -1
  75. data/ref/c/structt__vpi__value.html +1 -1
  76. data/ref/c/structt__vpi__vecval.html +1 -1
  77. data/ref/c/structt__vpi__vlog__info.html +1 -1
  78. data/ref/c/swig_8c.html +80 -0
  79. data/ref/c/{swig_8hin.html → swig_8h.html} +13 -13
  80. data/ref/c/verilog_8h.html +3 -3
  81. data/ref/c/{vlog_8cin.html → vlog_8c.html} +30 -21
  82. data/ref/c/{vlog_8hin.html → vlog_8h.html} +12 -12
  83. data/ref/c/vpi__user_8h.html +1 -1
  84. data/ref/ruby/classes/ERB.html +5 -5
  85. data/ref/ruby/classes/ERB.src/{M000033.html → M000034.html} +0 -0
  86. data/ref/ruby/classes/FileUtils.html +10 -10
  87. data/ref/ruby/classes/FileUtils.src/M000089.html +5 -5
  88. data/ref/ruby/classes/FileUtils.src/M000090.html +18 -0
  89. data/ref/ruby/classes/Integer.html +68 -68
  90. data/ref/ruby/classes/Integer.src/M000012.html +12 -5
  91. data/ref/ruby/classes/Integer.src/M000013.html +5 -5
  92. data/ref/ruby/classes/Integer.src/M000014.html +5 -5
  93. data/ref/ruby/classes/Integer.src/M000015.html +5 -5
  94. data/ref/ruby/classes/Integer.src/M000016.html +5 -5
  95. data/ref/ruby/classes/Integer.src/M000017.html +18 -0
  96. data/ref/ruby/classes/Integer.src/M000020.html +9 -9
  97. data/ref/ruby/classes/Integer.src/M000021.html +9 -12
  98. data/ref/ruby/classes/Integer.src/M000022.html +12 -18
  99. data/ref/ruby/classes/Integer.src/M000023.html +18 -12
  100. data/ref/ruby/classes/Integer.src/M000024.html +12 -17
  101. data/ref/ruby/classes/Integer.src/M000025.html +30 -0
  102. data/ref/ruby/classes/OutputInfo.html +6 -6
  103. data/ref/ruby/classes/OutputInfo.src/{M000029.html → M000030.html} +37 -37
  104. data/ref/ruby/classes/RDoc.html +5 -5
  105. data/ref/ruby/classes/RDoc.src/{M000092.html → M000093.html} +0 -0
  106. data/ref/ruby/classes/RubyVpi.html +16 -10
  107. data/ref/ruby/classes/RubyVpi.src/M000091.html +37 -7
  108. data/ref/ruby/classes/RubyVpi.src/M000092.html +20 -0
  109. data/ref/ruby/classes/RubyVpi/Config.html +148 -0
  110. data/ref/ruby/classes/SWIG/TYPE_p_unsigned_int.html +45 -45
  111. data/ref/ruby/classes/SWIG/TYPE_p_unsigned_int.src/M000081.html +5 -5
  112. data/ref/ruby/classes/SWIG/TYPE_p_unsigned_int.src/M000082.html +5 -9
  113. data/ref/ruby/classes/SWIG/TYPE_p_unsigned_int.src/M000083.html +9 -31
  114. data/ref/ruby/classes/SWIG/TYPE_p_unsigned_int.src/M000084.html +31 -69
  115. data/ref/ruby/classes/SWIG/TYPE_p_unsigned_int.src/M000085.html +69 -114
  116. data/ref/ruby/classes/SWIG/TYPE_p_unsigned_int.src/M000086.html +114 -13
  117. data/ref/ruby/classes/SWIG/TYPE_p_unsigned_int.src/M000087.html +13 -5
  118. data/ref/ruby/classes/SWIG/TYPE_p_unsigned_int.src/M000088.html +18 -0
  119. data/ref/ruby/classes/String.html +10 -10
  120. data/ref/ruby/classes/String.src/M000032.html +28 -5
  121. data/ref/ruby/classes/String.src/M000033.html +18 -0
  122. data/ref/ruby/classes/Table.html +20 -20
  123. data/ref/ruby/classes/Table.src/M000026.html +25 -5
  124. data/ref/ruby/classes/Table.src/M000027.html +5 -5
  125. data/ref/ruby/classes/Table.src/M000028.html +5 -5
  126. data/ref/ruby/classes/Table.src/M000029.html +18 -0
  127. data/ref/ruby/classes/Template.html +5 -5
  128. data/ref/ruby/classes/Template.src/{M000030.html → M000031.html} +4 -4
  129. data/ref/ruby/classes/VerilogParser.html +5 -5
  130. data/ref/ruby/classes/VerilogParser.src/{M000004.html → M000005.html} +0 -0
  131. data/ref/ruby/classes/VerilogParser/Module.html +5 -5
  132. data/ref/ruby/classes/VerilogParser/Module.src/{M000005.html → M000006.html} +0 -0
  133. data/ref/ruby/classes/VerilogParser/Module/Parameter.html +5 -5
  134. data/ref/ruby/classes/VerilogParser/Module/Parameter.src/{M000010.html → M000011.html} +0 -0
  135. data/ref/ruby/classes/VerilogParser/Module/Port.html +20 -20
  136. data/ref/ruby/classes/VerilogParser/Module/Port.src/M000007.html +8 -5
  137. data/ref/ruby/classes/VerilogParser/Module/Port.src/M000008.html +5 -5
  138. data/ref/ruby/classes/VerilogParser/Module/Port.src/M000009.html +5 -5
  139. data/ref/ruby/classes/VerilogParser/Module/Port.src/M000010.html +18 -0
  140. data/ref/ruby/classes/XX/Document.html +45 -45
  141. data/ref/ruby/classes/XX/Document.src/M000072.html +9 -7
  142. data/ref/ruby/classes/XX/Document.src/M000073.html +7 -7
  143. data/ref/ruby/classes/XX/Document.src/M000074.html +7 -7
  144. data/ref/ruby/classes/XX/Document.src/M000075.html +7 -9
  145. data/ref/ruby/classes/XX/Document.src/M000076.html +9 -8
  146. data/ref/ruby/classes/XX/Document.src/M000077.html +8 -8
  147. data/ref/ruby/classes/XX/Document.src/M000078.html +8 -21
  148. data/ref/ruby/classes/XX/Document.src/M000079.html +21 -85
  149. data/ref/ruby/classes/XX/Document.src/M000080.html +98 -0
  150. data/ref/ruby/classes/XX/HTML4.html +5 -5
  151. data/ref/ruby/classes/XX/HTML4.src/{M000035.html → M000036.html} +0 -0
  152. data/ref/ruby/classes/XX/HTML4/Strict.html +5 -5
  153. data/ref/ruby/classes/XX/HTML4/Strict.src/{M000037.html → M000038.html} +0 -0
  154. data/ref/ruby/classes/XX/HTML4/Transitional.html +5 -5
  155. data/ref/ruby/classes/XX/HTML4/Transitional.src/{M000036.html → M000037.html} +0 -0
  156. data/ref/ruby/classes/XX/Markup.html +5 -5
  157. data/ref/ruby/classes/XX/Markup.src/{M000042.html → M000043.html} +0 -0
  158. data/ref/ruby/classes/XX/Markup/ClassMethods.html +40 -40
  159. data/ref/ruby/classes/XX/Markup/ClassMethods.src/M000044.html +9 -7
  160. data/ref/ruby/classes/XX/Markup/ClassMethods.src/M000045.html +7 -12
  161. data/ref/ruby/classes/XX/Markup/ClassMethods.src/M000046.html +12 -7
  162. data/ref/ruby/classes/XX/Markup/ClassMethods.src/M000047.html +7 -14
  163. data/ref/ruby/classes/XX/Markup/ClassMethods.src/M000048.html +14 -7
  164. data/ref/ruby/classes/XX/Markup/ClassMethods.src/M000049.html +7 -14
  165. data/ref/ruby/classes/XX/Markup/ClassMethods.src/M000050.html +14 -9
  166. data/ref/ruby/classes/XX/Markup/ClassMethods.src/M000051.html +22 -0
  167. data/ref/ruby/classes/XX/Markup/InstanceMethods.html +100 -100
  168. data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000052.html +43 -20
  169. data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000053.html +20 -18
  170. data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000054.html +18 -35
  171. data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000055.html +35 -7
  172. data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000056.html +7 -18
  173. data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000057.html +18 -19
  174. data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000058.html +19 -19
  175. data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000059.html +19 -15
  176. data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000060.html +15 -10
  177. data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000061.html +10 -13
  178. data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000062.html +13 -7
  179. data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000063.html +7 -7
  180. data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000064.html +7 -7
  181. data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000065.html +7 -7
  182. data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000066.html +7 -7
  183. data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000067.html +7 -8
  184. data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000068.html +8 -7
  185. data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000069.html +7 -7
  186. data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000070.html +7 -7
  187. data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000071.html +20 -0
  188. data/ref/ruby/classes/XX/XHTML.html +5 -5
  189. data/ref/ruby/classes/XX/XHTML.src/{M000038.html → M000039.html} +0 -0
  190. data/ref/ruby/classes/XX/XHTML/Strict.html +5 -5
  191. data/ref/ruby/classes/XX/XHTML/Strict.src/{M000040.html → M000041.html} +0 -0
  192. data/ref/ruby/classes/XX/XHTML/Transitional.html +5 -5
  193. data/ref/ruby/classes/XX/XHTML/Transitional.src/{M000039.html → M000040.html} +0 -0
  194. data/ref/ruby/classes/XX/XML.html +5 -5
  195. data/ref/ruby/classes/XX/XML.src/{M000034.html → M000035.html} +0 -0
  196. data/ref/ruby/classes/XX/XMLish.html +5 -5
  197. data/ref/ruby/classes/XX/XMLish.src/{M000041.html → M000042.html} +0 -0
  198. data/ref/ruby/created.rid +1 -1
  199. data/ref/ruby/files/bin/generate_test_rb.html +49 -9
  200. data/ref/ruby/files/bin/generate_test_rb.src/M000001.html +5 -16
  201. data/ref/ruby/files/bin/generate_test_rb.src/M000002.html +39 -0
  202. data/ref/ruby/files/bin/header_to_ruby_rb.html +1 -1
  203. data/ref/ruby/files/lib/ruby-vpi/erb_rb.html +1 -1
  204. data/ref/ruby/files/lib/ruby-vpi/integer_rb.html +1 -1
  205. data/ref/ruby/files/lib/ruby-vpi/rake_rb.html +1 -1
  206. data/ref/ruby/files/lib/ruby-vpi/rcov_rb.html +1 -1
  207. data/ref/ruby/files/lib/ruby-vpi/rdoc_rb.html +1 -1
  208. data/ref/ruby/files/lib/ruby-vpi/rspec_rb.html +1 -1
  209. data/ref/ruby/files/lib/ruby-vpi/runner_proxy_rb.html +1 -1
  210. data/ref/ruby/files/lib/ruby-vpi/runner_rb.html +22 -21
  211. data/ref/ruby/files/lib/ruby-vpi/runner_rb.src/M000003.html +11 -13
  212. data/ref/ruby/files/lib/ruby-vpi/runner_rb.src/M000004.html +26 -0
  213. data/ref/ruby/files/lib/ruby-vpi/verilog_parser_rb.html +1 -1
  214. data/ref/ruby/files/lib/ruby-vpi/vpi_rb.html +1 -1
  215. data/ref/ruby/files/lib/ruby-vpi/xx_rb.html +1 -1
  216. data/ref/ruby/files/lib/ruby-vpi_rb.html +1 -1
  217. data/ref/ruby/fr_class_index.html +1 -0
  218. data/ref/ruby/fr_method_index.html +93 -92
  219. data/samp/counter/{counter_rspecTest_bench.rb → counter_rspec_bench.rb} +2 -2
  220. data/samp/counter/{counter_rspecTest_bench.v → counter_rspec_bench.v} +3 -3
  221. data/samp/counter/{counter_unitTest_design.rb → counter_rspec_design.rb} +3 -3
  222. data/samp/counter/{counter_rspecTest_proto.rb → counter_rspec_proto.rb} +0 -0
  223. data/samp/counter/{counter_unitTest_runner.rake → counter_rspec_runner.rake} +5 -4
  224. data/samp/counter/{counter_rspecTest_spec.rb → counter_rspec_spec.rb} +0 -0
  225. data/samp/counter/{counter_unitTest_bench.rb → counter_xunit_bench.rb} +2 -2
  226. data/samp/counter/{counter_unitTest_bench.v → counter_xunit_bench.v} +3 -3
  227. data/samp/counter/{counter_rspecTest_design.rb → counter_xunit_design.rb} +3 -3
  228. data/samp/counter/{counter_unitTest_proto.rb → counter_xunit_proto.rb} +0 -0
  229. data/samp/counter/{counter_rspecTest_runner.rake → counter_xunit_runner.rake} +5 -4
  230. data/samp/counter/{counter_unitTest_spec.rb → counter_xunit_spec.rb} +0 -0
  231. data/samp/pipelined_alu/hw5_unit_test_runner.rake +3 -2
  232. metadata +177 -177
  233. data/ext/README +0 -124
  234. data/ext/relay.cin +0 -146
  235. data/ext/ruby-vpi.c +0 -36
  236. data/ext/vlog.cin +0 -92
  237. data/lib/ruby-vpi/synopsys_vcs.tab +0 -2
  238. data/ref/c/relay_8cin.html +0 -204
  239. data/ref/c/ruby-vpi_8c.html +0 -34
  240. data/ref/c/swig_8cin.html +0 -75
  241. data/ref/ruby/classes/FileUtils.src/M000088.html +0 -18
  242. data/ref/ruby/classes/Integer.src/M000011.html +0 -25
  243. data/ref/ruby/classes/Integer.src/M000019.html +0 -22
  244. data/ref/ruby/classes/RubyVpi.src/M000090.html +0 -50
  245. data/ref/ruby/classes/SWIG/TYPE_p_unsigned_int.src/M000080.html +0 -18
  246. data/ref/ruby/classes/String.src/M000031.html +0 -41
  247. data/ref/ruby/classes/Table.src/M000025.html +0 -38
  248. data/ref/ruby/classes/VerilogParser/Module/Port.src/M000006.html +0 -21
  249. data/ref/ruby/classes/XX/Document.src/M000071.html +0 -22
  250. data/ref/ruby/classes/XX/Markup/ClassMethods.src/M000043.html +0 -22
  251. data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000051.html +0 -56
  252. data/ref/ruby/files/lib/ruby-vpi/runner_rb.src/M000002.html +0 -20
data/history.html CHANGED
@@ -2,37 +2,6 @@
2
2
  <link rel="stylesheet" type="text/css" href="style.css" />
3
3
  </head>
4
4
 
5
- <h1 style="text-align: center;">Welcome to Ruby-VPI</h1>
6
-
7
-
8
- <p>Ruby-VPI is a <a href="http://ruby-lang.org">Ruby interface</a> to <a href="http://ieeexplore.ieee.org/xpl/standardstoc.jsp?isnumber=33945">Verilog <span class="caps">VPI</span></a>. It lets you create complex Verilog test benches easily and wholly in Ruby.</p>
9
-
10
-
11
- <h2>Features</h2>
12
-
13
-
14
- <ul>
15
- <li>Prototype and verify designs <em>quickly</em> using <a href="http://behaviour-driven.org/" title="behavior-driven development"><span class="caps">BDD</span></a>, <a href="http://www.agiledata.org/essays/tdd.html" title="test-driven development"><span class="caps">TDD</span></a>, and more.</li>
16
- <li>Reuse the <em>same</em> specification to verify both prototype and design.</li>
17
- <li>Specifications are executable <em>and</em> human-readable. (See this <a href="./doc/usage.tutorial.html#fig..counter_rspecTest_spec.rb">example specification</a> and its <a href="./doc/usage.tutorial.html#fig..test-proto.rspec">boss-friendly output</a>.)</li>
18
- </ul>
19
-
20
-
21
- <ul>
22
- <li>Utilize Ruby&#8217;s power and elegance. (<a href="http://www.ruby-doc.org/whyruby">Why choose Ruby?</a>)
23
- <ul>
24
- <li>Built-in support for unlimited length integers, regular expressions, networking, multi-threading, system calls, <em>ad infinium</em>!</li>
25
- <li>Easy to use; doesn&#8217;t get in your way.</li>
26
- <li>Makes programming <em>fun</em> again!</li>
27
- </ul></li>
28
- </ul>
29
-
30
-
31
- <ul>
32
- <li>Study, modify, or distribute this is free software, released under the <a href="http://www.gnu.org/copyleft/gpl.html"><span class="caps">GNU</span> General Public License</a>, as you see fit.</li>
33
- </ul>
34
-
35
-
36
5
  <div class="variablelist">
37
6
  <dl>
38
7
 
@@ -144,6 +113,72 @@ We <em>strictly</em> follow the RubyGems project&#8217;s <a href="http://www.rub
144
113
  <p id="fn1"><sup>1</sup> C. Gross, &#8220;Explaining Open Source Version Numbers&#8221;, [Online document], 2005 Nov 28, [cited 2006 Aug 27], Available <span class="caps">HTTP</span>: <a href="http://ablog.apress.com/?p=738">http://ablog.apress.com/?p=738</a></p>
145
114
 
146
115
 
116
+ <h1>Version 9.0.0 (2006-10-28)</h1>
117
+
118
+
119
+ <h2>Summary</h2>
120
+
121
+
122
+ <p>This release improves the automated test generator and adds new content to the user manual.</p>
123
+
124
+
125
+ <h2>Acknowledgments</h2>
126
+
127
+
128
+ <p>Thanks to Matt Fischler for helping test and debug the installation of Ruby-VPI on Windows.</p>
129
+
130
+
131
+ <h2>Notice</h2>
132
+
133
+
134
+ <ul>
135
+ <li>The command-line options for <code>generate_test.rb</code> have changed. Run the command <code>generate_test.rb --help</code> for details.</li>
136
+ </ul>
137
+
138
+
139
+ <h2>Details</h2>
140
+
141
+
142
+ <ul>
143
+ <li>Test runners now attempt to resolve paths in <code>SIMULATOR_SOURCES</code> by searching for them within the directories specified in <code>SIMULATOR_INCLUDES</code>.</li>
144
+ </ul>
145
+
146
+
147
+ <ul>
148
+ <li>Synopsys <span class="caps">VCS</span> is now used in a better way (via the <code>-load</code> option).
149
+ <ul>
150
+ <li>The old <span class="caps">PLI</span> table file (<code>synopsys_vcs.tab</code>) has been removed.</li>
151
+ <li>The C extension has been revised accordingly.</li>
152
+ </ul></li>
153
+ </ul>
154
+
155
+
156
+ <ul>
157
+ <li>The C extension now compiles without errors in Cygwin.</li>
158
+ </ul>
159
+
160
+
161
+ <ul>
162
+ <li>The automated test generator now:
163
+ <ul>
164
+ <li>Only creates output files when necessary.</li>
165
+ <li>Updates existing output files using <a href="./doc/usage.recommendations.html">text merging tools</a> if possible. (Refer to <code>MERGER</code> in the help information of <code>generate_test.rb</code>.)</li>
166
+ <li>Emits progress information similar to Ruby on Rails.</li>
167
+ </ul></li>
168
+ </ul>
169
+
170
+
171
+ <ul>
172
+ <li>The user manual now:
173
+ <ul>
174
+ <li>Includes instructions for installing on Windows (via Cygwin).</li>
175
+ <li>Has a recommended software section, with links to text merging tools.</li>
176
+ <li>Uses the term <a href="http://en.wikipedia.org/wiki/XUnit">xUnit</a> instead of &#8220;unit test&#8221;.</li>
177
+ <li>Correctly spells &#8220;rSpec&#8221;.</li>
178
+ </ul></li>
179
+ </ul>
180
+
181
+
147
182
  <h1>Version 8.2.0 (2006-10-24)</h1>
148
183
 
149
184
 
@@ -153,6 +188,12 @@ We <em>strictly</em> follow the RubyGems project&#8217;s <a href="http://www.rub
153
188
  <p>This release simplifies configuration of generated tests.</p>
154
189
 
155
190
 
191
+ <h2>Acknowledgments</h2>
192
+
193
+
194
+ <p>Thanks to <a href="http://www.soe.ucsc.edu/classes/cmpe126/Fall06/">students in <span class="caps">CMPE</span>-126</a> for their constructive criticism.</p>
195
+
196
+
156
197
  <h2>Notice</h2>
157
198
 
158
199
 
data/history.part.html CHANGED
@@ -18,6 +18,72 @@ We <em>strictly</em> follow the RubyGems project&#8217;s <a href="http://www.rub
18
18
  <p id="fn1"><sup>1</sup> C. Gross, &#8220;Explaining Open Source Version Numbers&#8221;, [Online document], 2005 Nov 28, [cited 2006 Aug 27], Available <span class="caps">HTTP</span>: <a href="http://ablog.apress.com/?p=738">http://ablog.apress.com/?p=738</a></p>
19
19
 
20
20
 
21
+ <h1>Version 9.0.0 (2006-10-28)</h1>
22
+
23
+
24
+ <h2>Summary</h2>
25
+
26
+
27
+ <p>This release improves the automated test generator and adds new content to the user manual.</p>
28
+
29
+
30
+ <h2>Acknowledgments</h2>
31
+
32
+
33
+ <p>Thanks to Matt Fischler for helping test and debug the installation of Ruby-VPI on Windows.</p>
34
+
35
+
36
+ <h2>Notice</h2>
37
+
38
+
39
+ <ul>
40
+ <li>The command-line options for <code>generate_test.rb</code> have changed. Run the command <code>generate_test.rb --help</code> for details.</li>
41
+ </ul>
42
+
43
+
44
+ <h2>Details</h2>
45
+
46
+
47
+ <ul>
48
+ <li>Test runners now attempt to resolve paths in <code>SIMULATOR_SOURCES</code> by searching for them within the directories specified in <code>SIMULATOR_INCLUDES</code>.</li>
49
+ </ul>
50
+
51
+
52
+ <ul>
53
+ <li>Synopsys <span class="caps">VCS</span> is now used in a better way (via the <code>-load</code> option).
54
+ <ul>
55
+ <li>The old <span class="caps">PLI</span> table file (<code>synopsys_vcs.tab</code>) has been removed.</li>
56
+ <li>The C extension has been revised accordingly.</li>
57
+ </ul></li>
58
+ </ul>
59
+
60
+
61
+ <ul>
62
+ <li>The C extension now compiles without errors in Cygwin.</li>
63
+ </ul>
64
+
65
+
66
+ <ul>
67
+ <li>The automated test generator now:
68
+ <ul>
69
+ <li>Only creates output files when necessary.</li>
70
+ <li>Updates existing output files using <a href="./doc/usage.recommendations.html">text merging tools</a> if possible. (Refer to <code>MERGER</code> in the help information of <code>generate_test.rb</code>.)</li>
71
+ <li>Emits progress information similar to Ruby on Rails.</li>
72
+ </ul></li>
73
+ </ul>
74
+
75
+
76
+ <ul>
77
+ <li>The user manual now:
78
+ <ul>
79
+ <li>Includes instructions for installing on Windows (via Cygwin).</li>
80
+ <li>Has a recommended software section, with links to text merging tools.</li>
81
+ <li>Uses the term <a href="http://en.wikipedia.org/wiki/XUnit">xUnit</a> instead of &#8220;unit test&#8221;.</li>
82
+ <li>Correctly spells &#8220;rSpec&#8221;.</li>
83
+ </ul></li>
84
+ </ul>
85
+
86
+
21
87
  <h1>Version 8.2.0 (2006-10-24)</h1>
22
88
 
23
89
 
@@ -27,6 +93,12 @@ We <em>strictly</em> follow the RubyGems project&#8217;s <a href="http://www.rub
27
93
  <p>This release simplifies configuration of generated tests.</p>
28
94
 
29
95
 
96
+ <h2>Acknowledgments</h2>
97
+
98
+
99
+ <p>Thanks to <a href="http://www.soe.ucsc.edu/classes/cmpe126/Fall06/">students in <span class="caps">CMPE</span>-126</a> for their constructive criticism.</p>
100
+
101
+
30
102
  <h2>Notice</h2>
31
103
 
32
104
 
data/lib/ruby-vpi.rb CHANGED
@@ -56,4 +56,20 @@ module RubyVpi
56
56
 
57
57
  require "#{aTestPrefix}_spec.rb"
58
58
  end
59
+
60
+ module Config
61
+ PROJECT_ID = 'ruby-vpi'
62
+ PROJECT_NAME = 'Ruby-VPI'
63
+ PROJECT_URL = "http://#{PROJECT_ID}.rubyforge.org"
64
+ PROJECT_SUMMARY = "Ruby interface to Verilog VPI."
65
+ PROJECT_DETAIL = "#{PROJECT_NAME} is a #{PROJECT_SUMMARY}. It lets you create complex Verilog test benches easily and wholly in Ruby."
66
+
67
+ Simulator = Struct.new(:id, :name, :compiler_args, :linker_args)
68
+ SIMULATORS = [
69
+ Simulator.new(:cver, 'GPL Cver', '-DPRAGMATIC_CVER', ''),
70
+ Simulator.new(:ivl, 'Icarus Verilog', '-DICARUS_VERILOG', ''),
71
+ Simulator.new(:vcs, 'Synopsys VCS', '-DSYNOPSYS_VCS', ''),
72
+ Simulator.new(:vsim, 'Mentor Modelsim', '-DMENTOR_MODELSIM', ''),
73
+ ]
74
+ end
59
75
  end
@@ -4,9 +4,6 @@
4
4
  # SIMULATOR_SOURCES:: Array of paths to source files needed by the simulator.
5
5
  # SIMULATOR_TARGET:: Name of the Verilog module to be simulated.
6
6
  # SIMULATOR_ARGS:: A hash containing keys for each simulator task (same as Rakefile task names) and values containing command-line arguments for each simulator.
7
- #
8
- # = Usage
9
- # When using one simulator after another, ensure that Ruby-VPI is properly compiled for the new simulator by invoking the _clobber_ cleaning task.
10
7
 
11
8
  =begin
12
9
  Copyright 2006 Suraj N. Kurapati
@@ -36,18 +33,41 @@
36
33
 
37
34
  SIMULATOR_INCLUDES = [] unless defined? SIMULATOR_INCLUDES
38
35
 
36
+ # resolve paths to sources by searching include directories
37
+ SIMULATOR_SOURCES.map! do |src|
38
+ unless File.exist? src
39
+ SIMULATOR_INCLUDES.each do |dir|
40
+ path = File.join(dir, src)
41
+
42
+ if File.exist? path
43
+ src = path
44
+ break
45
+ end
46
+ end
47
+ end
48
+
49
+ src
50
+ end
51
+
39
52
 
40
53
  require 'rake/clean'
54
+ require 'ruby-vpi'
41
55
  require 'ruby-vpi/rake'
42
56
 
57
+ include RubyVpi::Config
58
+
43
59
  OBJECT_PATH = File.join(File.dirname(__FILE__), '..', '..', 'obj')
44
- VCS_TAB_FILE = File.join(File.dirname(__FILE__), 'synopsys_vcs.tab')
60
+ BOOTSTAP_FUNC = 'vlog_startup_routines_bootstrap'
45
61
 
46
62
 
47
63
  # Returns the path to the Ruby-VPI object file for the given simulator.
48
- def object_file_path aSimId, aShared = false
49
- path = File.join(OBJECT_PATH, "ruby-vpi.#{aSimId}.#{aShared ? 'so' : 'o'}")
50
- raise "Object file #{path.inspect} is missing.\n Rebuild Ruby-VPI to generate the missing file." unless File.exist? path
64
+ def object_file_path aSimId
65
+ path = File.join(OBJECT_PATH, "#{PROJECT_ID}.#{aSimId}.so")
66
+
67
+ unless File.exist? path
68
+ raise "Object file #{path.inspect} is missing. Rebuild #{PROJECT_NAME}."
69
+ end
70
+
51
71
  path
52
72
  end
53
73
 
@@ -74,7 +94,7 @@ end
74
94
 
75
95
  desc "Simulate with GPL Cver."
76
96
  task :cver do
77
- sh 'cver', SIMULATOR_ARGS[:cver], "+loadvpi=#{object_file_path(:cver, true)}:vlog_startup_routines_bootstrap", expand_include_dir_options(:cver), SIMULATOR_SOURCES
97
+ sh 'cver', SIMULATOR_ARGS[:cver], "+loadvpi=#{object_file_path(:cver)}:#{BOOTSTAP_FUNC}", expand_include_dir_options(:cver), SIMULATOR_SOURCES
78
98
  end
79
99
 
80
100
  CLOBBER.include 'verilog.log'
@@ -82,8 +102,8 @@ CLOBBER.include 'verilog.log'
82
102
 
83
103
  desc "Simulate with Icarus Verilog."
84
104
  task :ivl do
85
- cp object_file_path(:ivl, true), 'ruby-vpi.vpi'
86
- sh 'iverilog', SIMULATOR_ARGS[:ivl], %w(-y. -mruby-vpi), expand_include_dir_options(:ivl), SIMULATOR_SOURCES
105
+ cp object_file_path(:ivl), 'ruby-vpi.vpi'
106
+ sh 'iverilog', SIMULATOR_ARGS[:ivl], '-mruby-vpi', expand_include_dir_options(:ivl), SIMULATOR_SOURCES
87
107
  sh 'vvp -M. a.out'
88
108
  end
89
109
 
@@ -91,10 +111,8 @@ CLEAN.include 'ruby-vpi.vpi', 'a.out'
91
111
 
92
112
 
93
113
  desc "Simulate with Synopsys VCS."
94
- task :vcs => VCS_TAB_FILE do
95
- require 'rbconfig'
96
-
97
- sh 'vcs', SIMULATOR_ARGS[:vcs], %w(-R +v2k +vpi -LDFLAGS), File.expand_path(object_file_path(:vcs)), "-L#{Config::CONFIG['libdir']}", Config::CONFIG['LIBRUBYARG'], '-lpthread', '-P', VCS_TAB_FILE, expand_include_dir_options(:vcs), SIMULATOR_SOURCES
114
+ task :vcs do
115
+ sh %w(vcs -R +v2k +vpi), SIMULATOR_ARGS[:vcs], '-load', "#{object_file_path(:vcs)}:#{BOOTSTAP_FUNC}", expand_include_dir_options(:vcs), SIMULATOR_SOURCES
98
116
  end
99
117
 
100
118
  CLEAN.include 'csrc', 'simv*'
@@ -103,8 +121,8 @@ CLEAN.include 'csrc', 'simv*'
103
121
  desc "Simulate with Mentor Modelsim."
104
122
  task :vsim do
105
123
  sh 'vlib work'
106
- sh 'vlog', SIMULATOR_ARGS[:vsim], expand_include_dir_options(:vsim), SIMULATOR_SOURCES
107
- sh 'vsim', '-c', SIMULATOR_TARGET, '-pli', object_file_path(:vsim, true), '-do', 'run -all'
124
+ sh 'vlog', expand_include_dir_options(:vsim), SIMULATOR_SOURCES
125
+ sh 'vsim', SIMULATOR_ARGS[:vsim], '-c', SIMULATOR_TARGET, '-pli', object_file_path(:vsim), '-do', 'run -all'
108
126
  end
109
127
 
110
128
  CLEAN.include 'work'
data/memo.html CHANGED
@@ -2,37 +2,6 @@
2
2
  <link rel="stylesheet" type="text/css" href="style.css" />
3
3
  </head>
4
4
 
5
- <h1 style="text-align: center;">Welcome to Ruby-VPI</h1>
6
-
7
-
8
- <p>Ruby-VPI is a <a href="http://ruby-lang.org">Ruby interface</a> to <a href="http://ieeexplore.ieee.org/xpl/standardstoc.jsp?isnumber=33945">Verilog <span class="caps">VPI</span></a>. It lets you create complex Verilog test benches easily and wholly in Ruby.</p>
9
-
10
-
11
- <h2>Features</h2>
12
-
13
-
14
- <ul>
15
- <li>Prototype and verify designs <em>quickly</em> using <a href="http://behaviour-driven.org/" title="behavior-driven development"><span class="caps">BDD</span></a>, <a href="http://www.agiledata.org/essays/tdd.html" title="test-driven development"><span class="caps">TDD</span></a>, and more.</li>
16
- <li>Reuse the <em>same</em> specification to verify both prototype and design.</li>
17
- <li>Specifications are executable <em>and</em> human-readable. (See this <a href="./doc/usage.tutorial.html#fig..counter_rspecTest_spec.rb">example specification</a> and its <a href="./doc/usage.tutorial.html#fig..test-proto.rspec">boss-friendly output</a>.)</li>
18
- </ul>
19
-
20
-
21
- <ul>
22
- <li>Utilize Ruby&#8217;s power and elegance. (<a href="http://www.ruby-doc.org/whyruby">Why choose Ruby?</a>)
23
- <ul>
24
- <li>Built-in support for unlimited length integers, regular expressions, networking, multi-threading, system calls, <em>ad infinium</em>!</li>
25
- <li>Easy to use; doesn&#8217;t get in your way.</li>
26
- <li>Makes programming <em>fun</em> again!</li>
27
- </ul></li>
28
- </ul>
29
-
30
-
31
- <ul>
32
- <li>Study, modify, or distribute this is free software, released under the <a href="http://www.gnu.org/copyleft/gpl.html"><span class="caps">GNU</span> General Public License</a>, as you see fit.</li>
33
- </ul>
34
-
35
-
36
5
  <div class="variablelist">
37
6
  <dl>
38
7
 
data/readme.html CHANGED
@@ -2,37 +2,6 @@
2
2
  <link rel="stylesheet" type="text/css" href="style.css" />
3
3
  </head>
4
4
 
5
- <h1 style="text-align: center;">Welcome to Ruby-VPI</h1>
6
-
7
-
8
- <p>Ruby-VPI is a <a href="http://ruby-lang.org">Ruby interface</a> to <a href="http://ieeexplore.ieee.org/xpl/standardstoc.jsp?isnumber=33945">Verilog <span class="caps">VPI</span></a>. It lets you create complex Verilog test benches easily and wholly in Ruby.</p>
9
-
10
-
11
- <h2>Features</h2>
12
-
13
-
14
- <ul>
15
- <li>Prototype and verify designs <em>quickly</em> using <a href="http://behaviour-driven.org/" title="behavior-driven development"><span class="caps">BDD</span></a>, <a href="http://www.agiledata.org/essays/tdd.html" title="test-driven development"><span class="caps">TDD</span></a>, and more.</li>
16
- <li>Reuse the <em>same</em> specification to verify both prototype and design.</li>
17
- <li>Specifications are executable <em>and</em> human-readable. (See this <a href="./doc/usage.tutorial.html#fig..counter_rspecTest_spec.rb">example specification</a> and its <a href="./doc/usage.tutorial.html#fig..test-proto.rspec">boss-friendly output</a>.)</li>
18
- </ul>
19
-
20
-
21
- <ul>
22
- <li>Utilize Ruby&#8217;s power and elegance. (<a href="http://www.ruby-doc.org/whyruby">Why choose Ruby?</a>)
23
- <ul>
24
- <li>Built-in support for unlimited length integers, regular expressions, networking, multi-threading, system calls, <em>ad infinium</em>!</li>
25
- <li>Easy to use; doesn&#8217;t get in your way.</li>
26
- <li>Makes programming <em>fun</em> again!</li>
27
- </ul></li>
28
- </ul>
29
-
30
-
31
- <ul>
32
- <li>Study, modify, or distribute this is free software, released under the <a href="http://www.gnu.org/copyleft/gpl.html"><span class="caps">GNU</span> General Public License</a>, as you see fit.</li>
33
- </ul>
34
-
35
-
36
5
  <div class="variablelist">
37
6
  <dl>
38
7
 
@@ -124,6 +93,37 @@ Ask for help, give feedback, or discuss.</p>
124
93
  </div>
125
94
  </div>
126
95
 
96
+ <h1 style="text-align: center;">Welcome to Ruby-VPI</h1>
97
+
98
+
99
+ <p>Ruby-VPI is a <a href="http://ruby-lang.org">Ruby interface</a> to <a href="http://ieeexplore.ieee.org/xpl/standardstoc.jsp?isnumber=33945">Verilog <span class="caps">VPI</span></a>. It lets you create complex Verilog test benches easily and wholly in Ruby.</p>
100
+
101
+
102
+ <h2>Features</h2>
103
+
104
+
105
+ <ul>
106
+ <li>Prototype and verify designs <em>quickly</em> using <a href="http://behaviour-driven.org/" title="behavior-driven development"><span class="caps">BDD</span></a>, <a href="http://www.agiledata.org/essays/tdd.html" title="test-driven development"><span class="caps">TDD</span></a>, and more.</li>
107
+ <li>Reuse the <em>same</em> specification to verify both prototype and design.</li>
108
+ <li>Specifications are executable <em>and</em> human-readable. (See this <a href="./doc/usage.tutorial.html#fig..counter_rspecTest_spec.rb">example specification</a> and its <a href="./doc/usage.tutorial.html#fig..test-proto.rspec">boss-friendly output</a>.)</li>
109
+ </ul>
110
+
111
+
112
+ <ul>
113
+ <li>Utilize Ruby&#8217;s power and elegance. (<a href="http://www.ruby-doc.org/whyruby">Why choose Ruby?</a>)
114
+ <ul>
115
+ <li>Built-in support for unlimited length integers, regular expressions, networking, multi-threading, system calls, <em>ad infinium</em>!</li>
116
+ <li>Easy to use; doesn&#8217;t get in your way.</li>
117
+ <li>Makes programming <em>fun</em> again!</li>
118
+ </ul></li>
119
+ </ul>
120
+
121
+
122
+ <ul>
123
+ <li>Study, modify, or distribute this free software in accordance with the <a href="http://www.gnu.org/copyleft/gpl.html"><span class="caps">GNU</span> General Public License</a>.</li>
124
+ </ul>
125
+
126
+
127
127
  <h1>Getting started</h1>
128
128
 
129
129
 
@@ -147,10 +147,10 @@ Ask for help, give feedback, or discuss.</p>
147
147
  </ul>
148
148
 
149
149
 
150
- <h1>Compiling from source</h1>
150
+ <h1>Building release packages</h1>
151
151
 
152
152
 
153
- <p>In addition to the <a href="./doc/usage.requirements.html">normal requirements</a>, you need the following software to compile from source:</p>
153
+ <p>In addition to the <a href="./doc/usage.requirements.html">normal requirements</a>, you need the following software to build release packages:</p>
154
154
 
155
155
 
156
156
  <ul>