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/doc/history.erb ADDED
@@ -0,0 +1,18 @@
1
+ h1. Release history
2
+
3
+ This is a record of important changes that have occurred with each release.
4
+
5
+
6
+ h2. Version numbering system
7
+
8
+ We _strictly_ follow the RubyGems project's "rational versioning policy":http://www.rubygems.org/read/chapter/7 since release 6.3.0. To summarize[1] this "major.minor.build" numbering policy,
9
+ * an increase in the _major_ number indicates that _functionally incompatible_ changes have occurred. Thus, what may have worked in the previous version may not work in the new one.
10
+ * an increase in the _minor_ number indicates that _functionally compatible_ changes have occurred. Thus, what worked in the previous version will work in the new one.
11
+ * an increase in the _build_ number indicates that the _underlying implementation_ 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.
12
+
13
+ fn1. C. Gross, "Explaining Open Source Version Numbers", [Online document], 2005 Nov 28, [cited 2006 Aug 27], Available HTTP: "http://ablog.apress.com/?p=738":http://ablog.apress.com/?p=738
14
+
15
+
16
+ <% @history.each do |entry| %>
17
+ <%= format_history_entry entry %>
18
+ <% end %>
data/doc/history.html ADDED
@@ -0,0 +1,1726 @@
1
+
2
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3
+ <html>
4
+ <head>
5
+ <meta http-equiv="content-type" content="text/html; charset=utf-8"/>
6
+ <link rel="stylesheet" type="text/css" href="common.css" />
7
+ <title>Release history</title>
8
+ </head>
9
+ <body>
10
+
11
+ <div id="navigation">
12
+ <p><a href="readme.html"><img src="images/home.png" title="project home" alt="project home" /></a></p>
13
+
14
+ <h1>Contents</h1>
15
+ <ul>
16
+ <li><a href="#anchor0">Release history</a>
17
+ <ul>
18
+ <li><a href="#anchor1">Version numbering system</a></li>
19
+ </ul>
20
+ </li>
21
+ <li><a href="#anchor2" title="2006-11-15">Version 11.1.1</a>
22
+ <ul>
23
+ <li><a href="#anchor3">Summary</a></li>
24
+ <li><a href="#anchor4">Acknowledgment</a></li>
25
+ <li><a href="#anchor5">Notice</a></li>
26
+ <li><a href="#anchor6">Detail</a></li>
27
+ </ul>
28
+ </li>
29
+ <li><a href="#anchor7" title="2006-11-08">Version 11.1.0</a>
30
+ <ul>
31
+ <li><a href="#anchor8">Summary</a></li>
32
+ <li><a href="#anchor9">Acknowledgment</a></li>
33
+ <li><a href="#anchor10">Notice</a></li>
34
+ <li><a href="#anchor11">Detail</a></li>
35
+ </ul>
36
+ </li>
37
+ <li><a href="#anchor12" title="2006-11-05">Version 11.0.0</a>
38
+ <ul>
39
+ <li><a href="#anchor13">Summary</a></li>
40
+ <li><a href="#anchor14">Notice</a></li>
41
+ <li><a href="#anchor15">Detail</a></li>
42
+ </ul>
43
+ </li>
44
+ <li><a href="#anchor16" title="2006-11-05">Version 10.0.0</a>
45
+ <ul>
46
+ <li><a href="#anchor17">Summary</a></li>
47
+ <li><a href="#anchor18">Acknowledgment</a></li>
48
+ <li><a href="#anchor19">Notice</a></li>
49
+ <li><a href="#anchor20">Detail</a>
50
+ <ul>
51
+ <li><a href="#anchor21">Automated test generator</a></li>
52
+ <li><a href="#anchor22">User manual</a></li>
53
+ </ul>
54
+ </li>
55
+ </ul>
56
+ </li>
57
+ <li><a href="#anchor23" title="2006-10-28">Version 9.0.0</a>
58
+ <ul>
59
+ <li><a href="#anchor24">Summary</a></li>
60
+ <li><a href="#anchor25">Acknowledgment</a></li>
61
+ <li><a href="#anchor26">Notice</a></li>
62
+ <li><a href="#anchor27">Detail</a></li>
63
+ </ul>
64
+ </li>
65
+ <li><a href="#anchor28" title="2006-10-24">Version 8.2.0</a>
66
+ <ul>
67
+ <li><a href="#anchor29">Summary</a></li>
68
+ <li><a href="#anchor30">Acknowledgment</a></li>
69
+ <li><a href="#anchor31">Notice</a></li>
70
+ <li><a href="#anchor32">Detail</a></li>
71
+ </ul>
72
+ </li>
73
+ <li><a href="#anchor33" title="2006-10-21">Version 8.1.0</a>
74
+ <ul>
75
+ <li><a href="#anchor34">Summary</a></li>
76
+ <li><a href="#anchor35">Notice</a></li>
77
+ <li><a href="#anchor36">Detail</a></li>
78
+ </ul>
79
+ </li>
80
+ <li><a href="#anchor37" title="2006-10-13">Version 8.0.0</a>
81
+ <ul>
82
+ <li><a href="#anchor38">Summary</a></li>
83
+ <li><a href="#anchor39">Notice</a></li>
84
+ <li><a href="#anchor40">Detail</a></li>
85
+ </ul>
86
+ </li>
87
+ <li><a href="#anchor41" title="2006-09-30">Version 7.3.0</a>
88
+ <ul>
89
+ <li><a href="#anchor42">Summary</a></li>
90
+ <li><a href="#anchor43">Notice</a></li>
91
+ <li><a href="#anchor44">Detail</a></li>
92
+ </ul>
93
+ </li>
94
+ <li><a href="#anchor45" title="2006-09-15">Version 7.2.0</a>
95
+ <ul>
96
+ <li><a href="#anchor46">Summary</a></li>
97
+ <li><a href="#anchor47">Acknowledgment</a></li>
98
+ <li><a href="#anchor48">Detail</a></li>
99
+ </ul>
100
+ </li>
101
+ <li><a href="#anchor49" title="2006-08-29">Version 7.1.0</a>
102
+ <ul>
103
+ <li><a href="#anchor50">Summary</a></li>
104
+ <li><a href="#anchor51">Detail</a></li>
105
+ </ul>
106
+ </li>
107
+ <li><a href="#anchor52" title="2006-08-29">Version 7.0.0</a>
108
+ <ul>
109
+ <li><a href="#anchor53">Summary</a></li>
110
+ <li><a href="#anchor54">Notice</a></li>
111
+ <li><a href="#anchor55">Detail</a></li>
112
+ </ul>
113
+ </li>
114
+ <li><a href="#anchor56" title="2006-08-27">Version 6.3.0</a>
115
+ <ul>
116
+ <li><a href="#anchor57">Summary</a></li>
117
+ <li><a href="#anchor58">Notice</a></li>
118
+ <li><a href="#anchor59">Detail</a></li>
119
+ </ul>
120
+ </li>
121
+ <li><a href="#anchor60" title="2006-08-26">Version 6.2.0</a>
122
+ <ul>
123
+ <li><a href="#anchor61">Summary</a></li>
124
+ <li><a href="#anchor62">Notice</a></li>
125
+ <li><a href="#anchor63">Detail</a></li>
126
+ </ul>
127
+ </li>
128
+ <li><a href="#anchor64" title="2006-08-09">Version 6.1.0</a>
129
+ <ul>
130
+ <li><a href="#anchor65">Summary</a></li>
131
+ <li><a href="#anchor66">Detail</a></li>
132
+ </ul>
133
+ </li>
134
+ <li><a href="#anchor67" title="2006-08-07">Version 6.0.0</a>
135
+ <ul>
136
+ <li><a href="#anchor68">Summary</a></li>
137
+ <li><a href="#anchor69">Notice</a></li>
138
+ <li><a href="#anchor70">Detail</a></li>
139
+ </ul>
140
+ </li>
141
+ <li><a href="#anchor71" title="2006-08-04">Version 5.1.1</a>
142
+ <ul>
143
+ <li><a href="#anchor72">Summary</a></li>
144
+ <li><a href="#anchor73">Acknowledgment</a></li>
145
+ <li><a href="#anchor74">Detail</a></li>
146
+ </ul>
147
+ </li>
148
+ <li><a href="#anchor75" title="2006-07-29">Version 5.1.0</a>
149
+ <ul>
150
+ <li><a href="#anchor76">Summary</a></li>
151
+ <li><a href="#anchor77">Acknowledgment</a></li>
152
+ <li><a href="#anchor78">Detail</a>
153
+ <ul>
154
+ <li><a href="#anchor79">User manual</a></li>
155
+ <li><a href="#anchor80">Examples</a></li>
156
+ <li><a href="#anchor81"><span class="caps">VPI</span> utility layer</a></li>
157
+ </ul>
158
+ </li>
159
+ </ul>
160
+ </li>
161
+ <li><a href="#anchor82" title="2006-07-22">Version 5.0.0</a>
162
+ <ul>
163
+ <li><a href="#anchor83">Summary</a></li>
164
+ <li><a href="#anchor84">Acknowledgment</a></li>
165
+ <li><a href="#anchor85">Notice</a></li>
166
+ <li><a href="#anchor86">Detail</a></li>
167
+ </ul>
168
+ </li>
169
+ <li><a href="#anchor87" title="2006-05-25">Version 4.0.0</a>
170
+ <ul>
171
+ <li><a href="#anchor88">Summary</a></li>
172
+ <li><a href="#anchor89">Acknowledgment</a></li>
173
+ <li><a href="#anchor90">Notice</a></li>
174
+ <li><a href="#anchor91">Detail</a></li>
175
+ </ul>
176
+ </li>
177
+ <li><a href="#anchor92" title="2006-05-13">Version 3.2.0</a>
178
+ <ul>
179
+ <li><a href="#anchor93">Summary</a></li>
180
+ <li><a href="#anchor94">Acknowledgment</a></li>
181
+ <li><a href="#anchor95">Detail</a></li>
182
+ </ul>
183
+ </li>
184
+ <li><a href="#anchor96" title="2006-04-28">Version 3.1.0</a>
185
+ <ul>
186
+ <li><a href="#anchor97">Summary</a></li>
187
+ <li><a href="#anchor98">Notice</a></li>
188
+ <li><a href="#anchor99">Detail</a></li>
189
+ </ul>
190
+ </li>
191
+ <li><a href="#anchor100" title="2006-04-23">Version 3.0.0</a>
192
+ <ul>
193
+ <li><a href="#anchor101">Summary</a></li>
194
+ <li><a href="#anchor102">Acknowledgment</a></li>
195
+ <li><a href="#anchor103">Notice</a></li>
196
+ <li><a href="#anchor104">Detail</a></li>
197
+ </ul>
198
+ </li>
199
+ <li><a href="#anchor105" title="2006-04-17">Version 2.0.0</a>
200
+ <ul>
201
+ <li><a href="#anchor106">Summary</a></li>
202
+ <li><a href="#anchor107">Acknowledgment</a></li>
203
+ <li><a href="#anchor108">Notice</a></li>
204
+ <li><a href="#anchor109">Detail</a></li>
205
+ </ul>
206
+ </li>
207
+ <li><a href="#anchor110" title="2006-02-26">Version 1.0.0</a>
208
+ <ul>
209
+ <li><a href="#anchor111">Summary</a></li>
210
+ <li><a href="#anchor112">Acknowledgment</a></li>
211
+ <li><a href="#anchor113">Detail</a></li>
212
+ </ul>
213
+ </li>
214
+ <li><a href="#anchor114" title="1999-10-31">Version 0.0.0</a>
215
+ <ul>
216
+ <li><a href="#anchor115">Summary</a></li>
217
+ <li><a href="#anchor116">Detail</a></li>
218
+ </ul></li>
219
+ </ul>
220
+
221
+ <h2>Sections</h2>
222
+ <ol>
223
+ <li><a href="#anchor0">Release history</a></li>
224
+ <li><a href="#anchor1">Version numbering system</a></li>
225
+ <li><a href="#anchor2" title="2006-11-15">Version 11.1.1</a></li>
226
+ <li><a href="#anchor3">Summary</a></li>
227
+ <li><a href="#anchor4">Acknowledgment</a></li>
228
+ <li><a href="#anchor5">Notice</a></li>
229
+ <li><a href="#anchor6">Detail</a></li>
230
+ <li><a href="#anchor7" title="2006-11-08">Version 11.1.0</a></li>
231
+ <li><a href="#anchor8">Summary</a></li>
232
+ <li><a href="#anchor9">Acknowledgment</a></li>
233
+ <li><a href="#anchor10">Notice</a></li>
234
+ <li><a href="#anchor11">Detail</a></li>
235
+ <li><a href="#anchor12" title="2006-11-05">Version 11.0.0</a></li>
236
+ <li><a href="#anchor13">Summary</a></li>
237
+ <li><a href="#anchor14">Notice</a></li>
238
+ <li><a href="#anchor15">Detail</a></li>
239
+ <li><a href="#anchor16" title="2006-11-05">Version 10.0.0</a></li>
240
+ <li><a href="#anchor17">Summary</a></li>
241
+ <li><a href="#anchor18">Acknowledgment</a></li>
242
+ <li><a href="#anchor19">Notice</a></li>
243
+ <li><a href="#anchor20">Detail</a></li>
244
+ <li><a href="#anchor21">Automated test generator</a></li>
245
+ <li><a href="#anchor22">User manual</a></li>
246
+ <li><a href="#anchor23" title="2006-10-28">Version 9.0.0</a></li>
247
+ <li><a href="#anchor24">Summary</a></li>
248
+ <li><a href="#anchor25">Acknowledgment</a></li>
249
+ <li><a href="#anchor26">Notice</a></li>
250
+ <li><a href="#anchor27">Detail</a></li>
251
+ <li><a href="#anchor28" title="2006-10-24">Version 8.2.0</a></li>
252
+ <li><a href="#anchor29">Summary</a></li>
253
+ <li><a href="#anchor30">Acknowledgment</a></li>
254
+ <li><a href="#anchor31">Notice</a></li>
255
+ <li><a href="#anchor32">Detail</a></li>
256
+ <li><a href="#anchor33" title="2006-10-21">Version 8.1.0</a></li>
257
+ <li><a href="#anchor34">Summary</a></li>
258
+ <li><a href="#anchor35">Notice</a></li>
259
+ <li><a href="#anchor36">Detail</a></li>
260
+ <li><a href="#anchor37" title="2006-10-13">Version 8.0.0</a></li>
261
+ <li><a href="#anchor38">Summary</a></li>
262
+ <li><a href="#anchor39">Notice</a></li>
263
+ <li><a href="#anchor40">Detail</a></li>
264
+ <li><a href="#anchor41" title="2006-09-30">Version 7.3.0</a></li>
265
+ <li><a href="#anchor42">Summary</a></li>
266
+ <li><a href="#anchor43">Notice</a></li>
267
+ <li><a href="#anchor44">Detail</a></li>
268
+ <li><a href="#anchor45" title="2006-09-15">Version 7.2.0</a></li>
269
+ <li><a href="#anchor46">Summary</a></li>
270
+ <li><a href="#anchor47">Acknowledgment</a></li>
271
+ <li><a href="#anchor48">Detail</a></li>
272
+ <li><a href="#anchor49" title="2006-08-29">Version 7.1.0</a></li>
273
+ <li><a href="#anchor50">Summary</a></li>
274
+ <li><a href="#anchor51">Detail</a></li>
275
+ <li><a href="#anchor52" title="2006-08-29">Version 7.0.0</a></li>
276
+ <li><a href="#anchor53">Summary</a></li>
277
+ <li><a href="#anchor54">Notice</a></li>
278
+ <li><a href="#anchor55">Detail</a></li>
279
+ <li><a href="#anchor56" title="2006-08-27">Version 6.3.0</a></li>
280
+ <li><a href="#anchor57">Summary</a></li>
281
+ <li><a href="#anchor58">Notice</a></li>
282
+ <li><a href="#anchor59">Detail</a></li>
283
+ <li><a href="#anchor60" title="2006-08-26">Version 6.2.0</a></li>
284
+ <li><a href="#anchor61">Summary</a></li>
285
+ <li><a href="#anchor62">Notice</a></li>
286
+ <li><a href="#anchor63">Detail</a></li>
287
+ <li><a href="#anchor64" title="2006-08-09">Version 6.1.0</a></li>
288
+ <li><a href="#anchor65">Summary</a></li>
289
+ <li><a href="#anchor66">Detail</a></li>
290
+ <li><a href="#anchor67" title="2006-08-07">Version 6.0.0</a></li>
291
+ <li><a href="#anchor68">Summary</a></li>
292
+ <li><a href="#anchor69">Notice</a></li>
293
+ <li><a href="#anchor70">Detail</a></li>
294
+ <li><a href="#anchor71" title="2006-08-04">Version 5.1.1</a></li>
295
+ <li><a href="#anchor72">Summary</a></li>
296
+ <li><a href="#anchor73">Acknowledgment</a></li>
297
+ <li><a href="#anchor74">Detail</a></li>
298
+ <li><a href="#anchor75" title="2006-07-29">Version 5.1.0</a></li>
299
+ <li><a href="#anchor76">Summary</a></li>
300
+ <li><a href="#anchor77">Acknowledgment</a></li>
301
+ <li><a href="#anchor78">Detail</a></li>
302
+ <li><a href="#anchor79">User manual</a></li>
303
+ <li><a href="#anchor80">Examples</a></li>
304
+ <li><a href="#anchor81"><span class="caps">VPI</span> utility layer</a></li>
305
+ <li><a href="#anchor82" title="2006-07-22">Version 5.0.0</a></li>
306
+ <li><a href="#anchor83">Summary</a></li>
307
+ <li><a href="#anchor84">Acknowledgment</a></li>
308
+ <li><a href="#anchor85">Notice</a></li>
309
+ <li><a href="#anchor86">Detail</a></li>
310
+ <li><a href="#anchor87" title="2006-05-25">Version 4.0.0</a></li>
311
+ <li><a href="#anchor88">Summary</a></li>
312
+ <li><a href="#anchor89">Acknowledgment</a></li>
313
+ <li><a href="#anchor90">Notice</a></li>
314
+ <li><a href="#anchor91">Detail</a></li>
315
+ <li><a href="#anchor92" title="2006-05-13">Version 3.2.0</a></li>
316
+ <li><a href="#anchor93">Summary</a></li>
317
+ <li><a href="#anchor94">Acknowledgment</a></li>
318
+ <li><a href="#anchor95">Detail</a></li>
319
+ <li><a href="#anchor96" title="2006-04-28">Version 3.1.0</a></li>
320
+ <li><a href="#anchor97">Summary</a></li>
321
+ <li><a href="#anchor98">Notice</a></li>
322
+ <li><a href="#anchor99">Detail</a></li>
323
+ <li><a href="#anchor100" title="2006-04-23">Version 3.0.0</a></li>
324
+ <li><a href="#anchor101">Summary</a></li>
325
+ <li><a href="#anchor102">Acknowledgment</a></li>
326
+ <li><a href="#anchor103">Notice</a></li>
327
+ <li><a href="#anchor104">Detail</a></li>
328
+ <li><a href="#anchor105" title="2006-04-17">Version 2.0.0</a></li>
329
+ <li><a href="#anchor106">Summary</a></li>
330
+ <li><a href="#anchor107">Acknowledgment</a></li>
331
+ <li><a href="#anchor108">Notice</a></li>
332
+ <li><a href="#anchor109">Detail</a></li>
333
+ <li><a href="#anchor110" title="2006-02-26">Version 1.0.0</a></li>
334
+ <li><a href="#anchor111">Summary</a></li>
335
+ <li><a href="#anchor112">Acknowledgment</a></li>
336
+ <li><a href="#anchor113">Detail</a></li>
337
+ <li><a href="#anchor114" title="1999-10-31">Version 0.0.0</a></li>
338
+ <li><a href="#anchor115">Summary</a></li>
339
+ <li><a href="#anchor116">Detail</a></li>
340
+ </ol>
341
+
342
+ </div>
343
+
344
+ <h1 id="anchor0">Release history</h1>
345
+
346
+
347
+ <p>This is a record of important changes that have occurred with each release.</p>
348
+
349
+
350
+ <h2 id="anchor1">Version numbering system</h2>
351
+
352
+
353
+ 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,
354
+ <ul>
355
+ <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>
356
+ <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>
357
+ <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>
358
+ </ul>
359
+
360
+
361
+ <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>
362
+
363
+
364
+ <h1 id="anchor2">Version 11.1.1 (2006-11-15)</h1>
365
+
366
+
367
+ <h2 id="anchor3">Summary</h2>
368
+
369
+
370
+ <p>This release fixes a bug in the automated test generator, unifies the user manual and the website into a single documentation system, and adds support for rSpec 0.7.2.</p>
371
+
372
+
373
+ <h2 id="anchor4">Acknowledgment</h2>
374
+
375
+
376
+ <p>Thanks to John Burr for finding the bug in the automated test generator.</p>
377
+
378
+
379
+ <h2 id="anchor5">Notice</h2>
380
+
381
+
382
+ <ul>
383
+ <li>The user manual is now available <em>only</em> in <span class="caps">HTML</span> format. If you still wish to have a plain-text version, you can use a text-based browser, such as <a href="http://lynx.browser.org/">lynx</a>, to perform the necessary conversion.</li>
384
+ </ul>
385
+
386
+
387
+ <h2 id="anchor6">Detail</h2>
388
+
389
+
390
+ <ul>
391
+ <li>The automated test generator no longer crashes when parsing a Verilog module declaration that contains multiple module parameters.</li>
392
+ </ul>
393
+
394
+
395
+ <ul>
396
+ <li>The user manual and the website are now written using a custom documentation system based on RedCloth and <span class="caps">ERB</span> instead of DocBook-XML. This makes it easier to edit the user manual and reuse its content in other areas of the website.</li>
397
+ </ul>
398
+
399
+
400
+ <h1 id="anchor7">Version 11.1.0 (2006-11-08)</h1>
401
+
402
+
403
+ <h2 id="anchor8">Summary</h2>
404
+
405
+
406
+ <p>This release fixes a bug in generated benches, improves the <a href="../ref/ruby/classes/Vpi/Handle.html">the <code class="code"><span style="color:#036; font-weight:bold">Vpi</span>::<span style="color:#036; font-weight:bold">Handle</span></code> class</a>, and improves performance by roughly 20%.</p>
407
+
408
+
409
+ <h2 id="anchor9">Acknowledgment</h2>
410
+
411
+
412
+ <p>Thanks to Matt Fischler for finding the bug in generated benches (see below).</p>
413
+
414
+
415
+ <h2 id="anchor10">Notice</h2>
416
+
417
+
418
+ <ul>
419
+ <li>A bug in generated Verilog and Ruby benches, which caused the <pre>ruby: no such file to load -- ruby-vpi (LoadError)</pre> error, has been fixed. Please regenerate your tests to apply this bug fix to your tests.</li>
420
+ </ul>
421
+
422
+
423
+ <h2 id="anchor11">Detail</h2>
424
+
425
+
426
+ <ul>
427
+ <li>The class <code class="code"><span style="color:#036; font-weight:bold">SWIG</span>::<span style="color:#036; font-weight:bold">TYPE_p_unsigned_int</span></code> has been aliased as <code class="code"><span style="color:#036; font-weight:bold">Vpi</span>::<span style="color:#036; font-weight:bold">Handle</span></code> for easier access.</li>
428
+ </ul>
429
+
430
+
431
+ <ul>
432
+ <li><code class="code"><span style="color:#036; font-weight:bold">Vpi</span>::<span style="color:#036; font-weight:bold">Handle</span>.to_s</code> and <code class="code"><span style="color:#036; font-weight:bold">Vpi</span>::<span style="color:#036; font-weight:bold">Handle</span>.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.
433
+ <ul>
434
+ <li>You can also provide a list of <span class="caps">VPI</span> properties, as names or integer constants, to those methods to see additional information in the output.</li>
435
+ </ul></li>
436
+ </ul>
437
+
438
+
439
+ <ul>
440
+ <li><code class="code"><span style="color:#036; font-weight:bold">Vpi</span>::<span style="color:#036; font-weight:bold">Handle</span></code> now implements all methods from <code class="code"><span style="color:#036; font-weight:bold">Enumerable</span></code>, such as <code class="code">map</code>, <code class="code">each</code>, <code class="code">select</code>, and so on. However, unlike their counterparts in <code class="code"><span style="color:#036; font-weight:bold">Enumerable</span></code>, these methods also accept a list of <span class="caps">VPI</span> properties, as names or integer constants. Thus, you are now able to write <code class="code">handle.select(<span style="color:#A60">:reg</span>, <span style="color:#A60">:net</span>) {|h| h.size &gt; <span style="color:#00D; font-weight:bold">5</span>}</code> to obtain a list of child handles to registers and nets whose capacity is greater than 5 bits.</li>
441
+ </ul>
442
+
443
+
444
+ <ul>
445
+ <li>The <code class="code"><span style="color:#036; font-weight:bold">Vpi</span>::<span style="color:#036; font-weight:bold">Handle</span>.[]</code>, <code class="code"><span style="color:#036; font-weight:bold">Vpi</span>::<span style="color:#036; font-weight:bold">Handle</span>.get_value</code>, and <code class="code"><span style="color:#036; font-weight:bold">Vpi</span>::<span style="color:#036; font-weight:bold">Handle</span>.put_value</code> methods now accept names of <span class="caps">VPI</span> properties as well as their integer constants. Thus, you are now able to write <code class="code">handle[<span style="color:#A60">:reg</span>, <span style="color:#A60">:net</span>]</code> to obtain a list of handles to all child registers and nets.</li>
446
+ </ul>
447
+
448
+
449
+ <ul>
450
+ <li><code class="code"><span style="color:#036; font-weight:bold">Vpi</span>::<span style="color:#036; font-weight:bold">Handle</span>.method_missing</code> has been refactored to cache queries. There is now, approximately, 20% improvement in performance.</li>
451
+ </ul>
452
+
453
+
454
+ <ul>
455
+ <li><code class="code"><span style="color:#036; font-weight:bold">Vpi</span>::<span style="color:#036; font-weight:bold">Handle</span>.method_missing</code> has been fixed to accept operations with multiple underscores. For example, before this release, you could not write <code class="code">handle.find_all_reg {|r| r.name =~ <span style="background-color:#fff0ff"><span style="color:#404">/</span><span style="color:#808">foo</span><span style="color:#404">/</span></span>}</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>
456
+ </ul>
457
+
458
+
459
+ <ul>
460
+ <li><code class="code"><span style="color:#036; font-weight:bold">Vpi</span>::<span style="color:#036; font-weight:bold">Handle</span>.method_missing</code> no longer requires that the first letter of a method be lower case. For example, now you can now write <code class="code">handle.<span style="color:#036; font-weight:bold">IntVal</span></code> in addition to <code class="code">handle.intVal</code>.</li>
461
+ </ul>
462
+
463
+
464
+ <ul>
465
+ <li>The <code class="code"><span style="color:#036; font-weight:bold">IntegerGenerator</span></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>
466
+ </ul>
467
+
468
+
469
+ <ul>
470
+ <li>Due to a bug in the <tt>Rakefile</tt>, the reference documentation was not included in the previous few releases. This has been fixed.</li>
471
+ </ul>
472
+
473
+
474
+ <h1 id="anchor12">Version 11.0.0 (2006-11-05)</h1>
475
+
476
+
477
+ <h2 id="anchor13">Summary</h2>
478
+
479
+
480
+ <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>
481
+
482
+
483
+ <h2 id="anchor14">Notice</h2>
484
+
485
+
486
+ <ul>
487
+ <li>The arguments for the <a href="../ref/ruby/classes/RubyVpi.html"><code class="code"><span style="color:#036; font-weight:bold">RubyVPI</span>.init_bench</code> method</a> have changed.</li>
488
+ </ul>
489
+
490
+
491
+ <ul>
492
+ <li><strong>generate_test.rb</strong> no longer emits undocumented status indicators: <em>name</em> and <em>format</em>.</li>
493
+ </ul>
494
+
495
+
496
+ <ul>
497
+ <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>
498
+ </ul>
499
+
500
+
501
+ <h2 id="anchor15">Detail</h2>
502
+
503
+
504
+ <ul>
505
+ <li>Generated Ruby benches have been shortened to just <em>one</em> line of code!</li>
506
+ </ul>
507
+
508
+
509
+ <ul>
510
+ <li>The less confusing notation of <pre class="code"><span style="color:#080; font-weight:bold">def</span> some_object.a_singleton_method
511
+ do_stuff
512
+ <span style="color:#080; font-weight:bold">end</span></pre> is now used instead of the <pre class="code"><span style="color:#080; font-weight:bold">class</span> &lt;&lt; <span style="color:#B06; font-weight:bold">some_object</span>
513
+ <span style="color:#080; font-weight:bold">def</span> <span style="color:#06B; font-weight:bold">a_singleton_method</span>
514
+ do_stuff
515
+ <span style="color:#080; font-weight:bold">end</span>
516
+ <span style="color:#080; font-weight:bold">end</span></pre> notation.
517
+ <ul>
518
+ <li>The tutorial and examples have been updated accordingly.</li>
519
+ </ul></li>
520
+ </ul>
521
+
522
+
523
+ <ul>
524
+ <li>The pipelined <span class="caps">ALU</span> example now has an updated <code class="code"><span style="color:#036; font-weight:bold">IntegerGenerator</span></code> class.</li>
525
+ </ul>
526
+
527
+
528
+ <h1 id="anchor16">Version 10.0.0 (2006-11-05)</h1>
529
+
530
+
531
+ <h2 id="anchor17">Summary</h2>
532
+
533
+
534
+ <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>
535
+
536
+
537
+ <h2 id="anchor18">Acknowledgment</h2>
538
+
539
+
540
+ <p>Thanks to Matt Fischler for finding the problem of misdirected compilation errors in Verilog benches.</p>
541
+
542
+
543
+ <h2 id="anchor19">Notice</h2>
544
+
545
+
546
+ <ul>
547
+ <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 <tt>design.rb</tt> and <tt>proto.rb</tt> files define <a href="http://wiki.rubygarden.org/Ruby/page/show/SingletonTutorial">singleton methods</a> for that object.
548
+ <ul>
549
+ <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>
550
+ </ul></li>
551
+ </ul>
552
+
553
+
554
+ <ul>
555
+ <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 class="code">get_value</code> and <code class="code">put_value</code> methods.</li>
556
+ </ul>
557
+
558
+
559
+ <ul>
560
+ <li><strong>generate_test.rb</strong> no longer accepts the <pre>-s</pre> and <pre>-u</pre> options. Use their longer counterparts <pre>--rspec</pre> and <pre>--xunit</pre> instead.</li>
561
+ </ul>
562
+
563
+
564
+ <h2 id="anchor20">Detail</h2>
565
+
566
+
567
+ <h3 id="anchor21">Automated test generator</h3>
568
+
569
+
570
+ <ul>
571
+ <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>
572
+ </ul>
573
+
574
+
575
+ <ul>
576
+ <li>The user is now notified when a backup of an existing file is made.</li>
577
+ </ul>
578
+
579
+
580
+ <ul>
581
+ <li>Generated tests have been greatly simplified to reduce the amount of work for the user.
582
+ <ul>
583
+ <li>The design is now just a handle to the module in the Verilog bench.</li>
584
+ <li><code class="code">include <span style="color:#036; font-weight:bold">Vpi</span></code> and <code class="code"><span style="color:#33B">@design</span></code> are no longer generated.</li>
585
+ <li>The tutorial and examples have been updated accordingly.</li>
586
+ </ul></li>
587
+ </ul>
588
+
589
+
590
+ <h3 id="anchor22">User manual</h3>
591
+
592
+
593
+ <ul>
594
+ <li>Revised the stylesheet to make disjoint sections readily distinguishable from each other, through generous spacing and minor coloring.</li>
595
+ </ul>
596
+
597
+
598
+ <ul>
599
+ <li>Added tips about <tt>ruby-vpi/runner_proxy</tt>, <pre>rake -T</pre>, and using <strong>kdiff3</strong> with <strong>generate_test.rb</strong>.</li>
600
+ </ul>
601
+
602
+
603
+ <ul>
604
+ <li>Moved installation information into a new &#8220;setup&#8221; chapter.</li>
605
+ </ul>
606
+
607
+
608
+ <h1 id="anchor23">Version 9.0.0 (2006-10-28)</h1>
609
+
610
+
611
+ <h2 id="anchor24">Summary</h2>
612
+
613
+
614
+ <p>This release improves the automated test generator and adds new content to the user manual.</p>
615
+
616
+
617
+ <h2 id="anchor25">Acknowledgment</h2>
618
+
619
+
620
+ <p>Thanks to Matt Fischler for helping test and debug the installation of Ruby-VPI on Windows.</p>
621
+
622
+
623
+ <h2 id="anchor26">Notice</h2>
624
+
625
+
626
+ <ul>
627
+ <li>The command-line options for <strong>generate_test.rb</strong> have changed. Run the command <pre>generate_test.rb --help</pre> for details.</li>
628
+ </ul>
629
+
630
+
631
+ <h2 id="anchor27">Detail</h2>
632
+
633
+
634
+ <ul>
635
+ <li>Test runners now attempt to resolve paths in <code class="code"><span style="color:#036; font-weight:bold">SIMULATOR_SOURCES</span></code> by searching for them within the directories specified in <code class="code"><span style="color:#036; font-weight:bold">SIMULATOR_INCLUDES</span></code>.</li>
636
+ </ul>
637
+
638
+
639
+ <ul>
640
+ <li>Synopsys <span class="caps">VCS</span> is now used in a better way (via the <pre>-load</pre> option).
641
+ <ul>
642
+ <li>The old <span class="caps">PLI</span> table file (<tt>synopsys_vcs.tab</tt>) has been removed.</li>
643
+ <li>The C extension has been revised accordingly.</li>
644
+ </ul></li>
645
+ </ul>
646
+
647
+
648
+ <ul>
649
+ <li>The C extension now compiles without errors in Cygwin.</li>
650
+ </ul>
651
+
652
+
653
+ <ul>
654
+ <li>The automated test generator now:
655
+ <ul>
656
+ <li>Only creates output files when necessary.</li>
657
+ <li>Updates existing output files using <a href="manual.html#setup.recom">text merging tools</a> if possible. (Refer to <code class="code"><span style="color:#036; font-weight:bold">MERGER</span></code> in the help information of <strong>generate_test.rb</strong>.)</li>
658
+ <li>Emits progress information similar to Ruby on Rails.</li>
659
+ </ul></li>
660
+ </ul>
661
+
662
+
663
+ <ul>
664
+ <li>The user manual now:
665
+ <ul>
666
+ <li>Includes instructions for installing on Windows (via Cygwin).</li>
667
+ <li>Has a recommended software section, with links to text merging tools.</li>
668
+ <li>Uses the term <a href="http://en.wikipedia.org/wiki/XUnit">xUnit</a> instead of &#8220;unit test&#8221;.</li>
669
+ <li>Correctly spells &#8220;rSpec&#8221;.</li>
670
+ </ul></li>
671
+ </ul>
672
+
673
+
674
+ <h1 id="anchor28">Version 8.2.0 (2006-10-24)</h1>
675
+
676
+
677
+ <h2 id="anchor29">Summary</h2>
678
+
679
+
680
+ <p>This release simplifies configuration of generated tests.</p>
681
+
682
+
683
+ <h2 id="anchor30">Acknowledgment</h2>
684
+
685
+
686
+ <p>Thanks to <a href="http://www.soe.ucsc.edu/classes/cmpe126/Fall06/">students in <span class="caps">CMPE</span>-126</a> for their comments.</p>
687
+
688
+
689
+ <h2 id="anchor31">Notice</h2>
690
+
691
+
692
+ <ul>
693
+ <li>Generated runners now have a <code class="code"><span style="color:#036; font-weight:bold">SIMULATOR_INCLUDES</span></code> array, whose entries specify places where Verilog source files, needed by the Verilog design, reside.</li>
694
+ </ul>
695
+
696
+
697
+ <h2 id="anchor32">Detail</h2>
698
+
699
+
700
+ <ul>
701
+ <li>Generated Verilog benches now inherit all <code class="code"><span style="background-color:#f0fff0"><span style="color:#161">`</span><span style="color:#2B2">include</span></span></code> and <code class="code"><span style="background-color:#f0fff0"><span style="color:#161">`</span><span style="color:#2B2">define</span></span></code> directives from the Verilog design in a simpler manner.</li>
702
+ <li>A generated test no longer requires its Verilog design to reside in the same directory.</li>
703
+ <li>The sample tests have been updated accordingly.</li>
704
+ </ul>
705
+
706
+
707
+ <h1 id="anchor33">Version 8.1.0 (2006-10-21)</h1>
708
+
709
+
710
+ <h2 id="anchor34">Summary</h2>
711
+
712
+
713
+ <p>This release adds an integer library and renames the vpi_util library.</p>
714
+
715
+
716
+ <h2 id="anchor35">Notice</h2>
717
+
718
+
719
+ <ul>
720
+ <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 class="code">require <span style="background-color:#fff0f0"><span style="color:#710">'</span><span style="color:#D20">ruby-vpi/vpi_util</span><span style="color:#710">'</span></span></code>. In which case, you should update your code to use <code class="code">require <span style="background-color:#fff0f0"><span style="color:#710">'</span><span style="color:#D20">ruby-vpi/vpi</span><span style="color:#710">'</span></span></code> accordingly.</li>
721
+ </ul>
722
+
723
+
724
+ <h2 id="anchor36">Detail</h2>
725
+
726
+
727
+ <ul>
728
+ <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 class="code">require <span style="background-color:#fff0f0"><span style="color:#710">'</span><span style="color:#D20">ruby-vpi/integer</span><span style="color:#710">'</span></span></code>.</li>
729
+ </ul>
730
+
731
+
732
+ <h1 id="anchor37">Version 8.0.0 (2006-10-13)</h1>
733
+
734
+
735
+ <h2 id="anchor38">Summary</h2>
736
+
737
+
738
+ <p>This release renames some identifiers for consistency, updates the documentation, and improves integration with RubyGems.</p>
739
+
740
+
741
+ <h2 id="anchor39">Notice</h2>
742
+
743
+
744
+ <ul>
745
+ <li>The <code class="code"><span style="color:#036; font-weight:bold">RubyVPI</span></code> module has been renamed to <code class="code"><span style="color:#036; font-weight:bold">RubyVpi</span></code>.</li>
746
+ </ul>
747
+
748
+
749
+ <ul>
750
+ <li>The <code class="code"><span style="color:#036; font-weight:bold">PROTO</span></code> environment variable has been renamed to <code class="code"><span style="color:#036; font-weight:bold">PROTOTYPE</span></code>.
751
+ <ul>
752
+ <li>In addition to using <strong>unset</strong>, you can now disable simulation of the prototype by assigning an empty value to this variable.</li>
753
+ </ul></li>
754
+ </ul>
755
+
756
+
757
+ <h2 id="anchor40">Detail</h2>
758
+
759
+
760
+ <ul>
761
+ <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>
762
+ </ul>
763
+
764
+
765
+ <ul>
766
+ <li>The source code is now distributed in tar.gz and zip form, in addition to gem.</li>
767
+ </ul>
768
+
769
+
770
+ <ul>
771
+ <li>Some identifiers have been renamed for better consistency.</li>
772
+ </ul>
773
+
774
+
775
+ <ul>
776
+ <li>The user manual now resides directly within the <tt>doc/</tt> directory.
777
+ <ul>
778
+ <li>The integration of documentation in <strong>gem_server</strong> has been improved.</li>
779
+ </ul></li>
780
+ </ul>
781
+
782
+
783
+ <ul>
784
+ <li>The glossary and tutorial in the user manual have been revised.</li>
785
+ </ul>
786
+
787
+
788
+ <h1 id="anchor41">Version 7.3.0 (2006-09-30)</h1>
789
+
790
+
791
+ <h2 id="anchor42">Summary</h2>
792
+
793
+
794
+ <p>This release fixes a bug in generated Verilog benches, includes parsed constants in generated tests, and adds new methods to handles.</p>
795
+
796
+
797
+ <h2 id="anchor43">Notice</h2>
798
+
799
+
800
+ <ul>
801
+ <li>Handles now have two new methods:
802
+ <ul>
803
+ <li><code class="code">handle.x?</code> checks if the logic value is &#8220;don&#8217;t care&#8221; </li>
804
+ <li><code class="code">handle.z?</code> checks if the logic value is high impedance</li>
805
+ </ul></li>
806
+ </ul>
807
+
808
+
809
+ <h2 id="anchor44">Detail</h2>
810
+
811
+
812
+ <ul>
813
+ <li>Module instantiation code in generated Verilog benches has been fixed. Whitespace between the module type and instance variable was missing.</li>
814
+ </ul>
815
+
816
+
817
+ <ul>
818
+ <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.
819
+ <ul>
820
+ <li>The pipelined <span class="caps">ALU</span> example has been revised accordingly.</li>
821
+ </ul></li>
822
+ </ul>
823
+
824
+
825
+ <ul>
826
+ <li>A library for parsing Verilog source code has been added as <tt>lib/ruby-vpi/verilog_parser.rb</tt>.</li>
827
+ </ul>
828
+
829
+
830
+ <h1 id="anchor45">Version 7.2.0 (2006-09-15)</h1>
831
+
832
+
833
+ <h2 id="anchor46">Summary</h2>
834
+
835
+
836
+ <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>
837
+
838
+
839
+ <h2 id="anchor47">Acknowledgment</h2>
840
+
841
+
842
+ <p>Thanks to Mauricio Fernandez for helping me use rcov without its runner.</p>
843
+
844
+
845
+ <h2 id="anchor48">Detail</h2>
846
+
847
+
848
+ <ul>
849
+ <li>Added initial support (full capabilites of the rcov library, such as its various analysis modes, are not yet utilized) for code coverage analysis, which can be enabled by setting the <code class="code"><span style="color:#036; font-weight:bold">COVERAGE</span></code> environment variable to a non-empty value before running a test.
850
+ <ul>
851
+ <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: <pre>export COVERAGE=1; rake cver</pre></li>
852
+ </ul></li>
853
+ </ul>
854
+
855
+
856
+ <ul>
857
+ <li>Coverage reports are generated in text and <span class="caps">HTML</span> formats.</li>
858
+ </ul>
859
+
860
+
861
+ <h1 id="anchor49">Version 7.1.0 (2006-08-29)</h1>
862
+
863
+
864
+ <h2 id="anchor50">Summary</h2>
865
+
866
+
867
+ <p>This release simplifies running of multiple tests, restores compatibility with Synopsys <span class="caps">VCS</span>, and better integrates with RubyGems.</p>
868
+
869
+
870
+ <h2 id="anchor51">Detail</h2>
871
+
872
+
873
+ <ul>
874
+ <li>Added <tt>lib/ruby-vpi/runner_proxy.rb</tt> 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 <tt>samp/counter/Rakefile</tt> file.</li>
875
+ </ul>
876
+
877
+
878
+ <ul>
879
+ <li>Fixed a bug that prevented one from running tests with Synopsys <span class="caps">VCS</span>.</li>
880
+ </ul>
881
+
882
+
883
+ <ul>
884
+ <li>Ruby-VPI documentation is now available through RubyGems&#8217; <a href="http://docs.rubygems.org/read/chapter/2#page10"><strong>gem_server</strong> web interface</a>.</li>
885
+ </ul>
886
+
887
+
888
+ <ul>
889
+ <li>The user manual now discusses how to determine the location of a Ruby-VPI installation.</li>
890
+ </ul>
891
+
892
+
893
+ <ul>
894
+ <li>The <tt>tpl/</tt> directory has been removed.</li>
895
+ </ul>
896
+
897
+
898
+ <h1 id="anchor52">Version 7.0.0 (2006-08-29)</h1>
899
+
900
+
901
+ <h2 id="anchor53">Summary</h2>
902
+
903
+
904
+ <p>This release distributes Ruby-VPI as a gem, improves portability of generated tests, and fixes a bug.</p>
905
+
906
+
907
+ <h2 id="anchor54">Notice</h2>
908
+
909
+
910
+ <ul>
911
+ <li><code class="code">put_value()</code> now accomodates register value overflows when verifying the value it has written.</li>
912
+ </ul>
913
+
914
+
915
+ <ul>
916
+ <li>The test generator&#8217;s templates and the examples have been updated as follows:
917
+ <ul>
918
+ <li>Test runners no longer have to specify the path to Ruby-VPI installation directory. Instead, they simply <code class="code">require <span style="background-color:#fff0f0"><span style="color:#710">'</span><span style="color:#D20">ruby-vpi/runner</span><span style="color:#710">'</span></span></code>. Thus, you can run your tests on any machine with Ruby-VPI without having to know where it is installed.</li>
919
+ <li>Ruby benches now invoke <code class="code"><span style="color:#036; font-weight:bold">RubyVPI</span>.init_bench</code> instead of <code class="code">require <span style="background-color:#fff0f0"><span style="color:#710">'</span><span style="color:#D20">bench</span><span style="color:#710">'</span></span>; setup_bench</code> to become initialized.</li>
920
+ </ul></li>
921
+ </ul>
922
+
923
+
924
+ <ul>
925
+ <li>All Ruby libraries in the <tt>lib/</tt> directory have been moved into <tt>lib/ruby-vpi/</tt> 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 class="code">require <span style="background-color:#fff0f0"><span style="color:#710">'</span><span style="color:#D20">vpi_util</span><span style="color:#710">'</span></span></code> should now be written as <code class="code">require <span style="background-color:#fff0f0"><span style="color:#710">'</span><span style="color:#D20">ruby-vpi/vpi_util</span><span style="color:#710">'</span></span></code>.</li>
926
+ </ul>
927
+
928
+
929
+ <ul>
930
+ <li>The <tt>src/</tt> directory has been renamed to <tt>ext/</tt> to follow RubyGems convention.</li>
931
+ </ul>
932
+
933
+
934
+ <h2 id="anchor55">Detail</h2>
935
+
936
+
937
+ <ul>
938
+ <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 <pre>gem install -i output_directory ruby-vpi-7.0.0.gem</pre>. In addition, you can still obtain the source code directly from the Subversion repository.</li>
939
+ </ul>
940
+
941
+
942
+ <ul>
943
+ <li>The tools in <tt>bin/</tt> become available in your system&#8217;s <tt>bin/</tt> directory when the gem is installed.
944
+ <ul>
945
+ <li>Usage and help information has been added to the <strong>header_to_ruby.rb</strong> tool.</li>
946
+ </ul></li>
947
+ </ul>
948
+
949
+
950
+ <ul>
951
+ <li>Incorrect spelling of <span class="caps">GPL</span> Cver (v should be uncapitalized) has been fixed.</li>
952
+ </ul>
953
+
954
+
955
+ <ul>
956
+ <li>Incorrect link to <span class="caps">GPL</span> Cver website has been fixed.</li>
957
+ </ul>
958
+
959
+
960
+ <ul>
961
+ <li>The user manual has been updated according to all of the above changes.</li>
962
+ </ul>
963
+
964
+
965
+ <h1 id="anchor56">Version 6.3.0 (2006-08-27)</h1>
966
+
967
+
968
+ <h2 id="anchor57">Summary</h2>
969
+
970
+
971
+ <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>
972
+
973
+
974
+ <h2 id="anchor58">Notice</h2>
975
+
976
+
977
+ <ul>
978
+ <li>Ruby-VPI now only needs to be built once.
979
+ <ul>
980
+ <li>You can run tests with different Verilog simulators without having to re-compile Ruby-VPI.</li>
981
+ </ul></li>
982
+ </ul>
983
+
984
+
985
+ <h2 id="anchor59">Detail</h2>
986
+
987
+
988
+ <ul>
989
+ <li>The <span class="caps">GPL</span> Cver simulator is now supported.</li>
990
+ </ul>
991
+
992
+
993
+ <ul>
994
+ <li>Release packages are now available in both source and binary form.</li>
995
+ </ul>
996
+
997
+
998
+ <ul>
999
+ <li>The RSpec based specifications for the counter example now use the <code class="code">should_equal</code> instead of the <code class="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>
1000
+ </ul>
1001
+
1002
+
1003
+ <ul>
1004
+ <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:
1005
+ <table>
1006
+ <tr>
1007
+ <th>Release date </th>
1008
+ <th>Original version number </th>
1009
+ <th>New version number </th>
1010
+ </tr>
1011
+ <tr>
1012
+ <td> 1999-10-31 </td>
1013
+ <td> 0.0 </td>
1014
+ <td> 0.0.0 </td>
1015
+ </tr>
1016
+ <tr>
1017
+ <td> 2006-02-26 </td>
1018
+ <td> 0.1 </td>
1019
+ <td> 1.0.0 </td>
1020
+ </tr>
1021
+ <tr>
1022
+ <td> 2006-04-17 </td>
1023
+ <td> 0.2 </td>
1024
+ <td> 2.0.0 </td>
1025
+ </tr>
1026
+ <tr>
1027
+ <td> 2006-04-23 </td>
1028
+ <td> 0.3 </td>
1029
+ <td> 3.0.0 </td>
1030
+ </tr>
1031
+ <tr>
1032
+ <td> 2006-04-28 </td>
1033
+ <td> 0.4 </td>
1034
+ <td> 3.1.0 </td>
1035
+ </tr>
1036
+ <tr>
1037
+ <td> 2006-05-13 </td>
1038
+ <td> 0.5 </td>
1039
+ <td> 3.2.0 </td>
1040
+ </tr>
1041
+ <tr>
1042
+ <td> 2006-05-25 </td>
1043
+ <td> 0.6 </td>
1044
+ <td> 4.0.0 </td>
1045
+ </tr>
1046
+ <tr>
1047
+ <td> 2006-07-22 </td>
1048
+ <td> 0.7 </td>
1049
+ <td> 5.0.0 </td>
1050
+ </tr>
1051
+ <tr>
1052
+ <td> 2006-07-29 </td>
1053
+ <td> 0.8 </td>
1054
+ <td> 5.1.0 </td>
1055
+ </tr>
1056
+ <tr>
1057
+ <td> 2006-08-04 </td>
1058
+ <td> 0.8.1 </td>
1059
+ <td> 5.1.1 </td>
1060
+ </tr>
1061
+ <tr>
1062
+ <td> 2006-08-07 </td>
1063
+ <td> 0.9 </td>
1064
+ <td> 6.0.0 </td>
1065
+ </tr>
1066
+ <tr>
1067
+ <td> 2006-08-09 </td>
1068
+ <td> 0.9.1 </td>
1069
+ <td> 6.1.0 </td>
1070
+ </tr>
1071
+ <tr>
1072
+ <td> 2006-08-26 </td>
1073
+ <td> 0.9.2 </td>
1074
+ <td> 6.2.0 </td>
1075
+ </tr>
1076
+ </table></li>
1077
+ </ul>
1078
+
1079
+
1080
+ <h1 id="anchor60">Version 6.2.0 (2006-08-26)</h1>
1081
+
1082
+
1083
+ <h2 id="anchor61">Summary</h2>
1084
+
1085
+
1086
+ <p>This release beautifies generated tests, adds checks to find signal width bugs, and includes a new tool.</p>
1087
+
1088
+
1089
+ <h2 id="anchor62">Notice</h2>
1090
+
1091
+
1092
+ <ul>
1093
+ <li><code class="code">put_value()</code> now returns the value it puts. Therefore, it is easier to chain together a series of assignments: <code class="code">foo.intVal = bar.intVal = baz.intVal = <span style="color:#00D; font-weight:bold">10</span></code></li>
1094
+ </ul>
1095
+
1096
+
1097
+ <ul>
1098
+ <li><code class="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>
1099
+ </ul>
1100
+
1101
+
1102
+ <h2 id="anchor63">Detail</h2>
1103
+
1104
+
1105
+ <ul>
1106
+ <li>The test generator now uses <span class="caps">ERB</span> templates which ensures nice indentation of generated output.</li>
1107
+ </ul>
1108
+
1109
+
1110
+ <ul>
1111
+ <li>The test generator now decouples Ruby-VPI paths from Verilog benches via the <span class="caps">RUBYLIB</span> environment variable.</li>
1112
+ </ul>
1113
+
1114
+
1115
+ <ul>
1116
+ <li>A tool which converts Verilog headers into Ruby has been added.</li>
1117
+ </ul>
1118
+
1119
+
1120
+ <ul>
1121
+ <li>The source code is now indented with two spaces instead of one tab character.</li>
1122
+ </ul>
1123
+
1124
+
1125
+ <h1 id="anchor64">Version 6.1.0 (2006-08-09)</h1>
1126
+
1127
+
1128
+ <h2 id="anchor65">Summary</h2>
1129
+
1130
+
1131
+ <p>This release simplifies generated tests and fixes a bug.</p>
1132
+
1133
+
1134
+ <h2 id="anchor66">Detail</h2>
1135
+
1136
+
1137
+ <ul>
1138
+ <li>The test generator now produces simpler Ruby benches and specifications.
1139
+ <ul>
1140
+ <li>A template used by generated specifications has been added.</li>
1141
+ <li>The counter example and tutorial have also been simplified accordingly.</li>
1142
+ </ul></li>
1143
+ </ul>
1144
+
1145
+
1146
+ <ul>
1147
+ <li>Boolean <span class="caps">VPI</span> property values are now correctly converted into Ruby truth values.</li>
1148
+ </ul>
1149
+
1150
+
1151
+ <h1 id="anchor67">Version 6.0.0 (2006-08-07)</h1>
1152
+
1153
+
1154
+ <h2 id="anchor68">Summary</h2>
1155
+
1156
+
1157
+ <p>This release adds support and documentation for rapid prototyping of Verilog designs in Ruby.</p>
1158
+
1159
+
1160
+ <h2 id="anchor69">Notice</h2>
1161
+
1162
+
1163
+ <ul>
1164
+ <li>The directory structure has been reorganized as follows:
1165
+ <ul>
1166
+ <li><tt>ext</tt> &rarr; <tt>src</tt></li>
1167
+ <li><tt>tools</tt> &rarr; <tt>bin</tt></li>
1168
+ <li><tt>examples</tt> &rarr; <tt>samp</tt></li>
1169
+ </ul></li>
1170
+ </ul>
1171
+
1172
+
1173
+ <ul>
1174
+ <li>All template files have been moved into the <tt>tpl</tt> directory.</li>
1175
+ </ul>
1176
+
1177
+
1178
+ <h2 id="anchor70">Detail</h2>
1179
+
1180
+
1181
+ <ul>
1182
+ <li>Support for prototyping designs in Ruby, before they are implemented in Verilog, has been added.
1183
+ <ul>
1184
+ <li>The <em>same</em> specification can be used to verify both prototype <em>and</em> design! :-)</li>
1185
+ <li>The tutorial in the user manual has been updated to discuss prototyping.
1186
+ <ul>
1187
+ <li>Prototypes have been added to the counter example.</li>
1188
+ </ul></li>
1189
+ </ul></li>
1190
+ </ul>
1191
+
1192
+
1193
+ <ul>
1194
+ <li>The user manual has been revised for consistency.</li>
1195
+ </ul>
1196
+
1197
+
1198
+ <h1 id="anchor71">Version 5.1.1 (2006-08-04)</h1>
1199
+
1200
+
1201
+ <h2 id="anchor72">Summary</h2>
1202
+
1203
+
1204
+ <p>This release fixes unreadable syntax coloring in the user manual.</p>
1205
+
1206
+
1207
+ <h2 id="anchor73">Acknowledgment</h2>
1208
+
1209
+
1210
+ <ul>
1211
+ <li>Thanks to Todd Nagengast and Matt Fischler for notifying me about unreadable text in the user manual.</li>
1212
+ </ul>
1213
+
1214
+
1215
+ <h2 id="anchor74">Detail</h2>
1216
+
1217
+
1218
+ <ul>
1219
+ <li>Source code comments in the user manual are now readable.</li>
1220
+ </ul>
1221
+
1222
+
1223
+ <ul>
1224
+ <li>The <tt><span class="caps">README</span></tt> and <tt><span class="caps">HISTORY</span></tt> files have been converted to <a href="http://www.textism.com/tools/textile/">textile</a> format.</li>
1225
+ </ul>
1226
+
1227
+
1228
+ <h1 id="anchor75">Version 5.1.0 (2006-07-29)</h1>
1229
+
1230
+
1231
+ <h2 id="anchor76">Summary</h2>
1232
+
1233
+
1234
+ <p>This release adds a tutorial to the user manual, and improves the tools and examples.</p>
1235
+
1236
+
1237
+ <h2 id="anchor77">Acknowledgment</h2>
1238
+
1239
+
1240
+ <ul>
1241
+ <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>
1242
+ </ul>
1243
+
1244
+
1245
+ <h2 id="anchor78">Detail</h2>
1246
+
1247
+
1248
+ <h3 id="anchor79">User manual</h3>
1249
+
1250
+
1251
+ <ul>
1252
+ <li>A tutorial, based on the counter example, has been added to the user manual.</li>
1253
+ </ul>
1254
+
1255
+
1256
+ <ul>
1257
+ <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>
1258
+ </ul>
1259
+
1260
+
1261
+ <h3 id="anchor80">Examples</h3>
1262
+
1263
+
1264
+ <ul>
1265
+ <li>A specification, expressed in unit test format, has been added to the counter example.</li>
1266
+ </ul>
1267
+
1268
+
1269
+ <ul>
1270
+ <li>The <pre>--name</pre> and <pre>-n</pre> options, which lets you specify an identifier for a generated test, have been added to the <strong>generate_test.rb</strong> tool.</li>
1271
+ </ul>
1272
+
1273
+
1274
+ <ul>
1275
+ <li>Running <pre>rake clobber</pre> in an example directory no longer destroys documentation in the Ruby-VPI directory.</li>
1276
+ </ul>
1277
+
1278
+
1279
+ <ul>
1280
+ <li>The examples&#8217; Rakefiles now invoke all tests present in the directory via the <tt>launcher_template.rake</tt> template.</li>
1281
+ </ul>
1282
+
1283
+
1284
+ <ul>
1285
+ <li>The Rake template for test runners (generated by <tt>tools/generate_test.rb</tt>) has moved from <tt>examples/template.rake</tt> to <tt>examples/runner_template.rake</tt>.</li>
1286
+ </ul>
1287
+
1288
+
1289
+ <h3 id="anchor81"><span class="caps">VPI</span> utility layer</h3>
1290
+
1291
+
1292
+ <ul>
1293
+ <li>The value of a handle&#8217;s boolean <span class="caps">VPI</span> property is treated as <code class="code"><span style="color:#038; font-weight:bold">false</span></code> if it is zero, because zero is <code class="code"><span style="color:#038; font-weight:bold">false</span></code> in the C language.</li>
1294
+ </ul>
1295
+
1296
+
1297
+ <h1 id="anchor82">Version 5.0.0 (2006-07-22)</h1>
1298
+
1299
+
1300
+ <h2 id="anchor83">Summary</h2>
1301
+
1302
+
1303
+ <p>This release enhances the <span class="caps">VPI</span> utility layer and adds new content to the user manual.</p>
1304
+
1305
+
1306
+ <h2 id="anchor84">Acknowledgment</h2>
1307
+
1308
+
1309
+ <ul>
1310
+ <li>Thanks to Jan Decaluwe for correcting the description of MyHDL in the user manual.</li>
1311
+ </ul>
1312
+
1313
+
1314
+ <h2 id="anchor85">Notice</h2>
1315
+
1316
+
1317
+ <ul>
1318
+ <li><span class="caps">SWIG</span> is no longer required for users because its output is included in the release package.</li>
1319
+ </ul>
1320
+
1321
+
1322
+ <ul>
1323
+ <li>The <code class="code">handle.value</code> and <code class="code">handle.value=</code> methods have been removed.</li>
1324
+ </ul>
1325
+
1326
+
1327
+ <h2 id="anchor86">Detail</h2>
1328
+
1329
+
1330
+ <ul>
1331
+ <li>The <span class="caps">VPI</span> utility layer provides access to <span class="caps">VPI</span> properties of handles in a <a href="manual.html#background.org.vpi">simpler, more powerful way</a>.</li>
1332
+ </ul>
1333
+
1334
+
1335
+ <ul>
1336
+ <li>All <span class="caps">VPI</span> properties, except delay values, are now accessible from a handle.</li>
1337
+ </ul>
1338
+
1339
+
1340
+ <ul>
1341
+ <li>The user manual has been revised and new content in the organization and usage sections has been added.</li>
1342
+ </ul>
1343
+
1344
+
1345
+ <ul>
1346
+ <li>This release was tested and developed using:
1347
+ <ul>
1348
+ <li>Ruby 1.8.4 and Icarus Verilog 0.8 on i686 <span class="caps">GNU</span>/Linux</li>
1349
+ <li>Ruby 1.8.4 and Mentor Modelsim 6.1d on x86_64 <span class="caps">GNU</span>/Linux</li>
1350
+ </ul></li>
1351
+ </ul>
1352
+
1353
+
1354
+ <h1 id="anchor87">Version 4.0.0 (2006-05-25)</h1>
1355
+
1356
+
1357
+ <h2 id="anchor88">Summary</h2>
1358
+
1359
+
1360
+ <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>
1361
+
1362
+
1363
+ <h2 id="anchor89">Acknowledgment</h2>
1364
+
1365
+
1366
+ <ul>
1367
+ <li>Thanks to Jose Renau for solving the problem of strange delays that occurred whenever a design was reset.</li>
1368
+ </ul>
1369
+
1370
+
1371
+ <h2 id="anchor90">Notice</h2>
1372
+
1373
+
1374
+ <ul>
1375
+ <li>Rake has replaced the role of <strong>make</strong>. All makefiles have been converted accordingly.</li>
1376
+ </ul>
1377
+
1378
+
1379
+ <ul>
1380
+ <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>
1381
+ </ul>
1382
+
1383
+
1384
+ <h2 id="anchor91">Detail</h2>
1385
+
1386
+
1387
+ <ul>
1388
+ <li>A comprehensive user manual, written in DocBook-XML, has been added.</li>
1389
+ </ul>
1390
+
1391
+
1392
+ <ul>
1393
+ <li>Support for RSpec 0.5.4 has been added.
1394
+ <ul>
1395
+ <li>The counter example now makes use of RSpec.</li>
1396
+ </ul></li>
1397
+ </ul>
1398
+
1399
+
1400
+ <ul>
1401
+ <li>This release was tested and developed using:
1402
+ <ul>
1403
+ <li>Ruby 1.8.4 and Icarus Verilog 0.8 on i686 <span class="caps">GNU</span>/Linux</li>
1404
+ <li>Ruby 1.8.4 and Mentor Modelsim 6.1d on x86_64 <span class="caps">GNU</span>/Linux</li>
1405
+ </ul></li>
1406
+ </ul>
1407
+
1408
+
1409
+ <h1 id="anchor92">Version 3.2.0 (2006-05-13)</h1>
1410
+
1411
+
1412
+ <h2 id="anchor93">Summary</h2>
1413
+
1414
+
1415
+ <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>
1416
+
1417
+
1418
+ <h2 id="anchor94">Acknowledgment</h2>
1419
+
1420
+
1421
+ <ul>
1422
+ <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>
1423
+ </ul>
1424
+
1425
+
1426
+ <h2 id="anchor95">Detail</h2>
1427
+
1428
+
1429
+ <ul>
1430
+ <li>A tool, which generates most of a Ruby-VPI test bench from a Verilog 2001 module declaration, has been added.</li>
1431
+ </ul>
1432
+
1433
+
1434
+ <ul>
1435
+ <li>Ability to use RSpec in a test bench has been added.</li>
1436
+ </ul>
1437
+
1438
+
1439
+ <ul>
1440
+ <li>Ability to specify arbitrary command-line arguments to Verilog simulators has been added in the examples&#8217; makefile template.</li>
1441
+ </ul>
1442
+
1443
+
1444
+ <ul>
1445
+ <li>This release was tested and developed using:
1446
+ <ul>
1447
+ <li>Ruby 1.8.4 and Icarus Verilog 0.8 on i686 <span class="caps">GNU</span>/Linux</li>
1448
+ <li>Ruby 1.8.4 and Mentor Modelsim 6.1d on x86_64 <span class="caps">GNU</span>/Linux</li>
1449
+ </ul></li>
1450
+ </ul>
1451
+
1452
+
1453
+ <h1 id="anchor96">Version 3.1.0 (2006-04-28)</h1>
1454
+
1455
+
1456
+ <h2 id="anchor97">Summary</h2>
1457
+
1458
+
1459
+ <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>
1460
+
1461
+
1462
+ <h2 id="anchor98">Notice</h2>
1463
+
1464
+
1465
+ <ul>
1466
+ <li>The <strong>msim</strong> Makefile target for Mentor Modelsim has been renamed back to <strong>vsim</strong>.</li>
1467
+ </ul>
1468
+
1469
+
1470
+ <h2 id="anchor99">Detail</h2>
1471
+
1472
+
1473
+ <ul>
1474
+ <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 class="code"><span style="color:#036; font-weight:bold">SWIG</span>::<span style="color:#036; font-weight:bold">TYPE_p_unsigned_int</span></code> class&#8217; documentation.</li>
1475
+ </ul>
1476
+
1477
+
1478
+ <ul>
1479
+ <li>The makefiles now use the <strong>rbconfig</strong> library to determine the default compiler and linker flags for Ruby.</li>
1480
+ </ul>
1481
+
1482
+
1483
+ <ul>
1484
+ <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>
1485
+ </ul>
1486
+
1487
+
1488
+ <ul>
1489
+ <li>The project wiki has been abandoned in favor of RDoc.</li>
1490
+ </ul>
1491
+
1492
+
1493
+ <ul>
1494
+ <li>The project website is now generated by RDoc.</li>
1495
+ </ul>
1496
+
1497
+
1498
+ <ul>
1499
+ <li>This release was tested and developed using:
1500
+ <ul>
1501
+ <li>Ruby 1.8.4 and Icarus Verilog 0.8 on i686 <span class="caps">GNU</span>/Linux</li>
1502
+ <li>Ruby 1.8.4 and Mentor Modelsim 6.1d on x86_64 <span class="caps">GNU</span>/Linux</li>
1503
+ </ul></li>
1504
+ </ul>
1505
+
1506
+
1507
+ <h1 id="anchor100">Version 3.0.0 (2006-04-23)</h1>
1508
+
1509
+
1510
+ <h2 id="anchor101">Summary</h2>
1511
+
1512
+
1513
+ <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>
1514
+
1515
+
1516
+ <h2 id="anchor102">Acknowledgment</h2>
1517
+
1518
+
1519
+ <ul>
1520
+ <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>
1521
+ </ul>
1522
+
1523
+
1524
+ <h2 id="anchor103">Notice</h2>
1525
+
1526
+
1527
+ <ul>
1528
+ <li>The <strong>vsim</strong> Makefile target for Mentor Modelsim has been renamed to <strong>msim</strong>.</li>
1529
+ </ul>
1530
+
1531
+
1532
+ <h2 id="anchor104">Detail</h2>
1533
+
1534
+
1535
+ <ul>
1536
+ <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>.
1537
+ <ul>
1538
+ <li>The main <code class="code"><span style="color:#036; font-weight:bold">VPI</span></code> module has been renamed to <code class="code"><span style="color:#036; font-weight:bold">Vpi</span></code>.</li>
1539
+ <li>The <code class="code"><span style="color:#036; font-weight:bold">VPI</span>::<span style="color:#036; font-weight:bold">Handle</span></code> class has been removed.</li>
1540
+ <li>The <code class="code"><span style="color:#036; font-weight:bold">VPI</span>::stop</code>, <code class="code"><span style="color:#036; font-weight:bold">VPI</span>::finish</code>, and <code class="code"><span style="color:#036; font-weight:bold">VPI</span>::reset</code> methods have been removed.</li>
1541
+ </ul></li>
1542
+ </ul>
1543
+
1544
+
1545
+ <ul>
1546
+ <li>The <a href="http://www.boydtechinc.com/ptf/archive/ptf_2005/0737.html"><em>final ballot</em> version</a> of the <tt>vpi_user.h</tt> header file is now packaged along with and used by Ruby-VPI.</li>
1547
+ </ul>
1548
+
1549
+
1550
+ <ul>
1551
+ <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 <tt>src/vpi_util.rb</tt>).</li>
1552
+ </ul>
1553
+
1554
+
1555
+ <ul>
1556
+ <li>The examples now make use of the <strong>test/unit</strong> unit testing framework.</li>
1557
+ </ul>
1558
+
1559
+
1560
+ <ul>
1561
+ <li>The makefiles for the examples have been simplified through the use of a common template.</li>
1562
+ </ul>
1563
+
1564
+
1565
+ <ul>
1566
+ <li>This release was tested and developed using:
1567
+ <ul>
1568
+ <li>Ruby 1.8.4 and Icarus Verilog 0.8 on i686 <span class="caps">GNU</span>/Linux</li>
1569
+ <li>Ruby 1.8.4 and Mentor Modelsim 6.1d on x86_64 <span class="caps">GNU</span>/Linux</li>
1570
+ </ul></li>
1571
+ </ul>
1572
+
1573
+
1574
+ <h1 id="anchor105">Version 2.0.0 (2006-04-17)</h1>
1575
+
1576
+
1577
+ <h2 id="anchor106">Summary</h2>
1578
+
1579
+
1580
+ <p>This release fixes major bugs, adds support for Mentor Modelsim, and removes the <code class="code"><span style="color:#d70; font-weight:bold">$ruby_task</span></code> callback.</p>
1581
+
1582
+
1583
+ <h2 id="anchor107">Acknowledgment</h2>
1584
+
1585
+
1586
+ <ul>
1587
+ <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>
1588
+ </ul>
1589
+
1590
+
1591
+ <h2 id="anchor108">Notice</h2>
1592
+
1593
+
1594
+ <ul>
1595
+ <li>Removed <code class="code"><span style="color:#d70; font-weight:bold">$ruby_task</span></code> callback and ability to dynamically register system tasks from Ruby because inter-process communication is complicated at present.</li>
1596
+ </ul>
1597
+
1598
+
1599
+ <h2 id="anchor109">Detail</h2>
1600
+
1601
+
1602
+ <ul>
1603
+ <li>The &#8220;cross-thread violation on rb_gc()&#8221; error has been fixed.
1604
+ <ul>
1605
+ <li>The &#8220;stack level too deep (SystemStackError)&#8221; error has been fixed.</li>
1606
+ <li>The test/unit library can be used in Ruby test bench.</li>
1607
+ <li>Mentor Modelsim Verilog simulator works with Ruby-VPI.</li>
1608
+ </ul></li>
1609
+ </ul>
1610
+
1611
+
1612
+ <ul>
1613
+ <li>Added piplelined <span class="caps">ALU</span> example.</li>
1614
+ </ul>
1615
+
1616
+
1617
+ <ul>
1618
+ <li>This release was tested and developed using:
1619
+ <ul>
1620
+ <li>Ruby 1.8.4 and Icarus Verilog 0.8 on i686 <span class="caps">GNU</span>/Linux</li>
1621
+ <li>Ruby 1.8.4 and Modelsim 6.1d on x86_64 <span class="caps">GNU</span>/Linux</li>
1622
+ <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>
1623
+ </ul></li>
1624
+ </ul>
1625
+
1626
+
1627
+ <h1 id="anchor110">Version 1.0.0 (2006-02-26)</h1>
1628
+
1629
+
1630
+ <h2 id="anchor111">Summary</h2>
1631
+
1632
+
1633
+ This release adds enough Verilog <span class="caps">VPI</span> functionality to make Ruby-VPI usable for simple test benches:
1634
+ <ul>
1635
+ <li>access Verilog objects through <span class="caps">VPI</span> handles</li>
1636
+ <li>read and change <span class="caps">VPI</span> handle values</li>
1637
+ <li>stop, finish, restart the simulation</li>
1638
+ </ul>
1639
+
1640
+
1641
+ <h2 id="anchor112">Acknowledgment</h2>
1642
+
1643
+
1644
+ <ul>
1645
+ <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 class="code">void (*)(void)</code>, whereas the Verilog standard defines a calltf signature as <code class="code"><span style="color:#036; font-weight:bold">PLI_INT32</span> (*)(<span style="color:#036; font-weight:bold">PLI_BYTE8</span>*)</code>.</li>
1646
+ </ul>
1647
+
1648
+
1649
+ <ul>
1650
+ <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 class="code"><span style="color:#036; font-weight:bold">SystemStackError</span></code> was happening.</li>
1651
+ </ul>
1652
+
1653
+
1654
+ <h2 id="anchor113">Detail</h2>
1655
+
1656
+
1657
+ <ul>
1658
+ <li>Implemented some Verilog <span class="caps">VPI</span> functionality:
1659
+ <ul>
1660
+ <li><code class="code"><span style="color:#036; font-weight:bold">VPI</span>::handle_by_name(string, <span style="color:#036; font-weight:bold">VPI</span>::<span style="color:#036; font-weight:bold">Handle</span>)</code> &rarr; <code class="code"><span style="color:#036; font-weight:bold">VPI</span>::<span style="color:#036; font-weight:bold">Handle</span></code></li>
1661
+ <li><code class="code"><span style="color:#036; font-weight:bold">VPI</span>::handle_by_name(string)</code> &rarr; <code class="code"><span style="color:#036; font-weight:bold">VPI</span>::<span style="color:#036; font-weight:bold">Handle</span></code></li>
1662
+ <li><code class="code"><span style="color:#036; font-weight:bold">VPI</span>::<span style="color:#036; font-weight:bold">Handle</span>.put_value(integer)</code></li>
1663
+ <li><code class="code"><span style="color:#036; font-weight:bold">VPI</span>::<span style="color:#036; font-weight:bold">Handle</span>.value = integer</code></li>
1664
+ <li><code class="code"><span style="color:#036; font-weight:bold">VPI</span>::<span style="color:#036; font-weight:bold">Handle</span>.get_value</code> &rarr; <code class="code">integer</code></li>
1665
+ <li><code class="code"><span style="color:#036; font-weight:bold">VPI</span>::<span style="color:#036; font-weight:bold">Handle</span>.value</code> &rarr; <code class="code">integer</code></li>
1666
+ <li><code class="code"><span style="color:#036; font-weight:bold">VPI</span>::stop</code></li>
1667
+ <li><code class="code"><span style="color:#036; font-weight:bold">VPI</span>::finish</code></li>
1668
+ <li><code class="code"><span style="color:#036; font-weight:bold">VPI</span>::reset</code></li>
1669
+ </ul></li>
1670
+ </ul>
1671
+
1672
+
1673
+ <ul>
1674
+ <li>Implemented some additional functionality:
1675
+ <ul>
1676
+ <li><code class="code"><span style="color:#036; font-weight:bold">VPI</span>::register_task(string, &amp;proc)</code></li>
1677
+ </ul></li>
1678
+ </ul>
1679
+
1680
+
1681
+ <ul>
1682
+ <li>Added ability to pass arbitrary command-line arguments to the Ruby interpreter (using <code class="code"><span style="color:#d70; font-weight:bold">$ruby_init</span></code>). Now you can invoke any Ruby script you want, instead of <tt>pli_init.rb</tt>.</li>
1683
+ </ul>
1684
+
1685
+
1686
+ <ul>
1687
+ <li>Added ability to dynamically register system tasks from Ruby, using <code class="code"><span style="color:#036; font-weight:bold">VPI</span>::register_task(<span style="background-color:#fff0f0"><span style="color:#710">&quot;</span><span style="color:#D20">task name</span><span style="color:#710">&quot;</span></span>)</code>, and call them from Verilog, using <code class="code"><span style="color:#d70; font-weight:bold">$ruby_task</span>(<span style="background-color:#fff0f0"><span style="color:#710">&quot;</span><span style="color:#D20">task name</span><span style="color:#710">&quot;</span></span>)</code>.</li>
1688
+ </ul>
1689
+
1690
+
1691
+ <ul>
1692
+ <li>Added <code class="code"><span style="color:#036; font-weight:bold">VPI</span>::<span style="color:#036; font-weight:bold">Handle</span></code> class which encapsulates a <code class="code">vpiHandle</code> VPI object.</li>
1693
+ </ul>
1694
+
1695
+
1696
+ <ul>
1697
+ <li>This release was tested and developed using:
1698
+ <ul>
1699
+ <li>Ruby 1.8.2 and Icarus Verilog 0.8 on i686 <span class="caps">GNU</span>/Linux</li>
1700
+ <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>
1701
+ </ul></li>
1702
+ </ul>
1703
+
1704
+
1705
+ <h1 id="anchor114">Version 0.0.0 (1999-10-31)</h1>
1706
+
1707
+
1708
+ <h2 id="anchor115">Summary</h2>
1709
+
1710
+
1711
+ <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>
1712
+
1713
+
1714
+ <h2 id="anchor116">Detail</h2>
1715
+
1716
+
1717
+ <ul>
1718
+ <li>Added ability to relay control from Verilog test bench to Ruby (using <code class="code"><span style="color:#d70; font-weight:bold">$ruby_callback</span></code>) and vice versa (using <code class="code"><span style="color:#036; font-weight:bold">PLI</span>::relay_Verilog</code>).</li>
1719
+ </ul>
1720
+
1721
+
1722
+ <ul>
1723
+ <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>
1724
+ </ul>
1725
+ </body>
1726
+ </html>