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/header.part.html DELETED
@@ -1,95 +0,0 @@
1
- <head>
2
- <link rel="stylesheet" type="text/css" href="style.css" />
3
- </head>
4
-
5
- <div class="variablelist">
6
- <dl>
7
-
8
- <dt>
9
- <span class="term">
10
- <a href="./doc/usage.tutorial.html" target="_top">Tutorial</a>
11
- </span>
12
- </dt>
13
- <dd>
14
- <p>Learn how to use Ruby-VPI quickly.</p>
15
- </dd>
16
-
17
- <dt>
18
- <span class="term">
19
- <a href="./doc/" target="_top">Manual</a>
20
- </span>
21
- </dt>
22
- <dd>
23
- <p>Complete documentation for users. <em>Start here!</em></p>
24
- </dd>
25
-
26
- <dt>
27
- <span class="term">
28
- <a href="./ref/" target="_top">Reference</a>
29
- </span>
30
- </dt>
31
- <dd>
32
- <p><span class="caps">API</span> reference documentation for Ruby libraries and C extension.</p>
33
- </dd>
34
-
35
- <dt>
36
- <span class="term">
37
- <a href="http://rubyforge.org/projects/ruby-vpi" target="_top">
38
- Facilities</a>
39
- </span>
40
- </dt>
41
- <dd>
42
- <p>
43
- Access the issue tracker, file downloads, support requests, discussion forums, and more at <a href="http://rubyforge.org" target="_top">
44
- RubyForge</a>.
45
- </p>
46
- </dd>
47
-
48
- <dt>
49
- <span class="term">
50
- <a href="http://ruby-vpi.rubyforge.org" target="_top">
51
- Project</a>
52
- </span>
53
- </dt>
54
- <dd>
55
- <p>
56
- Access more information at the project&#8217;s home page.
57
- </p>
58
- </dd>
59
-
60
- <dt>
61
- <span class="term">
62
- <a href="http://ruby-vpi.rubyforge.org/src/ruby-vpi" target="_top">
63
- Sources</a>
64
- </span>
65
- </dt>
66
- <dd>
67
- <p>
68
- Browse or access the source code repository.</p>
69
- </dd>
70
-
71
- <dt>
72
- <span class="term">
73
- <a href="http://ruby-vpi.rubyforge.org/talks" target="_top">
74
- Talks</a>
75
- </span>
76
- </dt>
77
- <dd>
78
- <p>
79
- Access public presentations about Ruby-VPI.</p>
80
- </dd>
81
-
82
- <dt>
83
- <span class="term">
84
- <a href="http://ruby-vpi.rubyforge.org/blog" target="_top">
85
- News</a>
86
- </span>
87
- </dt>
88
- <dd>
89
- <p>
90
- See what the developers are cooking up.</p>
91
- </dd>
92
-
93
- </dl>
94
- </div>
95
- </div>
data/history.html DELETED
@@ -1,1442 +0,0 @@
1
- <head>
2
- <link rel="stylesheet" type="text/css" href="style.css" />
3
- </head>
4
-
5
- <div class="variablelist">
6
- <dl>
7
-
8
- <dt>
9
- <span class="term">
10
- <a href="./doc/usage.tutorial.html" target="_top">Tutorial</a>
11
- </span>
12
- </dt>
13
- <dd>
14
- <p>Learn how to use Ruby-VPI quickly.</p>
15
- </dd>
16
-
17
- <dt>
18
- <span class="term">
19
- <a href="./doc/" target="_top">Manual</a>
20
- </span>
21
- </dt>
22
- <dd>
23
- <p>Complete documentation for users. <em>Start here!</em></p>
24
- </dd>
25
-
26
- <dt>
27
- <span class="term">
28
- <a href="./ref/" target="_top">Reference</a>
29
- </span>
30
- </dt>
31
- <dd>
32
- <p><span class="caps">API</span> reference documentation for Ruby libraries and C extension.</p>
33
- </dd>
34
-
35
- <dt>
36
- <span class="term">
37
- <a href="http://rubyforge.org/projects/ruby-vpi" target="_top">
38
- Facilities</a>
39
- </span>
40
- </dt>
41
- <dd>
42
- <p>
43
- Access the issue tracker, file downloads, support requests, discussion forums, and more at <a href="http://rubyforge.org" target="_top">
44
- RubyForge</a>.
45
- </p>
46
- </dd>
47
-
48
- <dt>
49
- <span class="term">
50
- <a href="http://ruby-vpi.rubyforge.org" target="_top">
51
- Project</a>
52
- </span>
53
- </dt>
54
- <dd>
55
- <p>
56
- Access more information at the project&#8217;s home page.
57
- </p>
58
- </dd>
59
-
60
- <dt>
61
- <span class="term">
62
- <a href="http://ruby-vpi.rubyforge.org/src/ruby-vpi" target="_top">
63
- Sources</a>
64
- </span>
65
- </dt>
66
- <dd>
67
- <p>
68
- Browse or access the source code repository.</p>
69
- </dd>
70
-
71
- <dt>
72
- <span class="term">
73
- <a href="http://ruby-vpi.rubyforge.org/talks" target="_top">
74
- Talks</a>
75
- </span>
76
- </dt>
77
- <dd>
78
- <p>
79
- Access public presentations about Ruby-VPI.</p>
80
- </dd>
81
-
82
- <dt>
83
- <span class="term">
84
- <a href="http://ruby-vpi.rubyforge.org/blog" target="_top">
85
- News</a>
86
- </span>
87
- </dt>
88
- <dd>
89
- <p>
90
- See what the developers are cooking up.</p>
91
- </dd>
92
-
93
- </dl>
94
- </div>
95
- </div>
96
-
97
- <h1>Release history</h1>
98
-
99
-
100
- <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>
101
-
102
-
103
- <h2>Version numbering system</h2>
104
-
105
-
106
- 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,
107
- <ul>
108
- <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>
109
- <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>
110
- <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>
111
- </ul>
112
-
113
-
114
- <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>
115
-
116
-
117
- <h1>Version 11.1.0 (2006-11-08)</h1>
118
-
119
-
120
- <h2>Summary</h2>
121
-
122
-
123
- <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>
124
-
125
-
126
- <h2>Acknowledgment</h2>
127
-
128
-
129
- <p>Thanks to Matt Fischler for finding the bug in generated benches (see below).</p>
130
-
131
-
132
- <h2>Notice</h2>
133
-
134
-
135
- <ul>
136
- <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.
137
- <ul>
138
- <li>Please regenerate your tests to apply this bug fix to your tests.</li>
139
- </ul></li>
140
- </ul>
141
-
142
-
143
- <h2>Detail</h2>
144
-
145
-
146
- <ul>
147
- <li>The class <code>SWIG::TYPE_p_unsigned_int</code> has been aliased as <code>Vpi::Handle</code> for easier access.</li>
148
- </ul>
149
-
150
-
151
- <ul>
152
- <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.
153
- <ul>
154
- <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>
155
- </ul></li>
156
- </ul>
157
-
158
-
159
- <ul>
160
- <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>
161
- </ul>
162
-
163
-
164
- <ul>
165
- <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>
166
- </ul>
167
-
168
-
169
- <ul>
170
- <li><code>Vpi::Handle#method_missing</code> has been refactored to cache queries. There is now, approximately, 20% improvement in performance.</li>
171
- </ul>
172
-
173
-
174
- <ul>
175
- <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>
176
- </ul>
177
-
178
-
179
- <ul>
180
- <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>
181
- </ul>
182
-
183
-
184
- <ul>
185
- <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>
186
- </ul>
187
-
188
-
189
- <h1>Version 11.0.0 (2006-11-05)</h1>
190
-
191
-
192
- <h2>Summary</h2>
193
-
194
-
195
- <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>
196
-
197
-
198
- <h2>Notice</h2>
199
-
200
-
201
- <ul>
202
- <li>The arguments for the <a href="ref/ruby/classes/RubyVpi.html"><code>RubyVPI.init_bench</code> method</a> have changed.</li>
203
- </ul>
204
-
205
-
206
- <ul>
207
- <li><strong>generate_test.rb</strong> no longer emits undocumented status indicators: <em>name</em> and <em>format</em>.</li>
208
- </ul>
209
-
210
-
211
- <ul>
212
- <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>
213
- </ul>
214
-
215
-
216
- <h2>Detail</h2>
217
-
218
-
219
- <ul>
220
- <li>Generated Ruby benches have been shortened to just <em>one</em> line of code!</li>
221
- </ul>
222
-
223
-
224
- <ul>
225
- <li>The less confusing notation of <pre>def some_object.a_singleton_method
226
- do_stuff
227
- end</pre> is now used instead of the <pre>class &lt;&lt; some_object
228
- def a_singleton_method
229
- do_stuff
230
- end
231
- end</pre> notation.
232
- <ul>
233
- <li>The tutorial and examples have been updated accordingly.</li>
234
- </ul></li>
235
- </ul>
236
-
237
-
238
- <ul>
239
- <li>The pipelined <span class="caps">ALU</span> example now has an updated <code>IntegerGenerator</code> class.</li>
240
- </ul>
241
-
242
-
243
- <h1>Version 10.0.0 (2006-11-05)</h1>
244
-
245
-
246
- <h2>Summary</h2>
247
-
248
-
249
- <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>
250
-
251
-
252
- <h2>Acknowledgment</h2>
253
-
254
-
255
- <p>Thanks to Matt Fischler for finding the problem of misdirected compilation errors in Verilog benches.</p>
256
-
257
-
258
- <h2>Notice</h2>
259
-
260
-
261
- <ul>
262
- <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.
263
- <ul>
264
- <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>
265
- </ul></li>
266
- </ul>
267
-
268
-
269
- <ul>
270
- <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>
271
- </ul>
272
-
273
-
274
- <ul>
275
- <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>
276
- </ul>
277
-
278
-
279
- <h2>Detail</h2>
280
-
281
-
282
- <h3>Automated test generator</h3>
283
-
284
-
285
- <ul>
286
- <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>
287
- </ul>
288
-
289
-
290
- <ul>
291
- <li>The user is now notified when a backup of an existing file is made.</li>
292
- </ul>
293
-
294
-
295
- <ul>
296
- <li>Generated tests have been greatly simplified to reduce the amount of work for the user.
297
- <ul>
298
- <li>The design is now just a handle to the module in the Verilog bench.</li>
299
- <li><code>include Vpi</code> and <code>@design</code> are no longer generated.</li>
300
- <li>The tutorial and examples have been updated accordingly.</li>
301
- </ul></li>
302
- </ul>
303
-
304
-
305
- <h3>User manual</h3>
306
-
307
-
308
- <ul>
309
- <li>Revised the stylesheet to make disjoint sections readily distinguishable from each other, through generous spacing and minor coloring.</li>
310
- </ul>
311
-
312
-
313
- <ul>
314
- <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>
315
- </ul>
316
-
317
-
318
- <ul>
319
- <li>Moved installation information into a new &#8220;setup&#8221; chapter.</li>
320
- </ul>
321
-
322
-
323
- <h1>Version 9.0.0 (2006-10-28)</h1>
324
-
325
-
326
- <h2>Summary</h2>
327
-
328
-
329
- <p>This release improves the automated test generator and adds new content to the user manual.</p>
330
-
331
-
332
- <h2>Acknowledgment</h2>
333
-
334
-
335
- <p>Thanks to Matt Fischler for helping test and debug the installation of Ruby-VPI on Windows.</p>
336
-
337
-
338
- <h2>Notice</h2>
339
-
340
-
341
- <ul>
342
- <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>
343
- </ul>
344
-
345
-
346
- <h2>Detail</h2>
347
-
348
-
349
- <ul>
350
- <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>
351
- </ul>
352
-
353
-
354
- <ul>
355
- <li>Synopsys <span class="caps">VCS</span> is now used in a better way (via the <code>-load</code> option).
356
- <ul>
357
- <li>The old <span class="caps">PLI</span> table file (<code>synopsys_vcs.tab</code>) has been removed.</li>
358
- <li>The C extension has been revised accordingly.</li>
359
- </ul></li>
360
- </ul>
361
-
362
-
363
- <ul>
364
- <li>The C extension now compiles without errors in Cygwin.</li>
365
- </ul>
366
-
367
-
368
- <ul>
369
- <li>The automated test generator now:
370
- <ul>
371
- <li>Only creates output files when necessary.</li>
372
- <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>
373
- <li>Emits progress information similar to Ruby on Rails.</li>
374
- </ul></li>
375
- </ul>
376
-
377
-
378
- <ul>
379
- <li>The user manual now:
380
- <ul>
381
- <li>Includes instructions for installing on Windows (via Cygwin).</li>
382
- <li>Has a recommended software section, with links to text merging tools.</li>
383
- <li>Uses the term <a href="http://en.wikipedia.org/wiki/XUnit">xUnit</a> instead of &#8220;unit test&#8221;.</li>
384
- <li>Correctly spells &#8220;rSpec&#8221;.</li>
385
- </ul></li>
386
- </ul>
387
-
388
-
389
- <h1>Version 8.2.0 (2006-10-24)</h1>
390
-
391
-
392
- <h2>Summary</h2>
393
-
394
-
395
- <p>This release simplifies configuration of generated tests.</p>
396
-
397
-
398
- <h2>Acknowledgment</h2>
399
-
400
-
401
- <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>
402
-
403
-
404
- <h2>Notice</h2>
405
-
406
-
407
- <ul>
408
- <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>
409
- </ul>
410
-
411
-
412
- <h2>Detail</h2>
413
-
414
-
415
- <ul>
416
- <li>Generated Verilog benches now inherit all <code>`include</code> and <code>`define</code> directives from the Verilog design in a simpler manner.</li>
417
- <li>A generated test no longer requires its Verilog design to reside in the same directory.</li>
418
- <li>The sample tests have been updated accordingly.</li>
419
- </ul>
420
-
421
-
422
- <h1>Version 8.1.0 (2006-10-21)</h1>
423
-
424
-
425
- <h2>Summary</h2>
426
-
427
-
428
- <p>This release adds an integer library and renames the vpi_util library.</p>
429
-
430
-
431
- <h2>Notice</h2>
432
-
433
-
434
- <ul>
435
- <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>
436
- </ul>
437
-
438
-
439
- <h2>Detail</h2>
440
-
441
-
442
- <ul>
443
- <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>
444
- </ul>
445
-
446
-
447
- <h1>Version 8.0.0 (2006-10-13)</h1>
448
-
449
-
450
- <h2>Summary</h2>
451
-
452
-
453
- <p>This release renames some identifiers for consistency, updates the documentation, and improves integration with RubyGems.</p>
454
-
455
-
456
- <h2>Notice</h2>
457
-
458
-
459
- <ul>
460
- <li>The <code>RubyVPI</code> module has been renamed to <code>RubyVpi</code>.</li>
461
- </ul>
462
-
463
-
464
- <ul>
465
- <li>The <code>PROTO</code> environment variable has been renamed to <code>PROTOTYPE</code>.
466
- <ul>
467
- <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>
468
- </ul></li>
469
- </ul>
470
-
471
-
472
- <h2>Detail</h2>
473
-
474
-
475
- <ul>
476
- <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>
477
- </ul>
478
-
479
-
480
- <ul>
481
- <li>The source code is now distributed in tar.gz and zip form, in addition to gem.</li>
482
- </ul>
483
-
484
-
485
- <ul>
486
- <li>Some identifiers have been renamed for better consistency.</li>
487
- </ul>
488
-
489
-
490
- <ul>
491
- <li>The user manual now resides directly within the <code>doc/</code> directory.
492
- <ul>
493
- <li>The integration of documentation in <code>gem_server</code> has been improved.</li>
494
- </ul></li>
495
- </ul>
496
-
497
-
498
- <ul>
499
- <li>The glossary and tutorial in the user manual have been revised.</li>
500
- </ul>
501
-
502
-
503
- <h1>Version 7.3.0 (2006-09-30)</h1>
504
-
505
-
506
- <h2>Summary</h2>
507
-
508
-
509
- <p>This release fixes a bug in generated Verilog benches, includes parsed constants in generated tests, and adds new methods to handles.</p>
510
-
511
-
512
- <h2>Notice</h2>
513
-
514
-
515
- <ul>
516
- <li>Handles now have two new methods:
517
- <ul>
518
- <li><code>handle.x?</code> checks if the logic value is &#8220;don&#8217;t care&#8221; </li>
519
- <li><code>handle.z?</code> checks if the logic value is high impedance</li>
520
- </ul></li>
521
- </ul>
522
-
523
-
524
- <h2>Detail</h2>
525
-
526
-
527
- <ul>
528
- <li>Module instantiation code in generated Verilog benches has been fixed. Whitespace between the module type and instance variable was missing.</li>
529
- </ul>
530
-
531
-
532
- <ul>
533
- <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.
534
- <ul>
535
- <li>The pipelined <span class="caps">ALU</span> example has been revised accordingly.</li>
536
- </ul></li>
537
- </ul>
538
-
539
-
540
- <ul>
541
- <li>A library for parsing Verilog source code has been added as <code>lib/ruby-vpi/verilog_parser.rb</code>.</li>
542
- </ul>
543
-
544
-
545
- <h1>Version 7.2.0 (2006-09-15)</h1>
546
-
547
-
548
- <h2>Summary</h2>
549
-
550
-
551
- <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>
552
-
553
-
554
- <h2>Acknowledgment</h2>
555
-
556
-
557
- <p>Thanks to Mauricio Fernandez for helping me use rcov without its runner.</p>
558
-
559
-
560
- <h2>Detail</h2>
561
-
562
-
563
- <ul>
564
- <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.
565
- <ul>
566
- <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>
567
- </ul></li>
568
- </ul>
569
-
570
-
571
- <ul>
572
- <li>Coverage reports are generated in text and <span class="caps">HTML</span> formats.</li>
573
- </ul>
574
-
575
-
576
- <p id="fn1"><sup>1</sup> Full capabilites of the rcov library, such as its various analysis modes, are not yet utilized.</p>
577
-
578
-
579
- <h1>Version 7.1.0 (2006-08-29)</h1>
580
-
581
-
582
- <h2>Summary</h2>
583
-
584
-
585
- <p>This release simplifies running of multiple tests, restores compatibility with Synopsys <span class="caps">VCS</span>, and better integrates with RubyGems.</p>
586
-
587
-
588
- <h2>Detail</h2>
589
-
590
-
591
- <ul>
592
- <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>
593
- </ul>
594
-
595
-
596
- <ul>
597
- <li>Fixed a bug that prevented one from running tests with Synopsys <span class="caps">VCS</span>.</li>
598
- </ul>
599
-
600
-
601
- <ul>
602
- <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>
603
- </ul>
604
-
605
-
606
- <ul>
607
- <li>The user manual now discusses how to determine the location of a Ruby-VPI installation.</li>
608
- </ul>
609
-
610
-
611
- <ul>
612
- <li>The <code>tpl/</code> directory has been removed.</li>
613
- </ul>
614
-
615
-
616
- <h1>Version 7.0.0 (2006-08-29)</h1>
617
-
618
-
619
- <h2>Summary</h2>
620
-
621
-
622
- <p>This release distributes Ruby-VPI as a gem, improves portability of generated tests, and fixes a bug.</p>
623
-
624
-
625
- <h2>Notice</h2>
626
-
627
-
628
- <ul>
629
- <li><code>put_value()</code> now accomodates register value overflows when verifying the value it has written.</li>
630
- </ul>
631
-
632
-
633
- <ul>
634
- <li>The test generator&#8217;s templates and the examples have been updated as follows:
635
- <ul>
636
- <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>
637
- <li>Ruby benches now invoke <code>RubyVPI.init_bench</code> instead of <code>require 'bench'; setup_bench</code> to become initialized.</li>
638
- </ul></li>
639
- </ul>
640
-
641
-
642
- <ul>
643
- <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>
644
- </ul>
645
-
646
-
647
- <ul>
648
- <li>The <code>src/</code> directory has been renamed to <code>ext/</code> to follow RubyGems convention.</li>
649
- </ul>
650
-
651
-
652
- <h2>Detail</h2>
653
-
654
-
655
- <ul>
656
- <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>
657
- </ul>
658
-
659
-
660
- <ul>
661
- <li>The tools in <code>bin/</code> become available in your system&#8217;s <code>bin/</code> directory when the gem is installed.
662
- <ul>
663
- <li>Usage and help information has been added to the <code>header_to_ruby.rb</code> tool.</li>
664
- </ul></li>
665
- </ul>
666
-
667
-
668
- <ul>
669
- <li>Incorrect spelling of <span class="caps">GPL</span> Cver (v should be uncapitalized) has been fixed.</li>
670
- </ul>
671
-
672
-
673
- <ul>
674
- <li>Incorrect link to <span class="caps">GPL</span> Cver website has been fixed.</li>
675
- </ul>
676
-
677
-
678
- <ul>
679
- <li>The user manual has been updated according to all of the above changes.</li>
680
- </ul>
681
-
682
-
683
- <h1>Version 6.3.0 (2006-08-27)</h1>
684
-
685
-
686
- <h2>Summary</h2>
687
-
688
-
689
- <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>
690
-
691
-
692
- <h2>Notice</h2>
693
-
694
-
695
- <ul>
696
- <li>Ruby-VPI now only needs to be built once.
697
- <ul>
698
- <li>You can run tests with different Verilog simulators without having to re-compile Ruby-VPI.</li>
699
- </ul></li>
700
- </ul>
701
-
702
-
703
- <h2>Detail</h2>
704
-
705
-
706
- <ul>
707
- <li>The <span class="caps">GPL</span> Cver simulator is now supported.</li>
708
- </ul>
709
-
710
-
711
- <ul>
712
- <li>Release packages are now available in both source and binary form.</li>
713
- </ul>
714
-
715
-
716
- <ul>
717
- <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>
718
- </ul>
719
-
720
-
721
- <ul>
722
- <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:
723
- <table>
724
- <tr>
725
- <th>Release date </th>
726
- <th>Original version number </th>
727
- <th>New version number </th>
728
- </tr>
729
- <tr>
730
- <td> 1999-10-31 </td>
731
- <td> 0.0 </td>
732
- <td> 0.0.0 </td>
733
- </tr>
734
- <tr>
735
- <td> 2006-02-26 </td>
736
- <td> 0.1 </td>
737
- <td> 1.0.0 </td>
738
- </tr>
739
- <tr>
740
- <td> 2006-04-17 </td>
741
- <td> 0.2 </td>
742
- <td> 2.0.0 </td>
743
- </tr>
744
- <tr>
745
- <td> 2006-04-23 </td>
746
- <td> 0.3 </td>
747
- <td> 3.0.0 </td>
748
- </tr>
749
- <tr>
750
- <td> 2006-04-28 </td>
751
- <td> 0.4 </td>
752
- <td> 3.1.0 </td>
753
- </tr>
754
- <tr>
755
- <td> 2006-05-13 </td>
756
- <td> 0.5 </td>
757
- <td> 3.2.0 </td>
758
- </tr>
759
- <tr>
760
- <td> 2006-05-25 </td>
761
- <td> 0.6 </td>
762
- <td> 4.0.0 </td>
763
- </tr>
764
- <tr>
765
- <td> 2006-07-22 </td>
766
- <td> 0.7 </td>
767
- <td> 5.0.0 </td>
768
- </tr>
769
- <tr>
770
- <td> 2006-07-29 </td>
771
- <td> 0.8 </td>
772
- <td> 5.1.0 </td>
773
- </tr>
774
- <tr>
775
- <td> 2006-08-04 </td>
776
- <td> 0.8.1 </td>
777
- <td> 5.1.1 </td>
778
- </tr>
779
- <tr>
780
- <td> 2006-08-07 </td>
781
- <td> 0.9 </td>
782
- <td> 6.0.0 </td>
783
- </tr>
784
- <tr>
785
- <td> 2006-08-09 </td>
786
- <td> 0.9.1 </td>
787
- <td> 6.1.0 </td>
788
- </tr>
789
- <tr>
790
- <td> 2006-08-26 </td>
791
- <td> 0.9.2 </td>
792
- <td> 6.2.0 </td>
793
- </tr>
794
- </table></li>
795
- </ul>
796
-
797
-
798
- <h1>Version 6.2.0 (2006-08-26)</h1>
799
-
800
-
801
- <h2>Summary</h2>
802
-
803
-
804
- <p>This release beautifies generated tests, adds checks to find signal width bugs, and includes a new tool.</p>
805
-
806
-
807
- <h2>Notice</h2>
808
-
809
-
810
- <ul>
811
- <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>
812
- </ul>
813
-
814
-
815
- <ul>
816
- <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>
817
- </ul>
818
-
819
-
820
- <h2>Detail</h2>
821
-
822
-
823
- <ul>
824
- <li>The test generator now uses <span class="caps">ERB</span> templates which ensures nice indentation of generated output.</li>
825
- </ul>
826
-
827
-
828
- <ul>
829
- <li>The test generator now decouples Ruby-VPI paths from Verilog benches via the <span class="caps">RUBYLIB</span> environment variable.</li>
830
- </ul>
831
-
832
-
833
- <ul>
834
- <li>A tool which converts Verilog headers into Ruby has been added.</li>
835
- </ul>
836
-
837
-
838
- <ul>
839
- <li>The source code is now indented with two spaces instead of one tab character.</li>
840
- </ul>
841
-
842
-
843
- <h1>Version 6.1.0 (2006-08-09)</h1>
844
-
845
-
846
- <h2>Summary</h2>
847
-
848
-
849
- <p>This release simplifies generated tests and fixes a bug.</p>
850
-
851
-
852
- <h2>Detail</h2>
853
-
854
-
855
- <ul>
856
- <li>The test generator now produces simpler Ruby benches and specifications.
857
- <ul>
858
- <li>A template used by generated specifications has been added.</li>
859
- <li>The counter example and tutorial have also been simplified accordingly.</li>
860
- </ul></li>
861
- </ul>
862
-
863
-
864
- <ul>
865
- <li>Boolean <span class="caps">VPI</span> property values are now correctly converted into Ruby truth values.</li>
866
- </ul>
867
-
868
-
869
- <h1>Version 6.0.0 (2006-08-07)</h1>
870
-
871
-
872
- <h2>Summary</h2>
873
-
874
-
875
- <p>This release adds support and documentation for rapid prototyping of Verilog designs in Ruby.</p>
876
-
877
-
878
- <h2>Notice</h2>
879
-
880
-
881
- <ul>
882
- <li>The directory structure has been reorganized as follows:
883
- <ul>
884
- <li><code>ext</code> &rarr; <code>src</code></li>
885
- <li><code>tools</code> &rarr; <code>bin</code></li>
886
- <li><code>examples</code> &rarr; <code>samp</code></li>
887
- </ul></li>
888
- </ul>
889
-
890
-
891
- <ul>
892
- <li>All template files have been moved into the <code>tpl</code> directory.</li>
893
- </ul>
894
-
895
-
896
- <h2>Detail</h2>
897
-
898
-
899
- <ul>
900
- <li>Support for prototyping designs in Ruby, before they are implemented in Verilog, has been added.
901
- <ul>
902
- <li>The <em>same</em> specification can be used to verify both prototype <em>and</em> design! :-)</li>
903
- <li>The tutorial in the user manual has been updated to discuss prototyping.
904
- <ul>
905
- <li>Prototypes have been added to the counter example.</li>
906
- </ul></li>
907
- </ul></li>
908
- </ul>
909
-
910
-
911
- <ul>
912
- <li>The user manual has been revised for consistency.</li>
913
- </ul>
914
-
915
-
916
- <h1>Version 5.1.1 (2006-08-04)</h1>
917
-
918
-
919
- <h2>Summary</h2>
920
-
921
-
922
- <p>This release fixes unreadable syntax coloring in the user manual.</p>
923
-
924
-
925
- <h2>Acknowledgment</h2>
926
-
927
-
928
- <ul>
929
- <li>Thanks to Todd Nagengast and Matt Fischler for notifying me about unreadable text in the user manual.</li>
930
- </ul>
931
-
932
-
933
- <h2>Detail</h2>
934
-
935
-
936
- <ul>
937
- <li>Source code comments in the user manual are now readable.</li>
938
- </ul>
939
-
940
-
941
- <ul>
942
- <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>
943
- </ul>
944
-
945
-
946
- <h1>Version 5.1.0 (2006-07-29)</h1>
947
-
948
-
949
- <h2>Summary</h2>
950
-
951
-
952
- <p>This release adds a tutorial to the user manual, and improves the tools and examples.</p>
953
-
954
-
955
- <h2>Acknowledgment</h2>
956
-
957
-
958
- <ul>
959
- <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>
960
- </ul>
961
-
962
-
963
- <h2>Detail</h2>
964
-
965
-
966
- <h3>User manual</h3>
967
-
968
-
969
- <ul>
970
- <li>A tutorial, based on the counter example, has been added to the user manual.</li>
971
- </ul>
972
-
973
-
974
- <ul>
975
- <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>
976
- </ul>
977
-
978
-
979
- <h3>Examples</h3>
980
-
981
-
982
- <ul>
983
- <li>A specification, expressed in unit test format, has been added to the counter example.</li>
984
- </ul>
985
-
986
-
987
- <ul>
988
- <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>
989
- </ul>
990
-
991
-
992
- <ul>
993
- <li>Running <code>rake clobber</code> in an example directory no longer destroys documentation in the Ruby-VPI directory.</li>
994
- </ul>
995
-
996
-
997
- <ul>
998
- <li>The examples&#8217; Rakefiles now invoke all tests present in the directory via the <code>launcher_template.rake</code> template.</li>
999
- </ul>
1000
-
1001
-
1002
- <ul>
1003
- <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>
1004
- </ul>
1005
-
1006
-
1007
- <h3><span class="caps">VPI</span> utility layer</h3>
1008
-
1009
-
1010
- <ul>
1011
- <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>
1012
- </ul>
1013
-
1014
-
1015
- <h1>Version 5.0.0 (2006-07-22)</h1>
1016
-
1017
-
1018
- <h2>Summary</h2>
1019
-
1020
-
1021
- <p>This release enhances the <span class="caps">VPI</span> utility layer and adds new content to the user manual.</p>
1022
-
1023
-
1024
- <h2>Acknowledgment</h2>
1025
-
1026
-
1027
- <ul>
1028
- <li>Thanks to Jan Decaluwe for correcting the description of MyHDL in the user manual.</li>
1029
- </ul>
1030
-
1031
-
1032
- <h2>Notice</h2>
1033
-
1034
-
1035
- <ul>
1036
- <li><span class="caps">SWIG</span> is no longer required for users because its output is included in the release package.</li>
1037
- </ul>
1038
-
1039
-
1040
- <ul>
1041
- <li>The <code>handle.value</code> and <code>handle.value=</code> methods have been removed.</li>
1042
- </ul>
1043
-
1044
-
1045
- <h2>Detail</h2>
1046
-
1047
-
1048
- <ul>
1049
- <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>
1050
- </ul>
1051
-
1052
-
1053
- <ul>
1054
- <li>All <span class="caps">VPI</span> properties, except delay values, are now accessible from a handle.</li>
1055
- </ul>
1056
-
1057
-
1058
- <ul>
1059
- <li>The user manual has been revised and new content in the organization and usage sections has been added.</li>
1060
- </ul>
1061
-
1062
-
1063
- <ul>
1064
- <li>This release was tested and developed using:
1065
- <ul>
1066
- <li>Ruby 1.8.4 and Icarus Verilog 0.8 on i686 <span class="caps">GNU</span>/Linux</li>
1067
- <li>Ruby 1.8.4 and Mentor Modelsim 6.1d on x86_64 <span class="caps">GNU</span>/Linux</li>
1068
- </ul></li>
1069
- </ul>
1070
-
1071
-
1072
- <h1>Version 4.0.0 (2006-05-25)</h1>
1073
-
1074
-
1075
- <h2>Summary</h2>
1076
-
1077
-
1078
- <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>
1079
-
1080
-
1081
- <h2>Acknowledgment</h2>
1082
-
1083
-
1084
- <ul>
1085
- <li>Thanks to Jose Renau for solving the problem of strange delays that occurred whenever a design was reset.</li>
1086
- </ul>
1087
-
1088
-
1089
- <h2>Notice</h2>
1090
-
1091
-
1092
- <ul>
1093
- <li>Rake has replaced the role of <strong>make</strong>. All makefiles have been converted accordingly.</li>
1094
- </ul>
1095
-
1096
-
1097
- <ul>
1098
- <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>
1099
- </ul>
1100
-
1101
-
1102
- <h2>Detail</h2>
1103
-
1104
-
1105
- <ul>
1106
- <li>A comprehensive user manual, written in DocBook-XML, has been added.</li>
1107
- </ul>
1108
-
1109
-
1110
- <ul>
1111
- <li>Support for RSpec 0.5.4 has been added.
1112
- <ul>
1113
- <li>The counter example now makes use of RSpec.</li>
1114
- </ul></li>
1115
- </ul>
1116
-
1117
-
1118
- <ul>
1119
- <li>This release was tested and developed using:
1120
- <ul>
1121
- <li>Ruby 1.8.4 and Icarus Verilog 0.8 on i686 <span class="caps">GNU</span>/Linux</li>
1122
- <li>Ruby 1.8.4 and Mentor Modelsim 6.1d on x86_64 <span class="caps">GNU</span>/Linux</li>
1123
- </ul></li>
1124
- </ul>
1125
-
1126
-
1127
- <h1>Version 3.2.0 (2006-05-13)</h1>
1128
-
1129
-
1130
- <h2>Summary</h2>
1131
-
1132
-
1133
- <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>
1134
-
1135
-
1136
- <h2>Acknowledgment</h2>
1137
-
1138
-
1139
- <ul>
1140
- <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>
1141
- </ul>
1142
-
1143
-
1144
- <h2>Detail</h2>
1145
-
1146
-
1147
- <ul>
1148
- <li>A tool, which generates most of a Ruby-VPI test bench from a Verilog 2001 module declaration, has been added.</li>
1149
- </ul>
1150
-
1151
-
1152
- <ul>
1153
- <li>Ability to use RSpec in a test bench has been added.</li>
1154
- </ul>
1155
-
1156
-
1157
- <ul>
1158
- <li>Ability to specify arbitrary command-line arguments to Verilog simulators has been added in the examples&#8217; makefile template.</li>
1159
- </ul>
1160
-
1161
-
1162
- <ul>
1163
- <li>This release was tested and developed using:
1164
- <ul>
1165
- <li>Ruby 1.8.4 and Icarus Verilog 0.8 on i686 <span class="caps">GNU</span>/Linux</li>
1166
- <li>Ruby 1.8.4 and Mentor Modelsim 6.1d on x86_64 <span class="caps">GNU</span>/Linux</li>
1167
- </ul></li>
1168
- </ul>
1169
-
1170
-
1171
- <h1>Version 3.1.0 (2006-04-28)</h1>
1172
-
1173
-
1174
- <h2>Summary</h2>
1175
-
1176
-
1177
- <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>
1178
-
1179
-
1180
- <h2>Notice</h2>
1181
-
1182
-
1183
- <ul>
1184
- <li>The <strong>msim</strong> Makefile target for Mentor Modelsim has been renamed back to <strong>vsim</strong>.</li>
1185
- </ul>
1186
-
1187
-
1188
- <h2>Detail</h2>
1189
-
1190
-
1191
- <ul>
1192
- <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>
1193
- </ul>
1194
-
1195
-
1196
- <ul>
1197
- <li>The makefiles now use the <strong>rbconfig</strong> library to determine the default compiler and linker flags for Ruby.</li>
1198
- </ul>
1199
-
1200
-
1201
- <ul>
1202
- <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>
1203
- </ul>
1204
-
1205
-
1206
- <ul>
1207
- <li>The project wiki has been abandoned in favor of RDoc.</li>
1208
- </ul>
1209
-
1210
-
1211
- <ul>
1212
- <li>The project website is now generated by RDoc.</li>
1213
- </ul>
1214
-
1215
-
1216
- <ul>
1217
- <li>This release was tested and developed using:
1218
- <ul>
1219
- <li>Ruby 1.8.4 and Icarus Verilog 0.8 on i686 <span class="caps">GNU</span>/Linux</li>
1220
- <li>Ruby 1.8.4 and Mentor Modelsim 6.1d on x86_64 <span class="caps">GNU</span>/Linux</li>
1221
- </ul></li>
1222
- </ul>
1223
-
1224
-
1225
- <h1>Version 3.0.0 (2006-04-23)</h1>
1226
-
1227
-
1228
- <h2>Summary</h2>
1229
-
1230
-
1231
- <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>
1232
-
1233
-
1234
- <h2>Acknowledgment</h2>
1235
-
1236
-
1237
- <ul>
1238
- <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>
1239
- </ul>
1240
-
1241
-
1242
- <h2>Notice</h2>
1243
-
1244
-
1245
- <ul>
1246
- <li>The <strong>vsim</strong> Makefile target for Mentor Modelsim has been renamed to <strong>msim</strong>.</li>
1247
- </ul>
1248
-
1249
-
1250
- <h2>Detail</h2>
1251
-
1252
-
1253
- <ul>
1254
- <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>.
1255
- <ul>
1256
- <li>The main <code>VPI</code> module has been renamed to <code>Vpi</code>.</li>
1257
- <li>The <code>VPI::Handle</code> class has been removed.</li>
1258
- <li>The <code>VPI::stop</code>, <code>VPI::finish</code>, and <code>VPI::reset</code> methods have been removed.</li>
1259
- </ul></li>
1260
- </ul>
1261
-
1262
-
1263
- <ul>
1264
- <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>
1265
- </ul>
1266
-
1267
-
1268
- <ul>
1269
- <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>
1270
- </ul>
1271
-
1272
-
1273
- <ul>
1274
- <li>The examples now make use of the <strong>test/unit</strong> unit testing framework.</li>
1275
- </ul>
1276
-
1277
-
1278
- <ul>
1279
- <li>The makefiles for the examples have been simplified through the use of a common template.</li>
1280
- </ul>
1281
-
1282
-
1283
- <ul>
1284
- <li>This release was tested and developed using:
1285
- <ul>
1286
- <li>Ruby 1.8.4 and Icarus Verilog 0.8 on i686 <span class="caps">GNU</span>/Linux</li>
1287
- <li>Ruby 1.8.4 and Mentor Modelsim 6.1d on x86_64 <span class="caps">GNU</span>/Linux</li>
1288
- </ul></li>
1289
- </ul>
1290
-
1291
-
1292
- <h1>Version 2.0.0 (2006-04-17)</h1>
1293
-
1294
-
1295
- <h2>Summary</h2>
1296
-
1297
-
1298
- <p>This release fixes major bugs, adds support for Mentor Modelsim, and removes the <code>$ruby_task</code> callback.</p>
1299
-
1300
-
1301
- <h2>Acknowledgment</h2>
1302
-
1303
-
1304
- <ul>
1305
- <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>
1306
- </ul>
1307
-
1308
-
1309
- <h2>Notice</h2>
1310
-
1311
-
1312
- <ul>
1313
- <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>
1314
- </ul>
1315
-
1316
-
1317
- <h2>Detail</h2>
1318
-
1319
-
1320
- <ul>
1321
- <li>The <strong>cross-thread violation on rb_gc()</strong> error has been fixed.
1322
- <ul>
1323
- <li>The <strong>stack level too deep (SystemStackError)</strong> error has been fixed.</li>
1324
- <li>The <strong>test/unit</strong> library can be used in Ruby test bench.</li>
1325
- <li>Mentor Modelsim Verilog simulator works with Ruby-VPI.</li>
1326
- </ul></li>
1327
- </ul>
1328
-
1329
-
1330
- <ul>
1331
- <li>Added piplelined <span class="caps">ALU</span> example.</li>
1332
- </ul>
1333
-
1334
-
1335
- <ul>
1336
- <li>This release was tested and developed using:
1337
- <ul>
1338
- <li>Ruby 1.8.4 and Icarus Verilog 0.8 on i686 <span class="caps">GNU</span>/Linux</li>
1339
- <li>Ruby 1.8.4 and Modelsim 6.1d on x86_64 <span class="caps">GNU</span>/Linux</li>
1340
- <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>
1341
- </ul></li>
1342
- </ul>
1343
-
1344
-
1345
- <h1>Version 1.0.0 (2006-02-26)</h1>
1346
-
1347
-
1348
- <h2>Summary</h2>
1349
-
1350
-
1351
- This release adds enough Verilog <span class="caps">VPI</span> functionality to make Ruby-VPI usable for simple test benches:
1352
- <ul>
1353
- <li>access Verilog objects through <span class="caps">VPI</span> handles</li>
1354
- <li>read and change <span class="caps">VPI</span> handle values</li>
1355
- <li>stop, finish, restart the simulation</li>
1356
- </ul>
1357
-
1358
-
1359
- <h2>Acknowledgment</h2>
1360
-
1361
-
1362
- <ul>
1363
- <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>
1364
- </ul>
1365
-
1366
-
1367
- <ul>
1368
- <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>
1369
- </ul>
1370
-
1371
-
1372
- <h2>Detail</h2>
1373
-
1374
-
1375
- <ul>
1376
- <li>Implemented some Verilog <span class="caps">VPI</span> functionality:
1377
- <ul>
1378
- <li><code>VPI::handle_by_name(string, VPI::Handle)</code> &rarr; <code>VPI::Handle</code></li>
1379
- <li><code>VPI::handle_by_name(string)</code> &rarr; <code>VPI::Handle</code></li>
1380
- <li><code>VPI::Handle#put_value(integer)</code></li>
1381
- <li><code>VPI::Handle#value = integer</code></li>
1382
- <li><code>VPI::Handle#get_value</code> &rarr; <code>integer</code></li>
1383
- <li><code>VPI::Handle#value</code> &rarr; <code>integer</code></li>
1384
- <li><code>VPI::stop</code></li>
1385
- <li><code>VPI::finish</code></li>
1386
- <li><code>VPI::reset</code></li>
1387
- </ul></li>
1388
- </ul>
1389
-
1390
-
1391
- <ul>
1392
- <li>Implemented some additional functionality:
1393
- <ul>
1394
- <li><code>VPI::register_task(string, &#38;proc)</code></li>
1395
- </ul></li>
1396
- </ul>
1397
-
1398
-
1399
- <ul>
1400
- <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>
1401
- </ul>
1402
-
1403
-
1404
- <ul>
1405
- <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>
1406
- </ul>
1407
-
1408
-
1409
- <ul>
1410
- <li>Added <code>VPI::Handle</code> class which encapsulates a <code>vpiHandle</code> VPI object.</li>
1411
- </ul>
1412
-
1413
-
1414
- <ul>
1415
- <li>This release was tested and developed using:
1416
- <ul>
1417
- <li>Ruby 1.8.2 and Icarus Verilog 0.8 on i686 <span class="caps">GNU</span>/Linux</li>
1418
- <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>
1419
- </ul></li>
1420
- </ul>
1421
-
1422
-
1423
- <h1>Version 0.0.0 (1999-10-31)</h1>
1424
-
1425
-
1426
- <h2>Summary</h2>
1427
-
1428
-
1429
- <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>
1430
-
1431
-
1432
- <h2>Detail</h2>
1433
-
1434
-
1435
- <ul>
1436
- <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>
1437
- </ul>
1438
-
1439
-
1440
- <ul>
1441
- <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>
1442
- </ul>