ruby-vpi 7.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (364) hide show
  1. data/HISTORY +398 -0
  2. data/LICENSE +340 -0
  3. data/MEMO +38 -0
  4. data/README +9 -0
  5. data/Rakefile +271 -0
  6. data/bin/generate_test.rb +258 -0
  7. data/bin/generate_test_tpl/bench.rb +31 -0
  8. data/bin/generate_test_tpl/bench.v +54 -0
  9. data/bin/generate_test_tpl/design.rb +26 -0
  10. data/bin/generate_test_tpl/proto.rb +8 -0
  11. data/bin/generate_test_tpl/runner.rake +28 -0
  12. data/bin/generate_test_tpl/spec.rb +46 -0
  13. data/bin/header_to_ruby.rb +70 -0
  14. data/doc/Rakefile +55 -0
  15. data/doc/src/LICENSE +397 -0
  16. data/doc/src/figures/organization.png +0 -0
  17. data/doc/src/figures/organization_detailed.png +0 -0
  18. data/doc/src/figures/ruby_init.png +0 -0
  19. data/doc/src/figures/ruby_relay.png +0 -0
  20. data/doc/src/figures.dia +0 -0
  21. data/doc/src/images/COPYING +67 -0
  22. data/doc/src/images/ChangeLog +27 -0
  23. data/doc/src/images/blank.png +0 -0
  24. data/doc/src/images/callouts/1.png +0 -0
  25. data/doc/src/images/callouts/10.png +0 -0
  26. data/doc/src/images/callouts/11.png +0 -0
  27. data/doc/src/images/callouts/12.png +0 -0
  28. data/doc/src/images/callouts/13.png +0 -0
  29. data/doc/src/images/callouts/14.png +0 -0
  30. data/doc/src/images/callouts/15.png +0 -0
  31. data/doc/src/images/callouts/2.png +0 -0
  32. data/doc/src/images/callouts/3.png +0 -0
  33. data/doc/src/images/callouts/4.png +0 -0
  34. data/doc/src/images/callouts/5.png +0 -0
  35. data/doc/src/images/callouts/6.png +0 -0
  36. data/doc/src/images/callouts/7.png +0 -0
  37. data/doc/src/images/callouts/8.png +0 -0
  38. data/doc/src/images/callouts/9.png +0 -0
  39. data/doc/src/images/callouts/ChangeLog +15 -0
  40. data/doc/src/images/caution.png +0 -0
  41. data/doc/src/images/caution.svg +290 -0
  42. data/doc/src/images/copyright +55 -0
  43. data/doc/src/images/draft.png +0 -0
  44. data/doc/src/images/home.png +0 -0
  45. data/doc/src/images/home.svg +386 -0
  46. data/doc/src/images/important.png +0 -0
  47. data/doc/src/images/important.svg +163 -0
  48. data/doc/src/images/next.png +0 -0
  49. data/doc/src/images/next.svg +191 -0
  50. data/doc/src/images/note.png +0 -0
  51. data/doc/src/images/note.svg +483 -0
  52. data/doc/src/images/prev.png +0 -0
  53. data/doc/src/images/prev.svg +852 -0
  54. data/doc/src/images/tip.png +0 -0
  55. data/doc/src/images/tip.svg +1145 -0
  56. data/doc/src/images/toc-blank.png +0 -0
  57. data/doc/src/images/toc-minus.png +0 -0
  58. data/doc/src/images/toc-plus.png +0 -0
  59. data/doc/src/images/up.png +0 -0
  60. data/doc/src/images/up.svg +195 -0
  61. data/doc/src/images/warning.png +0 -0
  62. data/doc/src/images/warning.svg +334 -0
  63. data/doc/src/license.xml +446 -0
  64. data/doc/src/manual.xml +1582 -0
  65. data/doc/src/manual.xsl +23 -0
  66. data/doc/src/shared.dtd +63 -0
  67. data/doc/src/styles/manual.css +87 -0
  68. data/doc/txt/manual.txt +1657 -0
  69. data/doc/xhtml/background.html +3 -0
  70. data/doc/xhtml/background.methodology.html +3 -0
  71. data/doc/xhtml/background.organization.html +10 -0
  72. data/doc/xhtml/background.running-tests.html +3 -0
  73. data/doc/xhtml/background.terminology.html +3 -0
  74. data/doc/xhtml/figures/organization.png +0 -0
  75. data/doc/xhtml/figures/organization_detailed.png +0 -0
  76. data/doc/xhtml/figures/ruby_init.png +0 -0
  77. data/doc/xhtml/figures/ruby_relay.png +0 -0
  78. data/doc/xhtml/gfdl-0.html +18 -0
  79. data/doc/xhtml/gfdl-1.html +70 -0
  80. data/doc/xhtml/gfdl-10.html +15 -0
  81. data/doc/xhtml/gfdl-2.html +13 -0
  82. data/doc/xhtml/gfdl-3.html +31 -0
  83. data/doc/xhtml/gfdl-4.html +75 -0
  84. data/doc/xhtml/gfdl-5.html +20 -0
  85. data/doc/xhtml/gfdl-6.html +12 -0
  86. data/doc/xhtml/gfdl-7.html +16 -0
  87. data/doc/xhtml/gfdl-8.html +17 -0
  88. data/doc/xhtml/gfdl-9.html +9 -0
  89. data/doc/xhtml/gfdl-addendum.html +25 -0
  90. data/doc/xhtml/gfdl.html +11 -0
  91. data/doc/xhtml/glossary.html +3 -0
  92. data/doc/xhtml/images/COPYING +67 -0
  93. data/doc/xhtml/images/ChangeLog +27 -0
  94. data/doc/xhtml/images/blank.png +0 -0
  95. data/doc/xhtml/images/callouts/1.png +0 -0
  96. data/doc/xhtml/images/callouts/10.png +0 -0
  97. data/doc/xhtml/images/callouts/11.png +0 -0
  98. data/doc/xhtml/images/callouts/12.png +0 -0
  99. data/doc/xhtml/images/callouts/13.png +0 -0
  100. data/doc/xhtml/images/callouts/14.png +0 -0
  101. data/doc/xhtml/images/callouts/15.png +0 -0
  102. data/doc/xhtml/images/callouts/2.png +0 -0
  103. data/doc/xhtml/images/callouts/3.png +0 -0
  104. data/doc/xhtml/images/callouts/4.png +0 -0
  105. data/doc/xhtml/images/callouts/5.png +0 -0
  106. data/doc/xhtml/images/callouts/6.png +0 -0
  107. data/doc/xhtml/images/callouts/7.png +0 -0
  108. data/doc/xhtml/images/callouts/8.png +0 -0
  109. data/doc/xhtml/images/callouts/9.png +0 -0
  110. data/doc/xhtml/images/callouts/ChangeLog +15 -0
  111. data/doc/xhtml/images/caution.png +0 -0
  112. data/doc/xhtml/images/caution.svg +290 -0
  113. data/doc/xhtml/images/copyright +55 -0
  114. data/doc/xhtml/images/draft.png +0 -0
  115. data/doc/xhtml/images/home.png +0 -0
  116. data/doc/xhtml/images/home.svg +386 -0
  117. data/doc/xhtml/images/important.png +0 -0
  118. data/doc/xhtml/images/important.svg +163 -0
  119. data/doc/xhtml/images/next.png +0 -0
  120. data/doc/xhtml/images/next.svg +191 -0
  121. data/doc/xhtml/images/note.png +0 -0
  122. data/doc/xhtml/images/note.svg +483 -0
  123. data/doc/xhtml/images/prev.png +0 -0
  124. data/doc/xhtml/images/prev.svg +852 -0
  125. data/doc/xhtml/images/tip.png +0 -0
  126. data/doc/xhtml/images/tip.svg +1145 -0
  127. data/doc/xhtml/images/toc-blank.png +0 -0
  128. data/doc/xhtml/images/toc-minus.png +0 -0
  129. data/doc/xhtml/images/toc-plus.png +0 -0
  130. data/doc/xhtml/images/up.png +0 -0
  131. data/doc/xhtml/images/up.svg +195 -0
  132. data/doc/xhtml/images/warning.png +0 -0
  133. data/doc/xhtml/images/warning.svg +334 -0
  134. data/doc/xhtml/index.html +4 -0
  135. data/doc/xhtml/introduction.html +3 -0
  136. data/doc/xhtml/introduction.license.html +3 -0
  137. data/doc/xhtml/introduction.manifest.html +3 -0
  138. data/doc/xhtml/introduction.related-works.html +3 -0
  139. data/doc/xhtml/introduction.resources.html +3 -0
  140. data/doc/xhtml/problem.ivl.html +18 -0
  141. data/doc/xhtml/problems.html +3 -0
  142. data/doc/xhtml/problems.ruby.html +3 -0
  143. data/doc/xhtml/problems.vsim.html +3 -0
  144. data/doc/xhtml/styles/manual.css +87 -0
  145. data/doc/xhtml/usage.examples.html +3 -0
  146. data/doc/xhtml/usage.html +3 -0
  147. data/doc/xhtml/usage.installation.html +3 -0
  148. data/doc/xhtml/usage.requirements.html +3 -0
  149. data/doc/xhtml/usage.tools.html +3 -0
  150. data/doc/xhtml/usage.tutorial.html +199 -0
  151. data/ext/Doxyfile +272 -0
  152. data/ext/README +124 -0
  153. data/ext/Rakefile +65 -0
  154. data/ext/common.h +56 -0
  155. data/ext/extconf.rb +4 -0
  156. data/ext/relay.cin +146 -0
  157. data/ext/relay.hin +48 -0
  158. data/ext/ruby-vpi.c +36 -0
  159. data/ext/swig.cin +38 -0
  160. data/ext/swig.hin +39 -0
  161. data/ext/swig_vpi.h +924 -0
  162. data/ext/swig_vpi.i +8 -0
  163. data/ext/swig_wrap.cin +4613 -0
  164. data/ext/verilog.h +59 -0
  165. data/ext/vlog.cin +92 -0
  166. data/ext/vlog.hin +57 -0
  167. data/ext/vpi_user.h +924 -0
  168. data/gem_extconf.rb +8 -0
  169. data/history.html +809 -0
  170. data/lib/ruby-vpi/erb.rb +41 -0
  171. data/lib/ruby-vpi/rake.rb +35 -0
  172. data/lib/ruby-vpi/rdoc.rb +51 -0
  173. data/lib/ruby-vpi/rspec.rb +32 -0
  174. data/lib/ruby-vpi/runner.rb +22 -0
  175. data/lib/ruby-vpi/vpi_util.rb +310 -0
  176. data/lib/ruby-vpi.rb +58 -0
  177. data/memo.html +86 -0
  178. data/readme.html +19 -0
  179. data/ref/c/annotated.html +36 -0
  180. data/ref/c/common_8h.html +178 -0
  181. data/ref/c/doxygen.css +310 -0
  182. data/ref/c/doxygen.png +0 -0
  183. data/ref/c/files.html +35 -0
  184. data/ref/c/functions.html +135 -0
  185. data/ref/c/functions_vars.html +135 -0
  186. data/ref/c/globals.html +55 -0
  187. data/ref/c/globals_0x63.html +86 -0
  188. data/ref/c/globals_0x65.html +55 -0
  189. data/ref/c/globals_0x66.html +55 -0
  190. data/ref/c/globals_0x70.html +71 -0
  191. data/ref/c/globals_0x72.html +62 -0
  192. data/ref/c/globals_0x73.html +65 -0
  193. data/ref/c/globals_0x74.html +55 -0
  194. data/ref/c/globals_0x76.html +472 -0
  195. data/ref/c/globals_0x78.html +55 -0
  196. data/ref/c/globals_defs.html +81 -0
  197. data/ref/c/globals_defs_0x65.html +50 -0
  198. data/ref/c/globals_defs_0x70.html +51 -0
  199. data/ref/c/globals_defs_0x76.html +463 -0
  200. data/ref/c/globals_defs_0x78.html +50 -0
  201. data/ref/c/globals_enum.html +39 -0
  202. data/ref/c/globals_eval.html +40 -0
  203. data/ref/c/globals_func.html +49 -0
  204. data/ref/c/globals_type.html +63 -0
  205. data/ref/c/globals_vars.html +42 -0
  206. data/ref/c/hierarchy.html +36 -0
  207. data/ref/c/index.html +20 -0
  208. data/ref/c/relay_8cin.html +268 -0
  209. data/ref/c/relay_8hin.html +161 -0
  210. data/ref/c/ruby-vpi_8c.html +34 -0
  211. data/ref/c/structrelay____RubyOptions____def.html +84 -0
  212. data/ref/c/structt__cb__data.html +208 -0
  213. data/ref/c/structt__vpi__delay.html +183 -0
  214. data/ref/c/structt__vpi__error__info.html +208 -0
  215. data/ref/c/structt__vpi__strengthval.html +108 -0
  216. data/ref/c/structt__vpi__systf__data.html +208 -0
  217. data/ref/c/structt__vpi__time.html +133 -0
  218. data/ref/c/structt__vpi__value.html +285 -0
  219. data/ref/c/structt__vpi__vecval.html +83 -0
  220. data/ref/c/structt__vpi__vlog__info.html +133 -0
  221. data/ref/c/swig_8cin.html +91 -0
  222. data/ref/c/swig_8hin.html +99 -0
  223. data/ref/c/tab_b.gif +0 -0
  224. data/ref/c/tab_l.gif +0 -0
  225. data/ref/c/tab_r.gif +0 -0
  226. data/ref/c/tabs.css +102 -0
  227. data/ref/c/verilog_8h.html +149 -0
  228. data/ref/c/vlog_8cin.html +199 -0
  229. data/ref/c/vlog_8hin.html +152 -0
  230. data/ref/c/vpi__user_8h.html +12747 -0
  231. data/ref/ruby/classes/Counter.html +258 -0
  232. data/ref/ruby/classes/Counter.src/M000037.html +20 -0
  233. data/ref/ruby/classes/Counter.src/M000038.html +22 -0
  234. data/ref/ruby/classes/Counter.src/M000039.html +20 -0
  235. data/ref/ruby/classes/Counter.src/M000040.html +22 -0
  236. data/ref/ruby/classes/CounterProto.html +164 -0
  237. data/ref/ruby/classes/CounterProto.src/M000004.html +22 -0
  238. data/ref/ruby/classes/CounterProto.src/M000005.html +22 -0
  239. data/ref/ruby/classes/ERB.html +158 -0
  240. data/ref/ruby/classes/ERB.src/M000034.html +29 -0
  241. data/ref/ruby/classes/FileUtils.html +165 -0
  242. data/ref/ruby/classes/FileUtils.src/M000047.html +18 -0
  243. data/ref/ruby/classes/FileUtils.src/M000048.html +18 -0
  244. data/ref/ruby/classes/Hw5UnitModel/Operation.html +216 -0
  245. data/ref/ruby/classes/Hw5UnitModel/Operation.src/M000011.html +25 -0
  246. data/ref/ruby/classes/Hw5UnitModel/Operation.src/M000012.html +33 -0
  247. data/ref/ruby/classes/Hw5UnitModel/Operation.src/M000013.html +18 -0
  248. data/ref/ruby/classes/Hw5UnitModel.html +256 -0
  249. data/ref/ruby/classes/Hw5UnitModel.src/M000006.html +24 -0
  250. data/ref/ruby/classes/Hw5UnitModel.src/M000008.html +20 -0
  251. data/ref/ruby/classes/Hw5UnitModel.src/M000009.html +38 -0
  252. data/ref/ruby/classes/Hw5UnitModel.src/M000010.html +22 -0
  253. data/ref/ruby/classes/Hw5_unit.html +196 -0
  254. data/ref/ruby/classes/Hw5_unit.src/M000003.html +27 -0
  255. data/ref/ruby/classes/Hw5_unit_spec.html +237 -0
  256. data/ref/ruby/classes/Hw5_unit_spec.src/M000023.html +21 -0
  257. data/ref/ruby/classes/Hw5_unit_spec.src/M000024.html +21 -0
  258. data/ref/ruby/classes/Hw5_unit_spec.src/M000025.html +67 -0
  259. data/ref/ruby/classes/InputGenerator.html +260 -0
  260. data/ref/ruby/classes/InputGenerator.src/M000027.html +18 -0
  261. data/ref/ruby/classes/InputGenerator.src/M000028.html +18 -0
  262. data/ref/ruby/classes/InputGenerator.src/M000029.html +19 -0
  263. data/ref/ruby/classes/InputGenerator.src/M000030.html +38 -0
  264. data/ref/ruby/classes/InputGenerator.src/M000031.html +19 -0
  265. data/ref/ruby/classes/InputGenerator.src/M000032.html +19 -0
  266. data/ref/ruby/classes/MaximumCounterValue.html +159 -0
  267. data/ref/ruby/classes/MaximumCounterValue.src/M000035.html +23 -0
  268. data/ref/ruby/classes/MaximumCounterValue.src/M000036.html +21 -0
  269. data/ref/ruby/classes/ModuleInfo.html +199 -0
  270. data/ref/ruby/classes/ModuleInfo.src/M000018.html +44 -0
  271. data/ref/ruby/classes/ModuleInfo.src/M000019.html +26 -0
  272. data/ref/ruby/classes/OutputInfo.html +304 -0
  273. data/ref/ruby/classes/OutputInfo.src/M000017.html +51 -0
  274. data/ref/ruby/classes/RDoc.html +135 -0
  275. data/ref/ruby/classes/RDoc.src/M000051.html +40 -0
  276. data/ref/ruby/classes/ResettedCounterValue.html +174 -0
  277. data/ref/ruby/classes/ResettedCounterValue.src/M000014.html +19 -0
  278. data/ref/ruby/classes/ResettedCounterValue.src/M000015.html +18 -0
  279. data/ref/ruby/classes/ResettedCounterValue.src/M000016.html +23 -0
  280. data/ref/ruby/classes/RubyVPI.html +186 -0
  281. data/ref/ruby/classes/RubyVPI.src/M000049.html +18 -0
  282. data/ref/ruby/classes/RubyVPI.src/M000050.html +39 -0
  283. data/ref/ruby/classes/SWIG/TYPE_p_unsigned_int.html +370 -0
  284. data/ref/ruby/classes/SWIG/TYPE_p_unsigned_int.src/M000041.html +22 -0
  285. data/ref/ruby/classes/SWIG/TYPE_p_unsigned_int.src/M000042.html +44 -0
  286. data/ref/ruby/classes/SWIG/TYPE_p_unsigned_int.src/M000043.html +82 -0
  287. data/ref/ruby/classes/SWIG/TYPE_p_unsigned_int.src/M000044.html +127 -0
  288. data/ref/ruby/classes/SWIG/TYPE_p_unsigned_int.src/M000045.html +26 -0
  289. data/ref/ruby/classes/SWIG/TYPE_p_unsigned_int.src/M000046.html +18 -0
  290. data/ref/ruby/classes/SWIG.html +111 -0
  291. data/ref/ruby/classes/String.html +140 -0
  292. data/ref/ruby/classes/String.src/M000033.html +37 -0
  293. data/ref/ruby/classes/Template.html +158 -0
  294. data/ref/ruby/classes/Template.src/M000026.html +18 -0
  295. data/ref/ruby/classes/TestHw5UnitModel.html +180 -0
  296. data/ref/ruby/classes/TestHw5UnitModel.src/M000020.html +19 -0
  297. data/ref/ruby/classes/TestHw5UnitModel.src/M000021.html +19 -0
  298. data/ref/ruby/classes/TestHw5UnitModel.src/M000022.html +64 -0
  299. data/ref/ruby/created.rid +1 -0
  300. data/ref/ruby/files/bin/generate_test_rb.html +236 -0
  301. data/ref/ruby/files/bin/generate_test_rb.src/M000001.html +29 -0
  302. data/ref/ruby/files/bin/generate_test_tpl/bench_rb.html +115 -0
  303. data/ref/ruby/files/bin/generate_test_tpl/design_rb.html +107 -0
  304. data/ref/ruby/files/bin/generate_test_tpl/proto_rb.html +107 -0
  305. data/ref/ruby/files/bin/generate_test_tpl/spec_rb.html +140 -0
  306. data/ref/ruby/files/bin/generate_test_tpl/spec_rb.src/M000002.html +22 -0
  307. data/ref/ruby/files/bin/header_to_ruby_rb.html +116 -0
  308. data/ref/ruby/files/ext/extconf_rb.html +108 -0
  309. data/ref/ruby/files/gem_extconf_rb.html +114 -0
  310. data/ref/ruby/files/lib/ruby-vpi/erb_rb.html +108 -0
  311. data/ref/ruby/files/lib/ruby-vpi/rake_rb.html +108 -0
  312. data/ref/ruby/files/lib/ruby-vpi/rdoc_rb.html +108 -0
  313. data/ref/ruby/files/lib/ruby-vpi/rspec_rb.html +115 -0
  314. data/ref/ruby/files/lib/ruby-vpi/runner_rb.html +108 -0
  315. data/ref/ruby/files/lib/ruby-vpi/vpi_util_rb.html +108 -0
  316. data/ref/ruby/files/lib/ruby-vpi_rb.html +108 -0
  317. data/ref/ruby/files/samp/counter/counter_rspecTest_bench_rb.html +115 -0
  318. data/ref/ruby/files/samp/counter/counter_rspecTest_design_rb.html +107 -0
  319. data/ref/ruby/files/samp/counter/counter_rspecTest_proto_rb.html +107 -0
  320. data/ref/ruby/files/samp/counter/counter_rspecTest_spec_rb.html +142 -0
  321. data/ref/ruby/files/samp/counter/counter_unitTest_bench_rb.html +115 -0
  322. data/ref/ruby/files/samp/counter/counter_unitTest_design_rb.html +107 -0
  323. data/ref/ruby/files/samp/counter/counter_unitTest_proto_rb.html +107 -0
  324. data/ref/ruby/files/samp/counter/counter_unitTest_spec_rb.html +135 -0
  325. data/ref/ruby/files/samp/pipelined_alu/Hw5UnitModel_rb.html +101 -0
  326. data/ref/ruby/files/samp/pipelined_alu/InputGenerator_rb.html +101 -0
  327. data/ref/ruby/files/samp/pipelined_alu/TestHw5UnitModel_rb.html +111 -0
  328. data/ref/ruby/files/samp/pipelined_alu/hw5_unit_bench_rb.html +108 -0
  329. data/ref/ruby/files/samp/pipelined_alu/hw5_unit_design_rb.html +107 -0
  330. data/ref/ruby/files/samp/pipelined_alu/hw5_unit_spec_rb.html +112 -0
  331. data/ref/ruby/fr_class_index.html +46 -0
  332. data/ref/ruby/fr_file_index.html +55 -0
  333. data/ref/ruby/fr_method_index.html +77 -0
  334. data/ref/ruby/index.html +24 -0
  335. data/ref/ruby/rdoc-style.css +208 -0
  336. data/samp/counter/Rakefile +1 -0
  337. data/samp/counter/counter.v +20 -0
  338. data/samp/counter/counter_rspecTest_bench.rb +9 -0
  339. data/samp/counter/counter_rspecTest_bench.v +28 -0
  340. data/samp/counter/counter_rspecTest_design.rb +22 -0
  341. data/samp/counter/counter_rspecTest_proto.rb +10 -0
  342. data/samp/counter/counter_rspecTest_runner.rake +28 -0
  343. data/samp/counter/counter_rspecTest_spec.rb +47 -0
  344. data/samp/counter/counter_unitTest_bench.rb +9 -0
  345. data/samp/counter/counter_unitTest_bench.v +28 -0
  346. data/samp/counter/counter_unitTest_design.rb +22 -0
  347. data/samp/counter/counter_unitTest_proto.rb +10 -0
  348. data/samp/counter/counter_unitTest_runner.rake +28 -0
  349. data/samp/counter/counter_unitTest_spec.rb +49 -0
  350. data/samp/pipelined_alu/Hw5UnitModel.rb +134 -0
  351. data/samp/pipelined_alu/InputGenerator.rb +94 -0
  352. data/samp/pipelined_alu/README +127 -0
  353. data/samp/pipelined_alu/Rakefile +1 -0
  354. data/samp/pipelined_alu/TestHw5UnitModel.rb +88 -0
  355. data/samp/pipelined_alu/hw5_unit.v +186 -0
  356. data/samp/pipelined_alu/hw5_unit_bench.rb +8 -0
  357. data/samp/pipelined_alu/hw5_unit_bench.v +45 -0
  358. data/samp/pipelined_alu/hw5_unit_design.rb +18 -0
  359. data/samp/pipelined_alu/hw5_unit_runner.rake +10 -0
  360. data/samp/pipelined_alu/hw5_unit_spec.rb +123 -0
  361. data/tpl/launcher.rake +30 -0
  362. data/tpl/runner.rake +96 -0
  363. data/tpl/synopsys_vcs.tab +2 -0
  364. metadata +484 -0
data/HISTORY ADDED
@@ -0,0 +1,398 @@
1
+ h1. Release history
2
+
3
+ This is a record of important changes that have occurred with each release of "Ruby-VPI":http://ruby-vpi.rubyforge.org.
4
+
5
+ h2. Version numbering system
6
+
7
+ 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,
8
+ * an increase in the *major* number indicates that *functionally incompatible* have occurred. Thus, what may have worked in the previous version may not work in the new one.
9
+ * 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.
10
+ * 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.
11
+
12
+ 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
13
+
14
+
15
+ h1. Version 7.0.0 (2006-08-29)
16
+
17
+ h2. Summary
18
+
19
+ This release distributes Ruby-VPI as a gem, improves portability of generated tests, and fixes a bug.
20
+
21
+ h2. Details
22
+
23
+ * @put_value()@ now accomodates register value overflows when verifying the value it has written.
24
+
25
+ * Ruby-VPI is now distributed only as a "source gem":http://www.rubygems.org. You can decompress the gem without installing it onto your system by running the command @gem install -i output_directory ruby-vpi-7.0.0.gem@. In addition, you can still obtain the source code directly from the Subversion repository.
26
+
27
+ * The test generator's templates and the examples have been updated as follows:
28
+ ** Test runners no longer have to specify the path to Ruby-VPI installation directory. Instead, they simply @require 'ruby-vpi/runner'@. Thus, you can run your tests on any machine with Ruby-VPI without having to know where it is installed.
29
+ ** Ruby benches now invoke @RubyVPI.init_bench@ instead of @require 'bench'; setup_bench@ to become initialized.
30
+
31
+ * All Ruby libraries in the @lib/@ directory have been moved into @lib/ruby-vpi/@ to prevent load-path clashes with other gems. You should access these libraries by prefixing their path with "ruby-vpi". For example, @require 'vpi_util'@ should now be written as @require 'ruby-vpi/vpi_util'@.
32
+
33
+ * The @src/@ directory has been renamed to @ext/@ to follow RubyGems convention.
34
+
35
+ * The tools in @bin/@ become available in your system's @bin/@ directory when the gem is installed.
36
+ ** Usage and help information has been added to the @header_to_ruby.rb@ tool.
37
+
38
+ * Incorrect spelling of GPL Cver (v should be uncapitalized) has been fixed.
39
+
40
+ * Incorrect link to GPL Cver website has been fixed.
41
+
42
+ * The user manual has been updated according to all of the above changes.
43
+
44
+
45
+ h1. Version 6.3.0 (2006-08-27)
46
+
47
+ h2. Summary
48
+
49
+ This release adds support for the GPL Cver simulator, provides both binary and source packages, and explicitly defines the version numbering system.
50
+
51
+ h2. Details
52
+
53
+ * The GPL Cver simulator is now supported.
54
+
55
+ * Ruby-VPI now only needs to be built once.
56
+ ** You can run tests with different Verilog simulators without having to re-compile Ruby-VPI.
57
+ ** Release packages are now available in both source and binary form.
58
+
59
+ * The RSpec based specifications for the counter example now use the @should_equal@ instead of the @should_be@ assertion, because the latter ensures strict equivalence. For instance, it will fail when a Fixnum is compared to a Bignum.
60
+
61
+ * We now follow the RubyGems project's "rational versioning policy":http://www.rubygems.org/read/chapter/7. The version numbers of previous releases have been revised accordingly:
62
+ |_. Release date |_. Original version number |_. New version number |
63
+ | 1999-10-31 | 0.0 | 0.0.0 |
64
+ | 2006-02-26 | 0.1 | 1.0.0 |
65
+ | 2006-04-17 | 0.2 | 2.0.0 |
66
+ | 2006-04-23 | 0.3 | 3.0.0 |
67
+ | 2006-04-28 | 0.4 | 3.1.0 |
68
+ | 2006-05-13 | 0.5 | 3.2.0 |
69
+ | 2006-05-25 | 0.6 | 4.0.0 |
70
+ | 2006-07-22 | 0.7 | 5.0.0 |
71
+ | 2006-07-29 | 0.8 | 5.1.0 |
72
+ | 2006-08-04 | 0.8.1 | 5.1.1 |
73
+ | 2006-08-07 | 0.9 | 6.0.0 |
74
+ | 2006-08-09 | 0.9.1 | 6.1.0 |
75
+ | 2006-08-26 | 0.9.2 | 6.2.0 |
76
+
77
+
78
+ h1. Version 6.2.0 (2006-08-26)
79
+
80
+ h2. Summary
81
+
82
+ This release beautifies generated tests, adds checks to find signal width bugs, and includes a new tool.
83
+
84
+ h2. Details
85
+
86
+ * The test generator now uses ERB templates which ensures nice indentation of generated output.
87
+
88
+ * The test generator now decouples Ruby-VPI paths from Verilog benches via the RUBYLIB environment variable.
89
+
90
+ * A tool which converts Verilog headers into Ruby has been added.
91
+
92
+ * @put_value()@ now returns the value it puts. Therefore, it is easier to chain together a series of assignments: @foo.intVal = bar.intVal = baz.intVal = 10@
93
+
94
+ * @put_value()@ 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.
95
+
96
+ * The source code is now indented with two spaces instead of one tab character.
97
+
98
+
99
+ h1. Version 6.1.0 (2006-08-09)
100
+
101
+ h2. Summary
102
+
103
+ This release simplifies generated tests and fixes a bug.
104
+
105
+ h2. Details
106
+
107
+ * The test generator now produces simpler Ruby benches and specifications.
108
+ ** A template used by generated specifications has been added.
109
+ ** The counter example and tutorial have also been simplified accordingly.
110
+
111
+ * Boolean VPI property values are now correctly converted into Ruby truth values.
112
+
113
+
114
+ h1. Version 6.0.0 (2006-08-07)
115
+
116
+ h2. Summary
117
+
118
+ This release adds support and documentation for rapid prototyping of Verilog designs in Ruby.
119
+
120
+ h2. Details
121
+
122
+ * Support for prototyping designs in Ruby, before they are implemented in Verilog, has been added.
123
+ ** The _same_ specification can be used to verify both prototype _and_ design! :-)
124
+ ** The tutorial in the user manual has been updated to discuss prototyping.
125
+ *** Prototypes have been added to the counter example.
126
+
127
+ * The directory structure has been reorganized as follows:
128
+ ** @ext@ → @src@
129
+ ** @tools@ → @bin@
130
+ ** @examples@ → @samp@
131
+
132
+ * All template files have been moved into the @tpl@ directory.
133
+
134
+ * The user manual has been revised for consistency.
135
+
136
+
137
+ h1. Version 5.1.1 (2006-08-04)
138
+
139
+ h2. Summary
140
+
141
+ This release fixes unreadable syntax coloring in the user manual.
142
+
143
+ h2. Details
144
+
145
+ * Source code comments in the user manual are now readable.
146
+
147
+ * The @README@ and @HISTORY@ files have been converted to "textile":http://www.textism.com/tools/textile/ format.
148
+
149
+ h2. Acknowledgment
150
+
151
+ * Thanks to Todd Nagengast and Matt Fischler for notifying me about unreadable text in the user manual.
152
+
153
+
154
+ h1. Version 5.1.0 (2006-07-29)
155
+
156
+ h2. Summary
157
+
158
+ This release adds a tutorial to the user manual, and improves the tools and examples.
159
+
160
+ h2. Details
161
+
162
+ h3. User manual
163
+
164
+ * A tutorial, based on the counter example, has been added to the user manual.
165
+
166
+ * The user manual's appearance has been dramatically improved with syntax coloring for source code, and "graphics for admonitions and navigation":http://tango.freedesktop.org.
167
+
168
+ h3. Examples
169
+
170
+ * A specification, expressed in unit test format, has been added to the counter example.
171
+
172
+ * The @--name@ and @-n@ options, which lets you specify an identifier for a generated test, have been added to the @generate_test.rb@ tool.
173
+
174
+ * Running @rake clobber@ in an example directory no longer destroys documentation in the Ruby-VPI directory.
175
+
176
+ * The examples' Rakefiles now invoke all tests present in the directory via the @launcher_template.rake@ template.
177
+
178
+ * The Rake template for test runners (generated by @tools/generate_test.rb@) has moved from @examples/template.rake@ to @examples/runner_template.rake@.
179
+
180
+ h3. VPI utility layer
181
+
182
+ * The value of a handle's boolean VPI property is treated as @false@ if it is zero, because zero is @false@ in the C language.
183
+
184
+ h2. Acknowledgment
185
+
186
+ * Thanks to Phil Tomson for correcting the URL of the RHDL website, in the user manual.
187
+
188
+
189
+ h1. Version 5.0.0 (2006-07-22)
190
+
191
+ h2. Summary
192
+
193
+ This release enhances the VPI utility layer and adds new content to the user manual.
194
+
195
+ h2. Details
196
+
197
+ * SWIG is no longer required for users because its output is included in the release package.
198
+
199
+ * The VPI utility layer provides access to VPI properties of handles in a "simpler, more powerful way":http://ruby-vpi.rubyforge.org/doc/background.organization.html#organization.vpi.
200
+
201
+ ** All VPI properties, except delay values, are now accessible from a handle.
202
+
203
+ ** The @handle.value@ and @handle.value=@ methods have been removed.
204
+
205
+ * The user manual has been revised and new content in the organization and usage sections has been added.
206
+
207
+ * This release was tested and developed using:
208
+ ** Ruby 1.8.4 and Icarus Verilog 0.8 on i686 GNU/Linux
209
+ ** Ruby 1.8.4 and Mentor Modelsim 6.1d on x86_64 GNU/Linux
210
+
211
+ h2. Acknowledgment
212
+
213
+ * Thanks to Jan Decaluwe for correcting the description of MyHDL in the user manual.
214
+
215
+
216
+ h1. Version 4.0.0 (2006-05-25)
217
+
218
+ h2. Summary
219
+
220
+ This release adds a comprehensive user manual, upgrades from make to "Rake":http://rake.rubyforge.org, and improves the test generation tool.
221
+
222
+ h2. Details
223
+
224
+ * A comprehensive user manual, written in DocBook-XML, has been added.
225
+
226
+ * Rake has replaced the role of *make*. All makefiles have been converted accordingly.
227
+
228
+ * The test generation tool now generates multiple files (runner, bench, design, spec) and makes backups of existing files. See its help information for details.
229
+
230
+ * Support for RSpec 0.5.4 has been added.
231
+ ** The counter example now makes use of RSpec.
232
+
233
+ * This release was tested and developed using:
234
+ ** Ruby 1.8.4 and Icarus Verilog 0.8 on i686 GNU/Linux
235
+ ** Ruby 1.8.4 and Mentor Modelsim 6.1d on x86_64 GNU/Linux
236
+
237
+ h2. Acknowledgment
238
+
239
+ * Thanks to Jose Renau for solving the problem of strange delays that occurred whenever a design was reset.
240
+
241
+
242
+ h1. Version 3.2.0 (2006-05-13)
243
+
244
+ h2. Summary
245
+
246
+ This release adds a tool which generates test benches, and adds support for "Behavior Driven Development":http://behaviour-driven.org via the "RSpec":http://rspec.rubyforge.org library.
247
+
248
+ h2. Details
249
+
250
+ * A tool, which generates most of a Ruby-VPI test bench from a Verilog 2001 module declaration, has been added.
251
+
252
+ * Ability to use RSpec in a test bench has been added.
253
+
254
+ * Ability to specify arbitrary command-line arguments to Verilog simulators has been added in the examples' makefile template.
255
+
256
+ * This release was tested and developed using:
257
+ ** Ruby 1.8.4 and Icarus Verilog 0.8 on i686 GNU/Linux
258
+ ** Ruby 1.8.4 and Mentor Modelsim 6.1d on x86_64 GNU/Linux
259
+
260
+ h2. Acknowledgment
261
+
262
+ * Thanks to Scott L Holmes for helping me "use the RSpec library without its runner":http://article.gmane.org/gmane.comp.lang.ruby.general/150087 program.
263
+
264
+
265
+ h1. Version 3.1.0 (2006-04-28)
266
+
267
+ h2. Summary
268
+
269
+ This release adds simple ways of reading and writing values to VPI handles, adds documentation for the VPI utility layer, and fixes the pipelined ALU example.
270
+
271
+ h2. Details
272
+
273
+ * Simple, consistent ways of reading and writing values to handles have been added to the VPI utility layer. These ways are described in the @SWIG::TYPE_p_unsigned_int@ class' documentation.
274
+
275
+ * The makefiles now use the *rbconfig* library to determine the default compiler and linker flags for Ruby.
276
+
277
+ * A race condition in the pipelined ALU example has been fixed. This example should now run successfully in all Verilog simulators.
278
+
279
+ * The project wiki has been abandoned in favor of RDoc.
280
+
281
+ * The project website is now generated by RDoc.
282
+
283
+ * This release was tested and developed using:
284
+ ** Ruby 1.8.4 and Icarus Verilog 0.8 on i686 GNU/Linux
285
+ ** Ruby 1.8.4 and Mentor Modelsim 6.1d on x86_64 GNU/Linux
286
+
287
+
288
+ h1. Version 3.0.0 (2006-04-23)
289
+
290
+ h2. Summary
291
+
292
+ This release adds support for the _entire_ "IEEE Std. 1364-2005":http://ieeexplore.ieee.org/xpl/standardstoc.jsp?isnumber=33945 VPI interface, and updates the examples into unit tests.
293
+
294
+ h2. Details
295
+
296
+ * The Ruby interface to VPI is now generated by "SWIG":http://www.swig.org.
297
+ ** The main @VPI@ module has been renamed to @Vpi@.
298
+ ** The @VPI::Handle@ class has been removed.
299
+ ** The @VPI::stop@, @VPI::finish@, and @VPI::reset@ methods have been removed.
300
+
301
+ * The "_final ballot_ version":http://www.boydtechinc.com/ptf/archive/ptf_2005/0737.html of the @vpi_user.h@ header file is now packaged along with and used by Ruby-VPI.
302
+
303
+ * The VPI module, its sub-classes, and its functionality have been replaced by the VPI utility layer (see @src/vpi_util.rb@).
304
+
305
+ * The examples now make use of the *test/unit* unit testing framework.
306
+
307
+ * The makefiles for the examples have been simplified through the use of a common template.
308
+ ** The *vsim* target for Mentor Modelsim has been renamed to *msim*.
309
+
310
+ * This release was tested and developed using:
311
+ ** Ruby 1.8.4 and Icarus Verilog 0.8 on i686 GNU/Linux
312
+ ** Ruby 1.8.4 and Mentor Modelsim 6.1d on x86_64 GNU/Linux
313
+
314
+ h2. Acknowledgment
315
+
316
+ * Thanks to the "SWIG developers":http://www.swig.org/guilty.html for making this project _much_ easier! ;-)
317
+
318
+
319
+ h1. Version 2.0.0 (2006-04-17)
320
+
321
+ h2. Summary
322
+
323
+ This release fixes major bugs, adds support for Mentor Modelsim, and removes the @$ruby_task@ callback.
324
+
325
+ h2. Details
326
+
327
+ * The *cross-thread violation on rb_gc()* error has been fixed.
328
+ ** The *stack level too deep (SystemStackError)* error has been fixed.
329
+ ** The *test/unit* library can be used in Ruby test bench.
330
+ ** Mentor Modelsim Verilog simulator works with Ruby-VPI.
331
+
332
+ * Removed @$ruby_task@ callback and ability to dynamically register system tasks from Ruby because inter-process communication is complicated at present.
333
+
334
+ * Added piplelined ALU example.
335
+
336
+ * This release was tested and developed using:
337
+ ** Ruby 1.8.4 and Icarus Verilog 0.8 on i686 GNU/Linux
338
+ ** Ruby 1.8.4 and Modelsim 6.1d on x86_64 GNU/Linux
339
+ ** Ruby 1.8.4 and Synopsys VCS-MX X-2005.06-SP1 on SPARC4 SunOS 5.10
340
+
341
+ h2. Acknowledgment
342
+
343
+ * Thanks to Nobu Nakada for explaining the "cross-thread violation on rb_gc()":http://article.gmane.org/gmane.comp.lang.ruby.general/146653 error.
344
+
345
+
346
+ h1. Version 1.0.0 (2006-02-26)
347
+
348
+ h2. Summary
349
+
350
+ This release adds enough Verilog VPI functionality to make Ruby-VPI usable for simple test benches:
351
+ * access Verilog objects through VPI handles
352
+ * read and change VPI handle values
353
+ * stop, finish, restart the simulation
354
+
355
+ h2. Details
356
+
357
+ * Implemented some Verilog VPI functionality:
358
+ ** @VPI::handle_by_name(string, VPI::Handle)@ → @VPI::Handle@
359
+ ** @VPI::handle_by_name(string)@ → @VPI::Handle@
360
+ ** @VPI::Handle#put_value(integer)@
361
+ ** @VPI::Handle#value = integer@
362
+ ** @VPI::Handle#get_value@ → @integer@
363
+ ** @VPI::Handle#value@ → @integer@
364
+ ** @VPI::stop@
365
+ ** @VPI::finish@
366
+ ** @VPI::reset@
367
+
368
+ * Implemented some additional functionality:
369
+ ** @VPI::register_task(string, &proc)@
370
+
371
+ * Added ability to pass arbitrary command-line arguments to the Ruby interpreter (using @$ruby_init@). Now you can invoke any Ruby script you want, instead of @pli_init.rb@.
372
+
373
+ * Added ability to dynamically register system tasks from Ruby, using @VPI::register_task("task name")@, and call them from Verilog, using @$ruby_task("task name")@.
374
+
375
+ * Added @VPI::Handle@ class which encapsulates a @vpiHandle@ VPI object.
376
+
377
+ * This release was tested and developed using:
378
+ ** Ruby 1.8.2 and Icarus Verilog 0.8 on i686 GNU/Linux
379
+ ** Ruby 1.8.4, Synopsys VCS X-2005.06, and Mentor Modelsim 6.1b on i686 GNU/Linux
380
+
381
+ h2. Acknowledgment
382
+
383
+ * Thanks to Jose Renau for helping me debug how Synopsys VCS works with Verilog VPI. The problem was that VCS required calltf signatures to be @void (*)(void)@, whereas the Verilog standard defines a calltf signature as @PLI_INT32 (*)(PLI_BYTE8*)@.
384
+
385
+ * Thanks to Ross Bamford, Eric Hodel, and Yukihiro Matsumoto for "helping me discover":http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/180662 why the @SystemStackError@ was happening.
386
+
387
+
388
+ h1. Version 0.0.0 (1999-10-31)
389
+
390
+ h2. Summary
391
+
392
+ This is Kazuhiro HIWADA's initial testing release of Ruby-VPI. See its "original announcement":http://www.ruby-talk.org/cgi-bin/scat.rb/ruby/ruby-list/18193 and "source code":http://easter.kuee.kyoto-u.ac.jp/~hiwada/ruby/memo/src/ruby-vpi-test.tgz.
393
+
394
+ h2. Details
395
+
396
+ * Added ability to relay control from Verilog test bench to Ruby (using @$ruby_callback@) and vice versa (using @PLI::relay_verilog@).
397
+
398
+ * Tested and developed using Ruby 1.4 and Verilog-XL from Cadence systems, on a SPARC machine running Solaris 2.6.