ruby-vpi 11.1.0 → 11.1.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (292) hide show
  1. data/Rakefile +8 -37
  2. data/bin/generate_test_tpl/bench.v +1 -1
  3. data/doc/{src/LICENSE → LICENSE} +0 -0
  4. data/doc/Rakefile +39 -14
  5. data/doc/common.css +144 -0
  6. data/doc/common.tpl +49 -0
  7. data/doc/figures/figures.dia +1589 -0
  8. data/doc/history.erb +18 -0
  9. data/doc/history.html +1726 -0
  10. data/doc/history.rb +14 -0
  11. data/doc/history.yml +686 -0
  12. data/doc/images/{COPYING → LICENSE} +0 -0
  13. data/doc/intro.inc +48 -0
  14. data/doc/lib/doc_format.rb +62 -0
  15. data/doc/lib/doc_proxy.rb +160 -0
  16. data/doc/lib/erb_content.rb +67 -0
  17. data/doc/lib/erb_proxy.rb +48 -0
  18. data/doc/manual.erb +768 -0
  19. data/doc/manual.html +2107 -0
  20. data/doc/manual.rb +5 -0
  21. data/{MEMO → doc/memo.erb} +0 -0
  22. data/{memo.part.html → doc/memo.html} +38 -5
  23. data/doc/readme.erb +36 -0
  24. data/doc/readme.html +171 -0
  25. data/index.html +1 -0
  26. data/lib/ruby-vpi/float.rb +52 -0
  27. data/lib/ruby-vpi/rspec.rb +6 -1
  28. data/lib/ruby-vpi/verilog_parser.rb +4 -5
  29. data/ref/c/annotated.html +1 -6
  30. data/ref/c/common_8h.html +1 -1
  31. data/ref/c/files.html +1 -3
  32. data/ref/c/functions.html +24 -44
  33. data/ref/c/functions_vars.html +24 -44
  34. data/ref/c/globals.html +5 -211
  35. data/ref/c/globals_0x63.html +32 -49
  36. data/ref/c/globals_0x65.html +3 -10
  37. data/ref/c/globals_0x66.html +3 -20
  38. data/ref/c/globals_0x70.html +19 -26
  39. data/ref/c/globals_0x72.html +4 -15
  40. data/ref/c/globals_0x73.html +13 -199
  41. data/ref/c/globals_0x74.html +2 -9
  42. data/ref/c/globals_0x76.html +415 -426
  43. data/ref/c/globals_0x78.html +3 -10
  44. data/ref/c/globals_defs.html +30 -35
  45. data/ref/c/globals_defs_0x65.html +2 -7
  46. data/ref/c/globals_defs_0x70.html +3 -8
  47. data/ref/c/globals_defs_0x76.html +413 -420
  48. data/ref/c/globals_defs_0x78.html +2 -7
  49. data/ref/c/globals_enum.html +1 -1
  50. data/ref/c/globals_eval.html +1 -1
  51. data/ref/c/globals_func.html +14 -173
  52. data/ref/c/globals_type.html +26 -29
  53. data/ref/c/globals_vars.html +4 -88
  54. data/ref/c/index.html +1 -1
  55. data/ref/c/relay_8c.html +1 -1
  56. data/ref/c/relay_8h.html +1 -1
  57. data/ref/c/structrelay____RubyOptions____def.html +1 -1
  58. data/ref/c/structt__cb__data.html +6 -23
  59. data/ref/c/structt__vpi__delay.html +3 -20
  60. data/ref/c/structt__vpi__error__info.html +3 -71
  61. data/ref/c/structt__vpi__strengthval.html +3 -3
  62. data/ref/c/structt__vpi__systf__data.html +12 -46
  63. data/ref/c/structt__vpi__time.html +3 -3
  64. data/ref/c/structt__vpi__value.html +3 -113
  65. data/ref/c/structt__vpi__vecval.html +3 -3
  66. data/ref/c/structt__vpi__vlog__info.html +3 -54
  67. data/ref/c/swig_8c.html +2 -2
  68. data/ref/c/swig_8h.html +1 -1
  69. data/ref/c/verilog_8h.html +1 -1
  70. data/ref/c/vlog_8c.html +1 -1
  71. data/ref/c/vlog_8h.html +1 -1
  72. data/ref/c/vpi__user_8h.html +16 -16
  73. data/ref/ruby/classes/ERB.html +5 -5
  74. data/ref/ruby/classes/ERB.src/{M000034.html → M000036.html} +0 -0
  75. data/ref/ruby/classes/FileUtils.html +10 -10
  76. data/ref/ruby/classes/FileUtils.src/{M000081.html → M000083.html} +0 -0
  77. data/ref/ruby/classes/FileUtils.src/{M000082.html → M000084.html} +0 -0
  78. data/ref/ruby/classes/Float.html +140 -0
  79. data/ref/ruby/classes/Float.src/M000031.html +19 -0
  80. data/ref/ruby/classes/RDoc.html +5 -5
  81. data/ref/ruby/classes/RDoc.src/{M000095.html → M000097.html} +0 -0
  82. data/ref/ruby/classes/RubyVpi.html +10 -10
  83. data/ref/ruby/classes/RubyVpi.src/{M000083.html → M000085.html} +0 -0
  84. data/ref/ruby/classes/RubyVpi.src/{M000084.html → M000086.html} +0 -0
  85. data/ref/ruby/classes/String.html +33 -10
  86. data/ref/ruby/classes/String.src/M000033.html +28 -5
  87. data/ref/ruby/classes/String.src/M000034.html +18 -0
  88. data/ref/ruby/classes/String.src/M000035.html +36 -0
  89. data/ref/ruby/classes/Template.html +5 -5
  90. data/ref/ruby/classes/Template.src/{M000031.html → M000032.html} +0 -0
  91. data/ref/ruby/classes/VerilogParser/Module.src/M000006.html +9 -8
  92. data/ref/ruby/classes/VerilogParser/Module/Parameter.src/M000011.html +5 -7
  93. data/ref/ruby/classes/VerilogParser/Module/Port.src/M000007.html +7 -7
  94. data/ref/ruby/classes/VerilogParser/Module/Port.src/M000008.html +4 -4
  95. data/ref/ruby/classes/VerilogParser/Module/Port.src/M000009.html +4 -4
  96. data/ref/ruby/classes/VerilogParser/Module/Port.src/M000010.html +4 -4
  97. data/ref/ruby/classes/Vpi/Handle.html +46 -46
  98. data/ref/ruby/classes/Vpi/Handle.src/M000087.html +5 -9
  99. data/ref/ruby/classes/Vpi/Handle.src/M000088.html +5 -31
  100. data/ref/ruby/classes/Vpi/Handle.src/M000089.html +9 -74
  101. data/ref/ruby/classes/Vpi/Handle.src/M000090.html +31 -17
  102. data/ref/ruby/classes/Vpi/Handle.src/M000091.html +74 -11
  103. data/ref/ruby/classes/Vpi/Handle.src/M000092.html +30 -0
  104. data/ref/ruby/classes/Vpi/Handle.src/M000093.html +11 -55
  105. data/ref/ruby/classes/Vpi/Handle.src/M000095.html +68 -0
  106. data/ref/ruby/classes/Vpi/Handle/Property.html +5 -5
  107. data/ref/ruby/classes/Vpi/Handle/Property.src/{M000094.html → M000096.html} +0 -0
  108. data/ref/ruby/classes/XX/Document.html +45 -45
  109. data/ref/ruby/classes/XX/Document.src/M000074.html +9 -7
  110. data/ref/ruby/classes/XX/Document.src/M000075.html +7 -7
  111. data/ref/ruby/classes/XX/Document.src/M000076.html +7 -9
  112. data/ref/ruby/classes/XX/Document.src/M000077.html +7 -8
  113. data/ref/ruby/classes/XX/Document.src/M000078.html +9 -8
  114. data/ref/ruby/classes/XX/Document.src/M000079.html +8 -21
  115. data/ref/ruby/classes/XX/Document.src/M000080.html +8 -85
  116. data/ref/ruby/classes/XX/Document.src/M000081.html +34 -0
  117. data/ref/ruby/classes/XX/Document.src/M000082.html +98 -0
  118. data/ref/ruby/classes/XX/HTML4.html +5 -5
  119. data/ref/ruby/classes/XX/HTML4.src/{M000036.html → M000038.html} +0 -0
  120. data/ref/ruby/classes/XX/HTML4/Strict.html +5 -5
  121. data/ref/ruby/classes/XX/HTML4/Strict.src/{M000038.html → M000040.html} +0 -0
  122. data/ref/ruby/classes/XX/HTML4/Transitional.html +5 -5
  123. data/ref/ruby/classes/XX/HTML4/Transitional.src/{M000037.html → M000039.html} +0 -0
  124. data/ref/ruby/classes/XX/Markup.html +5 -5
  125. data/ref/ruby/classes/XX/Markup.src/{M000043.html → M000045.html} +0 -0
  126. data/ref/ruby/classes/XX/Markup/ClassMethods.html +40 -40
  127. data/ref/ruby/classes/XX/Markup/ClassMethods.src/M000046.html +9 -12
  128. data/ref/ruby/classes/XX/Markup/ClassMethods.src/M000047.html +7 -7
  129. data/ref/ruby/classes/XX/Markup/ClassMethods.src/M000048.html +12 -14
  130. data/ref/ruby/classes/XX/Markup/ClassMethods.src/M000049.html +7 -7
  131. data/ref/ruby/classes/XX/Markup/ClassMethods.src/M000050.html +14 -14
  132. data/ref/ruby/classes/XX/Markup/ClassMethods.src/M000051.html +7 -9
  133. data/ref/ruby/classes/XX/Markup/ClassMethods.src/M000052.html +27 -0
  134. data/ref/ruby/classes/XX/Markup/ClassMethods.src/M000053.html +22 -0
  135. data/ref/ruby/classes/XX/Markup/InstanceMethods.html +100 -100
  136. data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000054.html +43 -18
  137. data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000055.html +20 -35
  138. data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000056.html +18 -7
  139. data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000057.html +35 -18
  140. data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000058.html +7 -19
  141. data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000059.html +18 -19
  142. data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000060.html +19 -15
  143. data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000061.html +19 -10
  144. data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000062.html +15 -13
  145. data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000063.html +10 -7
  146. data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000064.html +13 -7
  147. data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000065.html +7 -7
  148. data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000066.html +7 -7
  149. data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000067.html +7 -7
  150. data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000068.html +7 -8
  151. data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000069.html +7 -7
  152. data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000070.html +8 -7
  153. data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000071.html +7 -7
  154. data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000072.html +20 -0
  155. data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000073.html +20 -0
  156. data/ref/ruby/classes/XX/XHTML.html +5 -5
  157. data/ref/ruby/classes/XX/XHTML.src/{M000039.html → M000041.html} +0 -0
  158. data/ref/ruby/classes/XX/XHTML/Strict.html +5 -5
  159. data/ref/ruby/classes/XX/XHTML/Strict.src/{M000041.html → M000043.html} +0 -0
  160. data/ref/ruby/classes/XX/XHTML/Transitional.html +5 -5
  161. data/ref/ruby/classes/XX/XHTML/Transitional.src/{M000040.html → M000042.html} +0 -0
  162. data/ref/ruby/classes/XX/XML.html +5 -5
  163. data/ref/ruby/classes/XX/XML.src/{M000035.html → M000037.html} +0 -0
  164. data/ref/ruby/classes/XX/XMLish.html +5 -5
  165. data/ref/ruby/classes/XX/XMLish.src/{M000042.html → M000044.html} +0 -0
  166. data/ref/ruby/created.rid +1 -1
  167. data/ref/ruby/files/lib/ruby-vpi/float_rb.html +101 -0
  168. data/ref/ruby/files/lib/ruby-vpi/rspec_rb.html +1 -1
  169. data/ref/ruby/files/lib/ruby-vpi/runner_rb.html +1 -1
  170. data/ref/ruby/files/lib/ruby-vpi/verilog_parser_rb.html +1 -1
  171. data/ref/ruby/fr_class_index.html +1 -0
  172. data/ref/ruby/fr_file_index.html +1 -0
  173. data/ref/ruby/fr_method_index.html +69 -67
  174. data/samp/counter/counter.v +4 -4
  175. data/samp/counter/counter_rspec_spec.rb +4 -8
  176. data/samp/counter/counter_xunit_spec.rb +4 -8
  177. metadata +112 -196
  178. data/HEADER +0 -97
  179. data/HISTORY +0 -687
  180. data/README +0 -23
  181. data/doc/background.html +0 -3
  182. data/doc/background.methodology.html +0 -3
  183. data/doc/background.organization.html +0 -10
  184. data/doc/background.running-tests.html +0 -3
  185. data/doc/background.terminology.html +0 -3
  186. data/doc/gfdl-0.html +0 -18
  187. data/doc/gfdl-1.html +0 -70
  188. data/doc/gfdl-10.html +0 -15
  189. data/doc/gfdl-2.html +0 -13
  190. data/doc/gfdl-3.html +0 -31
  191. data/doc/gfdl-4.html +0 -75
  192. data/doc/gfdl-5.html +0 -20
  193. data/doc/gfdl-6.html +0 -12
  194. data/doc/gfdl-7.html +0 -16
  195. data/doc/gfdl-8.html +0 -17
  196. data/doc/gfdl-9.html +0 -9
  197. data/doc/gfdl-addendum.html +0 -25
  198. data/doc/gfdl.html +0 -11
  199. data/doc/glossary.html +0 -3
  200. data/doc/hacking.html +0 -3
  201. data/doc/hacking.release-packages.html +0 -7
  202. data/doc/images/ChangeLog +0 -27
  203. data/doc/images/blank.png +0 -0
  204. data/doc/images/callouts/1.png +0 -0
  205. data/doc/images/callouts/10.png +0 -0
  206. data/doc/images/callouts/11.png +0 -0
  207. data/doc/images/callouts/12.png +0 -0
  208. data/doc/images/callouts/13.png +0 -0
  209. data/doc/images/callouts/14.png +0 -0
  210. data/doc/images/callouts/15.png +0 -0
  211. data/doc/images/callouts/2.png +0 -0
  212. data/doc/images/callouts/3.png +0 -0
  213. data/doc/images/callouts/4.png +0 -0
  214. data/doc/images/callouts/5.png +0 -0
  215. data/doc/images/callouts/6.png +0 -0
  216. data/doc/images/callouts/7.png +0 -0
  217. data/doc/images/callouts/8.png +0 -0
  218. data/doc/images/callouts/9.png +0 -0
  219. data/doc/images/callouts/ChangeLog +0 -15
  220. data/doc/images/copyright +0 -55
  221. data/doc/images/draft.png +0 -0
  222. data/doc/images/toc-blank.png +0 -0
  223. data/doc/images/toc-minus.png +0 -0
  224. data/doc/images/toc-plus.png +0 -0
  225. data/doc/index.html +0 -4
  226. data/doc/introduction.html +0 -3
  227. data/doc/introduction.license.html +0 -3
  228. data/doc/introduction.manifest.html +0 -3
  229. data/doc/introduction.related-works.html +0 -3
  230. data/doc/introduction.resources.html +0 -3
  231. data/doc/manual.txt +0 -1852
  232. data/doc/problem.ivl.html +0 -18
  233. data/doc/problems.html +0 -3
  234. data/doc/problems.ruby.html +0 -3
  235. data/doc/problems.vsim.html +0 -3
  236. data/doc/setup.html +0 -3
  237. data/doc/setup.installation.html +0 -9
  238. data/doc/setup.maintenance.html +0 -3
  239. data/doc/setup.reqs.html +0 -3
  240. data/doc/src/figures.dia +0 -0
  241. data/doc/src/license.xml +0 -446
  242. data/doc/src/manual.xml +0 -1824
  243. data/doc/src/manual.xsl +0 -23
  244. data/doc/src/shared.dtd +0 -62
  245. data/doc/styles/manual.css +0 -91
  246. data/doc/usage.examples.html +0 -3
  247. data/doc/usage.html +0 -3
  248. data/doc/usage.tools.html +0 -9
  249. data/doc/usage.tutorial.html +0 -189
  250. data/header.html +0 -95
  251. data/header.part.html +0 -95
  252. data/history.html +0 -1442
  253. data/history.part.html +0 -1346
  254. data/memo.html +0 -211
  255. data/readme.html +0 -138
  256. data/readme.part.html +0 -42
  257. data/ref/c/globals_0x62.html +0 -62
  258. data/ref/c/globals_0x67.html +0 -64
  259. data/ref/c/globals_0x69.html +0 -62
  260. data/ref/c/globals_0x6c.html +0 -64
  261. data/ref/c/globals_0x6d.html +0 -62
  262. data/ref/c/globals_0x6e.html +0 -63
  263. data/ref/c/globals_0x75.html +0 -63
  264. data/ref/c/globals_defs_0x6c.html +0 -57
  265. data/ref/c/globals_defs_0x6e.html +0 -56
  266. data/ref/c/globals_defs_0x72.html +0 -57
  267. data/ref/c/globals_defs_0x73.html +0 -164
  268. data/ref/c/globals_defs_0x75.html +0 -56
  269. data/ref/c/globals_func_0x66.html +0 -62
  270. data/ref/c/globals_func_0x67.html +0 -55
  271. data/ref/c/globals_func_0x69.html +0 -53
  272. data/ref/c/globals_func_0x70.html +0 -53
  273. data/ref/c/globals_func_0x72.html +0 -57
  274. data/ref/c/globals_func_0x73.html +0 -114
  275. data/ref/c/globals_func_0x76.html +0 -57
  276. data/ref/c/structswig__cast__info.html +0 -98
  277. data/ref/c/structswig__class.html +0 -115
  278. data/ref/c/structswig__module__info.html +0 -132
  279. data/ref/c/structswig__type__info.html +0 -132
  280. data/ref/c/swig__vpi_8h.html +0 -8739
  281. data/ref/c/swig__wrap_8cin.html +0 -11556
  282. data/ref/c/unions__vpi__value__value.html +0 -166
  283. data/ref/ruby/classes/String.src/M000032.html +0 -41
  284. data/ref/ruby/classes/Vpi/Handle.src/M000085.html +0 -18
  285. data/ref/ruby/classes/Vpi/Handle.src/M000086.html +0 -18
  286. data/ref/ruby/classes/XX/Document.src/M000072.html +0 -22
  287. data/ref/ruby/classes/XX/Document.src/M000073.html +0 -20
  288. data/ref/ruby/classes/XX/Markup/ClassMethods.src/M000044.html +0 -22
  289. data/ref/ruby/classes/XX/Markup/ClassMethods.src/M000045.html +0 -20
  290. data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000052.html +0 -56
  291. data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000053.html +0 -33
  292. data/style.css +0 -47
data/history.part.html DELETED
@@ -1,1346 +0,0 @@
1
- <h1>Release history</h1>
2
-
3
-
4
- <p>This is a record of important changes that have occurred with each release of <a href="http://ruby-vpi.rubyforge.org">Ruby-VPI</a>.</p>
5
-
6
-
7
- <h2>Version numbering system</h2>
8
-
9
-
10
- We <em>strictly</em> follow the RubyGems project&#8217;s <a href="http://www.rubygems.org/read/chapter/7">rational versioning policy</a> since release 6.3.0. To summarize<sup><a href="#fn1">1</a></sup> this &#8220;major.minor.build&#8221; numbering policy,
11
- <ul>
12
- <li>an increase in the <em>major</em> number indicates that <em>functionally incompatible</em> changes have occurred. Thus, what may have worked in the previous version may not work in the new one.</li>
13
- <li>an increase in the <em>minor</em> number indicates that <em>functionally compatible</em> changes have occurred. Thus, what worked in the previous version will work in the new one.</li>
14
- <li>an increase in the <em>build</em> number indicates that the <em>underlying implementation</em> has changed. The functionality has not changed and no features have been added. Thus, what worked in the previous version will work in the new one.</li>
15
- </ul>
16
-
17
-
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
-
20
-
21
- <h1>Version 11.1.0 (2006-11-08)</h1>
22
-
23
-
24
- <h2>Summary</h2>
25
-
26
-
27
- <p>This release fixes a bug in generated benches, improves the <a href="./ref/ruby/classes/Vpi/Handle.html">the <code>Vpi::Handle</code> class</a>, and improves performance by roughly 20%.</p>
28
-
29
-
30
- <h2>Acknowledgment</h2>
31
-
32
-
33
- <p>Thanks to Matt Fischler for finding the bug in generated benches (see below).</p>
34
-
35
-
36
- <h2>Notice</h2>
37
-
38
-
39
- <ul>
40
- <li>A bug in generated Verilog and Ruby benches, which caused this error <pre>ruby: no such file to load -- ruby-vpi (LoadError)</pre> has been fixed.
41
- <ul>
42
- <li>Please regenerate your tests to apply this bug fix to your tests.</li>
43
- </ul></li>
44
- </ul>
45
-
46
-
47
- <h2>Detail</h2>
48
-
49
-
50
- <ul>
51
- <li>The class <code>SWIG::TYPE_p_unsigned_int</code> has been aliased as <code>Vpi::Handle</code> for easier access.</li>
52
- </ul>
53
-
54
-
55
- <ul>
56
- <li><code>Vpi::Handle#to_s</code> and <code>Vpi::Handle#inspect</code> now produce more informative output. For example, what used to appear as <pre>#&lt;SWIG::TYPE_p_unsigned_int:0x2aaab6574fa0&gt;</pre> now appears as <pre>#&lt;Vpi::Handle vpiModule fullName=counter_rspec_bench, size=-1, file=counter_rspec_bench.v, lineNo=2&gt;</pre> in this release.
57
- <ul>
58
- <li>You can also provide a list of <span class="caps">VPI</span> property/type names or integer constants to those methods to see additional information in the output.</li>
59
- </ul></li>
60
- </ul>
61
-
62
-
63
- <ul>
64
- <li><code>Vpi::Handle</code> now implements all methods from <code>Enumerable</code>, such as <code>map</code>, <code>each</code>, <code>select</code>, and so on. However, unlike their counterparts in <code>Enumerable</code>, these methods also accept a list of <span class="caps">VPI</span> property/type names or integer constants. Thus, you are now able to write <code>handle.select(:reg, :net) {|h| h.size &gt; 5}</code> to obtain a list of child handles to registers and nets whose capacity is greater than 5 bits.</li>
65
- </ul>
66
-
67
-
68
- <ul>
69
- <li>The <code>Vpi::Handle#[]</code>, <code>Vpi::Handle#get_value</code>, and <code>Vpi::Handle#put_value</code> methods now accept names of <span class="caps">VPI</span> types/properties as well as their integer constants. Thus, you are now able to write <code>handle[:reg, :net]</code> to obtain a list of handles to all child registers and nets.</li>
70
- </ul>
71
-
72
-
73
- <ul>
74
- <li><code>Vpi::Handle#method_missing</code> has been refactored to cache queries. There is now, approximately, 20% improvement in performance.</li>
75
- </ul>
76
-
77
-
78
- <ul>
79
- <li><code>Vpi::Handle#method_missing</code> has been fixed to accept operations with multiple underscores. For example, before this release, you could not write <code>handle.find_all_reg {|r| r.name =~ /foo/}</code> because the &#8220;find_all_reg&#8221; method would be interpreted as the operation &#8220;find&#8221; and the <span class="caps">VPI</span> property &#8220;all_reg&#8221;.</li>
80
- </ul>
81
-
82
-
83
- <ul>
84
- <li>The <code>IntegerGenerator</code> class, in the pipelined <span class="caps">ALU</span> example, has been fixed so that multiple instances do not interfere with the generation of each other&#8217;s prime integers.</li>
85
- </ul>
86
-
87
-
88
- <ul>
89
- <li>Due to a bug in the <code>Rakefile</code>, the reference documentation was not included in the previous few releases. This has been fixed.</li>
90
- </ul>
91
-
92
-
93
- <h1>Version 11.0.0 (2006-11-05)</h1>
94
-
95
-
96
- <h2>Summary</h2>
97
-
98
-
99
- <p>This release shortens generated Ruby benches and uses the less confusing notation for defining <a href="http://wiki.rubygarden.org/Ruby/page/show/SingletonTutorial">singleton methods</a> in generated designs and prototypes.</p>
100
-
101
-
102
- <h2>Notice</h2>
103
-
104
-
105
- <ul>
106
- <li>The arguments for the <a href="ref/ruby/classes/RubyVpi.html"><code>RubyVPI.init_bench</code> method</a> have changed.</li>
107
- </ul>
108
-
109
-
110
- <ul>
111
- <li><strong>generate_test.rb</strong> no longer emits undocumented status indicators: <em>name</em> and <em>format</em>.</li>
112
- </ul>
113
-
114
-
115
- <ul>
116
- <li>The source code is no longer distributed as a <strong>zip</strong> package, because it seems to be quite underutilized in comparison to the <strong>tgz</strong> and <strong>gem</strong> packages.</li>
117
- </ul>
118
-
119
-
120
- <h2>Detail</h2>
121
-
122
-
123
- <ul>
124
- <li>Generated Ruby benches have been shortened to just <em>one</em> line of code!</li>
125
- </ul>
126
-
127
-
128
- <ul>
129
- <li>The less confusing notation of <pre>def some_object.a_singleton_method
130
- do_stuff
131
- end</pre> is now used instead of the <pre>class &lt;&lt; some_object
132
- def a_singleton_method
133
- do_stuff
134
- end
135
- end</pre> notation.
136
- <ul>
137
- <li>The tutorial and examples have been updated accordingly.</li>
138
- </ul></li>
139
- </ul>
140
-
141
-
142
- <ul>
143
- <li>The pipelined <span class="caps">ALU</span> example now has an updated <code>IntegerGenerator</code> class.</li>
144
- </ul>
145
-
146
-
147
- <h1>Version 10.0.0 (2006-11-05)</h1>
148
-
149
-
150
- <h2>Summary</h2>
151
-
152
-
153
- <p>This release adds the ability to access a handle&#8217;s children and reduces the amount of code produced by the automated test generator.</p>
154
-
155
-
156
- <h2>Acknowledgment</h2>
157
-
158
-
159
- <p>Thanks to Matt Fischler for finding the problem of misdirected compilation errors in Verilog benches.</p>
160
-
161
-
162
- <h2>Notice</h2>
163
-
164
-
165
- <ul>
166
- <li>The way in which Ruby-VPI and generated tests interact has changed: the design is now a <span class="caps">VPI</span> handle object and the <code>design.rb</code> and <code>proto.rb</code> files define <a href="http://wiki.rubygarden.org/Ruby/page/show/SingletonTutorial">singleton methods</a> for that object.
167
- <ul>
168
- <li>I suggest that you regenerate your existing tests (just run <strong>generate_test.rb</strong> again) whilst employing the service of a text merging tool (see the user manual).</li>
169
- </ul></li>
170
- </ul>
171
-
172
-
173
- <ul>
174
- <li>You can now access a handle&#8217;s children by simply calling methods on it. In the event that a child handle has the same name as a <span class="caps">VPI</span> property, the child is given priority. However, you can always access <span class="caps">VPI</span> properties explicitly via the <code>get_value</code> and <code>put_value</code> methods.</li>
175
- </ul>
176
-
177
-
178
- <ul>
179
- <li><strong>generate_test.rb</strong> no longer accepts the <code>-s</code> and <code>-u</code> options. Use their longer counterparts <code>--rspec</code> and <code>--xunit</code> instead.</li>
180
- </ul>
181
-
182
-
183
- <h2>Detail</h2>
184
-
185
-
186
- <h3>Automated test generator</h3>
187
-
188
-
189
- <ul>
190
- <li>Generated Verilog benches no longer divert compilation errors from Verilog design files. That is, if the Verilog simulator finds compilation errors in a Verilog design file, it will report that the Verilog design file is at fault (instead of reporting that the generated Verilog bench is at fault).</li>
191
- </ul>
192
-
193
-
194
- <ul>
195
- <li>The user is now notified when a backup of an existing file is made.</li>
196
- </ul>
197
-
198
-
199
- <ul>
200
- <li>Generated tests have been greatly simplified to reduce the amount of work for the user.
201
- <ul>
202
- <li>The design is now just a handle to the module in the Verilog bench.</li>
203
- <li><code>include Vpi</code> and <code>@design</code> are no longer generated.</li>
204
- <li>The tutorial and examples have been updated accordingly.</li>
205
- </ul></li>
206
- </ul>
207
-
208
-
209
- <h3>User manual</h3>
210
-
211
-
212
- <ul>
213
- <li>Revised the stylesheet to make disjoint sections readily distinguishable from each other, through generous spacing and minor coloring.</li>
214
- </ul>
215
-
216
-
217
- <ul>
218
- <li>Added tips about <code>ruby-vpi/runner_proxy</code>, <code>rake -T</code>, and using <strong>kdiff3</strong> with <strong>generate_test.rb</strong>.</li>
219
- </ul>
220
-
221
-
222
- <ul>
223
- <li>Moved installation information into a new &#8220;setup&#8221; chapter.</li>
224
- </ul>
225
-
226
-
227
- <h1>Version 9.0.0 (2006-10-28)</h1>
228
-
229
-
230
- <h2>Summary</h2>
231
-
232
-
233
- <p>This release improves the automated test generator and adds new content to the user manual.</p>
234
-
235
-
236
- <h2>Acknowledgment</h2>
237
-
238
-
239
- <p>Thanks to Matt Fischler for helping test and debug the installation of Ruby-VPI on Windows.</p>
240
-
241
-
242
- <h2>Notice</h2>
243
-
244
-
245
- <ul>
246
- <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>
247
- </ul>
248
-
249
-
250
- <h2>Detail</h2>
251
-
252
-
253
- <ul>
254
- <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>
255
- </ul>
256
-
257
-
258
- <ul>
259
- <li>Synopsys <span class="caps">VCS</span> is now used in a better way (via the <code>-load</code> option).
260
- <ul>
261
- <li>The old <span class="caps">PLI</span> table file (<code>synopsys_vcs.tab</code>) has been removed.</li>
262
- <li>The C extension has been revised accordingly.</li>
263
- </ul></li>
264
- </ul>
265
-
266
-
267
- <ul>
268
- <li>The C extension now compiles without errors in Cygwin.</li>
269
- </ul>
270
-
271
-
272
- <ul>
273
- <li>The automated test generator now:
274
- <ul>
275
- <li>Only creates output files when necessary.</li>
276
- <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>
277
- <li>Emits progress information similar to Ruby on Rails.</li>
278
- </ul></li>
279
- </ul>
280
-
281
-
282
- <ul>
283
- <li>The user manual now:
284
- <ul>
285
- <li>Includes instructions for installing on Windows (via Cygwin).</li>
286
- <li>Has a recommended software section, with links to text merging tools.</li>
287
- <li>Uses the term <a href="http://en.wikipedia.org/wiki/XUnit">xUnit</a> instead of &#8220;unit test&#8221;.</li>
288
- <li>Correctly spells &#8220;rSpec&#8221;.</li>
289
- </ul></li>
290
- </ul>
291
-
292
-
293
- <h1>Version 8.2.0 (2006-10-24)</h1>
294
-
295
-
296
- <h2>Summary</h2>
297
-
298
-
299
- <p>This release simplifies configuration of generated tests.</p>
300
-
301
-
302
- <h2>Acknowledgment</h2>
303
-
304
-
305
- <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>
306
-
307
-
308
- <h2>Notice</h2>
309
-
310
-
311
- <ul>
312
- <li>Generated runners now have a <code>SIMULATOR_INCLUDES</code> array, whose entries specify places where Verilog source files, needed by the Verilog design, reside.</li>
313
- </ul>
314
-
315
-
316
- <h2>Detail</h2>
317
-
318
-
319
- <ul>
320
- <li>Generated Verilog benches now inherit all <code>`include</code> and <code>`define</code> directives from the Verilog design in a simpler manner.</li>
321
- <li>A generated test no longer requires its Verilog design to reside in the same directory.</li>
322
- <li>The sample tests have been updated accordingly.</li>
323
- </ul>
324
-
325
-
326
- <h1>Version 8.1.0 (2006-10-21)</h1>
327
-
328
-
329
- <h2>Summary</h2>
330
-
331
-
332
- <p>This release adds an integer library and renames the vpi_util library.</p>
333
-
334
-
335
- <h2>Notice</h2>
336
-
337
-
338
- <ul>
339
- <li>The <strong>vpi_util</strong> library has been renamed to <strong>vpi</strong>. This change should not affect your code unless you explicitly imported this library via <code>require 'ruby-vpi/vpi_util'</code>. In which case, you should update your code to use <code>require 'ruby-vpi/vpi'</code> accordingly.</li>
340
- </ul>
341
-
342
-
343
- <h2>Detail</h2>
344
-
345
-
346
- <ul>
347
- <li>An integer library has been added to simplify common tasks related to hardware and the binary number system. You can import this library for use via <code>require 'ruby-vpi/integer'</code>.</li>
348
- </ul>
349
-
350
-
351
- <h1>Version 8.0.0 (2006-10-13)</h1>
352
-
353
-
354
- <h2>Summary</h2>
355
-
356
-
357
- <p>This release renames some identifiers for consistency, updates the documentation, and improves integration with RubyGems.</p>
358
-
359
-
360
- <h2>Notice</h2>
361
-
362
-
363
- <ul>
364
- <li>The <code>RubyVPI</code> module has been renamed to <code>RubyVpi</code>.</li>
365
- </ul>
366
-
367
-
368
- <ul>
369
- <li>The <code>PROTO</code> environment variable has been renamed to <code>PROTOTYPE</code>.
370
- <ul>
371
- <li>In addition to using <code>unset</code>, you can now disable simulation of the prototype by assigning an empty value to this variable.</li>
372
- </ul></li>
373
- </ul>
374
-
375
-
376
- <h2>Detail</h2>
377
-
378
-
379
- <ul>
380
- <li>We now use <a href="http://darcs.net">Darcs</a> for revision control, instead of Subversion. The source repository can now be accessed at <a href="http://ruby-vpi.rubyforge.org/src/ruby-vpi">http://ruby-vpi.rubyforge.org/src/ruby-vpi</a>.</li>
381
- </ul>
382
-
383
-
384
- <ul>
385
- <li>The source code is now distributed in tar.gz and zip form, in addition to gem.</li>
386
- </ul>
387
-
388
-
389
- <ul>
390
- <li>Some identifiers have been renamed for better consistency.</li>
391
- </ul>
392
-
393
-
394
- <ul>
395
- <li>The user manual now resides directly within the <code>doc/</code> directory.
396
- <ul>
397
- <li>The integration of documentation in <code>gem_server</code> has been improved.</li>
398
- </ul></li>
399
- </ul>
400
-
401
-
402
- <ul>
403
- <li>The glossary and tutorial in the user manual have been revised.</li>
404
- </ul>
405
-
406
-
407
- <h1>Version 7.3.0 (2006-09-30)</h1>
408
-
409
-
410
- <h2>Summary</h2>
411
-
412
-
413
- <p>This release fixes a bug in generated Verilog benches, includes parsed constants in generated tests, and adds new methods to handles.</p>
414
-
415
-
416
- <h2>Notice</h2>
417
-
418
-
419
- <ul>
420
- <li>Handles now have two new methods:
421
- <ul>
422
- <li><code>handle.x?</code> checks if the logic value is &#8220;don&#8217;t care&#8221; </li>
423
- <li><code>handle.z?</code> checks if the logic value is high impedance</li>
424
- </ul></li>
425
- </ul>
426
-
427
-
428
- <h2>Detail</h2>
429
-
430
-
431
- <ul>
432
- <li>Module instantiation code in generated Verilog benches has been fixed. Whitespace between the module type and instance variable was missing.</li>
433
- </ul>
434
-
435
-
436
- <ul>
437
- <li>The test generator tool now provides parsed Verilog constants and include-directives in generated Verilog benches; and parsed Verilog constants in generated Ruby designs.
438
- <ul>
439
- <li>The pipelined <span class="caps">ALU</span> example has been revised accordingly.</li>
440
- </ul></li>
441
- </ul>
442
-
443
-
444
- <ul>
445
- <li>A library for parsing Verilog source code has been added as <code>lib/ruby-vpi/verilog_parser.rb</code>.</li>
446
- </ul>
447
-
448
-
449
- <h1>Version 7.2.0 (2006-09-15)</h1>
450
-
451
-
452
- <h2>Summary</h2>
453
-
454
-
455
- <p>This release adds initial<sup><a href="#fn1">1</a></sup> support for code coverage analysis via the <a href="http://eigenclass.org/hiki.rb?rcov">rcov library</a>.</p>
456
-
457
-
458
- <h2>Acknowledgment</h2>
459
-
460
-
461
- <p>Thanks to Mauricio Fernandez for helping me use rcov without its runner.</p>
462
-
463
-
464
- <h2>Detail</h2>
465
-
466
-
467
- <ul>
468
- <li>Added initial<sup><a href="#fn1">1</a></sup> support for code coverage analysis, which can be enabled by setting the <code>COVERAGE</code> environment variable to a non-empty value before running a test.
469
- <ul>
470
- <li>For example, you can run a test with the <span class="caps">GPL</span> Cver simulator while enabling the generation of code coverage reports as follows: <code>export COVERAGE=1; rake cver</code></li>
471
- </ul></li>
472
- </ul>
473
-
474
-
475
- <ul>
476
- <li>Coverage reports are generated in text and <span class="caps">HTML</span> formats.</li>
477
- </ul>
478
-
479
-
480
- <p id="fn1"><sup>1</sup> Full capabilites of the rcov library, such as its various analysis modes, are not yet utilized.</p>
481
-
482
-
483
- <h1>Version 7.1.0 (2006-08-29)</h1>
484
-
485
-
486
- <h2>Summary</h2>
487
-
488
-
489
- <p>This release simplifies running of multiple tests, restores compatibility with Synopsys <span class="caps">VCS</span>, and better integrates with RubyGems.</p>
490
-
491
-
492
- <h2>Detail</h2>
493
-
494
-
495
- <ul>
496
- <li>Added <code>lib/ruby-vpi/runner_proxy</code> library which, when embedded into a Rakefile, runs all generated tests in the working directory with any specified arguments. For example, have a look at the <code>samp/counter/Rakefile</code> file.</li>
497
- </ul>
498
-
499
-
500
- <ul>
501
- <li>Fixed a bug that prevented one from running tests with Synopsys <span class="caps">VCS</span>.</li>
502
- </ul>
503
-
504
-
505
- <ul>
506
- <li>Ruby-VPI documentation is now available through RubyGems&#8217; <a href="http://docs.rubygems.org/read/chapter/2#page10"><code>gem_server</code> web interface</a>.</li>
507
- </ul>
508
-
509
-
510
- <ul>
511
- <li>The user manual now discusses how to determine the location of a Ruby-VPI installation.</li>
512
- </ul>
513
-
514
-
515
- <ul>
516
- <li>The <code>tpl/</code> directory has been removed.</li>
517
- </ul>
518
-
519
-
520
- <h1>Version 7.0.0 (2006-08-29)</h1>
521
-
522
-
523
- <h2>Summary</h2>
524
-
525
-
526
- <p>This release distributes Ruby-VPI as a gem, improves portability of generated tests, and fixes a bug.</p>
527
-
528
-
529
- <h2>Notice</h2>
530
-
531
-
532
- <ul>
533
- <li><code>put_value()</code> now accomodates register value overflows when verifying the value it has written.</li>
534
- </ul>
535
-
536
-
537
- <ul>
538
- <li>The test generator&#8217;s templates and the examples have been updated as follows:
539
- <ul>
540
- <li>Test runners no longer have to specify the path to Ruby-VPI installation directory. Instead, they simply <code>require 'ruby-vpi/runner'</code>. Thus, you can run your tests on any machine with Ruby-VPI without having to know where it is installed.</li>
541
- <li>Ruby benches now invoke <code>RubyVPI.init_bench</code> instead of <code>require 'bench'; setup_bench</code> to become initialized.</li>
542
- </ul></li>
543
- </ul>
544
-
545
-
546
- <ul>
547
- <li>All Ruby libraries in the <code>lib/</code> directory have been moved into <code>lib/ruby-vpi/</code> to prevent load-path clashes with other gems. You should access these libraries by prefixing their path with &#8220;ruby-vpi&#8221;. For example, <code>require 'vpi_util'</code> should now be written as <code>require 'ruby-vpi/vpi_util'</code>.</li>
548
- </ul>
549
-
550
-
551
- <ul>
552
- <li>The <code>src/</code> directory has been renamed to <code>ext/</code> to follow RubyGems convention.</li>
553
- </ul>
554
-
555
-
556
- <h2>Detail</h2>
557
-
558
-
559
- <ul>
560
- <li>Ruby-VPI is now distributed only as a <a href="http://www.rubygems.org">source gem</a>. You can decompress the gem without installing it onto your system by running the command <code>gem install -i output_directory ruby-vpi-7.0.0.gem</code>. In addition, you can still obtain the source code directly from the Subversion repository.</li>
561
- </ul>
562
-
563
-
564
- <ul>
565
- <li>The tools in <code>bin/</code> become available in your system&#8217;s <code>bin/</code> directory when the gem is installed.
566
- <ul>
567
- <li>Usage and help information has been added to the <code>header_to_ruby.rb</code> tool.</li>
568
- </ul></li>
569
- </ul>
570
-
571
-
572
- <ul>
573
- <li>Incorrect spelling of <span class="caps">GPL</span> Cver (v should be uncapitalized) has been fixed.</li>
574
- </ul>
575
-
576
-
577
- <ul>
578
- <li>Incorrect link to <span class="caps">GPL</span> Cver website has been fixed.</li>
579
- </ul>
580
-
581
-
582
- <ul>
583
- <li>The user manual has been updated according to all of the above changes.</li>
584
- </ul>
585
-
586
-
587
- <h1>Version 6.3.0 (2006-08-27)</h1>
588
-
589
-
590
- <h2>Summary</h2>
591
-
592
-
593
- <p>This release adds support for the <span class="caps">GPL</span> Cver simulator, provides both binary and source packages, and explicitly defines the version numbering system.</p>
594
-
595
-
596
- <h2>Notice</h2>
597
-
598
-
599
- <ul>
600
- <li>Ruby-VPI now only needs to be built once.
601
- <ul>
602
- <li>You can run tests with different Verilog simulators without having to re-compile Ruby-VPI.</li>
603
- </ul></li>
604
- </ul>
605
-
606
-
607
- <h2>Detail</h2>
608
-
609
-
610
- <ul>
611
- <li>The <span class="caps">GPL</span> Cver simulator is now supported.</li>
612
- </ul>
613
-
614
-
615
- <ul>
616
- <li>Release packages are now available in both source and binary form.</li>
617
- </ul>
618
-
619
-
620
- <ul>
621
- <li>The RSpec based specifications for the counter example now use the <code>should_equal</code> instead of the <code>should_be</code> assertion, because the latter ensures strict equivalence. For instance, it will fail when a Fixnum is compared to a Bignum.</li>
622
- </ul>
623
-
624
-
625
- <ul>
626
- <li>We now follow the RubyGems project&#8217;s <a href="http://www.rubygems.org/read/chapter/7">rational versioning policy</a>. The version numbers of previous releases have been revised accordingly:
627
- <table>
628
- <tr>
629
- <th>Release date </th>
630
- <th>Original version number </th>
631
- <th>New version number </th>
632
- </tr>
633
- <tr>
634
- <td> 1999-10-31 </td>
635
- <td> 0.0 </td>
636
- <td> 0.0.0 </td>
637
- </tr>
638
- <tr>
639
- <td> 2006-02-26 </td>
640
- <td> 0.1 </td>
641
- <td> 1.0.0 </td>
642
- </tr>
643
- <tr>
644
- <td> 2006-04-17 </td>
645
- <td> 0.2 </td>
646
- <td> 2.0.0 </td>
647
- </tr>
648
- <tr>
649
- <td> 2006-04-23 </td>
650
- <td> 0.3 </td>
651
- <td> 3.0.0 </td>
652
- </tr>
653
- <tr>
654
- <td> 2006-04-28 </td>
655
- <td> 0.4 </td>
656
- <td> 3.1.0 </td>
657
- </tr>
658
- <tr>
659
- <td> 2006-05-13 </td>
660
- <td> 0.5 </td>
661
- <td> 3.2.0 </td>
662
- </tr>
663
- <tr>
664
- <td> 2006-05-25 </td>
665
- <td> 0.6 </td>
666
- <td> 4.0.0 </td>
667
- </tr>
668
- <tr>
669
- <td> 2006-07-22 </td>
670
- <td> 0.7 </td>
671
- <td> 5.0.0 </td>
672
- </tr>
673
- <tr>
674
- <td> 2006-07-29 </td>
675
- <td> 0.8 </td>
676
- <td> 5.1.0 </td>
677
- </tr>
678
- <tr>
679
- <td> 2006-08-04 </td>
680
- <td> 0.8.1 </td>
681
- <td> 5.1.1 </td>
682
- </tr>
683
- <tr>
684
- <td> 2006-08-07 </td>
685
- <td> 0.9 </td>
686
- <td> 6.0.0 </td>
687
- </tr>
688
- <tr>
689
- <td> 2006-08-09 </td>
690
- <td> 0.9.1 </td>
691
- <td> 6.1.0 </td>
692
- </tr>
693
- <tr>
694
- <td> 2006-08-26 </td>
695
- <td> 0.9.2 </td>
696
- <td> 6.2.0 </td>
697
- </tr>
698
- </table></li>
699
- </ul>
700
-
701
-
702
- <h1>Version 6.2.0 (2006-08-26)</h1>
703
-
704
-
705
- <h2>Summary</h2>
706
-
707
-
708
- <p>This release beautifies generated tests, adds checks to find signal width bugs, and includes a new tool.</p>
709
-
710
-
711
- <h2>Notice</h2>
712
-
713
-
714
- <ul>
715
- <li><code>put_value()</code> now returns the value it puts. Therefore, it is easier to chain together a series of assignments: <code>foo.intVal = bar.intVal = baz.intVal = 10</code></li>
716
- </ul>
717
-
718
-
719
- <ul>
720
- <li><code>put_value()</code> now verifies that the value it puts was written correctly. This helps to find bugs regarding invalid assumptions about the number of bits supported by a signal.</li>
721
- </ul>
722
-
723
-
724
- <h2>Detail</h2>
725
-
726
-
727
- <ul>
728
- <li>The test generator now uses <span class="caps">ERB</span> templates which ensures nice indentation of generated output.</li>
729
- </ul>
730
-
731
-
732
- <ul>
733
- <li>The test generator now decouples Ruby-VPI paths from Verilog benches via the <span class="caps">RUBYLIB</span> environment variable.</li>
734
- </ul>
735
-
736
-
737
- <ul>
738
- <li>A tool which converts Verilog headers into Ruby has been added.</li>
739
- </ul>
740
-
741
-
742
- <ul>
743
- <li>The source code is now indented with two spaces instead of one tab character.</li>
744
- </ul>
745
-
746
-
747
- <h1>Version 6.1.0 (2006-08-09)</h1>
748
-
749
-
750
- <h2>Summary</h2>
751
-
752
-
753
- <p>This release simplifies generated tests and fixes a bug.</p>
754
-
755
-
756
- <h2>Detail</h2>
757
-
758
-
759
- <ul>
760
- <li>The test generator now produces simpler Ruby benches and specifications.
761
- <ul>
762
- <li>A template used by generated specifications has been added.</li>
763
- <li>The counter example and tutorial have also been simplified accordingly.</li>
764
- </ul></li>
765
- </ul>
766
-
767
-
768
- <ul>
769
- <li>Boolean <span class="caps">VPI</span> property values are now correctly converted into Ruby truth values.</li>
770
- </ul>
771
-
772
-
773
- <h1>Version 6.0.0 (2006-08-07)</h1>
774
-
775
-
776
- <h2>Summary</h2>
777
-
778
-
779
- <p>This release adds support and documentation for rapid prototyping of Verilog designs in Ruby.</p>
780
-
781
-
782
- <h2>Notice</h2>
783
-
784
-
785
- <ul>
786
- <li>The directory structure has been reorganized as follows:
787
- <ul>
788
- <li><code>ext</code> &rarr; <code>src</code></li>
789
- <li><code>tools</code> &rarr; <code>bin</code></li>
790
- <li><code>examples</code> &rarr; <code>samp</code></li>
791
- </ul></li>
792
- </ul>
793
-
794
-
795
- <ul>
796
- <li>All template files have been moved into the <code>tpl</code> directory.</li>
797
- </ul>
798
-
799
-
800
- <h2>Detail</h2>
801
-
802
-
803
- <ul>
804
- <li>Support for prototyping designs in Ruby, before they are implemented in Verilog, has been added.
805
- <ul>
806
- <li>The <em>same</em> specification can be used to verify both prototype <em>and</em> design! :-)</li>
807
- <li>The tutorial in the user manual has been updated to discuss prototyping.
808
- <ul>
809
- <li>Prototypes have been added to the counter example.</li>
810
- </ul></li>
811
- </ul></li>
812
- </ul>
813
-
814
-
815
- <ul>
816
- <li>The user manual has been revised for consistency.</li>
817
- </ul>
818
-
819
-
820
- <h1>Version 5.1.1 (2006-08-04)</h1>
821
-
822
-
823
- <h2>Summary</h2>
824
-
825
-
826
- <p>This release fixes unreadable syntax coloring in the user manual.</p>
827
-
828
-
829
- <h2>Acknowledgment</h2>
830
-
831
-
832
- <ul>
833
- <li>Thanks to Todd Nagengast and Matt Fischler for notifying me about unreadable text in the user manual.</li>
834
- </ul>
835
-
836
-
837
- <h2>Detail</h2>
838
-
839
-
840
- <ul>
841
- <li>Source code comments in the user manual are now readable.</li>
842
- </ul>
843
-
844
-
845
- <ul>
846
- <li>The <code>README</code> and <code>HISTORY</code> files have been converted to <a href="http://www.textism.com/tools/textile/">textile</a> format.</li>
847
- </ul>
848
-
849
-
850
- <h1>Version 5.1.0 (2006-07-29)</h1>
851
-
852
-
853
- <h2>Summary</h2>
854
-
855
-
856
- <p>This release adds a tutorial to the user manual, and improves the tools and examples.</p>
857
-
858
-
859
- <h2>Acknowledgment</h2>
860
-
861
-
862
- <ul>
863
- <li>Thanks to Phil Tomson for correcting the <span class="caps">URL</span> of the <span class="caps">RHDL</span> website, in the user manual.</li>
864
- </ul>
865
-
866
-
867
- <h2>Detail</h2>
868
-
869
-
870
- <h3>User manual</h3>
871
-
872
-
873
- <ul>
874
- <li>A tutorial, based on the counter example, has been added to the user manual.</li>
875
- </ul>
876
-
877
-
878
- <ul>
879
- <li>The user manual&#8217;s appearance has been dramatically improved with syntax coloring for source code, and <a href="http://tango.freedesktop.org">graphics for admonitions and navigation</a>.</li>
880
- </ul>
881
-
882
-
883
- <h3>Examples</h3>
884
-
885
-
886
- <ul>
887
- <li>A specification, expressed in unit test format, has been added to the counter example.</li>
888
- </ul>
889
-
890
-
891
- <ul>
892
- <li>The <code>--name</code> and <code>-n</code> options, which lets you specify an identifier for a generated test, have been added to the <code>generate_test.rb</code> tool.</li>
893
- </ul>
894
-
895
-
896
- <ul>
897
- <li>Running <code>rake clobber</code> in an example directory no longer destroys documentation in the Ruby-VPI directory.</li>
898
- </ul>
899
-
900
-
901
- <ul>
902
- <li>The examples&#8217; Rakefiles now invoke all tests present in the directory via the <code>launcher_template.rake</code> template.</li>
903
- </ul>
904
-
905
-
906
- <ul>
907
- <li>The Rake template for test runners (generated by <code>tools/generate_test.rb</code>) has moved from <code>examples/template.rake</code> to <code>examples/runner_template.rake</code>.</li>
908
- </ul>
909
-
910
-
911
- <h3><span class="caps">VPI</span> utility layer</h3>
912
-
913
-
914
- <ul>
915
- <li>The value of a handle&#8217;s boolean <span class="caps">VPI</span> property is treated as <code>false</code> if it is zero, because zero is <code>false</code> in the C language.</li>
916
- </ul>
917
-
918
-
919
- <h1>Version 5.0.0 (2006-07-22)</h1>
920
-
921
-
922
- <h2>Summary</h2>
923
-
924
-
925
- <p>This release enhances the <span class="caps">VPI</span> utility layer and adds new content to the user manual.</p>
926
-
927
-
928
- <h2>Acknowledgment</h2>
929
-
930
-
931
- <ul>
932
- <li>Thanks to Jan Decaluwe for correcting the description of MyHDL in the user manual.</li>
933
- </ul>
934
-
935
-
936
- <h2>Notice</h2>
937
-
938
-
939
- <ul>
940
- <li><span class="caps">SWIG</span> is no longer required for users because its output is included in the release package.</li>
941
- </ul>
942
-
943
-
944
- <ul>
945
- <li>The <code>handle.value</code> and <code>handle.value=</code> methods have been removed.</li>
946
- </ul>
947
-
948
-
949
- <h2>Detail</h2>
950
-
951
-
952
- <ul>
953
- <li>The <span class="caps">VPI</span> utility layer provides access to <span class="caps">VPI</span> properties of handles in a <a href="http://ruby-vpi.rubyforge.org/doc/background.organization.html#organization.vpi">simpler, more powerful way</a>.</li>
954
- </ul>
955
-
956
-
957
- <ul>
958
- <li>All <span class="caps">VPI</span> properties, except delay values, are now accessible from a handle.</li>
959
- </ul>
960
-
961
-
962
- <ul>
963
- <li>The user manual has been revised and new content in the organization and usage sections has been added.</li>
964
- </ul>
965
-
966
-
967
- <ul>
968
- <li>This release was tested and developed using:
969
- <ul>
970
- <li>Ruby 1.8.4 and Icarus Verilog 0.8 on i686 <span class="caps">GNU</span>/Linux</li>
971
- <li>Ruby 1.8.4 and Mentor Modelsim 6.1d on x86_64 <span class="caps">GNU</span>/Linux</li>
972
- </ul></li>
973
- </ul>
974
-
975
-
976
- <h1>Version 4.0.0 (2006-05-25)</h1>
977
-
978
-
979
- <h2>Summary</h2>
980
-
981
-
982
- <p>This release adds a comprehensive user manual, upgrades from make to <a href="http://rake.rubyforge.org">Rake</a>, and improves the test generation tool.</p>
983
-
984
-
985
- <h2>Acknowledgment</h2>
986
-
987
-
988
- <ul>
989
- <li>Thanks to Jose Renau for solving the problem of strange delays that occurred whenever a design was reset.</li>
990
- </ul>
991
-
992
-
993
- <h2>Notice</h2>
994
-
995
-
996
- <ul>
997
- <li>Rake has replaced the role of <strong>make</strong>. All makefiles have been converted accordingly.</li>
998
- </ul>
999
-
1000
-
1001
- <ul>
1002
- <li>The test generation tool now generates multiple files (runner, bench, design, spec) and makes backups of existing files. See its help information for details.</li>
1003
- </ul>
1004
-
1005
-
1006
- <h2>Detail</h2>
1007
-
1008
-
1009
- <ul>
1010
- <li>A comprehensive user manual, written in DocBook-XML, has been added.</li>
1011
- </ul>
1012
-
1013
-
1014
- <ul>
1015
- <li>Support for RSpec 0.5.4 has been added.
1016
- <ul>
1017
- <li>The counter example now makes use of RSpec.</li>
1018
- </ul></li>
1019
- </ul>
1020
-
1021
-
1022
- <ul>
1023
- <li>This release was tested and developed using:
1024
- <ul>
1025
- <li>Ruby 1.8.4 and Icarus Verilog 0.8 on i686 <span class="caps">GNU</span>/Linux</li>
1026
- <li>Ruby 1.8.4 and Mentor Modelsim 6.1d on x86_64 <span class="caps">GNU</span>/Linux</li>
1027
- </ul></li>
1028
- </ul>
1029
-
1030
-
1031
- <h1>Version 3.2.0 (2006-05-13)</h1>
1032
-
1033
-
1034
- <h2>Summary</h2>
1035
-
1036
-
1037
- <p>This release adds a tool which generates test benches, and adds support for <a href="http://behaviour-driven.org">Behavior Driven Development</a> via the <a href="http://rspec.rubyforge.org">RSpec</a> library.</p>
1038
-
1039
-
1040
- <h2>Acknowledgment</h2>
1041
-
1042
-
1043
- <ul>
1044
- <li>Thanks to Scott L Holmes for helping me <a href="http://article.gmane.org/gmane.comp.lang.ruby.general/150087">use the RSpec library without its runner</a> program.</li>
1045
- </ul>
1046
-
1047
-
1048
- <h2>Detail</h2>
1049
-
1050
-
1051
- <ul>
1052
- <li>A tool, which generates most of a Ruby-VPI test bench from a Verilog 2001 module declaration, has been added.</li>
1053
- </ul>
1054
-
1055
-
1056
- <ul>
1057
- <li>Ability to use RSpec in a test bench has been added.</li>
1058
- </ul>
1059
-
1060
-
1061
- <ul>
1062
- <li>Ability to specify arbitrary command-line arguments to Verilog simulators has been added in the examples&#8217; makefile template.</li>
1063
- </ul>
1064
-
1065
-
1066
- <ul>
1067
- <li>This release was tested and developed using:
1068
- <ul>
1069
- <li>Ruby 1.8.4 and Icarus Verilog 0.8 on i686 <span class="caps">GNU</span>/Linux</li>
1070
- <li>Ruby 1.8.4 and Mentor Modelsim 6.1d on x86_64 <span class="caps">GNU</span>/Linux</li>
1071
- </ul></li>
1072
- </ul>
1073
-
1074
-
1075
- <h1>Version 3.1.0 (2006-04-28)</h1>
1076
-
1077
-
1078
- <h2>Summary</h2>
1079
-
1080
-
1081
- <p>This release adds simple ways of reading and writing values to <span class="caps">VPI</span> handles, adds documentation for the <span class="caps">VPI</span> utility layer, and fixes the pipelined <span class="caps">ALU</span> example.</p>
1082
-
1083
-
1084
- <h2>Notice</h2>
1085
-
1086
-
1087
- <ul>
1088
- <li>The <strong>msim</strong> Makefile target for Mentor Modelsim has been renamed back to <strong>vsim</strong>.</li>
1089
- </ul>
1090
-
1091
-
1092
- <h2>Detail</h2>
1093
-
1094
-
1095
- <ul>
1096
- <li>Simple, consistent ways of reading and writing values to handles have been added to the <span class="caps">VPI</span> utility layer. These ways are described in the <code>SWIG::TYPE_p_unsigned_int</code> class&#8217; documentation.</li>
1097
- </ul>
1098
-
1099
-
1100
- <ul>
1101
- <li>The makefiles now use the <strong>rbconfig</strong> library to determine the default compiler and linker flags for Ruby.</li>
1102
- </ul>
1103
-
1104
-
1105
- <ul>
1106
- <li>A race condition in the pipelined <span class="caps">ALU</span> example has been fixed. This example should now run successfully in all Verilog simulators.</li>
1107
- </ul>
1108
-
1109
-
1110
- <ul>
1111
- <li>The project wiki has been abandoned in favor of RDoc.</li>
1112
- </ul>
1113
-
1114
-
1115
- <ul>
1116
- <li>The project website is now generated by RDoc.</li>
1117
- </ul>
1118
-
1119
-
1120
- <ul>
1121
- <li>This release was tested and developed using:
1122
- <ul>
1123
- <li>Ruby 1.8.4 and Icarus Verilog 0.8 on i686 <span class="caps">GNU</span>/Linux</li>
1124
- <li>Ruby 1.8.4 and Mentor Modelsim 6.1d on x86_64 <span class="caps">GNU</span>/Linux</li>
1125
- </ul></li>
1126
- </ul>
1127
-
1128
-
1129
- <h1>Version 3.0.0 (2006-04-23)</h1>
1130
-
1131
-
1132
- <h2>Summary</h2>
1133
-
1134
-
1135
- <p>This release adds support for the <em>entire</em> <a href="http://ieeexplore.ieee.org/xpl/standardstoc.jsp?isnumber=33945"><span class="caps">IEEE</span> Std. 1364-2005</a> VPI interface, and updates the examples into unit tests.</p>
1136
-
1137
-
1138
- <h2>Acknowledgment</h2>
1139
-
1140
-
1141
- <ul>
1142
- <li>Thanks to the <a href="http://www.swig.org/guilty.html"><span class="caps">SWIG</span> developers</a> for making this project <em>much</em> easier! ;-)</li>
1143
- </ul>
1144
-
1145
-
1146
- <h2>Notice</h2>
1147
-
1148
-
1149
- <ul>
1150
- <li>The <strong>vsim</strong> Makefile target for Mentor Modelsim has been renamed to <strong>msim</strong>.</li>
1151
- </ul>
1152
-
1153
-
1154
- <h2>Detail</h2>
1155
-
1156
-
1157
- <ul>
1158
- <li>The Ruby interface to <span class="caps">VPI</span> is now generated by <a href="http://www.swig.org"><span class="caps">SWIG</span></a>.
1159
- <ul>
1160
- <li>The main <code>VPI</code> module has been renamed to <code>Vpi</code>.</li>
1161
- <li>The <code>VPI::Handle</code> class has been removed.</li>
1162
- <li>The <code>VPI::stop</code>, <code>VPI::finish</code>, and <code>VPI::reset</code> methods have been removed.</li>
1163
- </ul></li>
1164
- </ul>
1165
-
1166
-
1167
- <ul>
1168
- <li>The <a href="http://www.boydtechinc.com/ptf/archive/ptf_2005/0737.html"><em>final ballot</em> version</a> of the <code>vpi_user.h</code> header file is now packaged along with and used by Ruby-VPI.</li>
1169
- </ul>
1170
-
1171
-
1172
- <ul>
1173
- <li>The <span class="caps">VPI</span> module, its sub-classes, and its functionality have been replaced by the <span class="caps">VPI</span> utility layer (see <code>src/vpi_util.rb</code>).</li>
1174
- </ul>
1175
-
1176
-
1177
- <ul>
1178
- <li>The examples now make use of the <strong>test/unit</strong> unit testing framework.</li>
1179
- </ul>
1180
-
1181
-
1182
- <ul>
1183
- <li>The makefiles for the examples have been simplified through the use of a common template.</li>
1184
- </ul>
1185
-
1186
-
1187
- <ul>
1188
- <li>This release was tested and developed using:
1189
- <ul>
1190
- <li>Ruby 1.8.4 and Icarus Verilog 0.8 on i686 <span class="caps">GNU</span>/Linux</li>
1191
- <li>Ruby 1.8.4 and Mentor Modelsim 6.1d on x86_64 <span class="caps">GNU</span>/Linux</li>
1192
- </ul></li>
1193
- </ul>
1194
-
1195
-
1196
- <h1>Version 2.0.0 (2006-04-17)</h1>
1197
-
1198
-
1199
- <h2>Summary</h2>
1200
-
1201
-
1202
- <p>This release fixes major bugs, adds support for Mentor Modelsim, and removes the <code>$ruby_task</code> callback.</p>
1203
-
1204
-
1205
- <h2>Acknowledgment</h2>
1206
-
1207
-
1208
- <ul>
1209
- <li>Thanks to Nobu Nakada for explaining the <a href="http://article.gmane.org/gmane.comp.lang.ruby.general/146653">cross-thread violation on rb_gc()</a> error.</li>
1210
- </ul>
1211
-
1212
-
1213
- <h2>Notice</h2>
1214
-
1215
-
1216
- <ul>
1217
- <li>Removed <code>$ruby_task</code> callback and ability to dynamically register system tasks from Ruby because inter-process communication is complicated at present.</li>
1218
- </ul>
1219
-
1220
-
1221
- <h2>Detail</h2>
1222
-
1223
-
1224
- <ul>
1225
- <li>The <strong>cross-thread violation on rb_gc()</strong> error has been fixed.
1226
- <ul>
1227
- <li>The <strong>stack level too deep (SystemStackError)</strong> error has been fixed.</li>
1228
- <li>The <strong>test/unit</strong> library can be used in Ruby test bench.</li>
1229
- <li>Mentor Modelsim Verilog simulator works with Ruby-VPI.</li>
1230
- </ul></li>
1231
- </ul>
1232
-
1233
-
1234
- <ul>
1235
- <li>Added piplelined <span class="caps">ALU</span> example.</li>
1236
- </ul>
1237
-
1238
-
1239
- <ul>
1240
- <li>This release was tested and developed using:
1241
- <ul>
1242
- <li>Ruby 1.8.4 and Icarus Verilog 0.8 on i686 <span class="caps">GNU</span>/Linux</li>
1243
- <li>Ruby 1.8.4 and Modelsim 6.1d on x86_64 <span class="caps">GNU</span>/Linux</li>
1244
- <li>Ruby 1.8.4 and Synopsys <span class="caps">VCS</span>-MX X-2005.06-SP1 on <span class="caps">SPARC4</span> SunOS 5.10</li>
1245
- </ul></li>
1246
- </ul>
1247
-
1248
-
1249
- <h1>Version 1.0.0 (2006-02-26)</h1>
1250
-
1251
-
1252
- <h2>Summary</h2>
1253
-
1254
-
1255
- This release adds enough Verilog <span class="caps">VPI</span> functionality to make Ruby-VPI usable for simple test benches:
1256
- <ul>
1257
- <li>access Verilog objects through <span class="caps">VPI</span> handles</li>
1258
- <li>read and change <span class="caps">VPI</span> handle values</li>
1259
- <li>stop, finish, restart the simulation</li>
1260
- </ul>
1261
-
1262
-
1263
- <h2>Acknowledgment</h2>
1264
-
1265
-
1266
- <ul>
1267
- <li>Thanks to Jose Renau for helping me debug how Synopsys <span class="caps">VCS</span> works with Verilog <span class="caps">VPI</span>. The problem was that <span class="caps">VCS</span> required calltf signatures to be <code>void (*)(void)</code>, whereas the Verilog standard defines a calltf signature as <code>PLI_INT32 (*)(PLI_BYTE8*)</code>.</li>
1268
- </ul>
1269
-
1270
-
1271
- <ul>
1272
- <li>Thanks to Ross Bamford, Eric Hodel, and Yukihiro Matsumoto for <a href="http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/180662">helping me discover</a> why the <code>SystemStackError</code> was happening.</li>
1273
- </ul>
1274
-
1275
-
1276
- <h2>Detail</h2>
1277
-
1278
-
1279
- <ul>
1280
- <li>Implemented some Verilog <span class="caps">VPI</span> functionality:
1281
- <ul>
1282
- <li><code>VPI::handle_by_name(string, VPI::Handle)</code> &rarr; <code>VPI::Handle</code></li>
1283
- <li><code>VPI::handle_by_name(string)</code> &rarr; <code>VPI::Handle</code></li>
1284
- <li><code>VPI::Handle#put_value(integer)</code></li>
1285
- <li><code>VPI::Handle#value = integer</code></li>
1286
- <li><code>VPI::Handle#get_value</code> &rarr; <code>integer</code></li>
1287
- <li><code>VPI::Handle#value</code> &rarr; <code>integer</code></li>
1288
- <li><code>VPI::stop</code></li>
1289
- <li><code>VPI::finish</code></li>
1290
- <li><code>VPI::reset</code></li>
1291
- </ul></li>
1292
- </ul>
1293
-
1294
-
1295
- <ul>
1296
- <li>Implemented some additional functionality:
1297
- <ul>
1298
- <li><code>VPI::register_task(string, &#38;proc)</code></li>
1299
- </ul></li>
1300
- </ul>
1301
-
1302
-
1303
- <ul>
1304
- <li>Added ability to pass arbitrary command-line arguments to the Ruby interpreter (using <code>$ruby_init</code>). Now you can invoke any Ruby script you want, instead of <code>pli_init.rb</code>.</li>
1305
- </ul>
1306
-
1307
-
1308
- <ul>
1309
- <li>Added ability to dynamically register system tasks from Ruby, using <code>VPI::register_task("task name")</code>, and call them from Verilog, using <code>$ruby_task("task name")</code>.</li>
1310
- </ul>
1311
-
1312
-
1313
- <ul>
1314
- <li>Added <code>VPI::Handle</code> class which encapsulates a <code>vpiHandle</code> VPI object.</li>
1315
- </ul>
1316
-
1317
-
1318
- <ul>
1319
- <li>This release was tested and developed using:
1320
- <ul>
1321
- <li>Ruby 1.8.2 and Icarus Verilog 0.8 on i686 <span class="caps">GNU</span>/Linux</li>
1322
- <li>Ruby 1.8.4, Synopsys <span class="caps">VCS X</span>-2005.06, and Mentor Modelsim 6.1b on i686 <span class="caps">GNU</span>/Linux</li>
1323
- </ul></li>
1324
- </ul>
1325
-
1326
-
1327
- <h1>Version 0.0.0 (1999-10-31)</h1>
1328
-
1329
-
1330
- <h2>Summary</h2>
1331
-
1332
-
1333
- <p>This is Kazuhiro <span class="caps">HIWADA</span>&#8217;s initial testing release of Ruby-VPI. See its <a href="http://www.ruby-talk.org/cgi-bin/scat.rb/ruby/ruby-list/18193">original announcement</a> and <a href="http://easter.kuee.kyoto-u.ac.jp/~hiwada/ruby/memo/src/ruby-vpi-test.tgz">source code</a>.</p>
1334
-
1335
-
1336
- <h2>Detail</h2>
1337
-
1338
-
1339
- <ul>
1340
- <li>Added ability to relay control from Verilog test bench to Ruby (using <code>$ruby_callback</code>) and vice versa (using <code>PLI::relay_Verilog</code>).</li>
1341
- </ul>
1342
-
1343
-
1344
- <ul>
1345
- <li>Tested and developed using Ruby 1.4 and Verilog-XL from Cadence systems, on a <span class="caps">SPARC</span> machine running Solaris 2.6.</li>
1346
- </ul>