ruby-vpi 19.0.0 → 20.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (776) hide show
  1. data/LICENSE +12 -13
  2. data/README +1 -1
  3. data/Rakefile +104 -118
  4. data/TODO +77 -0
  5. data/bin/convert.rb +1 -1
  6. data/bin/generate/design.rb +3 -2
  7. data/bin/generate/loader.rb +1 -0
  8. data/bin/generate/proto.rb +16 -14
  9. data/bin/generate/runner.rake +8 -3
  10. data/bin/generate/spec.rb +11 -13
  11. data/bin/generate.rb +23 -18
  12. data/bin/ruby-vpi +36 -27
  13. data/doc/api/c/annotated.html +36 -0
  14. data/{ref → doc/api}/c/common_8h.html +9 -13
  15. data/{ref → doc/api}/c/doxygen.css +0 -0
  16. data/{ref → doc/api}/c/doxygen.png +0 -0
  17. data/{ref → doc/api}/c/files.html +10 -8
  18. data/doc/api/c/functions.html +184 -0
  19. data/doc/api/c/functions_vars.html +184 -0
  20. data/{ref → doc/api}/c/globals.html +12 -11
  21. data/{ref → doc/api}/c/globals_0x63.html +12 -11
  22. data/{ref → doc/api}/c/globals_0x65.html +12 -11
  23. data/{ref → doc/api}/c/globals_0x66.html +12 -11
  24. data/{ref → doc/api}/c/globals_0x6d.html +14 -13
  25. data/{ref → doc/api}/c/globals_0x70.html +21 -20
  26. data/{ref → doc/api}/c/globals_0x72.html +14 -13
  27. data/{ref → doc/api}/c/globals_0x74.html +12 -11
  28. data/{ref → doc/api}/c/globals_0x76.html +17 -16
  29. data/{ref → doc/api}/c/globals_0x78.html +12 -11
  30. data/{ref → doc/api}/c/globals_defs.html +12 -10
  31. data/{ref → doc/api}/c/globals_defs_0x65.html +12 -10
  32. data/{ref → doc/api}/c/globals_defs_0x70.html +12 -10
  33. data/{ref → doc/api}/c/globals_defs_0x76.html +14 -12
  34. data/{ref → doc/api}/c/globals_defs_0x78.html +12 -10
  35. data/{ref → doc/api}/c/globals_enum.html +11 -9
  36. data/{ref → doc/api}/c/globals_eval.html +11 -9
  37. data/{ref → doc/api}/c/globals_func.html +17 -15
  38. data/doc/api/c/globals_type.html +72 -0
  39. data/{ref → doc/api}/c/globals_vars.html +13 -11
  40. data/{ref → doc/api}/c/index.html +7 -6
  41. data/{ref → doc/api}/c/main_8c.html +7 -11
  42. data/{ref → doc/api}/c/main_8h.html +7 -11
  43. data/{ref → doc/api}/c/relay_8c.html +7 -11
  44. data/{ref → doc/api}/c/relay_8h.html +7 -11
  45. data/{ref/c/structt__cb__data.html → doc/api/c/structs__cb__data.html} +32 -30
  46. data/{ref/c/structt__vpi__delay.html → doc/api/c/structs__vpi__delay.html} +29 -27
  47. data/{ref/c/structt__vpi__error__info.html → doc/api/c/structs__vpi__error__info.html} +32 -30
  48. data/{ref/c/structt__vpi__strengthval.html → doc/api/c/structs__vpi__strengthval.html} +20 -18
  49. data/{ref/c/structt__vpi__systf__data.html → doc/api/c/structs__vpi__systf__data.html} +32 -30
  50. data/{ref/c/structt__vpi__time.html → doc/api/c/structs__vpi__time.html} +23 -21
  51. data/doc/api/c/structs__vpi__value.html +207 -0
  52. data/{ref/c/structt__vpi__vecval.html → doc/api/c/structs__vpi__vecval.html} +17 -15
  53. data/{ref/c/structt__vpi__vlog__info.html → doc/api/c/structs__vpi__vlog__info.html} +23 -21
  54. data/{ref → doc/api}/c/tab_b.gif +0 -0
  55. data/{ref → doc/api}/c/tab_l.gif +0 -0
  56. data/{ref → doc/api}/c/tab_r.gif +0 -0
  57. data/{ref → doc/api}/c/tabs.css +2 -2
  58. data/{ref → doc/api}/c/verilog_8h.html +11 -15
  59. data/{ref → doc/api}/c/vlog_8c.html +14 -18
  60. data/{ref → doc/api}/c/vlog_8h.html +9 -13
  61. data/{ref → doc/api}/c/vpi__user_8h.html +120 -239
  62. data/{ref → doc/api}/ruby/classes/ERB.html +7 -7
  63. data/doc/api/ruby/classes/ERB.src/M000025.html +29 -0
  64. data/{ref → doc/api}/ruby/classes/FileUtils.html +6 -23
  65. data/doc/api/ruby/classes/FileUtils.src/M000026.html +20 -0
  66. data/{ref → doc/api}/ruby/classes/Float.html +8 -8
  67. data/doc/api/ruby/classes/Float.src/M000020.html +19 -0
  68. data/{ref → doc/api}/ruby/classes/Integer.html +67 -67
  69. data/doc/api/ruby/classes/Integer.src/M000008.html +25 -0
  70. data/doc/api/ruby/classes/Integer.src/M000009.html +18 -0
  71. data/doc/api/ruby/classes/Integer.src/M000010.html +18 -0
  72. data/doc/api/ruby/classes/Integer.src/M000011.html +18 -0
  73. data/doc/api/ruby/classes/Integer.src/M000012.html +18 -0
  74. data/doc/api/ruby/classes/Integer.src/M000013.html +18 -0
  75. data/doc/api/ruby/classes/Integer.src/M000016.html +25 -0
  76. data/doc/api/ruby/classes/Integer.src/M000017.html +31 -0
  77. data/doc/api/ruby/classes/Integer.src/M000018.html +25 -0
  78. data/doc/api/ruby/classes/Integer.src/M000019.html +30 -0
  79. data/{ref → doc/api}/ruby/classes/Object.html +3 -3
  80. data/{ref → doc/api}/ruby/classes/RDoc.html +7 -7
  81. data/doc/api/ruby/classes/RDoc.src/M000541.html +40 -0
  82. data/doc/api/ruby/classes/RubyVPI/SIMULATORS.html +130 -0
  83. data/doc/api/ruby/classes/RubyVPI/SIMULATORS.src/M000028.html +19 -0
  84. data/{ref → doc/api}/ruby/classes/RubyVPI.html +96 -55
  85. data/doc/api/ruby/classes/RubyVPI.src/M000027.html +34 -0
  86. data/{ref → doc/api}/ruby/classes/String.html +16 -16
  87. data/doc/api/ruby/classes/String.src/M000021.html +36 -0
  88. data/doc/api/ruby/classes/String.src/M000022.html +18 -0
  89. data/doc/api/ruby/classes/String.src/M000023.html +18 -0
  90. data/doc/api/ruby/classes/String.src/M000024.html +41 -0
  91. data/doc/api/ruby/classes/VPI/Handle.html +2098 -0
  92. data/doc/api/ruby/classes/VPI/Handle.src/M000434.html +31 -0
  93. data/doc/api/ruby/classes/VPI/Handle.src/M000435.html +18 -0
  94. data/doc/api/ruby/classes/VPI/Handle.src/M000436.html +18 -0
  95. data/doc/api/ruby/classes/VPI/Handle.src/M000439.html +18 -0
  96. data/doc/api/ruby/classes/VPI/Handle.src/M000440.html +18 -0
  97. data/doc/api/ruby/classes/VPI/Handle.src/M000443.html +18 -0
  98. data/doc/api/ruby/classes/VPI/Handle.src/M000444.html +18 -0
  99. data/doc/api/ruby/classes/VPI/Handle.src/M000447.html +18 -0
  100. data/doc/api/ruby/classes/VPI/Handle.src/M000448.html +18 -0
  101. data/doc/api/ruby/classes/VPI/Handle.src/M000451.html +18 -0
  102. data/doc/api/ruby/classes/VPI/Handle.src/M000452.html +18 -0
  103. data/doc/api/ruby/classes/VPI/Handle.src/M000455.html +18 -0
  104. data/doc/api/ruby/classes/VPI/Handle.src/M000456.html +18 -0
  105. data/doc/api/ruby/classes/VPI/Handle.src/M000459.html +24 -0
  106. data/doc/api/ruby/classes/VPI/Handle.src/M000461.html +21 -0
  107. data/doc/api/ruby/classes/VPI/Handle.src/M000462.html +28 -0
  108. data/doc/api/ruby/classes/VPI/Handle.src/M000463.html +50 -0
  109. data/doc/api/ruby/classes/VPI/Handle.src/M000464.html +19 -0
  110. data/doc/api/ruby/classes/VPI/Handle.src/M000465.html +19 -0
  111. data/doc/api/ruby/classes/VPI/Handle.src/M000466.html +18 -0
  112. data/doc/api/ruby/classes/VPI/Handle.src/M000467.html +18 -0
  113. data/doc/api/ruby/classes/VPI/Handle.src/M000468.html +30 -0
  114. data/doc/api/ruby/classes/VPI/Handle.src/M000469.html +18 -0
  115. data/doc/api/ruby/classes/VPI/Handle.src/M000470.html +18 -0
  116. data/doc/api/ruby/classes/VPI/Handle.src/M000471.html +40 -0
  117. data/doc/api/ruby/classes/VPI/Handle.src/M000472.html +18 -0
  118. data/doc/api/ruby/classes/VPI/Handle.src/M000473.html +21 -0
  119. data/doc/api/ruby/classes/VPI/Handle.src/M000474.html +16 -0
  120. data/doc/api/ruby/classes/VPI/Handle.src/M000475.html +16 -0
  121. data/doc/api/ruby/classes/VPI/Handle.src/M000476.html +16 -0
  122. data/doc/api/ruby/classes/VPI/Handle.src/M000477.html +16 -0
  123. data/doc/api/ruby/classes/VPI/Handle.src/M000478.html +16 -0
  124. data/doc/api/ruby/classes/VPI/Handle.src/M000479.html +16 -0
  125. data/doc/api/ruby/classes/VPI/Handle.src/M000480.html +16 -0
  126. data/doc/api/ruby/classes/VPI/Handle.src/M000481.html +16 -0
  127. data/doc/api/ruby/classes/VPI/Handle.src/M000482.html +16 -0
  128. data/doc/api/ruby/classes/VPI/Handle.src/M000483.html +16 -0
  129. data/doc/api/ruby/classes/VPI/Handle.src/M000484.html +16 -0
  130. data/doc/api/ruby/classes/VPI/Handle.src/M000485.html +16 -0
  131. data/doc/api/ruby/classes/VPI/Handle.src/M000486.html +16 -0
  132. data/doc/api/ruby/classes/VPI/Handle.src/M000487.html +16 -0
  133. data/doc/api/ruby/classes/VPI/Handle.src/M000488.html +16 -0
  134. data/doc/api/ruby/classes/VPI/Handle.src/M000489.html +16 -0
  135. data/doc/api/ruby/classes/VPI/Handle.src/M000490.html +16 -0
  136. data/doc/api/ruby/classes/VPI/Handle.src/M000491.html +16 -0
  137. data/doc/api/ruby/classes/VPI/Handle.src/M000492.html +16 -0
  138. data/doc/api/ruby/classes/VPI/Handle.src/M000493.html +16 -0
  139. data/doc/api/ruby/classes/VPI/Handle.src/M000494.html +16 -0
  140. data/doc/api/ruby/classes/VPI/Handle.src/M000495.html +16 -0
  141. data/doc/api/ruby/classes/VPI/Handle.src/M000496.html +16 -0
  142. data/doc/api/ruby/classes/VPI/Handle.src/M000497.html +16 -0
  143. data/doc/api/ruby/classes/VPI/Handle.src/M000498.html +16 -0
  144. data/doc/api/ruby/classes/VPI/Handle.src/M000499.html +16 -0
  145. data/doc/api/ruby/classes/VPI/Handle.src/M000500.html +16 -0
  146. data/doc/api/ruby/classes/VPI/Handle.src/M000501.html +16 -0
  147. data/doc/api/ruby/classes/VPI/Handle.src/M000502.html +16 -0
  148. data/doc/api/ruby/classes/VPI/Handle.src/M000503.html +16 -0
  149. data/doc/api/ruby/classes/VPI/Handle.src/M000504.html +16 -0
  150. data/doc/api/ruby/classes/VPI/Handle.src/M000505.html +16 -0
  151. data/doc/api/ruby/classes/VPI/Handle.src/M000506.html +16 -0
  152. data/doc/api/ruby/classes/VPI/Handle.src/M000507.html +16 -0
  153. data/doc/api/ruby/classes/VPI/Handle.src/M000508.html +16 -0
  154. data/doc/api/ruby/classes/VPI/Handle.src/M000509.html +16 -0
  155. data/doc/api/ruby/classes/VPI/Handle.src/M000510.html +16 -0
  156. data/doc/api/ruby/classes/VPI/Handle.src/M000511.html +16 -0
  157. data/doc/api/ruby/classes/VPI/Handle.src/M000512.html +16 -0
  158. data/doc/api/ruby/classes/VPI/Handle.src/M000513.html +16 -0
  159. data/doc/api/ruby/classes/VPI/Handle.src/M000514.html +16 -0
  160. data/doc/api/ruby/classes/VPI/Handle.src/M000515.html +16 -0
  161. data/doc/api/ruby/classes/VPI/Handle.src/M000516.html +16 -0
  162. data/doc/api/ruby/classes/VPI/Handle.src/M000517.html +16 -0
  163. data/doc/api/ruby/classes/VPI/Handle.src/M000518.html +16 -0
  164. data/doc/api/ruby/classes/VPI/Handle.src/M000519.html +16 -0
  165. data/doc/api/ruby/classes/VPI/Handle.src/M000520.html +16 -0
  166. data/doc/api/ruby/classes/VPI/Handle.src/M000521.html +16 -0
  167. data/doc/api/ruby/classes/VPI/Handle.src/M000522.html +16 -0
  168. data/doc/api/ruby/classes/VPI/Handle.src/M000523.html +16 -0
  169. data/doc/api/ruby/classes/VPI/Handle.src/M000524.html +16 -0
  170. data/doc/api/ruby/classes/VPI/Handle.src/M000525.html +16 -0
  171. data/doc/api/ruby/classes/VPI/Handle.src/M000526.html +16 -0
  172. data/doc/api/ruby/classes/VPI/Handle.src/M000527.html +16 -0
  173. data/doc/api/ruby/classes/VPI/Handle.src/M000528.html +16 -0
  174. data/doc/api/ruby/classes/VPI/Handle.src/M000529.html +16 -0
  175. data/doc/api/ruby/classes/VPI/Handle.src/M000530.html +16 -0
  176. data/doc/api/ruby/classes/VPI/Handle.src/M000531.html +16 -0
  177. data/doc/api/ruby/classes/VPI/Handle.src/M000532.html +16 -0
  178. data/doc/api/ruby/classes/VPI/Handle.src/M000533.html +16 -0
  179. data/doc/api/ruby/classes/VPI/Handle.src/M000534.html +16 -0
  180. data/doc/api/ruby/classes/VPI/Handle.src/M000535.html +16 -0
  181. data/doc/api/ruby/classes/VPI/Handle.src/M000536.html +16 -0
  182. data/doc/api/ruby/classes/VPI/Handle.src/M000537.html +16 -0
  183. data/{ref → doc/api}/ruby/classes/VPI/S_vpi_time.html +18 -18
  184. data/doc/api/ruby/classes/VPI/S_vpi_time.src/M000538.html +18 -0
  185. data/doc/api/ruby/classes/VPI/S_vpi_time.src/M000539.html +19 -0
  186. data/{ref → doc/api}/ruby/classes/VPI/S_vpi_value.html +17 -17
  187. data/doc/api/ruby/classes/VPI/S_vpi_value.src/M000431.html +35 -0
  188. data/doc/api/ruby/classes/VPI/S_vpi_value.src/M000432.html +42 -0
  189. data/doc/api/ruby/classes/VPI/S_vpi_value.src/M000433.html +42 -0
  190. data/doc/api/ruby/classes/VPI.html +11152 -0
  191. data/doc/api/ruby/classes/VPI.src/M000029.html +19 -0
  192. data/doc/api/ruby/classes/VPI.src/M000030.html +18 -0
  193. data/doc/api/ruby/classes/VPI.src/M000031.html +19 -0
  194. data/doc/api/ruby/classes/VPI.src/M000033.html +25 -0
  195. data/doc/api/ruby/classes/VPI.src/M000034.html +26 -0
  196. data/doc/api/ruby/classes/VPI.src/M000036.html +16 -0
  197. data/doc/api/ruby/classes/VPI.src/M000037.html +16 -0
  198. data/doc/api/ruby/classes/VPI.src/M000038.html +16 -0
  199. data/doc/api/ruby/classes/VPI.src/M000039.html +16 -0
  200. data/doc/api/ruby/classes/VPI.src/M000040.html +16 -0
  201. data/doc/api/ruby/classes/VPI.src/M000041.html +16 -0
  202. data/doc/api/ruby/classes/VPI.src/M000042.html +16 -0
  203. data/doc/api/ruby/classes/VPI.src/M000043.html +16 -0
  204. data/doc/api/ruby/classes/VPI.src/M000044.html +16 -0
  205. data/doc/api/ruby/classes/VPI.src/M000045.html +16 -0
  206. data/doc/api/ruby/classes/VPI.src/M000046.html +16 -0
  207. data/doc/api/ruby/classes/VPI.src/M000047.html +16 -0
  208. data/doc/api/ruby/classes/VPI.src/M000048.html +16 -0
  209. data/doc/api/ruby/classes/VPI.src/M000049.html +16 -0
  210. data/doc/api/ruby/classes/VPI.src/M000050.html +16 -0
  211. data/doc/api/ruby/classes/VPI.src/M000051.html +16 -0
  212. data/doc/api/ruby/classes/VPI.src/M000052.html +16 -0
  213. data/doc/api/ruby/classes/VPI.src/M000053.html +16 -0
  214. data/doc/api/ruby/classes/VPI.src/M000054.html +16 -0
  215. data/doc/api/ruby/classes/VPI.src/M000055.html +16 -0
  216. data/doc/api/ruby/classes/VPI.src/M000056.html +16 -0
  217. data/doc/api/ruby/classes/VPI.src/M000057.html +16 -0
  218. data/doc/api/ruby/classes/VPI.src/M000058.html +16 -0
  219. data/doc/api/ruby/classes/VPI.src/M000059.html +16 -0
  220. data/doc/api/ruby/classes/VPI.src/M000060.html +16 -0
  221. data/doc/api/ruby/classes/VPI.src/M000061.html +16 -0
  222. data/doc/api/ruby/classes/VPI.src/M000062.html +16 -0
  223. data/doc/api/ruby/classes/VPI.src/M000063.html +16 -0
  224. data/doc/api/ruby/classes/VPI.src/M000064.html +16 -0
  225. data/doc/api/ruby/classes/VPI.src/M000065.html +16 -0
  226. data/doc/api/ruby/classes/VPI.src/M000066.html +16 -0
  227. data/doc/api/ruby/classes/VPI.src/M000067.html +16 -0
  228. data/doc/api/ruby/classes/VPI.src/M000068.html +16 -0
  229. data/doc/api/ruby/classes/VPI.src/M000069.html +16 -0
  230. data/doc/api/ruby/classes/VPI.src/M000070.html +16 -0
  231. data/doc/api/ruby/classes/VPI.src/M000071.html +16 -0
  232. data/doc/api/ruby/classes/VPI.src/M000072.html +16 -0
  233. data/doc/api/ruby/classes/VPI.src/M000073.html +16 -0
  234. data/doc/api/ruby/classes/VPI.src/M000074.html +16 -0
  235. data/doc/api/ruby/classes/VPI.src/M000075.html +16 -0
  236. data/doc/api/ruby/classes/VPI.src/M000076.html +16 -0
  237. data/doc/api/ruby/classes/VPI.src/M000077.html +16 -0
  238. data/doc/api/ruby/classes/VPI.src/M000078.html +16 -0
  239. data/doc/api/ruby/classes/VPI.src/M000079.html +16 -0
  240. data/doc/api/ruby/classes/VPI.src/M000080.html +16 -0
  241. data/doc/api/ruby/classes/VPI.src/M000081.html +16 -0
  242. data/doc/api/ruby/classes/VPI.src/M000082.html +16 -0
  243. data/doc/api/ruby/classes/VPI.src/M000083.html +16 -0
  244. data/doc/api/ruby/classes/VPI.src/M000084.html +16 -0
  245. data/doc/api/ruby/classes/VPI.src/M000085.html +16 -0
  246. data/doc/api/ruby/classes/VPI.src/M000086.html +16 -0
  247. data/doc/api/ruby/classes/VPI.src/M000087.html +16 -0
  248. data/doc/api/ruby/classes/VPI.src/M000088.html +16 -0
  249. data/doc/api/ruby/classes/VPI.src/M000089.html +16 -0
  250. data/doc/api/ruby/classes/VPI.src/M000090.html +16 -0
  251. data/doc/api/ruby/classes/VPI.src/M000091.html +16 -0
  252. data/doc/api/ruby/classes/VPI.src/M000092.html +16 -0
  253. data/doc/api/ruby/classes/VPI.src/M000093.html +16 -0
  254. data/doc/api/ruby/classes/VPI.src/M000094.html +16 -0
  255. data/doc/api/ruby/classes/VPI.src/M000095.html +16 -0
  256. data/doc/api/ruby/classes/VPI.src/M000096.html +16 -0
  257. data/doc/api/ruby/classes/VPI.src/M000097.html +16 -0
  258. data/doc/api/ruby/classes/VPI.src/M000098.html +16 -0
  259. data/doc/api/ruby/classes/VPI.src/M000099.html +16 -0
  260. data/doc/api/ruby/classes/VPI.src/M000100.html +16 -0
  261. data/doc/api/ruby/classes/VPI.src/M000101.html +16 -0
  262. data/doc/api/ruby/classes/VPI.src/M000102.html +16 -0
  263. data/doc/api/ruby/classes/VPI.src/M000103.html +16 -0
  264. data/doc/api/ruby/classes/VPI.src/M000104.html +16 -0
  265. data/doc/api/ruby/classes/VPI.src/M000105.html +16 -0
  266. data/doc/api/ruby/classes/VPI.src/M000106.html +16 -0
  267. data/doc/api/ruby/classes/VPI.src/M000107.html +16 -0
  268. data/doc/api/ruby/classes/VPI.src/M000108.html +16 -0
  269. data/doc/api/ruby/classes/VPI.src/M000109.html +16 -0
  270. data/doc/api/ruby/classes/VPI.src/M000110.html +16 -0
  271. data/doc/api/ruby/classes/VPI.src/M000111.html +16 -0
  272. data/doc/api/ruby/classes/VPI.src/M000112.html +16 -0
  273. data/doc/api/ruby/classes/VPI.src/M000113.html +16 -0
  274. data/doc/api/ruby/classes/VPI.src/M000114.html +16 -0
  275. data/doc/api/ruby/classes/VPI.src/M000115.html +16 -0
  276. data/doc/api/ruby/classes/VPI.src/M000116.html +16 -0
  277. data/doc/api/ruby/classes/VPI.src/M000117.html +16 -0
  278. data/doc/api/ruby/classes/VPI.src/M000118.html +16 -0
  279. data/doc/api/ruby/classes/VPI.src/M000119.html +16 -0
  280. data/doc/api/ruby/classes/VPI.src/M000120.html +16 -0
  281. data/doc/api/ruby/classes/VPI.src/M000121.html +16 -0
  282. data/doc/api/ruby/classes/VPI.src/M000122.html +16 -0
  283. data/doc/api/ruby/classes/VPI.src/M000123.html +16 -0
  284. data/doc/api/ruby/classes/VPI.src/M000124.html +16 -0
  285. data/doc/api/ruby/classes/VPI.src/M000125.html +16 -0
  286. data/doc/api/ruby/classes/VPI.src/M000126.html +16 -0
  287. data/doc/api/ruby/classes/VPI.src/M000127.html +16 -0
  288. data/doc/api/ruby/classes/VPI.src/M000128.html +16 -0
  289. data/doc/api/ruby/classes/VPI.src/M000129.html +16 -0
  290. data/doc/api/ruby/classes/VPI.src/M000130.html +16 -0
  291. data/doc/api/ruby/classes/VPI.src/M000131.html +16 -0
  292. data/doc/api/ruby/classes/VPI.src/M000132.html +16 -0
  293. data/doc/api/ruby/classes/VPI.src/M000133.html +16 -0
  294. data/doc/api/ruby/classes/VPI.src/M000134.html +16 -0
  295. data/doc/api/ruby/classes/VPI.src/M000135.html +16 -0
  296. data/doc/api/ruby/classes/VPI.src/M000136.html +16 -0
  297. data/doc/api/ruby/classes/VPI.src/M000137.html +16 -0
  298. data/doc/api/ruby/classes/VPI.src/M000138.html +16 -0
  299. data/doc/api/ruby/classes/VPI.src/M000139.html +16 -0
  300. data/doc/api/ruby/classes/VPI.src/M000140.html +16 -0
  301. data/doc/api/ruby/classes/VPI.src/M000141.html +16 -0
  302. data/doc/api/ruby/classes/VPI.src/M000142.html +16 -0
  303. data/doc/api/ruby/classes/VPI.src/M000143.html +16 -0
  304. data/doc/api/ruby/classes/VPI.src/M000144.html +16 -0
  305. data/doc/api/ruby/classes/VPI.src/M000145.html +16 -0
  306. data/doc/api/ruby/classes/VPI.src/M000146.html +16 -0
  307. data/doc/api/ruby/classes/VPI.src/M000147.html +16 -0
  308. data/doc/api/ruby/classes/VPI.src/M000148.html +16 -0
  309. data/doc/api/ruby/classes/VPI.src/M000149.html +16 -0
  310. data/doc/api/ruby/classes/VPI.src/M000150.html +16 -0
  311. data/doc/api/ruby/classes/VPI.src/M000151.html +16 -0
  312. data/doc/api/ruby/classes/VPI.src/M000152.html +16 -0
  313. data/doc/api/ruby/classes/VPI.src/M000153.html +16 -0
  314. data/doc/api/ruby/classes/VPI.src/M000154.html +16 -0
  315. data/doc/api/ruby/classes/VPI.src/M000155.html +16 -0
  316. data/doc/api/ruby/classes/VPI.src/M000156.html +16 -0
  317. data/doc/api/ruby/classes/VPI.src/M000157.html +16 -0
  318. data/doc/api/ruby/classes/VPI.src/M000158.html +16 -0
  319. data/doc/api/ruby/classes/VPI.src/M000159.html +16 -0
  320. data/doc/api/ruby/classes/VPI.src/M000160.html +16 -0
  321. data/doc/api/ruby/classes/VPI.src/M000161.html +16 -0
  322. data/doc/api/ruby/classes/VPI.src/M000162.html +16 -0
  323. data/doc/api/ruby/classes/VPI.src/M000163.html +16 -0
  324. data/doc/api/ruby/classes/VPI.src/M000164.html +16 -0
  325. data/doc/api/ruby/classes/VPI.src/M000165.html +16 -0
  326. data/doc/api/ruby/classes/VPI.src/M000166.html +16 -0
  327. data/doc/api/ruby/classes/VPI.src/M000167.html +16 -0
  328. data/doc/api/ruby/classes/VPI.src/M000168.html +16 -0
  329. data/doc/api/ruby/classes/VPI.src/M000169.html +16 -0
  330. data/doc/api/ruby/classes/VPI.src/M000170.html +16 -0
  331. data/doc/api/ruby/classes/VPI.src/M000171.html +16 -0
  332. data/doc/api/ruby/classes/VPI.src/M000172.html +16 -0
  333. data/doc/api/ruby/classes/VPI.src/M000173.html +16 -0
  334. data/doc/api/ruby/classes/VPI.src/M000174.html +16 -0
  335. data/doc/api/ruby/classes/VPI.src/M000175.html +16 -0
  336. data/doc/api/ruby/classes/VPI.src/M000176.html +16 -0
  337. data/doc/api/ruby/classes/VPI.src/M000177.html +16 -0
  338. data/doc/api/ruby/classes/VPI.src/M000178.html +16 -0
  339. data/doc/api/ruby/classes/VPI.src/M000179.html +16 -0
  340. data/doc/api/ruby/classes/VPI.src/M000180.html +16 -0
  341. data/doc/api/ruby/classes/VPI.src/M000181.html +16 -0
  342. data/doc/api/ruby/classes/VPI.src/M000182.html +16 -0
  343. data/doc/api/ruby/classes/VPI.src/M000183.html +16 -0
  344. data/doc/api/ruby/classes/VPI.src/M000184.html +16 -0
  345. data/doc/api/ruby/classes/VPI.src/M000185.html +16 -0
  346. data/doc/api/ruby/classes/VPI.src/M000186.html +16 -0
  347. data/doc/api/ruby/classes/VPI.src/M000187.html +16 -0
  348. data/doc/api/ruby/classes/VPI.src/M000188.html +16 -0
  349. data/doc/api/ruby/classes/VPI.src/M000189.html +16 -0
  350. data/doc/api/ruby/classes/VPI.src/M000190.html +16 -0
  351. data/doc/api/ruby/classes/VPI.src/M000191.html +16 -0
  352. data/doc/api/ruby/classes/VPI.src/M000192.html +16 -0
  353. data/doc/api/ruby/classes/VPI.src/M000193.html +16 -0
  354. data/doc/api/ruby/classes/VPI.src/M000194.html +16 -0
  355. data/doc/api/ruby/classes/VPI.src/M000195.html +16 -0
  356. data/doc/api/ruby/classes/VPI.src/M000196.html +16 -0
  357. data/doc/api/ruby/classes/VPI.src/M000197.html +16 -0
  358. data/doc/api/ruby/classes/VPI.src/M000198.html +16 -0
  359. data/doc/api/ruby/classes/VPI.src/M000199.html +16 -0
  360. data/doc/api/ruby/classes/VPI.src/M000200.html +16 -0
  361. data/doc/api/ruby/classes/VPI.src/M000201.html +16 -0
  362. data/doc/api/ruby/classes/VPI.src/M000202.html +16 -0
  363. data/doc/api/ruby/classes/VPI.src/M000203.html +16 -0
  364. data/doc/api/ruby/classes/VPI.src/M000204.html +16 -0
  365. data/doc/api/ruby/classes/VPI.src/M000205.html +16 -0
  366. data/doc/api/ruby/classes/VPI.src/M000206.html +16 -0
  367. data/doc/api/ruby/classes/VPI.src/M000207.html +16 -0
  368. data/doc/api/ruby/classes/VPI.src/M000208.html +16 -0
  369. data/doc/api/ruby/classes/VPI.src/M000209.html +16 -0
  370. data/doc/api/ruby/classes/VPI.src/M000210.html +16 -0
  371. data/doc/api/ruby/classes/VPI.src/M000211.html +16 -0
  372. data/doc/api/ruby/classes/VPI.src/M000212.html +16 -0
  373. data/doc/api/ruby/classes/VPI.src/M000213.html +16 -0
  374. data/doc/api/ruby/classes/VPI.src/M000214.html +16 -0
  375. data/doc/api/ruby/classes/VPI.src/M000215.html +16 -0
  376. data/doc/api/ruby/classes/VPI.src/M000216.html +16 -0
  377. data/doc/api/ruby/classes/VPI.src/M000217.html +16 -0
  378. data/doc/api/ruby/classes/VPI.src/M000218.html +16 -0
  379. data/doc/api/ruby/classes/VPI.src/M000219.html +16 -0
  380. data/doc/api/ruby/classes/VPI.src/M000220.html +16 -0
  381. data/doc/api/ruby/classes/VPI.src/M000221.html +16 -0
  382. data/doc/api/ruby/classes/VPI.src/M000222.html +16 -0
  383. data/doc/api/ruby/classes/VPI.src/M000223.html +16 -0
  384. data/doc/api/ruby/classes/VPI.src/M000224.html +16 -0
  385. data/doc/api/ruby/classes/VPI.src/M000225.html +16 -0
  386. data/doc/api/ruby/classes/VPI.src/M000226.html +16 -0
  387. data/doc/api/ruby/classes/VPI.src/M000227.html +16 -0
  388. data/doc/api/ruby/classes/VPI.src/M000228.html +16 -0
  389. data/doc/api/ruby/classes/VPI.src/M000229.html +16 -0
  390. data/doc/api/ruby/classes/VPI.src/M000230.html +16 -0
  391. data/doc/api/ruby/classes/VPI.src/M000231.html +16 -0
  392. data/doc/api/ruby/classes/VPI.src/M000232.html +16 -0
  393. data/doc/api/ruby/classes/VPI.src/M000233.html +16 -0
  394. data/doc/api/ruby/classes/VPI.src/M000234.html +16 -0
  395. data/doc/api/ruby/classes/VPI.src/M000235.html +16 -0
  396. data/doc/api/ruby/classes/VPI.src/M000236.html +16 -0
  397. data/doc/api/ruby/classes/VPI.src/M000237.html +16 -0
  398. data/doc/api/ruby/classes/VPI.src/M000238.html +16 -0
  399. data/doc/api/ruby/classes/VPI.src/M000239.html +16 -0
  400. data/doc/api/ruby/classes/VPI.src/M000240.html +16 -0
  401. data/doc/api/ruby/classes/VPI.src/M000241.html +16 -0
  402. data/doc/api/ruby/classes/VPI.src/M000242.html +16 -0
  403. data/doc/api/ruby/classes/VPI.src/M000243.html +16 -0
  404. data/doc/api/ruby/classes/VPI.src/M000244.html +16 -0
  405. data/doc/api/ruby/classes/VPI.src/M000245.html +16 -0
  406. data/doc/api/ruby/classes/VPI.src/M000246.html +16 -0
  407. data/doc/api/ruby/classes/VPI.src/M000247.html +16 -0
  408. data/doc/api/ruby/classes/VPI.src/M000248.html +16 -0
  409. data/doc/api/ruby/classes/VPI.src/M000249.html +16 -0
  410. data/doc/api/ruby/classes/VPI.src/M000250.html +16 -0
  411. data/doc/api/ruby/classes/VPI.src/M000251.html +16 -0
  412. data/doc/api/ruby/classes/VPI.src/M000252.html +16 -0
  413. data/doc/api/ruby/classes/VPI.src/M000253.html +16 -0
  414. data/doc/api/ruby/classes/VPI.src/M000254.html +16 -0
  415. data/doc/api/ruby/classes/VPI.src/M000255.html +16 -0
  416. data/doc/api/ruby/classes/VPI.src/M000256.html +16 -0
  417. data/doc/api/ruby/classes/VPI.src/M000257.html +16 -0
  418. data/doc/api/ruby/classes/VPI.src/M000258.html +16 -0
  419. data/doc/api/ruby/classes/VPI.src/M000259.html +16 -0
  420. data/doc/api/ruby/classes/VPI.src/M000260.html +16 -0
  421. data/doc/api/ruby/classes/VPI.src/M000261.html +16 -0
  422. data/doc/api/ruby/classes/VPI.src/M000262.html +16 -0
  423. data/doc/api/ruby/classes/VPI.src/M000263.html +16 -0
  424. data/doc/api/ruby/classes/VPI.src/M000264.html +16 -0
  425. data/doc/api/ruby/classes/VPI.src/M000265.html +16 -0
  426. data/doc/api/ruby/classes/VPI.src/M000266.html +16 -0
  427. data/doc/api/ruby/classes/VPI.src/M000267.html +16 -0
  428. data/doc/api/ruby/classes/VPI.src/M000268.html +16 -0
  429. data/doc/api/ruby/classes/VPI.src/M000269.html +16 -0
  430. data/doc/api/ruby/classes/VPI.src/M000270.html +16 -0
  431. data/doc/api/ruby/classes/VPI.src/M000271.html +16 -0
  432. data/doc/api/ruby/classes/VPI.src/M000272.html +16 -0
  433. data/doc/api/ruby/classes/VPI.src/M000273.html +16 -0
  434. data/doc/api/ruby/classes/VPI.src/M000274.html +16 -0
  435. data/doc/api/ruby/classes/VPI.src/M000275.html +16 -0
  436. data/doc/api/ruby/classes/VPI.src/M000276.html +16 -0
  437. data/doc/api/ruby/classes/VPI.src/M000277.html +16 -0
  438. data/doc/api/ruby/classes/VPI.src/M000278.html +16 -0
  439. data/doc/api/ruby/classes/VPI.src/M000279.html +16 -0
  440. data/doc/api/ruby/classes/VPI.src/M000280.html +16 -0
  441. data/doc/api/ruby/classes/VPI.src/M000281.html +16 -0
  442. data/doc/api/ruby/classes/VPI.src/M000282.html +16 -0
  443. data/doc/api/ruby/classes/VPI.src/M000283.html +16 -0
  444. data/doc/api/ruby/classes/VPI.src/M000284.html +16 -0
  445. data/doc/api/ruby/classes/VPI.src/M000285.html +16 -0
  446. data/doc/api/ruby/classes/VPI.src/M000286.html +16 -0
  447. data/doc/api/ruby/classes/VPI.src/M000287.html +16 -0
  448. data/doc/api/ruby/classes/VPI.src/M000288.html +16 -0
  449. data/doc/api/ruby/classes/VPI.src/M000289.html +16 -0
  450. data/doc/api/ruby/classes/VPI.src/M000290.html +16 -0
  451. data/doc/api/ruby/classes/VPI.src/M000291.html +16 -0
  452. data/doc/api/ruby/classes/VPI.src/M000292.html +16 -0
  453. data/doc/api/ruby/classes/VPI.src/M000293.html +16 -0
  454. data/doc/api/ruby/classes/VPI.src/M000294.html +16 -0
  455. data/doc/api/ruby/classes/VPI.src/M000295.html +16 -0
  456. data/doc/api/ruby/classes/VPI.src/M000296.html +16 -0
  457. data/doc/api/ruby/classes/VPI.src/M000297.html +16 -0
  458. data/doc/api/ruby/classes/VPI.src/M000298.html +16 -0
  459. data/doc/api/ruby/classes/VPI.src/M000299.html +16 -0
  460. data/doc/api/ruby/classes/VPI.src/M000300.html +16 -0
  461. data/doc/api/ruby/classes/VPI.src/M000301.html +16 -0
  462. data/doc/api/ruby/classes/VPI.src/M000302.html +16 -0
  463. data/doc/api/ruby/classes/VPI.src/M000303.html +16 -0
  464. data/doc/api/ruby/classes/VPI.src/M000304.html +16 -0
  465. data/doc/api/ruby/classes/VPI.src/M000305.html +16 -0
  466. data/doc/api/ruby/classes/VPI.src/M000306.html +16 -0
  467. data/doc/api/ruby/classes/VPI.src/M000307.html +16 -0
  468. data/doc/api/ruby/classes/VPI.src/M000308.html +16 -0
  469. data/doc/api/ruby/classes/VPI.src/M000309.html +16 -0
  470. data/doc/api/ruby/classes/VPI.src/M000310.html +16 -0
  471. data/doc/api/ruby/classes/VPI.src/M000311.html +16 -0
  472. data/doc/api/ruby/classes/VPI.src/M000312.html +16 -0
  473. data/doc/api/ruby/classes/VPI.src/M000313.html +16 -0
  474. data/doc/api/ruby/classes/VPI.src/M000314.html +16 -0
  475. data/doc/api/ruby/classes/VPI.src/M000315.html +16 -0
  476. data/doc/api/ruby/classes/VPI.src/M000316.html +16 -0
  477. data/doc/api/ruby/classes/VPI.src/M000317.html +16 -0
  478. data/doc/api/ruby/classes/VPI.src/M000318.html +16 -0
  479. data/doc/api/ruby/classes/VPI.src/M000319.html +16 -0
  480. data/doc/api/ruby/classes/VPI.src/M000320.html +16 -0
  481. data/doc/api/ruby/classes/VPI.src/M000321.html +16 -0
  482. data/doc/api/ruby/classes/VPI.src/M000322.html +16 -0
  483. data/doc/api/ruby/classes/VPI.src/M000323.html +16 -0
  484. data/doc/api/ruby/classes/VPI.src/M000324.html +16 -0
  485. data/doc/api/ruby/classes/VPI.src/M000325.html +16 -0
  486. data/doc/api/ruby/classes/VPI.src/M000326.html +16 -0
  487. data/doc/api/ruby/classes/VPI.src/M000327.html +16 -0
  488. data/doc/api/ruby/classes/VPI.src/M000328.html +16 -0
  489. data/doc/api/ruby/classes/VPI.src/M000329.html +16 -0
  490. data/doc/api/ruby/classes/VPI.src/M000330.html +16 -0
  491. data/doc/api/ruby/classes/VPI.src/M000331.html +16 -0
  492. data/doc/api/ruby/classes/VPI.src/M000332.html +16 -0
  493. data/doc/api/ruby/classes/VPI.src/M000333.html +16 -0
  494. data/doc/api/ruby/classes/VPI.src/M000334.html +16 -0
  495. data/doc/api/ruby/classes/VPI.src/M000335.html +16 -0
  496. data/doc/api/ruby/classes/VPI.src/M000336.html +16 -0
  497. data/doc/api/ruby/classes/VPI.src/M000337.html +16 -0
  498. data/doc/api/ruby/classes/VPI.src/M000338.html +16 -0
  499. data/doc/api/ruby/classes/VPI.src/M000339.html +16 -0
  500. data/doc/api/ruby/classes/VPI.src/M000340.html +16 -0
  501. data/doc/api/ruby/classes/VPI.src/M000341.html +16 -0
  502. data/doc/api/ruby/classes/VPI.src/M000342.html +16 -0
  503. data/doc/api/ruby/classes/VPI.src/M000343.html +16 -0
  504. data/doc/api/ruby/classes/VPI.src/M000344.html +16 -0
  505. data/doc/api/ruby/classes/VPI.src/M000345.html +16 -0
  506. data/doc/api/ruby/classes/VPI.src/M000346.html +16 -0
  507. data/doc/api/ruby/classes/VPI.src/M000347.html +16 -0
  508. data/doc/api/ruby/classes/VPI.src/M000348.html +16 -0
  509. data/doc/api/ruby/classes/VPI.src/M000349.html +16 -0
  510. data/doc/api/ruby/classes/VPI.src/M000350.html +16 -0
  511. data/doc/api/ruby/classes/VPI.src/M000351.html +16 -0
  512. data/doc/api/ruby/classes/VPI.src/M000352.html +16 -0
  513. data/doc/api/ruby/classes/VPI.src/M000353.html +16 -0
  514. data/doc/api/ruby/classes/VPI.src/M000354.html +16 -0
  515. data/doc/api/ruby/classes/VPI.src/M000355.html +16 -0
  516. data/doc/api/ruby/classes/VPI.src/M000356.html +16 -0
  517. data/doc/api/ruby/classes/VPI.src/M000357.html +16 -0
  518. data/doc/api/ruby/classes/VPI.src/M000358.html +16 -0
  519. data/doc/api/ruby/classes/VPI.src/M000359.html +16 -0
  520. data/doc/api/ruby/classes/VPI.src/M000360.html +16 -0
  521. data/doc/api/ruby/classes/VPI.src/M000361.html +16 -0
  522. data/doc/api/ruby/classes/VPI.src/M000362.html +16 -0
  523. data/doc/api/ruby/classes/VPI.src/M000363.html +16 -0
  524. data/doc/api/ruby/classes/VPI.src/M000364.html +16 -0
  525. data/doc/api/ruby/classes/VPI.src/M000365.html +16 -0
  526. data/doc/api/ruby/classes/VPI.src/M000366.html +16 -0
  527. data/doc/api/ruby/classes/VPI.src/M000367.html +16 -0
  528. data/doc/api/ruby/classes/VPI.src/M000368.html +16 -0
  529. data/doc/api/ruby/classes/VPI.src/M000369.html +16 -0
  530. data/doc/api/ruby/classes/VPI.src/M000370.html +16 -0
  531. data/doc/api/ruby/classes/VPI.src/M000371.html +16 -0
  532. data/doc/api/ruby/classes/VPI.src/M000372.html +16 -0
  533. data/doc/api/ruby/classes/VPI.src/M000373.html +16 -0
  534. data/doc/api/ruby/classes/VPI.src/M000374.html +16 -0
  535. data/doc/api/ruby/classes/VPI.src/M000375.html +16 -0
  536. data/doc/api/ruby/classes/VPI.src/M000376.html +16 -0
  537. data/doc/api/ruby/classes/VPI.src/M000377.html +16 -0
  538. data/doc/api/ruby/classes/VPI.src/M000378.html +16 -0
  539. data/doc/api/ruby/classes/VPI.src/M000379.html +16 -0
  540. data/doc/api/ruby/classes/VPI.src/M000380.html +16 -0
  541. data/doc/api/ruby/classes/VPI.src/M000381.html +16 -0
  542. data/doc/api/ruby/classes/VPI.src/M000382.html +16 -0
  543. data/doc/api/ruby/classes/VPI.src/M000383.html +16 -0
  544. data/doc/api/ruby/classes/VPI.src/M000384.html +16 -0
  545. data/doc/api/ruby/classes/VPI.src/M000385.html +16 -0
  546. data/doc/api/ruby/classes/VPI.src/M000386.html +16 -0
  547. data/doc/api/ruby/classes/VPI.src/M000387.html +16 -0
  548. data/doc/api/ruby/classes/VPI.src/M000388.html +16 -0
  549. data/doc/api/ruby/classes/VPI.src/M000389.html +16 -0
  550. data/doc/api/ruby/classes/VPI.src/M000390.html +16 -0
  551. data/doc/api/ruby/classes/VPI.src/M000391.html +16 -0
  552. data/doc/api/ruby/classes/VPI.src/M000392.html +16 -0
  553. data/doc/api/ruby/classes/VPI.src/M000393.html +16 -0
  554. data/doc/api/ruby/classes/VPI.src/M000394.html +16 -0
  555. data/doc/api/ruby/classes/VPI.src/M000395.html +16 -0
  556. data/doc/api/ruby/classes/VPI.src/M000396.html +16 -0
  557. data/doc/api/ruby/classes/VPI.src/M000397.html +16 -0
  558. data/doc/api/ruby/classes/VPI.src/M000398.html +16 -0
  559. data/doc/api/ruby/classes/VPI.src/M000399.html +16 -0
  560. data/doc/api/ruby/classes/VPI.src/M000400.html +16 -0
  561. data/doc/api/ruby/classes/VPI.src/M000401.html +16 -0
  562. data/doc/api/ruby/classes/VPI.src/M000402.html +16 -0
  563. data/doc/api/ruby/classes/VPI.src/M000403.html +16 -0
  564. data/doc/api/ruby/classes/VPI.src/M000404.html +16 -0
  565. data/doc/api/ruby/classes/VPI.src/M000405.html +16 -0
  566. data/doc/api/ruby/classes/VPI.src/M000406.html +16 -0
  567. data/doc/api/ruby/classes/VPI.src/M000407.html +16 -0
  568. data/doc/api/ruby/classes/VPI.src/M000408.html +16 -0
  569. data/doc/api/ruby/classes/VPI.src/M000409.html +16 -0
  570. data/doc/api/ruby/classes/VPI.src/M000410.html +16 -0
  571. data/doc/api/ruby/classes/VPI.src/M000411.html +16 -0
  572. data/doc/api/ruby/classes/VPI.src/M000412.html +16 -0
  573. data/doc/api/ruby/classes/VPI.src/M000413.html +16 -0
  574. data/doc/api/ruby/classes/VPI.src/M000414.html +16 -0
  575. data/doc/api/ruby/classes/VPI.src/M000415.html +16 -0
  576. data/doc/api/ruby/classes/VPI.src/M000416.html +16 -0
  577. data/doc/api/ruby/classes/VPI.src/M000417.html +16 -0
  578. data/doc/api/ruby/classes/VPI.src/M000418.html +16 -0
  579. data/doc/api/ruby/classes/VPI.src/M000419.html +16 -0
  580. data/doc/api/ruby/classes/VPI.src/M000420.html +16 -0
  581. data/doc/api/ruby/classes/VPI.src/M000421.html +16 -0
  582. data/doc/api/ruby/classes/VPI.src/M000422.html +16 -0
  583. data/doc/api/ruby/classes/VPI.src/M000423.html +16 -0
  584. data/doc/api/ruby/classes/VPI.src/M000424.html +16 -0
  585. data/doc/api/ruby/classes/VPI.src/M000425.html +16 -0
  586. data/doc/api/ruby/classes/VPI.src/M000426.html +16 -0
  587. data/doc/api/ruby/classes/VPI.src/M000427.html +16 -0
  588. data/doc/api/ruby/classes/VPI.src/M000428.html +16 -0
  589. data/doc/api/ruby/classes/VPI.src/M000429.html +16 -0
  590. data/doc/api/ruby/classes/VPI.src/M000430.html +16 -0
  591. data/{ref → doc/api}/ruby/classes/VerilogParser/Module/Port.html +17 -17
  592. data/doc/api/ruby/classes/VerilogParser/Module/Port.src/M000005.html +23 -0
  593. data/doc/api/ruby/classes/VerilogParser/Module/Port.src/M000006.html +18 -0
  594. data/doc/api/ruby/classes/VerilogParser/Module/Port.src/M000007.html +18 -0
  595. data/{ref → doc/api}/ruby/classes/VerilogParser/Module.html +7 -7
  596. data/doc/api/ruby/classes/VerilogParser/Module.src/M000004.html +29 -0
  597. data/{ref → doc/api}/ruby/classes/VerilogParser.html +7 -7
  598. data/doc/api/ruby/classes/VerilogParser.src/M000003.html +26 -0
  599. data/doc/api/ruby/created.rid +1 -0
  600. data/{ref → doc/api}/ruby/files/bin/convert_rb.html +4 -4
  601. data/{ref → doc/api}/ruby/files/bin/generate_rb.html +10 -6
  602. data/doc/api/ruby/files/bin/ruby-vpi.html +169 -0
  603. data/doc/api/ruby/files/bin/ruby-vpi.src/M000001.html +35 -0
  604. data/{ref → doc/api}/ruby/files/lib/ruby-vpi/core/callback_rb.html +3 -3
  605. data/doc/api/ruby/files/lib/ruby-vpi/core/edge-methods_rb.html +107 -0
  606. data/{ref → doc/api}/ruby/files/lib/ruby-vpi/core/edge_rb.html +3 -3
  607. data/{ref → doc/api}/ruby/files/lib/ruby-vpi/core/handle_rb.html +10 -3
  608. data/{ref → doc/api}/ruby/files/lib/ruby-vpi/core/scheduler_rb.html +3 -3
  609. data/{ref → doc/api}/ruby/files/lib/ruby-vpi/core/struct_rb.html +2 -2
  610. data/{ref → doc/api}/ruby/files/lib/ruby-vpi/core_rb.html +3 -3
  611. data/{ref → doc/api}/ruby/files/lib/ruby-vpi/erb_rb.html +2 -2
  612. data/{ref → doc/api}/ruby/files/lib/ruby-vpi/float_rb.html +2 -2
  613. data/{ref → doc/api}/ruby/files/lib/ruby-vpi/integer_rb.html +2 -2
  614. data/{ref → doc/api}/ruby/files/lib/ruby-vpi/rake_rb.html +3 -3
  615. data/{ref → doc/api}/ruby/files/lib/ruby-vpi/rcov_rb.html +3 -4
  616. data/{ref → doc/api}/ruby/files/lib/ruby-vpi/rdoc_rb.html +2 -2
  617. data/{ref → doc/api}/ruby/files/lib/ruby-vpi/runner_boot_loader_rb.html +9 -10
  618. data/doc/api/ruby/files/lib/ruby-vpi/runner_boot_loader_rb.src/M000002.html +17 -0
  619. data/{ref → doc/api}/ruby/files/lib/ruby-vpi/runner_proxy_rb.html +3 -3
  620. data/{ref → doc/api}/ruby/files/lib/ruby-vpi/runner_rb.html +3 -3
  621. data/{ref → doc/api}/ruby/files/lib/ruby-vpi/util_rb.html +2 -2
  622. data/{ref → doc/api}/ruby/files/lib/ruby-vpi/verilog_parser_rb.html +2 -2
  623. data/{ref → doc/api}/ruby/files/lib/ruby-vpi_rb.html +3 -3
  624. data/doc/api/ruby/files/ruby-vpi-dynamic_rb.html +110 -0
  625. data/{ref → doc/api}/ruby/fr_class_index.html +3 -2
  626. data/{ref → doc/api}/ruby/fr_file_index.html +5 -2
  627. data/doc/api/ruby/fr_method_index.html +567 -0
  628. data/{ref → doc/api}/ruby/index.html +5 -5
  629. data/{ref → doc/api}/ruby/rdoc-style.css +0 -0
  630. data/doc/{manual.doc → guide.erb} +379 -121
  631. data/doc/guide.html +3524 -0
  632. data/examples/counter/RSpec/counter_design.rb +7 -7
  633. data/examples/counter/RSpec/counter_loader.rb +1 -0
  634. data/examples/counter/RSpec/counter_proto.rb +8 -6
  635. data/examples/counter/RSpec/counter_runner.rake +9 -4
  636. data/examples/counter/RSpec/counter_spec.rb +13 -13
  637. data/examples/counter/xUnit/counter_design.rb +7 -6
  638. data/examples/counter/xUnit/counter_loader.rb +1 -0
  639. data/examples/counter/xUnit/counter_proto.rb +8 -6
  640. data/examples/counter/xUnit/counter_runner.rake +9 -4
  641. data/examples/counter/xUnit/counter_spec.rb +15 -15
  642. data/examples/pipelined_alu/hw5_unit_design.rb +11 -10
  643. data/examples/pipelined_alu/hw5_unit_loader.rb +1 -0
  644. data/examples/pipelined_alu/hw5_unit_proto.rb +4 -2
  645. data/examples/pipelined_alu/hw5_unit_runner.rake +9 -4
  646. data/examples/pipelined_alu/hw5_unit_spec.rb +18 -18
  647. data/examples/register_file/register_file_design.rb +2 -2
  648. data/examples/register_file/register_file_loader.rb +1 -0
  649. data/examples/register_file/register_file_proto.rb +15 -8
  650. data/examples/register_file/register_file_runner.rake +9 -4
  651. data/examples/register_file/register_file_spec.rb +15 -15
  652. data/ext/main.c +4 -4
  653. data/lib/ruby-vpi/core/edge-methods.rb +32 -0
  654. data/lib/ruby-vpi/core/edge.rb +8 -43
  655. data/lib/ruby-vpi/core/handle.rb +127 -91
  656. data/lib/ruby-vpi/core/scheduler.rb +14 -15
  657. data/lib/ruby-vpi/core.rb +1 -1
  658. data/lib/ruby-vpi/rake.rb +5 -7
  659. data/lib/ruby-vpi/rcov.rb +2 -7
  660. data/lib/ruby-vpi/runner.rb +16 -11
  661. data/lib/ruby-vpi/runner_boot_loader.rb +24 -60
  662. data/lib/ruby-vpi/runner_proxy.rb +2 -6
  663. data/lib/ruby-vpi.rb +56 -14
  664. metadata +809 -368
  665. data/doc/README +0 -9
  666. data/doc/Rakefile +0 -92
  667. data/doc/common.css +0 -108
  668. data/doc/common.inc +0 -14
  669. data/doc/common.tpl +0 -90
  670. data/doc/history.doc +0 -17
  671. data/doc/history.html +0 -2694
  672. data/doc/history.inc +0 -1077
  673. data/doc/history.rb +0 -22
  674. data/doc/history.yaml +0 -1409
  675. data/doc/images/feed-icon-28x28.png +0 -0
  676. data/doc/images/tango/LICENSE +0 -67
  677. data/doc/images/tango/caution.png +0 -0
  678. data/doc/images/tango/caution.svg +0 -290
  679. data/doc/images/tango/home.png +0 -0
  680. data/doc/images/tango/home.svg +0 -386
  681. data/doc/images/tango/important.png +0 -0
  682. data/doc/images/tango/important.svg +0 -163
  683. data/doc/images/tango/next.png +0 -0
  684. data/doc/images/tango/next.svg +0 -191
  685. data/doc/images/tango/note.png +0 -0
  686. data/doc/images/tango/note.svg +0 -483
  687. data/doc/images/tango/prev.png +0 -0
  688. data/doc/images/tango/prev.svg +0 -852
  689. data/doc/images/tango/tip.png +0 -0
  690. data/doc/images/tango/tip.svg +0 -1145
  691. data/doc/images/tango/up.png +0 -0
  692. data/doc/images/tango/up.svg +0 -195
  693. data/doc/images/tango/warning.png +0 -0
  694. data/doc/images/tango/warning.svg +0 -334
  695. data/doc/intro.inc +0 -215
  696. data/doc/lib/doc_format.rb +0 -137
  697. data/doc/lib/doc_proxy.rb +0 -562
  698. data/doc/lib/erb_content.rb +0 -55
  699. data/doc/lib/erb_proxy.rb +0 -42
  700. data/doc/manual.html +0 -3061
  701. data/doc/memo.doc +0 -66
  702. data/doc/memo.html +0 -210
  703. data/doc/print.css +0 -69
  704. data/doc/readme.doc +0 -10
  705. data/doc/readme.html +0 -515
  706. data/doc/rss.erb +0 -29
  707. data/doc/rss.xml +0 -186
  708. data/doc/screen.css +0 -146
  709. data/doc/spacing.css +0 -57
  710. data/index.html +0 -2
  711. data/ref/c/annotated.html +0 -34
  712. data/ref/c/functions.html +0 -182
  713. data/ref/c/functions_vars.html +0 -182
  714. data/ref/c/globals_0x73.html +0 -73
  715. data/ref/c/globals_type.html +0 -88
  716. data/ref/c/structt__vpi__value.html +0 -204
  717. data/ref/ruby/classes/ERB.src/M000024.html +0 -29
  718. data/ref/ruby/classes/FileUtils.src/M000025.html +0 -18
  719. data/ref/ruby/classes/FileUtils.src/M000026.html +0 -18
  720. data/ref/ruby/classes/Float.src/M000019.html +0 -19
  721. data/ref/ruby/classes/Integer.src/M000007.html +0 -25
  722. data/ref/ruby/classes/Integer.src/M000008.html +0 -18
  723. data/ref/ruby/classes/Integer.src/M000009.html +0 -18
  724. data/ref/ruby/classes/Integer.src/M000010.html +0 -18
  725. data/ref/ruby/classes/Integer.src/M000011.html +0 -18
  726. data/ref/ruby/classes/Integer.src/M000012.html +0 -18
  727. data/ref/ruby/classes/Integer.src/M000015.html +0 -25
  728. data/ref/ruby/classes/Integer.src/M000016.html +0 -31
  729. data/ref/ruby/classes/Integer.src/M000017.html +0 -25
  730. data/ref/ruby/classes/Integer.src/M000018.html +0 -30
  731. data/ref/ruby/classes/RDoc.src/M000081.html +0 -40
  732. data/ref/ruby/classes/String.src/M000020.html +0 -36
  733. data/ref/ruby/classes/String.src/M000021.html +0 -41
  734. data/ref/ruby/classes/String.src/M000022.html +0 -18
  735. data/ref/ruby/classes/String.src/M000023.html +0 -18
  736. data/ref/ruby/classes/VPI/Handle.html +0 -898
  737. data/ref/ruby/classes/VPI/Handle.src/M000037.html +0 -18
  738. data/ref/ruby/classes/VPI/Handle.src/M000038.html +0 -21
  739. data/ref/ruby/classes/VPI/Handle.src/M000039.html +0 -18
  740. data/ref/ruby/classes/VPI/Handle.src/M000040.html +0 -18
  741. data/ref/ruby/classes/VPI/Handle.src/M000045.html +0 -18
  742. data/ref/ruby/classes/VPI/Handle.src/M000046.html +0 -18
  743. data/ref/ruby/classes/VPI/Handle.src/M000057.html +0 -18
  744. data/ref/ruby/classes/VPI/Handle.src/M000058.html +0 -18
  745. data/ref/ruby/classes/VPI/Handle.src/M000061.html +0 -18
  746. data/ref/ruby/classes/VPI/Handle.src/M000062.html +0 -18
  747. data/ref/ruby/classes/VPI/Handle.src/M000065.html +0 -24
  748. data/ref/ruby/classes/VPI/Handle.src/M000067.html +0 -21
  749. data/ref/ruby/classes/VPI/Handle.src/M000068.html +0 -28
  750. data/ref/ruby/classes/VPI/Handle.src/M000069.html +0 -50
  751. data/ref/ruby/classes/VPI/Handle.src/M000070.html +0 -19
  752. data/ref/ruby/classes/VPI/Handle.src/M000071.html +0 -19
  753. data/ref/ruby/classes/VPI/Handle.src/M000072.html +0 -18
  754. data/ref/ruby/classes/VPI/Handle.src/M000073.html +0 -30
  755. data/ref/ruby/classes/VPI/Handle.src/M000075.html +0 -18
  756. data/ref/ruby/classes/VPI/Handle.src/M000076.html +0 -40
  757. data/ref/ruby/classes/VPI/Handle.src/M000077.html +0 -31
  758. data/ref/ruby/classes/VPI/S_vpi_time.src/M000078.html +0 -18
  759. data/ref/ruby/classes/VPI/S_vpi_time.src/M000079.html +0 -19
  760. data/ref/ruby/classes/VPI/S_vpi_value.src/M000034.html +0 -35
  761. data/ref/ruby/classes/VPI/S_vpi_value.src/M000035.html +0 -42
  762. data/ref/ruby/classes/VPI/S_vpi_value.src/M000036.html +0 -42
  763. data/ref/ruby/classes/VPI.html +0 -356
  764. data/ref/ruby/classes/VPI.src/M000027.html +0 -19
  765. data/ref/ruby/classes/VPI.src/M000028.html +0 -18
  766. data/ref/ruby/classes/VPI.src/M000029.html +0 -19
  767. data/ref/ruby/classes/VPI.src/M000031.html +0 -25
  768. data/ref/ruby/classes/VPI.src/M000032.html +0 -26
  769. data/ref/ruby/classes/VerilogParser/Module/Port.src/M000004.html +0 -23
  770. data/ref/ruby/classes/VerilogParser/Module/Port.src/M000005.html +0 -18
  771. data/ref/ruby/classes/VerilogParser/Module/Port.src/M000006.html +0 -18
  772. data/ref/ruby/classes/VerilogParser/Module.src/M000003.html +0 -29
  773. data/ref/ruby/classes/VerilogParser.src/M000002.html +0 -26
  774. data/ref/ruby/created.rid +0 -1
  775. data/ref/ruby/files/lib/ruby-vpi/runner_boot_loader_rb.src/M000001.html +0 -17
  776. data/ref/ruby/fr_method_index.html +0 -107
data/doc/history.html DELETED
@@ -1,2694 +0,0 @@
1
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2
- <html>
3
- <head>
4
- <meta http-equiv="content-type" content="text/html; charset=utf-8"/>
5
- <link rel="stylesheet" type="text/css" href="screen.css" media="screen" />
6
- <link rel="stylesheet" type="text/css" href="print.css" media="print" />
7
- <link rel="alternate stylesheet" type="text/css" href="print.css" title="Print Preview" />
8
- <link rel="alternate" type="application/rss+xml" href="http://ruby-vpi.rubyforge.org/doc/rss.xml" title="RSS feed for this project." />
9
- <title>Release history</title>
10
- </head>
11
- <body>
12
- <div id="menu">
13
- <h1>Site navigation</h1>
14
- <ul id="site-links">
15
- <li><a href="readme.html">Home</a></li>
16
- <li><a href="manual.html">Manual</a></li>
17
- <li><a href="memo.html">Memo</a></li>
18
- <li><a href="history.html">History</a></li>
19
- </ul>
20
-
21
-
22
- <div id="toc">
23
- <h1 id="toc-contents">Contents</h1>
24
- <ul><li>1 <a id="a-607976608" href="#Release_history" class="ref">Release history</a><ul><li>1.1 <a id="a-607973698" href="#Version_numbering_system" class="ref">Version numbering system</a></li></ul></li><li>2 <a id="a-607980708" href="#a19.0.0" class="ref">Version 19.0.0 (2007-08-27)</a></li><li>3 <a id="a-607982968" href="#a18.0.2" class="ref">Version 18.0.2 (2007-08-03)</a></li><li>4 <a id="a-607985358" href="#a18.0.1" class="ref">Version 18.0.1 (2007-08-02)</a></li><li>5 <a id="a-607988538" href="#a18.0.0" class="ref">Version 18.0.0 (2007-07-31)</a></li><li>6 <a id="a-607991888" href="#a17.0.0" class="ref">Version 17.0.0 (2007-07-22)</a></li><li>7 <a id="a-607994208" href="#a16.0.1" class="ref">Version 16.0.1 (2007-05-27)</a></li><li>8 <a id="a-607997158" href="#a16.0.0" class="ref">Version 16.0.0 (2007-05-02)</a></li><li>9 <a id="a-607999448" href="#a15.0.2" class="ref">Version 15.0.2 (2007-01-22)</a></li><li>10 <a id="a-608001898" href="#a15.0.1" class="ref">Version 15.0.1 (2007-01-15)</a></li><li>11 <a id="a-608004668" href="#a15.0.0" class="ref">Version 15.0.0 (2007-01-13)</a></li><li>12 <a id="a-608007518" href="#a14.0.0" class="ref">Version 14.0.0 (2006-12-30)</a></li><li>13 <a id="a-608010168" href="#a13.0.0" class="ref">Version 13.0.0 (2006-12-27)</a></li><li>14 <a id="a-608012818" href="#a12.1.0" class="ref">Version 12.1.0 (2006-12-22)</a></li><li>15 <a id="a-608014968" href="#a12.0.2" class="ref">Version 12.0.2 (2006-12-18)</a></li><li>16 <a id="a-608017358" href="#a12.0.1" class="ref">Version 12.0.1 (2006-12-18)</a></li><li>17 <a id="a-608020388" href="#a12.0.0" class="ref">Version 12.0.0 (2006-12-07)</a></li><li>18 <a id="a-608022878" href="#a11.1.1" class="ref">Version 11.1.1 (2006-11-15)</a></li><li>19 <a id="a-608025668" href="#a11.1.0" class="ref">Version 11.1.0 (2006-11-08)</a></li><li>20 <a id="a-606393968" href="#a11.0.0" class="ref">Version 11.0.0 (2006-11-05)</a></li><li>21 <a id="a-606406478" href="#a10.0.0" class="ref">Version 10.0.0 (2006-11-05)</a></li><li>22 <a id="a-606422038" href="#a9.0.0" class="ref">Version 9.0.0 (2006-10-28)</a></li><li>23 <a id="a-606446938" href="#a8.2.0" class="ref">Version 8.2.0 (2006-10-24)</a></li><li>24 <a id="a-606456588" href="#a8.1.0" class="ref">Version 8.1.0 (2006-10-21)</a></li><li>25 <a id="a-606460318" href="#a8.0.0" class="ref">Version 8.0.0 (2006-10-13)</a></li><li>26 <a id="a-606467158" href="#a7.3.0" class="ref">Version 7.3.0 (2006-09-30)</a></li><li>27 <a id="a-606978948" href="#a7.2.0" class="ref">Version 7.2.0 (2006-09-15)</a></li><li>28 <a id="a-606981378" href="#a7.1.0" class="ref">Version 7.1.0 (2006-08-29)</a></li><li>29 <a id="a-606984068" href="#a7.0.0" class="ref">Version 7.0.0 (2006-08-29)</a></li><li>30 <a id="a-606986838" href="#a6.3.0" class="ref">Version 6.3.0 (2006-08-27)</a></li><li>31 <a id="a-606989348" href="#a6.2.0" class="ref">Version 6.2.0 (2006-08-26)</a></li><li>32 <a id="a-606991678" href="#a6.1.0" class="ref">Version 6.1.0 (2006-08-09)</a></li><li>33 <a id="a-606994228" href="#a6.0.0" class="ref">Version 6.0.0 (2006-08-07)</a></li><li>34 <a id="a-606996618" href="#a5.1.1" class="ref">Version 5.1.1 (2006-08-04)</a></li><li>35 <a id="a-606999368" href="#a5.1.0" class="ref">Version 5.1.0 (2006-07-29)</a></li><li>36 <a id="a-607002018" href="#a5.0.0" class="ref">Version 5.0.0 (2006-07-22)</a></li><li>37 <a id="a-607004648" href="#a4.0.0" class="ref">Version 4.0.0 (2006-05-25)</a></li><li>38 <a id="a-607007158" href="#a3.2.0" class="ref">Version 3.2.0 (2006-05-13)</a></li><li>39 <a id="a-607009748" href="#a3.1.0" class="ref">Version 3.1.0 (2006-04-28)</a></li><li>40 <a id="a-607012498" href="#a3.0.0" class="ref">Version 3.0.0 (2006-04-23)</a></li><li>41 <a id="a-607015148" href="#a2.0.0" class="ref">Version 2.0.0 (2006-04-17)</a></li><li>42 <a id="a-607018038" href="#a1.0.0" class="ref">Version 1.0.0 (2006-02-26)</a></li><li>43 <a id="a-607020328" href="#a0.0.0" class="ref">Version 0.0.0 (1999-10-31)</a></li></ul>
25
-
26
- </div>
27
- </div>
28
-
29
- <div id="body">
30
-
31
- <hr style="display: none"/>
32
-
33
- <div id="Release_history" class="front_cover">
34
- <h1 class="title"><big>Release history</big></h1>
35
-
36
- <p>This is a record of important changes that have occurred with each release.</p>
37
-
38
-
39
- <p>
40
- <div id="Version_numbering_system" class="paragraph">
41
- <p class="title">Version numbering system</p>
42
- Ruby-VPI uses the <a href="http://www.rubygems.org/read/chapter/7">RubyGems rational versioning policy</a> to number its releases. This &#8220;major.minor.build&#8221; numbering policy <a href="http://ablog.apress.com/?p=738">is summarized</a> as follows.
43
-
44
-
45
- <ul>
46
- <li>When the <strong>major</strong> number increases, functionally <em>incompatible changes</em> have occurred. Thus, what may have worked in the previous version may not work in the new one.</li>
47
- </ul>
48
-
49
-
50
- <ul>
51
- <li>When the <strong>minor</strong> number increases, functionally <em>compatible changes</em> have occurred. Thus, what worked in the previous version will work in the new one.</li>
52
- </ul>
53
-
54
-
55
- <ul>
56
- <li>When the <strong>build</strong> number increases, 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>
57
- </ul>
58
- </div>
59
- </p>
60
-
61
- </div>
62
-
63
-
64
- <hr style="display: none"/>
65
-
66
- <div id="a19.0.0" class="section">
67
- <h1 class="title">
68
- <a href="#a-607980708" class="ref">2</a>
69
-
70
- &nbsp;
71
-
72
- Version 19.0.0 (2007-08-27)
73
- </h1>
74
-
75
- <p>This release restores support for Cadence NC-Sim, breaks support for Mentor Modelsim, adds support for concurrent processes which simplify implementing Ruby prototypess, and offers numerous other improvements.</p>
76
-
77
-
78
- <p><strong>Mentor Modelsim users, take note</strong>: this release does not work very well with Mentor Modelsim, so do not upgrade until compatibility is restored in a future release. In the mean time, consider using this release with another simulator, such as <a href="http://www.pragmatic-c.com/gpl-cver/">GPL Cver</a>.</p>
79
-
80
-
81
- <h2>Thanks</h2>
82
-
83
-
84
- <ul>
85
- <li>Calvin Wong <a href="http://rubyforge.org/pipermail/ruby-vpi-discuss/2007-August/000046.html">requested the concurrent processes feature</a>, helped test it, and provided useful feedback.</li>
86
- </ul>
87
-
88
-
89
- <h2>Caution</h2>
90
-
91
-
92
- <ul>
93
- <li>Prototypes no longer have a <code class="code">feign!</code> method. Instead, they emulate the behavior of the real Verilog DUT using the new <a href="manual.html#usage.concurrency">concurrency model</a>.</li>
94
- </ul>
95
-
96
-
97
- <ul>
98
- <li>All &#8220;initial&#8221; blocks in Verilog code are now evaluated <em>before</em> the specification begins executing. This allows you to set the initial value of registers in Verilog before the specification interacts with them.</li>
99
- </ul>
100
-
101
-
102
- <ul>
103
- <li>The <code class="code"><span style="color:#036; font-weight:bold">Vpi</span></code> module has been renamed to <code class="code"><span style="color:#036; font-weight:bold">VPI</span></code> for consistency with the project name.</li>
104
- </ul>
105
-
106
-
107
- <ul>
108
- <li>The <code class="code"><span style="color:#036; font-weight:bold">VPI</span>::simulation_time</code> method has been renamed to <code class="code"><span style="color:#036; font-weight:bold">VPI</span>::current_time</code>.</li>
109
- </ul>
110
-
111
-
112
- <ul>
113
- <li>The <code class="code"><span style="color:#036; font-weight:bold">VPI</span>::<span style="color:#036; font-weight:bold">Handle</span>.value_forced?</code> method has been renamed to <code class="code"><span style="color:#036; font-weight:bold">VPI</span>::<span style="color:#036; font-weight:bold">Handle</span>.force?</code></li>
114
- </ul>
115
-
116
-
117
- <ul>
118
- <li>The <tt>samp/</tt> directory has been renamed to <tt>examples/</tt>.</li>
119
- </ul>
120
-
121
-
122
- <ul>
123
- <li>Code coverage analysis results are now produced only in plain-text format.</li>
124
- </ul>
125
-
126
-
127
- <h2>Repairs</h2>
128
-
129
-
130
- <ul>
131
- <li>You can now access VPI constants using their original uncapitalized names. For example, you can now write &#8220;vpiIntVal&#8221; instead of having to write &#8220;VpiIntVal&#8221;. However, note that the capitalized names are still supported, so you are not required to change your code.</li>
132
- </ul>
133
-
134
-
135
- <ul>
136
- <li>Value change / edge detection for VPI handles was previously incorrect: if you called the <code class="code"><span style="color:#036; font-weight:bold">VPI</span>::<span style="color:#036; font-weight:bold">Handle</span>.posedge?</code> function twice in the same time step, it would give you two different answers.</li>
137
- </ul>
138
-
139
-
140
- <ul>
141
- <li>The problem of not being able to write values to nets in Cadence NC-Sim has been fixed.</li>
142
- </ul>
143
-
144
-
145
- <h2>Additions</h2>
146
-
147
-
148
- <ul>
149
- <li>Added support for <a href="manual.html#usage.concurrency">concurrent processes</a>, which make Ruby prototypes appear more like Verilog code and also give the ability to write parallel tests.</li>
150
- </ul>
151
-
152
-
153
- <ul>
154
- <li>Added support for performance profiling using the <a href="http://ruby-prof.rubyforge.org">ruby-prof</a> project. The profiler can be enabled by setting the <code class="code"><span style="color:#036; font-weight:bold">PROFILER</span></code> environment variable to &#8220;1&#8221; before running a Ruby-VPI test.</li>
155
- </ul>
156
-
157
-
158
- <ul>
159
- <li>Added new method aliases to <code class="code"><span style="color:#036; font-weight:bold">VPI</span>::<span style="color:#036; font-weight:bold">Handle</span></code> for value detection. The complete list of aliases is now:
160
- <ul>
161
- <li>Tests if the logic value of this handle is unknown (x).
162
- <ul>
163
- <li>x?</li>
164
- <li>unknown?</li>
165
- <li>dont_care?</li>
166
- </ul>
167
- </li>
168
- <li>Sets the logic value of this handle to unknown (x).
169
- <ul>
170
- <li>x!</li>
171
- <li>unknown!</li>
172
- <li>dont_care!</li>
173
- </ul>
174
- </li>
175
- <li>Tests if the logic value of this handle is high impedance (z).
176
- <ul>
177
- <li>z?</li>
178
- <li>hi_z?</li>
179
- <li>high_z?</li>
180
- <li>high_impedance?</li>
181
- <li>tri_state?</li>
182
- <li>floating?</li>
183
- </ul>
184
- </li>
185
- <li>Sets the logic value of this handle to high impedance (z).
186
- <ul>
187
- <li>z!</li>
188
- <li>hi_z!</li>
189
- <li>high_z!</li>
190
- <li>high_impedance!</li>
191
- <li>tri_state!</li>
192
- <li>floating!</li>
193
- </ul>
194
- </li>
195
- <li>Tests if the logic value of this handle is at &#8220;logic high&#8221; level.
196
- <ul>
197
- <li>high?</li>
198
- <li>one?</li>
199
- </ul>
200
- </li>
201
- <li>Sets the logic value of this handle to &#8220;logic high&#8221; level.
202
- <ul>
203
- <li>high!</li>
204
- <li>one!</li>
205
- </ul>
206
- </li>
207
- <li>Tests if the logic value of this handle is at &#8220;logic low&#8221; level.
208
- <ul>
209
- <li>low?</li>
210
- <li>zero?</li>
211
- </ul>
212
- </li>
213
- <li>Sets the logic value of this handle to &#8220;logic low&#8221; level.
214
- <ul>
215
- <li>low!</li>
216
- <li>zero!</li>
217
- </ul></li>
218
- </ul></li>
219
- </ul>
220
-
221
-
222
- <ul>
223
- <li>Added new methods to <code class="code"><span style="color:#036; font-weight:bold">VPI</span>::<span style="color:#036; font-weight:bold">Handle</span></code> for value change / edge detection:
224
- <ul>
225
- <li>edge? &#8211; detects positive and negative edges</li>
226
- <li>change? &#8211; detects any kind of value change</li>
227
- <li>change_00? &#8211; detects a value change from 0 to 0</li>
228
- <li>change_01? &#8211; detects a value change from 0 to 1</li>
229
- <li>change_0x? &#8211; detects a value change from 0 to unknown</li>
230
- <li>change_0z? &#8211; detects a value change from 0 to high-Z</li>
231
- <li>change_10? &#8211; detects a value change from 1 to 0</li>
232
- <li>change_11? &#8211; detects a value change from 1 to 1</li>
233
- <li>change_1x? &#8211; detects a value change from 1 to unknown</li>
234
- <li>change_1z? &#8211; detects a value change from 1 to high-Z</li>
235
- <li>change_x0? &#8211; detects a value change from unknown to 0</li>
236
- <li>change_x1? &#8211; detects a value change from unknown to 1</li>
237
- <li>change_xx? &#8211; detects a value change from unknown to unknown</li>
238
- <li>change_xz? &#8211; detects a value change from unknown to high-Z</li>
239
- <li>change_z0? &#8211; detects a value change from high-Z to 0</li>
240
- <li>change_z1? &#8211; detects a value change from high-Z to 1</li>
241
- <li>change_zx? &#8211; detects a value change from high-Z to unknown</li>
242
- <li>change_zz? &#8211; detects a value change from high-Z to high-Z</li>
243
- </ul></li>
244
- </ul>
245
-
246
- </div>
247
-
248
- <hr style="display: none"/>
249
-
250
- <div id="a18.0.2" class="section">
251
- <h1 class="title">
252
- <a href="#a-607982968" class="ref">3</a>
253
-
254
- &nbsp;
255
-
256
- Version 18.0.2 (2007-08-03)
257
- </h1>
258
-
259
- This release fixes a bug in error reporting.
260
-
261
-
262
- <h2>Repairs</h2>
263
-
264
-
265
- <ul>
266
- <li>Unhandled Ruby exceptions and errors were not being printed to the screen because Ruby-VPI unconditionally gave control back to the Verilog simulator before it exited.</li>
267
- </ul>
268
-
269
- </div>
270
-
271
- <hr style="display: none"/>
272
-
273
- <div id="a18.0.1" class="section">
274
- <h1 class="title">
275
- <a href="#a-607985358" class="ref">4</a>
276
-
277
- &nbsp;
278
-
279
- Version 18.0.1 (2007-08-02)
280
- </h1>
281
-
282
- This release fixes some bugs regarding simulation time and control.
283
-
284
-
285
- <h2>Thanks</h2>
286
-
287
-
288
- <ul>
289
- <li>Calvin Wong reported the bugs listed in the Repairs section.</li>
290
- </ul>
291
-
292
-
293
- <h2>Repairs</h2>
294
-
295
-
296
- <ul>
297
- <li>VCS does not acknowledge passage of time when cbReadWriteSynch callback is used, so I reverted back to using the cbAfterDelay callback (as was done in version 17.0.0).</li>
298
- </ul>
299
-
300
-
301
- <ul>
302
- <li>Ruby-VPI did not give control back to the Verilog simulator before it exited. As a result, the Verilog simulator did not have a chance to do any clean up or finish any pending tasks that remained in the simulation.</li>
303
- </ul>
304
-
305
- </div>
306
-
307
- <hr style="display: none"/>
308
-
309
- <div id="a18.0.0" class="section">
310
- <h1 class="title">
311
- <a href="#a-607988538" class="ref">5</a>
312
-
313
- &nbsp;
314
-
315
- Version 18.0.0 (2007-07-31)
316
- </h1>
317
-
318
- <p>This release restores support for Synopsys VCS and Cadence NC-Sim, improves portability and performance, and enhances the VPI abstraction layer.</p>
319
-
320
-
321
- <h2>Thanks</h2>
322
-
323
-
324
- <ul>
325
- <li>Calvin Wong discovered <a href="http://rubyforge.org/forum/message.php?msg_id=25691">how to bypass the following error</a> emitted by Synopsys VCS when loading the Ruby-VPI shared object file.
326
-
327
- <pre>
328
- Could not open library specified in -load option obj/vcs
329
- obj/vcs: undefined symbol: vpi_put_data
330
- </pre></li>
331
- </ul>
332
-
333
-
334
- <h2>Caution</h2>
335
-
336
-
337
- <ul>
338
- <li><a href="http://www.swig.org/">SWIG</a> is now required in order to compile and install Ruby-VPI.</li>
339
- </ul>
340
-
341
-
342
- <ul>
343
- <li><code class="code"><span style="color:#036; font-weight:bold">Vpi</span>::<span style="color:#036; font-weight:bold">Handle</span>.put_value</code> no longer checks whether the value written matches the value read back after writing because that only works when there is no VPI delay associated with the write.</li>
344
- </ul>
345
-
346
-
347
- <ul>
348
- <li>When <code class="code"><span style="color:#036; font-weight:bold">Vpi</span>::<span style="color:#036; font-weight:bold">Handle</span>.put_value</code> is used to write a value to a wire (VpiNet), it now <em>forces</em> the value. This is done to ensure portability:
349
-
350
- <p>Synopsys VCS and Cadence NC-Sim forget the value written to a wire during the next simulation time step, whereas Mentor Modelsim and GPL Cver remember the value (thereby treating wires as registers).</p>
351
-
352
-
353
- <p>Note that you have to release a forced value (using <code class="code"><span style="color:#036; font-weight:bold">Vpi</span>::<span style="color:#036; font-weight:bold">Handle</span>.release_value</code>) on a wire after writing to the wire if you want the design under test have the ability to update the value of the wire later on:</p>
354
-
355
-
356
- <pre class="code">
357
- your_wire.intVal = <span style="color:#00D; font-weight:bold">15</span>
358
- your_wire.release_value
359
- advance_time <span style="color:#888"># let the Verilog DUT modify your_wire</span></pre>
360
-
361
-
362
- <p>In addition, you can check if a wire has a forced value using the <code class="code"><span style="color:#036; font-weight:bold">Vpi</span>::<span style="color:#036; font-weight:bold">Handle</span>.value_forced?</code> method.</p></li>
363
- </ul>
364
-
365
-
366
- <ul>
367
- <li>If the format is not specified, <code class="code"><span style="color:#036; font-weight:bold">Vpi</span>::<span style="color:#036; font-weight:bold">Handle</span>.get_value</code> now assumes that you want to read the value in VpiIntVal format (because this is the most common case).</li>
368
- </ul>
369
-
370
-
371
- <ul>
372
- <li>The definition of &#8220;Derivatives&#8221; has been reworded for clarity in the <a href="readme.html#intro.license">project license</a>.</li>
373
- </ul>
374
-
375
-
376
- <h2>Repairs</h2>
377
-
378
-
379
- <ul>
380
- <li>Synopsys VCS and Cadence NC-Sim simulators now correctly load Ruby-VPI. Also, the 64-bit versions of these simulators are now supported.</li>
381
- </ul>
382
-
383
-
384
- <h2>Improvements</h2>
385
-
386
-
387
- <ul>
388
- <li>Added &#8220;force_value&#8221;, &#8220;release_value&#8221;, and &#8220;value_forced?&#8221; methods to the <code class="code"><span style="color:#036; font-weight:bold">Vpi</span>::<span style="color:#036; font-weight:bold">Handle</span></code> class.</li>
389
- </ul>
390
-
391
-
392
- <ul>
393
- <li><code class="code"><span style="color:#036; font-weight:bold">Vpi</span>::<span style="color:#036; font-weight:bold">Handle</span>.put_value</code> now tries to automatically detect the format of the value to be written. As a result, you can now write <code class="code">your_handle.put_value <span style="color:#00D; font-weight:bold">35</span></code> in lieu of writing <code class="code">your_handle.intVal = <span style="color:#00D; font-weight:bold">35</span></code>.</li>
394
- </ul>
395
-
396
-
397
- <ul>
398
- <li><code class="code"><span style="color:#036; font-weight:bold">Vpi</span>::<span style="color:#036; font-weight:bold">Handle</span>.inspect</code> now shows the hexStrVal of the handle (because it is a common case to want to see a handle&#8217;s logic value along with its other information).</li>
399
- </ul>
400
-
401
-
402
- <ul>
403
- <li>Added method caching (memoizing) for VPI property accesses on handles.</li>
404
- </ul>
405
-
406
- </div>
407
-
408
- <hr style="display: none"/>
409
-
410
- <div id="a17.0.0" class="section">
411
- <h1 class="title">
412
- <a href="#a-607991888" class="ref">6</a>
413
-
414
- &nbsp;
415
-
416
- Version 17.0.0 (2007-07-22)
417
- </h1>
418
-
419
- <p>This release makes the Ruby-VPI testing framework more lightweight by reducing the number of files and parameters involved.</p>
420
-
421
-
422
- <h2>Caution</h2>
423
-
424
-
425
- <ul>
426
- <li>The <strong>generate_test.rb</strong> and <strong>convert.rb</strong> executables have been replaced by a single <strong>ruby-vpi</strong> executable to avoid name conflicts with other software. They are now accessed using the <pre>ruby-vpi generate</pre> and <pre>ruby-vpi convert</pre> commands respectively.</li>
427
- </ul>
428
-
429
-
430
- <ul>
431
- <li>The <tt>--name</tt> parameter has been removed from the automated test generator. Similarly, you can no longer insert an arbitrary name in a test&#8217;s file names (see the <a href="manual.html#Do_not_rename_generated_files">user manual</a> for details).</li>
432
- </ul>
433
-
434
-
435
- <ul>
436
- <li>The <code class="code"><span style="color:#036; font-weight:bold">DEBUG</span></code> environment variable, which controls wether the test runner starts the interactive debugger, has been renamed to <code class="code"><span style="color:#036; font-weight:bold">DEBUGGER</span></code>.</li>
437
- </ul>
438
-
439
-
440
- <ul>
441
- <li>The <code class="code"><span style="color:#036; font-weight:bold">SIMULATOR_TARGET</span></code> and <code class="code"><span style="color:#036; font-weight:bold">SIMULATOR_INCLUDES</span></code> parameters have been eliminated from test runners. The former is detected automatically. As for the latter, you can specify paths to directories in the <code class="code"><span style="color:#036; font-weight:bold">SIMULATOR_SOURCES</span></code> parameter instead.</li>
442
- </ul>
443
-
444
-
445
- <ul>
446
- <li>The <tt>bench.rb</tt> and <tt>bench.v</tt> files of a generated test are (1) no longer generated by the test generator and (2) are now ignored. You must move the functionality provided by these files into <tt>design.rb</tt> and your Verilog module&#8217;s source file respectively.</li>
447
- </ul>
448
-
449
-
450
- <ul>
451
- <li>The <tt>design.rb</tt> and <tt>proto.rb</tt> files are now loaded into a separate namespace (Ruby module). For example, if the Verilog module under test has the name &#8220;counter&#8221; and the <tt>design.rb</tt> file defines a class named &#8220;Foo&#8221;, then that class will be accessible as &#8220;Counter::Foo&#8221;.</li>
452
- </ul>
453
-
454
-
455
- <ul>
456
- <li>The global <code class="code"><span style="color:#036; font-weight:bold">Vpi</span>::simulate</code> method has been replaced by the <code class="code">cycle!</code> method in the <tt>design.rb</tt> file.</li>
457
- </ul>
458
-
459
-
460
- <ul>
461
- <li>The <code class="code">simulate!</code> method in the <tt>proto.rb</tt> file has been renamed to <code class="code">feign!</code> for accuracy.</li>
462
- </ul>
463
-
464
-
465
- <ul>
466
- <li>The <code class="code"><span style="color:#036; font-weight:bold">RubyVpi</span></code> module has been renamed to <code class="code"><span style="color:#036; font-weight:bold">RubyVPI</span></code>.</li>
467
- </ul>
468
-
469
-
470
- <ul>
471
- <li>RSpec &gt;= 1.0.0 is now required by Ruby-VPI.</li>
472
- </ul>
473
-
474
-
475
- <ul>
476
- <li>The <a href="readme.html#intro.license">project license</a> has been further simplified.</li>
477
- </ul>
478
-
479
-
480
- <h2>Repairs</h2>
481
-
482
-
483
- <ul>
484
- <li>Restored support for Enumerable methods in <code class="code"><span style="color:#036; font-weight:bold">Vpi</span>::<span style="color:#036; font-weight:bold">Handle</span></code>.</li>
485
- </ul>
486
-
487
-
488
- <ul>
489
- <li>The specification now begins to execute at simulation time 0. Previously it began at simulation time 1.</li>
490
- </ul>
491
-
492
-
493
- <h2>Improvements</h2>
494
-
495
-
496
- <ul>
497
- <li>The <tt>bench.rb</tt> and <tt>bench.v</tt> files of a generated test have been eliminated!
498
-
499
- <p>One important benefit is that the Ruby interface to the Verilog module under test is now a direct reference, whereas previously it was an <em>indirect</em> reference (it pointed to the Verilog module defined in <tt>bench.v</tt>, which in turn wrapped around the actual Verilog module under test).</p>
500
-
501
-
502
- <p>As a result, you can now access the internals of the Verilog module under test by simply calling methods on the Ruby interface, as you would naturally expect to be the case.</p></li>
503
- </ul>
504
-
505
-
506
- <ul>
507
- <li>The &#8220;a&#8221; accessor, which returns an <em>array</em> of child handles, has been added to <a href="manual.html#tbl:accessors">the method naming format</a> for accessing child handles.</li>
508
- </ul>
509
-
510
-
511
- <ul>
512
- <li>All parameter objects in the Verilog module under test are automatically made available as constants. For example, if the Verilog module under test has the name <code class="code">counter</code> and has a parameter object named <code class="code"><span style="color:#036; font-weight:bold">WIDTH</span></code>, then you can access the integer value of that parameter using <code class="code"><span style="color:#036; font-weight:bold">Counter</span>::<span style="color:#036; font-weight:bold">WIDTH</span></code>.</li>
513
- </ul>
514
-
515
-
516
- <ul>
517
- <li>The automated test generator now tries to automatically detect the clock and reset signal from Verilog module declarations.</li>
518
- </ul>
519
-
520
-
521
- <ul>
522
- <li>The automated test generator now supports Verilog 95 style module declarations.</li>
523
- </ul>
524
-
525
-
526
- <ul>
527
- <li>Exceptions are now raised when you try to write to a read-only VPI property, such as <code class="code"><span style="color:#036; font-weight:bold">VpiName</span></code>.</li>
528
- </ul>
529
-
530
-
531
- <ul>
532
- <li>Added <code class="code">high?</code>, <code class="code">high!</code>, <code class="code">low?</code>, and <code class="code">low!</code> methods to the <code class="code"><span style="color:#036; font-weight:bold">Vpi</span>::<span style="color:#036; font-weight:bold">Handle</span></code> class.</li>
533
- </ul>
534
-
535
-
536
- <ul>
537
- <li>Revised the user manual by removing unnecessary sections and adding newer material from my master&#8217;s thesis.</li>
538
- </ul>
539
-
540
-
541
- <h2>Contributions</h2>
542
-
543
-
544
- <ul>
545
- <li>Added Jacinto Shy II&#8217;s <a href="http://jacintoshy.blogspot.com/2007/05/hacking-verilog-with-ruby-part-2.html">register file example</a> to Ruby-VPI. It can be found in <tt>samp/register_file/</tt>.</li>
546
- </ul>
547
-
548
- </div>
549
-
550
- <hr style="display: none"/>
551
-
552
- <div id="a16.0.1" class="section">
553
- <h1 class="title">
554
- <a href="#a-607994208" class="ref">7</a>
555
-
556
- &nbsp;
557
-
558
- Version 16.0.1 (2007-05-27)
559
- </h1>
560
-
561
- This release restores support for installation on Mac <span class="caps">OS X</span>.
562
-
563
-
564
- <h2>Thanks</h2>
565
-
566
-
567
- <ul>
568
- <li>Mark Thompson <a href="http://rubyforge.org/tracker/index.php?func=detail&#38;aid=11125&#38;group_id=1339&#38;atid=5281">reported and solved</a> the problem.</li>
569
- </ul>
570
-
571
-
572
- <h2>Repairs</h2>
573
-
574
-
575
- <ul>
576
- <li>Shared-object files have a file extension of <tt>.so</tt> in Linux and <tt>.bundle</tt> on Mac <span class="caps">OS X</span>. Previously, only the Linux file extension was supported.</li>
577
- </ul>
578
-
579
- </div>
580
-
581
- <hr style="display: none"/>
582
-
583
- <div id="a16.0.0" class="section">
584
- <h1 class="title">
585
- <a href="#a-607997158" class="ref">8</a>
586
-
587
- &nbsp;
588
-
589
- Version 16.0.0 (2007-05-02)
590
- </h1>
591
-
592
- This release adds support for the <a href="http://www.cadence.com/products/functional_ver/nc-verilog/">Cadence NC-Sim</a> simulator, improves the project website and documentation, simplifies interaction with VPI, and comes with a more permissive license.
593
-
594
-
595
- <h2>Caution</h2>
596
-
597
-
598
- <ul>
599
- <li>The <code class="code"><span style="color:#036; font-weight:bold">Integer</span>.ensure_min</code> and <code class="code"><span style="color:#036; font-weight:bold">Integer</span>.ensure_max</code> methods have been removed from the <tt>ruby-vpi/integer.rb</tt> library because Ruby already has idioms for these operations: <pre>
600
- &gt;&gt; 5.ensure_min 10
601
- =&gt; 10
602
- &gt;&gt; [5, 10].max
603
- =&gt; 10
604
-
605
- &gt;&gt; 5.ensure_max 10
606
- =&gt; 5
607
- &gt;&gt; [5, 10].min
608
- =&gt; 5
609
- </pre></li>
610
- </ul>
611
-
612
-
613
- <ul>
614
- <li>Ruby-VPI is now developed under a <a href="readme.html#intro.license">more permissive license</a> that better reflects my ethical beliefs than <a href="http://www.gnu.org/copyleft/gpl.html">the previous license</a>.</li>
615
- </ul>
616
-
617
-
618
- <h2>New features</h2>
619
-
620
-
621
- <ul>
622
- <li>The <a href="http://www.cadence.com/products/functional_ver/nc-verilog/">Cadence NC-Sim</a> (ncsim) simulator is now supported.</li>
623
- </ul>
624
-
625
-
626
- <ul>
627
- <li>VPI structures (whose names begin with &#8220;S_&#8221;) now allow initialization of their members through their constructor, in the style of Ruby on Rails. For example, the expression <code class="code">time = <span style="color:#036; font-weight:bold">S_vpi_time</span>.new <span style="color:#A60">:type</span> =&gt; <span style="color:#036; font-weight:bold">VpiSuppressTime</span></code> is equivalent to: <pre class="code">
628
- time = <span style="color:#036; font-weight:bold">S_vpi_time</span>.new
629
- time.type = <span style="color:#036; font-weight:bold">VpiSuppressTime</span></pre></li>
630
- </ul>
631
-
632
-
633
- <ul>
634
- <li>Added the <code class="code"><span style="color:#036; font-weight:bold">Vpi</span>::<span style="color:#036; font-weight:bold">Handle</span>.cbValueChange</code> method which simplifies the registration of a value-change callback for a particular VPI handle. For instance, the user manual&#8217;s <a href="manual.html#ex..callback">example of setting up a value-change callback</a> can now be written as follows: <pre class="code">
635
- <span style="color:#036; font-weight:bold">Counter</span>.count.cbValueChange <span style="color:#080; font-weight:bold">do</span> |s_cb_data|
636
- puts <span style="background-color:#fff0f0"><span style="color:#710">&quot;</span><span style="color:#D20">hello from callback! time=</span><span style="background: #eee"><span style="font-weight: bold; color: #888">#{</span>s_cb_data.time.to_i<span style="font-weight: bold; color: #888">}</span></span><span style="color:#D20"> count=</span><span style="background: #eee"><span style="font-weight: bold; color: #888">#{</span>s_cb_data.obj.intVal<span style="font-weight: bold; color: #888">}</span></span><span style="color:#710">&quot;</span></span>
637
- <span style="color:#080; font-weight:bold">end</span></pre></li>
638
- </ul>
639
-
640
-
641
- <h2>Details</h2>
642
-
643
-
644
- <ul>
645
- <li>Revised the project website according to the <a href="http://producingoss.com">Producing OSS</a> guidelines.</li>
646
- </ul>
647
-
648
-
649
- <ul>
650
- <li>Added instructions for checking out source code and generating documentation.</li>
651
- </ul>
652
-
653
- </div>
654
-
655
- <hr style="display: none"/>
656
-
657
- <div id="a15.0.2" class="section">
658
- <h1 class="title">
659
- <a href="#a-607999448" class="ref">9</a>
660
-
661
- &nbsp;
662
-
663
- Version 15.0.2 (2007-01-22)
664
- </h1>
665
-
666
- This release fixes problems with linking of the C extension and installation of the gem.
667
-
668
-
669
- <h2>Details</h2>
670
-
671
-
672
- <ul>
673
- <li>Added checks for POSIX threads &#38; Ruby libraries before creating makefile. Otherwise the <tt>.so</tt> files were not being linked to those libraries on the MASC machine!</li>
674
- </ul>
675
-
676
-
677
- <ul>
678
- <li>The <strong>make</strong> program on the MASC machine does not like an empty Makefile. It was causing gem installation to fail.</li>
679
- </ul>
680
-
681
- </div>
682
-
683
- <hr style="display: none"/>
684
-
685
- <div id="a15.0.1" class="section">
686
- <h1 class="title">
687
- <a href="#a-608001898" class="ref">10</a>
688
-
689
- &nbsp;
690
-
691
- Version 15.0.1 (2007-01-15)
692
- </h1>
693
-
694
- This release fixes another problem with compilation of the C extension and improves the user documentation&#8217;s appearance.
695
-
696
-
697
- <h2>Thanks</h2>
698
-
699
-
700
- <ul>
701
- <li>Derek Graham reported the problem with compilation of the C extension.</li>
702
- </ul>
703
-
704
-
705
- <h2>Details</h2>
706
-
707
-
708
- <ul>
709
- <li>Restored the monkey patch, which was removed in release 14.0.0, for the SWIG <code class="code">va_list</code> problem.</li>
710
- </ul>
711
-
712
-
713
- <ul>
714
- <li>Made table of contents in-line with the content in user documentation.</li>
715
- </ul>
716
-
717
-
718
- <ul>
719
- <li>Added printer-friendly stylesheet for user documentation.</li>
720
- </ul>
721
-
722
- </div>
723
-
724
- <hr style="display: none"/>
725
-
726
- <div id="a15.0.0" class="section">
727
- <h1 class="title">
728
- <a href="#a-608004668" class="ref">11</a>
729
-
730
- &nbsp;
731
-
732
- Version 15.0.0 (2007-01-13)
733
- </h1>
734
-
735
- <p>This release fixes a problem with compilation of the C extension, and makes clock generation code correctly affect Ruby prototypes.</p>
736
-
737
-
738
- <h2>Thanks</h2>
739
-
740
-
741
- <ul>
742
- <li>Derek Graham reported the problem with compilation of the C extension.</li>
743
- </ul>
744
-
745
-
746
- <h2>Caution</h2>
747
-
748
-
749
- <ul>
750
- <li>The <code class="code"><span style="color:#036; font-weight:bold">Vpi</span>::advance_time</code> method (instead of the <code class="code"><span style="color:#036; font-weight:bold">Vpi</span>::simulate</code> method) now invokes the design&#8217;s <code class="code">simulate!</code> method when prototyping is enabled.
751
-
752
- <p>This makes clock generation code (passed to the <code class="code"><span style="color:#036; font-weight:bold">RubyVpi</span>::init_bench</code> method) affect Ruby prototypes, just as it affects a real Verilog design.</p>
753
-
754
-
755
- <p>As a result, Ruby prototypes may need to check for edge-triggering through the new <code class="code"><span style="color:#036; font-weight:bold">Vpi</span>::<span style="color:#036; font-weight:bold">Handle</span>.posedge?</code> and <code class="code"><span style="color:#036; font-weight:bold">Vpi</span>::<span style="color:#036; font-weight:bold">Handle</span>.negedge?</code> methods. For example, see the <a href="manual.html#fig..counter_proto.rb">new implementation of the Counter prototype</a>.</p></li>
756
- </ul>
757
-
758
-
759
- <h3>New features</h3>
760
-
761
-
762
- <ul>
763
- <li>Added <code class="code"><span style="color:#036; font-weight:bold">Vpi</span>::<span style="color:#036; font-weight:bold">Handle</span>.posedge?</code> and <code class="code"><span style="color:#036; font-weight:bold">Vpi</span>::<span style="color:#036; font-weight:bold">Handle</span>.negedge?</code> methods which check if a handle&#8217;s logic value is currently at a positive or negative edge, respectively.</li>
764
- </ul>
765
-
766
-
767
- <ul>
768
- <li>Added <code class="code"><span style="color:#036; font-weight:bold">Vpi</span>::<span style="color:#036; font-weight:bold">S_vpi_time</span>.integer</code> and <code class="code"><span style="color:#036; font-weight:bold">Vpi</span>::<span style="color:#036; font-weight:bold">S_vpi_time</span>.integer=</code> methods which access the <code class="code">high</code> and <code class="code">low</code> integer fields as a single 64-bit integer.</li>
769
- </ul>
770
-
771
-
772
- <ul>
773
- <li>Added utility methods for accessing the <code class="code">value</code> field in the <code class="code"><span style="color:#036; font-weight:bold">Vpi</span>::<span style="color:#036; font-weight:bold">S_vpi_value</span></code> structure.</li>
774
- </ul>
775
-
776
-
777
- <h2>Details</h2>
778
-
779
-
780
- <ul>
781
- <li>Fixed problem with incorrect Ruby library flag in <tt>ext/extconf.rb</tt>. It happens that the <code class="code">mkmf</code> library determines the correct library flag all by itself!</li>
782
- </ul>
783
-
784
-
785
- <ul>
786
- <li>Added new <a href="manual.html#usage.prototyping">prototyping section</a> to user manual.</li>
787
- </ul>
788
-
789
-
790
- <ul>
791
- <li>Fixed some broken URLs in user documentation.</li>
792
- </ul>
793
-
794
- </div>
795
-
796
- <hr style="display: none"/>
797
-
798
- <div id="a14.0.0" class="section">
799
- <h1 class="title">
800
- <a href="#a-608007518" class="ref">12</a>
801
-
802
- &nbsp;
803
-
804
- Version 14.0.0 (2006-12-30)
805
- </h1>
806
-
807
- This release adds support for simulation callbacks, renders Verilog benches <em>fully simplified</em>, and revises the user manual to reflect major changes.
808
-
809
-
810
- <h2>Caution</h2>
811
-
812
-
813
- <ul>
814
- <li>The <code class="code"><span style="color:#036; font-weight:bold">Vpi</span>::relay_verilog</code> method has been replaced by <code class="code"><span style="color:#036; font-weight:bold">Vpi</span>::simulate</code>.
815
-
816
- <p>Please update you tests accordingly, because invoking the <code class="code"><span style="color:#036; font-weight:bold">Vpi</span>::relay_verilog</code> method directly will cause your tests to freeze/hang.</p></li>
817
- </ul>
818
-
819
-
820
- <ul>
821
- <li>Verilog benches no longer contain any clock generation code. They are now mere skeletons, whose <em>only</em> purpose is to instantiate the design under test.
822
-
823
- <p>The clock generation code is now contained in the Ruby bench.</p></li>
824
- </ul>
825
-
826
-
827
- <h3>New features</h3>
828
-
829
-
830
- <ul>
831
- <li>The <code class="code"><span style="color:#036; font-weight:bold">RubyVpi</span>::init_bench</code> method now gives you <em>complete control</em> over performing a clock/operation/whatever cycle for your design. This feature allows you to work with multi-clocked designs.</li>
832
- </ul>
833
-
834
-
835
- <ul>
836
- <li>Callbacks are now supported through the <code class="code"><span style="color:#036; font-weight:bold">Vpi</span>::vpi_register_cb</code> method. See <a href="manual.html#usage.vpi.callbacks">the callbacks section in the user manual</a> for details.</li>
837
- </ul>
838
-
839
-
840
- <ul>
841
- <li>Added the <code class="code"><span style="color:#036; font-weight:bold">Vpi</span>::advance_time</code> method, which makes the Verilog simulator simulate a given number of time steps.</li>
842
- </ul>
843
-
844
-
845
- <ul>
846
- <li>Added the <code class="code"><span style="color:#036; font-weight:bold">Vpi</span>::simulation_time</code> method, which gives you the current simulation time as a 64-bit integer.</li>
847
- </ul>
848
-
849
-
850
- <h2>Details</h2>
851
-
852
-
853
- <ul>
854
- <li>Removed the monkey patch for the SWIG <code class="code">va_list</code> problem&#8212;it no longer occurs.</li>
855
- </ul>
856
-
857
-
858
- <ul>
859
- <li>Cleansed the appearance of the user documentation.
860
- <ul>
861
- <li>Added indices to section headings, just like LaTeX.</li>
862
- <li>Admonition boxes no longer interfere with surrounding text, and they don&#8217;t have big gap above them.</li>
863
- <li>Navigation menu is now elastic (fluid layout).</li>
864
- </ul></li>
865
- </ul>
866
-
867
-
868
- <ul>
869
- <li>Revised the user manual and added new content.
870
- <ul>
871
- <li>Moved &#8220;VPI utility layer&#8221; section from background chapter into usage chapter in user manual.</li>
872
- <li>Added a nice introduction to entire manual with links to reference documentation.</li>
873
- </ul></li>
874
- </ul>
875
-
876
- </div>
877
-
878
- <hr style="display: none"/>
879
-
880
- <div id="a13.0.0" class="section">
881
- <h1 class="title">
882
- <a href="#a-608010168" class="ref">13</a>
883
-
884
- &nbsp;
885
-
886
- Version 13.0.0 (2006-12-27)
887
- </h1>
888
-
889
- This release fixes a <em>major</em> instability bug, simplifies generated Verilog benches, and purifies the API reference documentation.
890
-
891
-
892
- <h2>Caution</h2>
893
-
894
-
895
- <ul>
896
- <li>The <code class="code"><span style="color:#d70; font-weight:bold">$ruby_init</span></code> and <code class="code"><span style="color:#d70; font-weight:bold">$ruby_relay</span></code> system task/functions have been removed. Generated Verilog benches no longer use them.
897
- <ul>
898
- <li>To pass your own command-line options to Ruby, set the <code class="code"><span style="color:#036; font-weight:bold">RUBYOPT</span></code> environment variable before running a test.</li>
899
- </ul></li>
900
- </ul>
901
-
902
-
903
- <h3>New features</h3>
904
-
905
-
906
- <ul>
907
- <li>You can now choose when <code class="code"><span style="color:#036; font-weight:bold">Vpi</span>::relay_verilog</code> is triggered: upon positive/negative edge of the clock signal, or any other criteria. This is done by passing a block to the <code class="code"><span style="color:#036; font-weight:bold">RubyVpi</span>::init_bench</code> method (see <a href="../ref/ruby/classes/RubyVpi.html">the API reference documentation</a> for details).</li>
908
- </ul>
909
-
910
-
911
- <h2>Details</h2>
912
-
913
-
914
- <ul>
915
- <li>Fixed a major instability bug that was randomly causing segmentation faults and pthread assertion failures.
916
-
917
- <p>The problem was that the <code class="code"><span style="color:#d70; font-weight:bold">$ruby_init</span></code> system task/function was mischeviously unlocking a pthread mutex. From then onward, all code assumed that the mutex was still locked&#8212;but in reality, the mutex was already unlocked.</p></li>
918
- </ul>
919
-
920
-
921
- <ul>
922
- <li>Replaced the <code class="code"><span style="color:#d70; font-weight:bold">$ruby_init</span></code> and <code class="code"><span style="color:#d70; font-weight:bold">$ruby_relay</span></code> system task/functions with callbacks.</li>
923
- </ul>
924
-
925
-
926
- <ul>
927
- <li>Excluded internal stuff from the API reference documentation for Ruby.</li>
928
- </ul>
929
-
930
-
931
- <ul>
932
- <li>Removed system-dependent path <tt>/usr/bin/ruby</tt> from the tools.</li>
933
- </ul>
934
-
935
- </div>
936
-
937
- <hr style="display: none"/>
938
-
939
- <div id="a12.1.0" class="section">
940
- <h1 class="title">
941
- <a href="#a-608012818" class="ref">14</a>
942
-
943
- &nbsp;
944
-
945
- Version 12.1.0 (2006-12-22)
946
- </h1>
947
-
948
- This release adds interactive debugging support, adds new sections to the user manual, and cleanses some internals.
949
-
950
-
951
- <h2>Caution</h2>
952
-
953
-
954
- <ul>
955
- <li>The <tt>lib/ruby-vpi/rspec.rb</tt> and <tt>lib/ruby-vpi/xx.rb</tt> files have been removed because they are no longer necessary.</li>
956
- </ul>
957
-
958
-
959
- <ul>
960
- <li>rSpec 0.7.0 or newer is now required because the sample tests utilize the <code class="code">should ==</code> syntax.</li>
961
- </ul>
962
-
963
-
964
- <h3>New features</h3>
965
-
966
-
967
- <ul>
968
- <li>Test runners now support the <code class="code"><span style="color:#036; font-weight:bold">DEBUG</span></code> environment variable, which enables the interactive debugger (ruby-debug) in <a href="http://www.datanoise.com/articles/2006/12/20/post-mortem-debugging">post-mortem debugging mode</a>.
969
- <ul>
970
- <li>The <code class="code">debugger</code> command can also be used when the <code class="code"><span style="color:#036; font-weight:bold">DEBUG</span></code> environment variable is not activated.</li>
971
- </ul></li>
972
- </ul>
973
-
974
-
975
- <ul>
976
- <li>Status messages, which are shown during initialization of a Ruby bench, now appear in your simulator&#8217;s log files.</li>
977
- </ul>
978
-
979
-
980
- <h2>Details</h2>
981
-
982
-
983
- <ul>
984
- <li>ruby-debug is now a gem dependency for Ruby-VPI.</li>
985
- </ul>
986
-
987
-
988
- <ul>
989
- <li>Added documentation about <a href="manual.html#usage.test-runner">test runners</a> and the <a href="manual.html#usage.debugger">interactive debugger</a> in the user manual.</li>
990
- </ul>
991
-
992
-
993
- <ul>
994
- <li>Added a <tt>README</tt> file with hint about where to find the user manual.</li>
995
- </ul>
996
-
997
-
998
- <ul>
999
- <li>Removed code that wasn&#8217;t being used, according to code coverage analysis, from the pipelined ALU sample.</li>
1000
- </ul>
1001
-
1002
- </div>
1003
-
1004
- <hr style="display: none"/>
1005
-
1006
- <div id="a12.0.2" class="section">
1007
- <h1 class="title">
1008
- <a href="#a-608014968" class="ref">15</a>
1009
-
1010
- &nbsp;
1011
-
1012
- Version 12.0.2 (2006-12-18)
1013
- </h1>
1014
-
1015
- This release fixes a problem in the 12.0.1 gem, where the <strong>generate_test.rb</strong> and <strong>header_to_ruby.rb</strong> tools were not being installed properly.
1016
-
1017
- </div>
1018
-
1019
- <hr style="display: none"/>
1020
-
1021
- <div id="a12.0.1" class="section">
1022
- <h1 class="title">
1023
- <a href="#a-608017358" class="ref">16</a>
1024
-
1025
- &nbsp;
1026
-
1027
- Version 12.0.1 (2006-12-18)
1028
- </h1>
1029
-
1030
- <p>This release fixes a problem in code coverage analysis.</p>
1031
-
1032
-
1033
- <h2>Thanks</h2>
1034
-
1035
-
1036
- <ul>
1037
- <li>Mauricio Fernandez helped me solve the problem with code coverage analysis.</li>
1038
- </ul>
1039
-
1040
-
1041
- <h2>Details</h2>
1042
-
1043
-
1044
- <p>Previously, code coverage reports were not providing any useful information because they were being generated <em>before</em> the test had a chance to run. This problem has been fixed&#8212;code coverage reports are now generated <em>after</em> the test has finished running.</p>
1045
-
1046
-
1047
- <p>This problem occurred because I had forgotten that <code class="code"><span style="color:#036; font-weight:bold">Kernel</span>.at_exit</code> invokes the blocks passed to it in <em>reverse</em> order. So, the coverage report was being generated before Test::Unit had a chance to run (it also uses <code class="code"><span style="color:#036; font-weight:bold">Kernel</span>.at_exit</code>).</p>
1048
-
1049
- </div>
1050
-
1051
- <hr style="display: none"/>
1052
-
1053
- <div id="a12.0.0" class="section">
1054
- <h1 class="title">
1055
- <a href="#a-608020388" class="ref">17</a>
1056
-
1057
- &nbsp;
1058
-
1059
- Version 12.0.0 (2006-12-07)
1060
- </h1>
1061
-
1062
- This release adds support for the <a href="http://chneukirchen.org/blog/archive/2006/10/announcing-test-spec-0-2-a-bdd-interface-for-test-unit.html">test/spec</a> library, fixes some bugs, and improves the user manual and generated tests.
1063
-
1064
-
1065
- <h2>Caution</h2>
1066
-
1067
-
1068
- <ul>
1069
- <li>Icarus Verilog 0.8 has been demoted to a <a href="manual.html#setup.reqs">mostly acceptable</a> status.</li>
1070
- </ul>
1071
-
1072
-
1073
- <ul>
1074
- <li>Generated Verilog benches no longer supply the <tt>-w</tt> option to the <code class="code"><span style="color:#d70; font-weight:bold">$ruby_init</span></code> task.</li>
1075
- </ul>
1076
-
1077
-
1078
- <ul>
1079
- <li>The <code class="code">ruby-vpi/runner_proxy</code> library now invokes test runners
1080
- <ul>
1081
- <li>just before exiting. Thus, you can invoke tasks in the main <tt>Rakefile</tt> before the test runners are invoked.</li>
1082
- <li>located within any directory that is a descendant of the current working directory.</li>
1083
- </ul></li>
1084
- </ul>
1085
-
1086
-
1087
- <ul>
1088
- <li>The <code class="code"><span style="color:#036; font-weight:bold">SIMULATOR_ARGS</span></code> parameter of generated runners has been renamed to <code class="code"><span style="color:#036; font-weight:bold">SIMULATOR_ARGUMENTS</span></code> for clarity.</li>
1089
- </ul>
1090
-
1091
-
1092
- <ul>
1093
- <li>The automated test generator
1094
- <ul>
1095
- <li>no longer displays the <strong>backup</strong> status indicator.</li>
1096
- <li>now supplies a third argument to the <code class="code"><span style="color:#036; font-weight:bold">MERGER</span></code> command.</li>
1097
- <li>no longer replaces existing files with newly generated content during the <strong>update</strong> action. Instead, it now writes the newly generated output to a <tt>.new</tt> file and then invokes the <code class="code"><span style="color:#036; font-weight:bold">MERGER</span></code> command.</li>
1098
- </ul></li>
1099
- </ul>
1100
-
1101
-
1102
- <h2>Details</h2>
1103
-
1104
-
1105
- <ul>
1106
- <li>The <code class="code"><span style="color:#036; font-weight:bold">Vpi</span>::<span style="color:#036; font-weight:bold">Handle</span></code> class has two new methods: <code class="code">x!</code> and <code class="code">z!</code>, which set the handle&#8217;s logic value to <em>unknown</em> and <em>high impedance</em> respectively.</li>
1107
- </ul>
1108
-
1109
-
1110
- <ul>
1111
- <li>The tests for the simple up-counter example were randomly failing because the specifications were not asserting the design&#8217;s <code class="code">reset</code> signal long enough. So the design was getting into weird states and behaving in a non-deterministic way. This problem has been fixed.</li>
1112
- </ul>
1113
-
1114
-
1115
- <ul>
1116
- <li>The user manual has been revised and some minor issues have been fixed.</li>
1117
- </ul>
1118
-
1119
-
1120
- <h3>Test generation</h3>
1121
-
1122
-
1123
- <ul>
1124
- <li>The automated test generator accepts new command-line options:
1125
- <ul>
1126
- <li><tt>--test-unit</tt></li>
1127
- <li><tt>--test-spec</tt></li>
1128
- <li><tt>--tspec</tt></li>
1129
- </ul></li>
1130
- </ul>
1131
-
1132
-
1133
- <ul>
1134
- <li>The automated test generator was crashing when parsing module parameters of an input file which did not have any module parameters. This has been fixed.</li>
1135
- </ul>
1136
-
1137
-
1138
- <ul>
1139
- <li>Generated Verilog benches now contain simpler clock generation code.</li>
1140
- </ul>
1141
-
1142
-
1143
- <ul>
1144
- <li>Generated runners now contain
1145
- <ul>
1146
- <li>a <code class="code"><span style="color:#A60">:setup</span></code> task which is invoked before the simulator runs. It can be used to make preprations, such as converting Verilog header files into Ruby, for the simulation.</li>
1147
- <li>better explanations to accomodate new users.</li>
1148
- </ul></li>
1149
- </ul>
1150
-
1151
-
1152
- <ul>
1153
- <li>Specifications generated in the <strong>generic</strong> format no longer contain a class that is instantiated in the generated Ruby bench.</li>
1154
- </ul>
1155
-
1156
- </div>
1157
-
1158
- <hr style="display: none"/>
1159
-
1160
- <div id="a11.1.1" class="section">
1161
- <h1 class="title">
1162
- <a href="#a-608022878" class="ref">18</a>
1163
-
1164
- &nbsp;
1165
-
1166
- Version 11.1.1 (2006-11-15)
1167
- </h1>
1168
-
1169
- This release fixes a bug in the automated test generator, unifies the user manual and the website into a single documentation system, and adds support for rSpec 0.7.2.
1170
-
1171
-
1172
- <h2>Thanks</h2>
1173
-
1174
-
1175
- <ul>
1176
- <li>John Burr found the bug in the automated test generator.</li>
1177
- </ul>
1178
-
1179
-
1180
- <h2>Caution</h2>
1181
-
1182
-
1183
- <ul>
1184
- <li>The user manual is now available <em>only</em> in HTML format. If you still wish to have a plain-text version, you can use a text-based browser, such as <a href="http://lynx.browser.org/">lynx</a>, to perform the necessary conversion.</li>
1185
- </ul>
1186
-
1187
-
1188
- <h2>Details</h2>
1189
-
1190
-
1191
- <ul>
1192
- <li>The automated test generator no longer crashes when parsing a Verilog module declaration that contains multiple module parameters.</li>
1193
- </ul>
1194
-
1195
-
1196
- <ul>
1197
- <li>The user manual and the website are now written using a custom documentation system based on RedCloth and ERB instead of DocBook-XML. This makes it easier to edit the user manual and reuse its content in other areas of the website.</li>
1198
- </ul>
1199
-
1200
- </div>
1201
-
1202
- <hr style="display: none"/>
1203
-
1204
- <div id="a11.1.0" class="section">
1205
- <h1 class="title">
1206
- <a href="#a-608025668" class="ref">19</a>
1207
-
1208
- &nbsp;
1209
-
1210
- Version 11.1.0 (2006-11-08)
1211
- </h1>
1212
-
1213
- This release fixes a bug in generated benches, improves the <a href="../ref/ruby/classes/Vpi/Handle.html">the <code class="code"><span style="color:#036; font-weight:bold">Vpi</span>::<span style="color:#036; font-weight:bold">Handle</span></code> class</a>, and improves performance by roughly 20%.
1214
-
1215
-
1216
- <h2>Thanks</h2>
1217
-
1218
-
1219
- <ul>
1220
- <li>Matt Fischler found the bug in generated benches (see below).</li>
1221
- </ul>
1222
-
1223
-
1224
- <h2>Caution</h2>
1225
-
1226
-
1227
- <ul>
1228
- <li>A bug in generated Verilog and Ruby benches, which caused the <pre>ruby: no such file to load -- ruby-vpi (LoadError)</pre> error, has been fixed. Please regenerate your tests to apply this bug fix to your tests.</li>
1229
- </ul>
1230
-
1231
-
1232
- <h2>Details</h2>
1233
-
1234
-
1235
- <ul>
1236
- <li>The class <code class="code"><span style="color:#036; font-weight:bold">SWIG</span>::<span style="color:#036; font-weight:bold">TYPE_p_unsigned_int</span></code> has been aliased as <code class="code"><span style="color:#036; font-weight:bold">Vpi</span>::<span style="color:#036; font-weight:bold">Handle</span></code> for easier access.</li>
1237
- </ul>
1238
-
1239
-
1240
- <ul>
1241
- <li><code class="code"><span style="color:#036; font-weight:bold">Vpi</span>::<span style="color:#036; font-weight:bold">Handle</span>.to_s</code> and <code class="code"><span style="color:#036; font-weight:bold">Vpi</span>::<span style="color:#036; font-weight:bold">Handle</span>.inspect</code> now produce more informative output. For example, what used to appear as <pre>#&lt;SWIG::TYPE_p_unsigned_int:0x2aaab6574fa0&gt;</pre> now appears as <pre>#&lt;Vpi::Handle vpiModule fullName=counter_rspec_bench, size=-1, file=counter_rspec_bench.v, lineNo=2&gt;</pre> in this release.
1242
- <ul>
1243
- <li>You can also provide a list of VPI properties, as names or integer constants, to those methods to see additional information in the output.</li>
1244
- </ul></li>
1245
- </ul>
1246
-
1247
-
1248
- <ul>
1249
- <li><code class="code"><span style="color:#036; font-weight:bold">Vpi</span>::<span style="color:#036; font-weight:bold">Handle</span></code> now implements all methods from <code class="code"><span style="color:#036; font-weight:bold">Enumerable</span></code>, such as <code class="code">map</code>, <code class="code">each</code>, <code class="code">select</code>, and so on. However, unlike their counterparts in <code class="code"><span style="color:#036; font-weight:bold">Enumerable</span></code>, these methods also accept a list of VPI properties, as names or integer constants. Thus, you are now able to write <code class="code">handle.select(<span style="color:#A60">:reg</span>, <span style="color:#A60">:net</span>) {|h| h.size &gt; <span style="color:#00D; font-weight:bold">5</span>}</code> to obtain a list of child handles to registers and nets whose capacity is greater than 5 bits.</li>
1250
- </ul>
1251
-
1252
-
1253
- <ul>
1254
- <li>The <code class="code"><span style="color:#036; font-weight:bold">Vpi</span>::<span style="color:#036; font-weight:bold">Handle</span>.[]</code>, <code class="code"><span style="color:#036; font-weight:bold">Vpi</span>::<span style="color:#036; font-weight:bold">Handle</span>.get_value</code>, and <code class="code"><span style="color:#036; font-weight:bold">Vpi</span>::<span style="color:#036; font-weight:bold">Handle</span>.put_value</code> methods now accept names of VPI properties as well as their integer constants. Thus, you are now able to write <code class="code">handle[<span style="color:#A60">:reg</span>, <span style="color:#A60">:net</span>]</code> to obtain a list of handles to all child registers and nets.</li>
1255
- </ul>
1256
-
1257
-
1258
- <ul>
1259
- <li><code class="code"><span style="color:#036; font-weight:bold">Vpi</span>::<span style="color:#036; font-weight:bold">Handle</span>.method_missing</code> has been refactored to cache queries. There is now, approximately, 20% improvement in performance.</li>
1260
- </ul>
1261
-
1262
-
1263
- <ul>
1264
- <li><code class="code"><span style="color:#036; font-weight:bold">Vpi</span>::<span style="color:#036; font-weight:bold">Handle</span>.method_missing</code> has been fixed to accept operations with multiple underscores. For example, before this release, you could not write <code class="code">handle.find_all_reg {|r| r.name =~ <span style="background-color:#fff0ff"><span style="color:#404">/</span><span style="color:#808">foo</span><span style="color:#404">/</span></span>}</code> because the &#8220;find_all_reg&#8221; method would be interpreted as the operation &#8220;find&#8221; and the VPI property &#8220;all_reg&#8221;.</li>
1265
- </ul>
1266
-
1267
-
1268
- <ul>
1269
- <li><code class="code"><span style="color:#036; font-weight:bold">Vpi</span>::<span style="color:#036; font-weight:bold">Handle</span>.method_missing</code> no longer requires that the first letter of a method be lower case. For example, now you can now write <code class="code">handle.<span style="color:#036; font-weight:bold">IntVal</span></code> in addition to <code class="code">handle.intVal</code>.</li>
1270
- </ul>
1271
-
1272
-
1273
- <ul>
1274
- <li>The <code class="code"><span style="color:#036; font-weight:bold">IntegerGenerator</span></code> class, in the pipelined ALU example, has been fixed so that multiple instances do not interfere with the generation of each other&#8217;s prime integers.</li>
1275
- </ul>
1276
-
1277
-
1278
- <ul>
1279
- <li>Due to a bug in the <tt>Rakefile</tt>, the reference documentation was not included in the previous few releases. This has been fixed.</li>
1280
- </ul>
1281
-
1282
- </div>
1283
-
1284
- <hr style="display: none"/>
1285
-
1286
- <div id="a11.0.0" class="section">
1287
- <h1 class="title">
1288
- <a href="#a-606393968" class="ref">20</a>
1289
-
1290
- &nbsp;
1291
-
1292
- Version 11.0.0 (2006-11-05)
1293
- </h1>
1294
-
1295
- 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.
1296
-
1297
-
1298
- <h2>Caution</h2>
1299
-
1300
-
1301
- <ul>
1302
- <li>The arguments for the <a href="../ref/ruby/classes/RubyVpi.html"><code class="code"><span style="color:#036; font-weight:bold">RubyVPI</span>.init_bench</code> method</a> have changed.</li>
1303
- </ul>
1304
-
1305
-
1306
- <ul>
1307
- <li><strong>generate_test.rb</strong> no longer emits undocumented status indicators: <em>name</em> and <em>format</em>.</li>
1308
- </ul>
1309
-
1310
-
1311
- <ul>
1312
- <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>
1313
- </ul>
1314
-
1315
-
1316
- <h2>Details</h2>
1317
-
1318
-
1319
- <ul>
1320
- <li>Generated Ruby benches have been shortened to just <em>one</em> line of code!</li>
1321
- </ul>
1322
-
1323
-
1324
- <ul>
1325
- <li>The less confusing notation of <pre class="code"><span style="color:#080; font-weight:bold">def</span> some_object.a_singleton_method
1326
- do_stuff
1327
- <span style="color:#080; font-weight:bold">end</span></pre> is now used instead of the <pre class="code"><span style="color:#080; font-weight:bold">class</span> &lt;&lt; <span style="color:#B06; font-weight:bold">some_object</span>
1328
- <span style="color:#080; font-weight:bold">def</span> <span style="color:#06B; font-weight:bold">a_singleton_method</span>
1329
- do_stuff
1330
- <span style="color:#080; font-weight:bold">end</span>
1331
- <span style="color:#080; font-weight:bold">end</span></pre> notation.
1332
- <ul>
1333
- <li>The tutorial and examples have been updated accordingly.</li>
1334
- </ul></li>
1335
- </ul>
1336
-
1337
-
1338
- <ul>
1339
- <li>The pipelined ALU example now has an updated <code class="code"><span style="color:#036; font-weight:bold">IntegerGenerator</span></code> class.</li>
1340
- </ul>
1341
-
1342
- </div>
1343
-
1344
- <hr style="display: none"/>
1345
-
1346
- <div id="a10.0.0" class="section">
1347
- <h1 class="title">
1348
- <a href="#a-606406478" class="ref">21</a>
1349
-
1350
- &nbsp;
1351
-
1352
- Version 10.0.0 (2006-11-05)
1353
- </h1>
1354
-
1355
- This release adds the ability to access a handle&#8217;s children and reduces the amount of code produced by the automated test generator.
1356
-
1357
-
1358
- <h2>Thanks</h2>
1359
-
1360
-
1361
- <ul>
1362
- <li>Matt Fischler found the problem of misdirected compilation errors in Verilog benches.</li>
1363
- </ul>
1364
-
1365
-
1366
- <h2>Caution</h2>
1367
-
1368
-
1369
- <ul>
1370
- <li>The way in which Ruby-VPI and generated tests interact has changed: the design is now a VPI handle object and the <tt>design.rb</tt> and <tt>proto.rb</tt> files define <a href="http://wiki.rubygarden.org/Ruby/page/show/SingletonTutorial">singleton methods</a> for that object.
1371
- <ul>
1372
- <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>
1373
- </ul></li>
1374
- </ul>
1375
-
1376
-
1377
- <ul>
1378
- <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 VPI property, the child is given priority. However, you can always access VPI properties explicitly via the <code class="code">get_value</code> and <code class="code">put_value</code> methods.</li>
1379
- </ul>
1380
-
1381
-
1382
- <ul>
1383
- <li><strong>generate_test.rb</strong> no longer accepts the <pre>-s</pre> and <pre>-u</pre> options. Use their longer counterparts <pre>--rspec</pre> and <pre>--xunit</pre> instead.</li>
1384
- </ul>
1385
-
1386
-
1387
- <h2>Details</h2>
1388
-
1389
-
1390
- <h3>Automated test generator</h3>
1391
-
1392
-
1393
- <ul>
1394
- <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>
1395
- </ul>
1396
-
1397
-
1398
- <ul>
1399
- <li>The user is now notified when a backup of an existing file is made.</li>
1400
- </ul>
1401
-
1402
-
1403
- <ul>
1404
- <li>Generated tests have been greatly simplified to reduce the amount of work for the user.
1405
- <ul>
1406
- <li>The design is now just a handle to the module in the Verilog bench.</li>
1407
- <li><code class="code">include <span style="color:#036; font-weight:bold">Vpi</span></code> and <code class="code"><span style="color:#33B">@design</span></code> are no longer generated.</li>
1408
- <li>The tutorial and examples have been updated accordingly.</li>
1409
- </ul></li>
1410
- </ul>
1411
-
1412
-
1413
- <h3>User manual</h3>
1414
-
1415
-
1416
- <ul>
1417
- <li>Revised the stylesheet to make disjoint sections readily distinguishable from each other, through generous spacing and minor coloring.</li>
1418
- </ul>
1419
-
1420
-
1421
- <ul>
1422
- <li>Added tips about <tt>ruby-vpi/runner_proxy</tt>, <pre>rake -T</pre>, and using <strong>kdiff3</strong> with <strong>generate_test.rb</strong>.</li>
1423
- </ul>
1424
-
1425
-
1426
- <ul>
1427
- <li>Moved installation information into a new &#8220;setup&#8221; chapter.</li>
1428
- </ul>
1429
-
1430
- </div>
1431
-
1432
- <hr style="display: none"/>
1433
-
1434
- <div id="a9.0.0" class="section">
1435
- <h1 class="title">
1436
- <a href="#a-606422038" class="ref">22</a>
1437
-
1438
- &nbsp;
1439
-
1440
- Version 9.0.0 (2006-10-28)
1441
- </h1>
1442
-
1443
- This release improves the automated test generator and adds new content to the user manual.
1444
-
1445
-
1446
- <h2>Thanks</h2>
1447
-
1448
-
1449
- <ul>
1450
- <li>Matt Fischler helped test and debug the installation of Ruby-VPI on Windows.</li>
1451
- </ul>
1452
-
1453
-
1454
- <h2>Caution</h2>
1455
-
1456
-
1457
- <ul>
1458
- <li>The command-line options for <strong>generate_test.rb</strong> have changed. Run the command <pre>generate_test.rb --help</pre> for details.</li>
1459
- </ul>
1460
-
1461
-
1462
- <h2>Details</h2>
1463
-
1464
-
1465
- <ul>
1466
- <li>Test runners now attempt to resolve paths in <code class="code"><span style="color:#036; font-weight:bold">SIMULATOR_SOURCES</span></code> by searching for them within the directories specified in <code class="code"><span style="color:#036; font-weight:bold">SIMULATOR_INCLUDES</span></code>.</li>
1467
- </ul>
1468
-
1469
-
1470
- <ul>
1471
- <li>Synopsys VCS is now used in a better way (via the <pre>-load</pre> option).
1472
- <ul>
1473
- <li>The old PLI table file (<tt>synopsys_vcs.tab</tt>) has been removed.</li>
1474
- <li>The C extension has been revised accordingly.</li>
1475
- </ul></li>
1476
- </ul>
1477
-
1478
-
1479
- <ul>
1480
- <li>The C extension now compiles without errors in Cygwin.</li>
1481
- </ul>
1482
-
1483
-
1484
- <ul>
1485
- <li>The automated test generator now:
1486
- <ul>
1487
- <li>Only creates output files when necessary.</li>
1488
- <li>Updates existing output files using <a href="manual.html#setup.recom">text merging tools</a> if possible. (Refer to <code class="code"><span style="color:#036; font-weight:bold">MERGER</span></code> in the help information of <strong>generate_test.rb</strong>.)</li>
1489
- <li>Emits progress information similar to Ruby on Rails.</li>
1490
- </ul></li>
1491
- </ul>
1492
-
1493
-
1494
- <ul>
1495
- <li>The user manual now:
1496
- <ul>
1497
- <li>Includes instructions for installing on Windows (via Cygwin).</li>
1498
- <li>Has a recommended software section, with links to text merging tools.</li>
1499
- <li>Uses the term <a href="http://en.wikipedia.org/wiki/XUnit">xUnit</a> instead of &#8220;unit test&#8221;.</li>
1500
- <li>Correctly spells &#8220;rSpec&#8221;.</li>
1501
- </ul></li>
1502
- </ul>
1503
-
1504
- </div>
1505
-
1506
- <hr style="display: none"/>
1507
-
1508
- <div id="a8.2.0" class="section">
1509
- <h1 class="title">
1510
- <a href="#a-606446938" class="ref">23</a>
1511
-
1512
- &nbsp;
1513
-
1514
- Version 8.2.0 (2006-10-24)
1515
- </h1>
1516
-
1517
- This release simplifies configuration of generated tests.
1518
-
1519
-
1520
- <h2>Thanks</h2>
1521
-
1522
-
1523
- <ul>
1524
- <li><a href="http://www.soe.ucsc.edu/classes/cmpe126/Fall06/">Students in the CMPE-126 class</a> for their comments and criticisms.</li>
1525
- </ul>
1526
-
1527
-
1528
- <h2>Caution</h2>
1529
-
1530
-
1531
- <ul>
1532
- <li>Generated runners now have a <code class="code"><span style="color:#036; font-weight:bold">SIMULATOR_INCLUDES</span></code> array, whose entries specify places where Verilog source files, needed by the Verilog design, reside.</li>
1533
- </ul>
1534
-
1535
-
1536
- <h2>Details</h2>
1537
-
1538
-
1539
- <ul>
1540
- <li>Generated Verilog benches now inherit all <code class="code"><span style="background-color:#f0fff0"><span style="color:#161">`</span><span style="color:#2B2">include</span></span></code> and <code class="code"><span style="background-color:#f0fff0"><span style="color:#161">`</span><span style="color:#2B2">define</span></span></code> directives from the Verilog design in a simpler manner.</li>
1541
- <li>A generated test no longer requires its Verilog design to reside in the same directory.</li>
1542
- <li>The sample tests have been updated accordingly.</li>
1543
- </ul>
1544
-
1545
- </div>
1546
-
1547
- <hr style="display: none"/>
1548
-
1549
- <div id="a8.1.0" class="section">
1550
- <h1 class="title">
1551
- <a href="#a-606456588" class="ref">24</a>
1552
-
1553
- &nbsp;
1554
-
1555
- Version 8.1.0 (2006-10-21)
1556
- </h1>
1557
-
1558
- This release adds an integer library and renames the vpi_util library.
1559
-
1560
-
1561
- <h2>Caution</h2>
1562
-
1563
-
1564
- <ul>
1565
- <li>The <strong>vpi_util</strong> library has been renamed to <strong>vpi</strong>. This change should not affect your code unless you explicitly imported this library via <code class="code">require <span style="background-color:#fff0f0"><span style="color:#710">'</span><span style="color:#D20">ruby-vpi/vpi_util</span><span style="color:#710">'</span></span></code>. In which case, you should update your code to use <code class="code">require <span style="background-color:#fff0f0"><span style="color:#710">'</span><span style="color:#D20">ruby-vpi/vpi</span><span style="color:#710">'</span></span></code> accordingly.</li>
1566
- </ul>
1567
-
1568
-
1569
- <h2>Details</h2>
1570
-
1571
-
1572
- <ul>
1573
- <li>An integer library has been added to simplify common tasks related to hardware and the binary number system. You can import this library for use via <code class="code">require <span style="background-color:#fff0f0"><span style="color:#710">'</span><span style="color:#D20">ruby-vpi/integer</span><span style="color:#710">'</span></span></code>.</li>
1574
- </ul>
1575
-
1576
- </div>
1577
-
1578
- <hr style="display: none"/>
1579
-
1580
- <div id="a8.0.0" class="section">
1581
- <h1 class="title">
1582
- <a href="#a-606460318" class="ref">25</a>
1583
-
1584
- &nbsp;
1585
-
1586
- Version 8.0.0 (2006-10-13)
1587
- </h1>
1588
-
1589
- This release renames some identifiers for consistency, updates the documentation, and improves integration with RubyGems.
1590
-
1591
-
1592
- <h2>Caution</h2>
1593
-
1594
-
1595
- <ul>
1596
- <li>The <code class="code"><span style="color:#036; font-weight:bold">RubyVPI</span></code> module has been renamed to <code class="code"><span style="color:#036; font-weight:bold">RubyVpi</span></code>.</li>
1597
- </ul>
1598
-
1599
-
1600
- <ul>
1601
- <li>The <code class="code"><span style="color:#036; font-weight:bold">PROTO</span></code> environment variable has been renamed to <code class="code"><span style="color:#036; font-weight:bold">PROTOTYPE</span></code>.
1602
- <ul>
1603
- <li>In addition to using <strong>unset</strong>, you can now disable simulation of the prototype by assigning an empty value to this variable.</li>
1604
- </ul></li>
1605
- </ul>
1606
-
1607
-
1608
- <h2>Details</h2>
1609
-
1610
-
1611
- <ul>
1612
- <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>
1613
- </ul>
1614
-
1615
-
1616
- <ul>
1617
- <li>The source code is now distributed in tar.gz and zip form, in addition to gem.</li>
1618
- </ul>
1619
-
1620
-
1621
- <ul>
1622
- <li>Some identifiers have been renamed for better consistency.</li>
1623
- </ul>
1624
-
1625
-
1626
- <ul>
1627
- <li>The user manual now resides directly within the <tt>doc/</tt> directory.
1628
- <ul>
1629
- <li>The integration of documentation in <strong>gem_server</strong> has been improved.</li>
1630
- </ul></li>
1631
- </ul>
1632
-
1633
-
1634
- <ul>
1635
- <li>The glossary and tutorial in the user manual have been revised.</li>
1636
- </ul>
1637
-
1638
- </div>
1639
-
1640
- <hr style="display: none"/>
1641
-
1642
- <div id="a7.3.0" class="section">
1643
- <h1 class="title">
1644
- <a href="#a-606467158" class="ref">26</a>
1645
-
1646
- &nbsp;
1647
-
1648
- Version 7.3.0 (2006-09-30)
1649
- </h1>
1650
-
1651
- This release fixes a bug in generated Verilog benches, includes parsed constants in generated tests, and adds new methods to handles.
1652
-
1653
-
1654
- <h2>Caution</h2>
1655
-
1656
-
1657
- <ul>
1658
- <li>Handles now have two new methods:
1659
- <ul>
1660
- <li><code class="code">handle.x?</code> checks if the logic value is &#8220;don&#8217;t care&#8221; </li>
1661
- <li><code class="code">handle.z?</code> checks if the logic value is high impedance</li>
1662
- </ul></li>
1663
- </ul>
1664
-
1665
-
1666
- <h2>Details</h2>
1667
-
1668
-
1669
- <ul>
1670
- <li>Module instantiation code in generated Verilog benches has been fixed. Whitespace between the module type and instance variable was missing.</li>
1671
- </ul>
1672
-
1673
-
1674
- <ul>
1675
- <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.
1676
- <ul>
1677
- <li>The pipelined ALU example has been revised accordingly.</li>
1678
- </ul></li>
1679
- </ul>
1680
-
1681
-
1682
- <ul>
1683
- <li>A library for parsing Verilog source code has been added as <tt>lib/ruby-vpi/verilog_parser.rb</tt>.</li>
1684
- </ul>
1685
-
1686
- </div>
1687
-
1688
- <hr style="display: none"/>
1689
-
1690
- <div id="a7.2.0" class="section">
1691
- <h1 class="title">
1692
- <a href="#a-606978948" class="ref">27</a>
1693
-
1694
- &nbsp;
1695
-
1696
- Version 7.2.0 (2006-09-15)
1697
- </h1>
1698
-
1699
- This release adds initial support for code coverage analysis via the <a href="http://eigenclass.org/hiki.rb?rcov">rcov library</a>.
1700
-
1701
-
1702
- <h2>Thanks</h2>
1703
-
1704
-
1705
- <ul>
1706
- <li>Mauricio Fernandez helped me use rcov without its runner.</li>
1707
- </ul>
1708
-
1709
-
1710
- <h2>Details</h2>
1711
-
1712
-
1713
- <ul>
1714
- <li>Added initial support (full capabilites of the rcov library, such as its various analysis modes, are not yet utilized) for code coverage analysis, which can be enabled by setting the <code class="code"><span style="color:#036; font-weight:bold">COVERAGE</span></code> environment variable to a non-empty value before running a test.
1715
- <ul>
1716
- <li>For example, you can run a test with the GPL Cver simulator while enabling the generation of code coverage reports as follows: <pre>export COVERAGE=1; rake cver</pre></li>
1717
- </ul></li>
1718
- </ul>
1719
-
1720
-
1721
- <ul>
1722
- <li>Coverage reports are generated in text and HTML formats.</li>
1723
- </ul>
1724
-
1725
- </div>
1726
-
1727
- <hr style="display: none"/>
1728
-
1729
- <div id="a7.1.0" class="section">
1730
- <h1 class="title">
1731
- <a href="#a-606981378" class="ref">28</a>
1732
-
1733
- &nbsp;
1734
-
1735
- Version 7.1.0 (2006-08-29)
1736
- </h1>
1737
-
1738
- This release simplifies running of multiple tests, restores compatibility with Synopsys VCS, and better integrates with RubyGems.
1739
-
1740
-
1741
- <h2>Details</h2>
1742
-
1743
-
1744
- <ul>
1745
- <li>Added <tt>lib/ruby-vpi/runner_proxy.rb</tt> library which, when embedded into a Rakefile, runs all generated tests in the working directory with any specified arguments. For example, have a look at the <tt>samp/counter/Rakefile</tt> file.</li>
1746
- </ul>
1747
-
1748
-
1749
- <ul>
1750
- <li>Fixed a bug that prevented one from running tests with Synopsys VCS.</li>
1751
- </ul>
1752
-
1753
-
1754
- <ul>
1755
- <li>Ruby-VPI documentation is now available through RubyGems&#8217; <a href="http://docs.rubygems.org/read/chapter/2#page10"><strong>gem_server</strong> web interface</a>.</li>
1756
- </ul>
1757
-
1758
-
1759
- <ul>
1760
- <li>The user manual now discusses how to determine the location of a Ruby-VPI installation.</li>
1761
- </ul>
1762
-
1763
-
1764
- <ul>
1765
- <li>The <tt>tpl/</tt> directory has been removed.</li>
1766
- </ul>
1767
-
1768
- </div>
1769
-
1770
- <hr style="display: none"/>
1771
-
1772
- <div id="a7.0.0" class="section">
1773
- <h1 class="title">
1774
- <a href="#a-606984068" class="ref">29</a>
1775
-
1776
- &nbsp;
1777
-
1778
- Version 7.0.0 (2006-08-29)
1779
- </h1>
1780
-
1781
- This release distributes Ruby-VPI as a gem, improves portability of generated tests, and fixes a bug.
1782
-
1783
-
1784
- <h2>Caution</h2>
1785
-
1786
-
1787
- <ul>
1788
- <li><code class="code">put_value()</code> now accomodates register value overflows when verifying the value it has written.</li>
1789
- </ul>
1790
-
1791
-
1792
- <ul>
1793
- <li>The test generator&#8217;s templates and the examples have been updated as follows:
1794
- <ul>
1795
- <li>Test runners no longer have to specify the path to Ruby-VPI installation directory. Instead, they simply <code class="code">require <span style="background-color:#fff0f0"><span style="color:#710">'</span><span style="color:#D20">ruby-vpi/runner</span><span style="color:#710">'</span></span></code>. Thus, you can run your tests on any machine with Ruby-VPI without having to know where it is installed.</li>
1796
- <li>Ruby benches now invoke <code class="code"><span style="color:#036; font-weight:bold">RubyVPI</span>.init_bench</code> instead of <code class="code">require <span style="background-color:#fff0f0"><span style="color:#710">'</span><span style="color:#D20">bench</span><span style="color:#710">'</span></span>; setup_bench</code> to become initialized.</li>
1797
- </ul></li>
1798
- </ul>
1799
-
1800
-
1801
- <ul>
1802
- <li>All Ruby libraries in the <tt>lib/</tt> directory have been moved into <tt>lib/ruby-vpi/</tt> to prevent load-path clashes with other gems. You should access these libraries by prefixing their path with &#8220;ruby-vpi&#8221;. For example, <code class="code">require <span style="background-color:#fff0f0"><span style="color:#710">'</span><span style="color:#D20">vpi_util</span><span style="color:#710">'</span></span></code> should now be written as <code class="code">require <span style="background-color:#fff0f0"><span style="color:#710">'</span><span style="color:#D20">ruby-vpi/vpi_util</span><span style="color:#710">'</span></span></code>.</li>
1803
- </ul>
1804
-
1805
-
1806
- <ul>
1807
- <li>The <tt>src/</tt> directory has been renamed to <tt>ext/</tt> to follow RubyGems convention.</li>
1808
- </ul>
1809
-
1810
-
1811
- <h2>Details</h2>
1812
-
1813
-
1814
- <ul>
1815
- <li>Ruby-VPI is now distributed only as a <a href="http://www.rubygems.org">source gem</a>. You can decompress the gem without installing it onto your system by running the command <pre>gem install -i output_directory ruby-vpi-7.0.0.gem</pre>. In addition, you can still obtain the source code directly from the Subversion repository.</li>
1816
- </ul>
1817
-
1818
-
1819
- <ul>
1820
- <li>The tools in <tt>bin/</tt> become available in your system&#8217;s <tt>bin/</tt> directory when the gem is installed.
1821
- <ul>
1822
- <li>Usage and help information has been added to the <strong>header_to_ruby.rb</strong> tool.</li>
1823
- </ul></li>
1824
- </ul>
1825
-
1826
-
1827
- <ul>
1828
- <li>Incorrect spelling of GPL Cver (v should be uncapitalized) has been fixed.</li>
1829
- </ul>
1830
-
1831
-
1832
- <ul>
1833
- <li>Incorrect link to GPL Cver website has been fixed.</li>
1834
- </ul>
1835
-
1836
-
1837
- <ul>
1838
- <li>The user manual has been updated according to all of the above changes.</li>
1839
- </ul>
1840
-
1841
- </div>
1842
-
1843
- <hr style="display: none"/>
1844
-
1845
- <div id="a6.3.0" class="section">
1846
- <h1 class="title">
1847
- <a href="#a-606986838" class="ref">30</a>
1848
-
1849
- &nbsp;
1850
-
1851
- Version 6.3.0 (2006-08-27)
1852
- </h1>
1853
-
1854
- This release adds support for the GPL Cver simulator, provides both binary and source packages, and explicitly defines the version numbering system.
1855
-
1856
-
1857
- <h2>Caution</h2>
1858
-
1859
-
1860
- <ul>
1861
- <li>Ruby-VPI now only needs to be built once.
1862
- <ul>
1863
- <li>You can run tests with different Verilog simulators without having to re-compile Ruby-VPI.</li>
1864
- </ul></li>
1865
- </ul>
1866
-
1867
-
1868
- <h2>Details</h2>
1869
-
1870
-
1871
- <ul>
1872
- <li>The GPL Cver simulator is now supported.</li>
1873
- </ul>
1874
-
1875
-
1876
- <ul>
1877
- <li>Release packages are now available in both source and binary form.</li>
1878
- </ul>
1879
-
1880
-
1881
- <ul>
1882
- <li>The RSpec based specifications for the counter example now use the <code class="code">should_equal</code> instead of the <code class="code">should_be</code> assertion, because the latter ensures strict equivalence. For instance, it will fail when a Fixnum is compared to a Bignum.</li>
1883
- </ul>
1884
-
1885
-
1886
- <ul>
1887
- <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:
1888
- <table>
1889
- <tr>
1890
- <th>Release date </th>
1891
- <th>Original version number </th>
1892
- <th>New version number </th>
1893
- </tr>
1894
- <tr>
1895
- <td> 1999-10-31 </td>
1896
- <td> 0.0 </td>
1897
- <td> 0.0.0 </td>
1898
- </tr>
1899
- <tr>
1900
- <td> 2006-02-26 </td>
1901
- <td> 0.1 </td>
1902
- <td> 1.0.0 </td>
1903
- </tr>
1904
- <tr>
1905
- <td> 2006-04-17 </td>
1906
- <td> 0.2 </td>
1907
- <td> 2.0.0 </td>
1908
- </tr>
1909
- <tr>
1910
- <td> 2006-04-23 </td>
1911
- <td> 0.3 </td>
1912
- <td> 3.0.0 </td>
1913
- </tr>
1914
- <tr>
1915
- <td> 2006-04-28 </td>
1916
- <td> 0.4 </td>
1917
- <td> 3.1.0 </td>
1918
- </tr>
1919
- <tr>
1920
- <td> 2006-05-13 </td>
1921
- <td> 0.5 </td>
1922
- <td> 3.2.0 </td>
1923
- </tr>
1924
- <tr>
1925
- <td> 2006-05-25 </td>
1926
- <td> 0.6 </td>
1927
- <td> 4.0.0 </td>
1928
- </tr>
1929
- <tr>
1930
- <td> 2006-07-22 </td>
1931
- <td> 0.7 </td>
1932
- <td> 5.0.0 </td>
1933
- </tr>
1934
- <tr>
1935
- <td> 2006-07-29 </td>
1936
- <td> 0.8 </td>
1937
- <td> 5.1.0 </td>
1938
- </tr>
1939
- <tr>
1940
- <td> 2006-08-04 </td>
1941
- <td> 0.8.1 </td>
1942
- <td> 5.1.1 </td>
1943
- </tr>
1944
- <tr>
1945
- <td> 2006-08-07 </td>
1946
- <td> 0.9 </td>
1947
- <td> 6.0.0 </td>
1948
- </tr>
1949
- <tr>
1950
- <td> 2006-08-09 </td>
1951
- <td> 0.9.1 </td>
1952
- <td> 6.1.0 </td>
1953
- </tr>
1954
- <tr>
1955
- <td> 2006-08-26 </td>
1956
- <td> 0.9.2 </td>
1957
- <td> 6.2.0 </td>
1958
- </tr>
1959
- </table></li>
1960
- </ul>
1961
-
1962
- </div>
1963
-
1964
- <hr style="display: none"/>
1965
-
1966
- <div id="a6.2.0" class="section">
1967
- <h1 class="title">
1968
- <a href="#a-606989348" class="ref">31</a>
1969
-
1970
- &nbsp;
1971
-
1972
- Version 6.2.0 (2006-08-26)
1973
- </h1>
1974
-
1975
- This release beautifies generated tests, adds checks to find signal width bugs, and includes a new tool.
1976
-
1977
-
1978
- <h2>Caution</h2>
1979
-
1980
-
1981
- <ul>
1982
- <li><code class="code">put_value()</code> now returns the value it puts. Therefore, it is easier to chain together a series of assignments: <code class="code">foo.intVal = bar.intVal = baz.intVal = <span style="color:#00D; font-weight:bold">10</span></code></li>
1983
- </ul>
1984
-
1985
-
1986
- <ul>
1987
- <li><code class="code">put_value()</code> now verifies that the value it puts was written correctly. This helps to find bugs regarding invalid assumptions about the number of bits supported by a signal.</li>
1988
- </ul>
1989
-
1990
-
1991
- <h2>Details</h2>
1992
-
1993
-
1994
- <ul>
1995
- <li>The test generator now uses ERB templates which ensures nice indentation of generated output.</li>
1996
- </ul>
1997
-
1998
-
1999
- <ul>
2000
- <li>The test generator now decouples Ruby-VPI paths from Verilog benches via the RUBYLIB environment variable.</li>
2001
- </ul>
2002
-
2003
-
2004
- <ul>
2005
- <li>A tool which converts Verilog headers into Ruby has been added.</li>
2006
- </ul>
2007
-
2008
-
2009
- <ul>
2010
- <li>The source code is now indented with two spaces instead of one tab character.</li>
2011
- </ul>
2012
-
2013
- </div>
2014
-
2015
- <hr style="display: none"/>
2016
-
2017
- <div id="a6.1.0" class="section">
2018
- <h1 class="title">
2019
- <a href="#a-606991678" class="ref">32</a>
2020
-
2021
- &nbsp;
2022
-
2023
- Version 6.1.0 (2006-08-09)
2024
- </h1>
2025
-
2026
- This release simplifies generated tests and fixes a bug.
2027
-
2028
-
2029
- <h2>Details</h2>
2030
-
2031
-
2032
- <ul>
2033
- <li>The test generator now produces simpler Ruby benches and specifications.
2034
- <ul>
2035
- <li>A template used by generated specifications has been added.</li>
2036
- <li>The counter example and tutorial have also been simplified accordingly.</li>
2037
- </ul></li>
2038
- </ul>
2039
-
2040
-
2041
- <ul>
2042
- <li>Boolean VPI property values are now correctly converted into Ruby truth values.</li>
2043
- </ul>
2044
-
2045
- </div>
2046
-
2047
- <hr style="display: none"/>
2048
-
2049
- <div id="a6.0.0" class="section">
2050
- <h1 class="title">
2051
- <a href="#a-606994228" class="ref">33</a>
2052
-
2053
- &nbsp;
2054
-
2055
- Version 6.0.0 (2006-08-07)
2056
- </h1>
2057
-
2058
- This release adds support and documentation for rapid prototyping of Verilog designs in Ruby.
2059
-
2060
-
2061
- <h2>Caution</h2>
2062
-
2063
-
2064
- <ul>
2065
- <li>The directory structure has been reorganized as follows:
2066
- <ul>
2067
- <li><tt>ext</tt> &rarr; <tt>src</tt></li>
2068
- <li><tt>tools</tt> &rarr; <tt>bin</tt></li>
2069
- <li><tt>examples</tt> &rarr; <tt>samp</tt></li>
2070
- </ul></li>
2071
- </ul>
2072
-
2073
-
2074
- <ul>
2075
- <li>All template files have been moved into the <tt>tpl</tt> directory.</li>
2076
- </ul>
2077
-
2078
-
2079
- <h2>Details</h2>
2080
-
2081
-
2082
- <ul>
2083
- <li>Support for prototyping designs in Ruby, before they are implemented in Verilog, has been added.
2084
- <ul>
2085
- <li>The <em>same</em> specification can be used to verify both prototype <em>and</em> design! :-)</li>
2086
- <li>The tutorial in the user manual has been updated to discuss prototyping.
2087
- <ul>
2088
- <li>Prototypes have been added to the counter example.</li>
2089
- </ul></li>
2090
- </ul></li>
2091
- </ul>
2092
-
2093
-
2094
- <ul>
2095
- <li>The user manual has been revised for consistency.</li>
2096
- </ul>
2097
-
2098
- </div>
2099
-
2100
- <hr style="display: none"/>
2101
-
2102
- <div id="a5.1.1" class="section">
2103
- <h1 class="title">
2104
- <a href="#a-606996618" class="ref">34</a>
2105
-
2106
- &nbsp;
2107
-
2108
- Version 5.1.1 (2006-08-04)
2109
- </h1>
2110
-
2111
- This release fixes unreadable syntax coloring in the user manual.
2112
-
2113
-
2114
- <h2>Thanks</h2>
2115
-
2116
-
2117
- <ul>
2118
- <li>Todd Nagengast and Matt Fischler notified me about unreadable text in the user manual.</li>
2119
- </ul>
2120
-
2121
-
2122
- <h2>Details</h2>
2123
-
2124
-
2125
- <ul>
2126
- <li>Source code comments in the user manual are now readable.</li>
2127
- </ul>
2128
-
2129
-
2130
- <ul>
2131
- <li>The <tt>README</tt> and <tt>HISTORY</tt> files have been converted to <a href="http://www.textism.com/tools/textile/">textile</a> format.</li>
2132
- </ul>
2133
-
2134
- </div>
2135
-
2136
- <hr style="display: none"/>
2137
-
2138
- <div id="a5.1.0" class="section">
2139
- <h1 class="title">
2140
- <a href="#a-606999368" class="ref">35</a>
2141
-
2142
- &nbsp;
2143
-
2144
- Version 5.1.0 (2006-07-29)
2145
- </h1>
2146
-
2147
- This release adds a tutorial to the user manual, and improves the tools and examples.
2148
-
2149
-
2150
- <h2>Thanks</h2>
2151
-
2152
-
2153
- <ul>
2154
- <li>Phil Tomson corrected the URL of the RHDL website in the user manual.</li>
2155
- </ul>
2156
-
2157
-
2158
- <h2>Details</h2>
2159
-
2160
-
2161
- <h3>User manual</h3>
2162
-
2163
-
2164
- <ul>
2165
- <li>A tutorial, based on the counter example, has been added to the user manual.</li>
2166
- </ul>
2167
-
2168
-
2169
- <ul>
2170
- <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>
2171
- </ul>
2172
-
2173
-
2174
- <h3>Examples</h3>
2175
-
2176
-
2177
- <ul>
2178
- <li>A specification, expressed in unit test format, has been added to the counter example.</li>
2179
- </ul>
2180
-
2181
-
2182
- <ul>
2183
- <li>The <pre>--name</pre> and <pre>-n</pre> options, which lets you specify an identifier for a generated test, have been added to the <strong>generate_test.rb</strong> tool.</li>
2184
- </ul>
2185
-
2186
-
2187
- <ul>
2188
- <li>Running <pre>rake clobber</pre> in an example directory no longer destroys documentation in the Ruby-VPI directory.</li>
2189
- </ul>
2190
-
2191
-
2192
- <ul>
2193
- <li>The examples&#8217; Rakefiles now invoke all tests present in the directory via the <tt>launcher_template.rake</tt> template.</li>
2194
- </ul>
2195
-
2196
-
2197
- <ul>
2198
- <li>The Rake template for test runners (generated by <tt>tools/generate_test.rb</tt>) has moved from <tt>examples/template.rake</tt> to <tt>examples/runner_template.rake</tt>.</li>
2199
- </ul>
2200
-
2201
-
2202
- <h3>VPI utility layer</h3>
2203
-
2204
-
2205
- <ul>
2206
- <li>The value of a handle&#8217;s boolean VPI property is treated as <code class="code"><span style="color:#038; font-weight:bold">false</span></code> if it is zero, because zero is <code class="code"><span style="color:#038; font-weight:bold">false</span></code> in the C language.</li>
2207
- </ul>
2208
-
2209
- </div>
2210
-
2211
- <hr style="display: none"/>
2212
-
2213
- <div id="a5.0.0" class="section">
2214
- <h1 class="title">
2215
- <a href="#a-607002018" class="ref">36</a>
2216
-
2217
- &nbsp;
2218
-
2219
- Version 5.0.0 (2006-07-22)
2220
- </h1>
2221
-
2222
- This release enhances the VPI utility layer and adds new content to the user manual.
2223
-
2224
-
2225
- <h2>Thanks</h2>
2226
-
2227
-
2228
- <ul>
2229
- <li>Jan Decaluwe corrected the description of MyHDL in the user manual.</li>
2230
- </ul>
2231
-
2232
-
2233
- <h2>Caution</h2>
2234
-
2235
-
2236
- <ul>
2237
- <li>SWIG is no longer required for users because its output is included in the release package.</li>
2238
- </ul>
2239
-
2240
-
2241
- <ul>
2242
- <li>The <code class="code">handle.value</code> and <code class="code">handle.value=</code> methods have been removed.</li>
2243
- </ul>
2244
-
2245
-
2246
- <h2>Details</h2>
2247
-
2248
-
2249
- <ul>
2250
- <li>The VPI utility layer provides access to VPI properties of handles in a <a href="manual.html#background.org.vpi">simpler, more powerful way</a>.</li>
2251
- </ul>
2252
-
2253
-
2254
- <ul>
2255
- <li>All VPI properties, except delay values, are now accessible from a handle.</li>
2256
- </ul>
2257
-
2258
-
2259
- <ul>
2260
- <li>The user manual has been revised and new content in the organization and usage sections has been added.</li>
2261
- </ul>
2262
-
2263
-
2264
- <ul>
2265
- <li>This release was tested and developed using:
2266
- <ul>
2267
- <li>Ruby 1.8.4 and Icarus Verilog 0.8 on i686 GNU/Linux</li>
2268
- <li>Ruby 1.8.4 and Mentor Modelsim 6.1d on x86_64 GNU/Linux</li>
2269
- </ul></li>
2270
- </ul>
2271
-
2272
- </div>
2273
-
2274
- <hr style="display: none"/>
2275
-
2276
- <div id="a4.0.0" class="section">
2277
- <h1 class="title">
2278
- <a href="#a-607004648" class="ref">37</a>
2279
-
2280
- &nbsp;
2281
-
2282
- Version 4.0.0 (2006-05-25)
2283
- </h1>
2284
-
2285
- 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.
2286
-
2287
-
2288
- <h2>Thanks</h2>
2289
-
2290
-
2291
- <ul>
2292
- <li>Jose Renau solved the problem of strange delays that occurred whenever a design was reset.</li>
2293
- </ul>
2294
-
2295
-
2296
- <h2>Caution</h2>
2297
-
2298
-
2299
- <ul>
2300
- <li>Rake has replaced the role of <strong>make</strong>. All makefiles have been converted accordingly.</li>
2301
- </ul>
2302
-
2303
-
2304
- <ul>
2305
- <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>
2306
- </ul>
2307
-
2308
-
2309
- <h2>Details</h2>
2310
-
2311
-
2312
- <ul>
2313
- <li>A comprehensive user manual, written in DocBook-XML, has been added.</li>
2314
- </ul>
2315
-
2316
-
2317
- <ul>
2318
- <li>Support for RSpec 0.5.4 has been added.
2319
- <ul>
2320
- <li>The counter example now makes use of RSpec.</li>
2321
- </ul></li>
2322
- </ul>
2323
-
2324
-
2325
- <ul>
2326
- <li>This release was tested and developed using:
2327
- <ul>
2328
- <li>Ruby 1.8.4 and Icarus Verilog 0.8 on i686 GNU/Linux</li>
2329
- <li>Ruby 1.8.4 and Mentor Modelsim 6.1d on x86_64 GNU/Linux</li>
2330
- </ul></li>
2331
- </ul>
2332
-
2333
- </div>
2334
-
2335
- <hr style="display: none"/>
2336
-
2337
- <div id="a3.2.0" class="section">
2338
- <h1 class="title">
2339
- <a href="#a-607007158" class="ref">38</a>
2340
-
2341
- &nbsp;
2342
-
2343
- Version 3.2.0 (2006-05-13)
2344
- </h1>
2345
-
2346
- 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.
2347
-
2348
-
2349
- <h2>Thanks</h2>
2350
-
2351
-
2352
- <ul>
2353
- <li>Scott L Holmes helped me <a href="http://article.gmane.org/gmane.comp.lang.ruby.general/150087">use the RSpec library without its runner</a> program.</li>
2354
- </ul>
2355
-
2356
-
2357
- <h2>Details</h2>
2358
-
2359
-
2360
- <ul>
2361
- <li>A tool, which generates most of a Ruby-VPI test bench from a Verilog 2001 module declaration, has been added.</li>
2362
- </ul>
2363
-
2364
-
2365
- <ul>
2366
- <li>Ability to use RSpec in a test bench has been added.</li>
2367
- </ul>
2368
-
2369
-
2370
- <ul>
2371
- <li>Ability to specify arbitrary command-line arguments to Verilog simulators has been added in the examples&#8217; makefile template.</li>
2372
- </ul>
2373
-
2374
-
2375
- <ul>
2376
- <li>This release was tested and developed using:
2377
- <ul>
2378
- <li>Ruby 1.8.4 and Icarus Verilog 0.8 on i686 GNU/Linux</li>
2379
- <li>Ruby 1.8.4 and Mentor Modelsim 6.1d on x86_64 GNU/Linux</li>
2380
- </ul></li>
2381
- </ul>
2382
-
2383
- </div>
2384
-
2385
- <hr style="display: none"/>
2386
-
2387
- <div id="a3.1.0" class="section">
2388
- <h1 class="title">
2389
- <a href="#a-607009748" class="ref">39</a>
2390
-
2391
- &nbsp;
2392
-
2393
- Version 3.1.0 (2006-04-28)
2394
- </h1>
2395
-
2396
- 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.
2397
-
2398
-
2399
- <h2>Caution</h2>
2400
-
2401
-
2402
- <ul>
2403
- <li>The <strong>msim</strong> Makefile target for Mentor Modelsim has been renamed back to <strong>vsim</strong>.</li>
2404
- </ul>
2405
-
2406
-
2407
- <h2>Details</h2>
2408
-
2409
-
2410
- <ul>
2411
- <li>Simple, consistent ways of reading and writing values to handles have been added to the VPI utility layer. These ways are described in the <code class="code"><span style="color:#036; font-weight:bold">SWIG</span>::<span style="color:#036; font-weight:bold">TYPE_p_unsigned_int</span></code> class&#8217; documentation.</li>
2412
- </ul>
2413
-
2414
-
2415
- <ul>
2416
- <li>The makefiles now use the <strong>rbconfig</strong> library to determine the default compiler and linker flags for Ruby.</li>
2417
- </ul>
2418
-
2419
-
2420
- <ul>
2421
- <li>A race condition in the pipelined ALU example has been fixed. This example should now run successfully in all Verilog simulators.</li>
2422
- </ul>
2423
-
2424
-
2425
- <ul>
2426
- <li>The project wiki has been abandoned in favor of RDoc.</li>
2427
- </ul>
2428
-
2429
-
2430
- <ul>
2431
- <li>The project website is now generated by RDoc.</li>
2432
- </ul>
2433
-
2434
-
2435
- <ul>
2436
- <li>This release was tested and developed using:
2437
- <ul>
2438
- <li>Ruby 1.8.4 and Icarus Verilog 0.8 on i686 GNU/Linux</li>
2439
- <li>Ruby 1.8.4 and Mentor Modelsim 6.1d on x86_64 GNU/Linux</li>
2440
- </ul></li>
2441
- </ul>
2442
-
2443
- </div>
2444
-
2445
- <hr style="display: none"/>
2446
-
2447
- <div id="a3.0.0" class="section">
2448
- <h1 class="title">
2449
- <a href="#a-607012498" class="ref">40</a>
2450
-
2451
- &nbsp;
2452
-
2453
- Version 3.0.0 (2006-04-23)
2454
- </h1>
2455
-
2456
- This release adds support for the <em>entire</em> <a href="http://ieeexplore.ieee.org/xpl/standardstoc.jsp?isnumber=33945">IEEE Std. 1364-2005</a> VPI interface, and updates the examples into unit tests.
2457
-
2458
-
2459
- <h2>Thanks</h2>
2460
-
2461
-
2462
- <ul>
2463
- <li>The <a href="http://www.swig.org/guilty.html">SWIG developers</a> made this project <em>much</em> easier! ;-)</li>
2464
- </ul>
2465
-
2466
-
2467
- <h2>Caution</h2>
2468
-
2469
-
2470
- <ul>
2471
- <li>The <strong>vsim</strong> Makefile target for Mentor Modelsim has been renamed to <strong>msim</strong>.</li>
2472
- </ul>
2473
-
2474
-
2475
- <h2>Details</h2>
2476
-
2477
-
2478
- <ul>
2479
- <li>The Ruby interface to VPI is now generated by <a href="http://www.swig.org">SWIG</a>.
2480
- <ul>
2481
- <li>The main <code class="code"><span style="color:#036; font-weight:bold">VPI</span></code> module has been renamed to <code class="code"><span style="color:#036; font-weight:bold">Vpi</span></code>.</li>
2482
- <li>The <code class="code"><span style="color:#036; font-weight:bold">VPI</span>::<span style="color:#036; font-weight:bold">Handle</span></code> class has been removed.</li>
2483
- <li>The <code class="code"><span style="color:#036; font-weight:bold">VPI</span>::stop</code>, <code class="code"><span style="color:#036; font-weight:bold">VPI</span>::finish</code>, and <code class="code"><span style="color:#036; font-weight:bold">VPI</span>::reset</code> methods have been removed.</li>
2484
- </ul></li>
2485
- </ul>
2486
-
2487
-
2488
- <ul>
2489
- <li>The <a href="http://www.boydtechinc.com/ptf/archive/ptf_2005/0737.html"><em>final ballot</em> version</a> of the <tt>vpi_user.h</tt> header file is now packaged along with and used by Ruby-VPI.</li>
2490
- </ul>
2491
-
2492
-
2493
- <ul>
2494
- <li>The VPI module, its sub-classes, and its functionality have been replaced by the VPI utility layer (see <tt>src/vpi_util.rb</tt>).</li>
2495
- </ul>
2496
-
2497
-
2498
- <ul>
2499
- <li>The examples now make use of the <strong>test/unit</strong> unit testing framework.</li>
2500
- </ul>
2501
-
2502
-
2503
- <ul>
2504
- <li>The makefiles for the examples have been simplified through the use of a common template.</li>
2505
- </ul>
2506
-
2507
-
2508
- <ul>
2509
- <li>This release was tested and developed using:
2510
- <ul>
2511
- <li>Ruby 1.8.4 and Icarus Verilog 0.8 on i686 GNU/Linux</li>
2512
- <li>Ruby 1.8.4 and Mentor Modelsim 6.1d on x86_64 GNU/Linux</li>
2513
- </ul></li>
2514
- </ul>
2515
-
2516
- </div>
2517
-
2518
- <hr style="display: none"/>
2519
-
2520
- <div id="a2.0.0" class="section">
2521
- <h1 class="title">
2522
- <a href="#a-607015148" class="ref">41</a>
2523
-
2524
- &nbsp;
2525
-
2526
- Version 2.0.0 (2006-04-17)
2527
- </h1>
2528
-
2529
- This release fixes major bugs, adds support for Mentor Modelsim, and removes the <code class="code"><span style="color:#d70; font-weight:bold">$ruby_task</span></code> callback.
2530
-
2531
-
2532
- <h2>Thanks</h2>
2533
-
2534
-
2535
- <ul>
2536
- <li>Nobu Nakada explained the <a href="http://article.gmane.org/gmane.comp.lang.ruby.general/146653">cross-thread violation on rb_gc()</a> error.</li>
2537
- </ul>
2538
-
2539
-
2540
- <h2>Caution</h2>
2541
-
2542
-
2543
- <ul>
2544
- <li>Removed <code class="code"><span style="color:#d70; font-weight:bold">$ruby_task</span></code> callback and ability to dynamically register system tasks from Ruby because inter-process communication is complicated at present.</li>
2545
- </ul>
2546
-
2547
-
2548
- <h2>Details</h2>
2549
-
2550
-
2551
- <ul>
2552
- <li>The &#8220;cross-thread violation on rb_gc()&#8221; error has been fixed.
2553
- <ul>
2554
- <li>The &#8220;stack level too deep (SystemStackError)&#8221; error has been fixed.</li>
2555
- <li>The test/unit library can be used in Ruby test bench.</li>
2556
- <li>Mentor Modelsim Verilog simulator works with Ruby-VPI.</li>
2557
- </ul></li>
2558
- </ul>
2559
-
2560
-
2561
- <ul>
2562
- <li>Added piplelined ALU example.</li>
2563
- </ul>
2564
-
2565
-
2566
- <ul>
2567
- <li>This release was tested and developed using:
2568
- <ul>
2569
- <li>Ruby 1.8.4 and Icarus Verilog 0.8 on i686 GNU/Linux</li>
2570
- <li>Ruby 1.8.4 and Modelsim 6.1d on x86_64 GNU/Linux</li>
2571
- <li>Ruby 1.8.4 and Synopsys VCS-MX X-2005.06-SP1 on SPARC4 SunOS 5.10</li>
2572
- </ul></li>
2573
- </ul>
2574
-
2575
- </div>
2576
-
2577
- <hr style="display: none"/>
2578
-
2579
- <div id="a1.0.0" class="section">
2580
- <h1 class="title">
2581
- <a href="#a-607018038" class="ref">42</a>
2582
-
2583
- &nbsp;
2584
-
2585
- Version 1.0.0 (2006-02-26)
2586
- </h1>
2587
-
2588
- This release adds enough Verilog VPI functionality to make Ruby-VPI usable for simple test benches:
2589
- <ul>
2590
- <li>access Verilog objects through VPI handles</li>
2591
- <li>read and change VPI handle values</li>
2592
- <li>stop, finish, restart the simulation</li>
2593
- </ul>
2594
-
2595
-
2596
- <h2>Thanks</h2>
2597
-
2598
-
2599
- <ul>
2600
- <li>Jose Renau helped me debug how Synopsys VCS works with Verilog VPI. The problem was that VCS required calltf signatures to be <code class="code">void (*)(void)</code>, whereas the Verilog standard defines a calltf signature as <code class="code"><span style="color:#036; font-weight:bold">PLI_INT32</span> (*)(<span style="color:#036; font-weight:bold">PLI_BYTE8</span>*)</code>.</li>
2601
- </ul>
2602
-
2603
-
2604
- <ul>
2605
- <li>Ross Bamford, Eric Hodel, and Yukihiro Matsumoto <a href="http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/180662">helped me discover</a> why the <code class="code"><span style="color:#036; font-weight:bold">SystemStackError</span></code> was happening.</li>
2606
- </ul>
2607
-
2608
-
2609
- <h2>Details</h2>
2610
-
2611
-
2612
- <ul>
2613
- <li>Implemented some Verilog VPI functionality:
2614
- <ul>
2615
- <li><code class="code"><span style="color:#036; font-weight:bold">VPI</span>::handle_by_name(string, <span style="color:#036; font-weight:bold">VPI</span>::<span style="color:#036; font-weight:bold">Handle</span>)</code> &rarr; <code class="code"><span style="color:#036; font-weight:bold">VPI</span>::<span style="color:#036; font-weight:bold">Handle</span></code></li>
2616
- <li><code class="code"><span style="color:#036; font-weight:bold">VPI</span>::handle_by_name(string)</code> &rarr; <code class="code"><span style="color:#036; font-weight:bold">VPI</span>::<span style="color:#036; font-weight:bold">Handle</span></code></li>
2617
- <li><code class="code"><span style="color:#036; font-weight:bold">VPI</span>::<span style="color:#036; font-weight:bold">Handle</span>.put_value(integer)</code></li>
2618
- <li><code class="code"><span style="color:#036; font-weight:bold">VPI</span>::<span style="color:#036; font-weight:bold">Handle</span>.value = integer</code></li>
2619
- <li><code class="code"><span style="color:#036; font-weight:bold">VPI</span>::<span style="color:#036; font-weight:bold">Handle</span>.get_value</code> &rarr; <code class="code">integer</code></li>
2620
- <li><code class="code"><span style="color:#036; font-weight:bold">VPI</span>::<span style="color:#036; font-weight:bold">Handle</span>.value</code> &rarr; <code class="code">integer</code></li>
2621
- <li><code class="code"><span style="color:#036; font-weight:bold">VPI</span>::stop</code></li>
2622
- <li><code class="code"><span style="color:#036; font-weight:bold">VPI</span>::finish</code></li>
2623
- <li><code class="code"><span style="color:#036; font-weight:bold">VPI</span>::reset</code></li>
2624
- </ul></li>
2625
- </ul>
2626
-
2627
-
2628
- <ul>
2629
- <li>Implemented some additional functionality:
2630
- <ul>
2631
- <li><code class="code"><span style="color:#036; font-weight:bold">VPI</span>::register_task(string, &amp;proc)</code></li>
2632
- </ul></li>
2633
- </ul>
2634
-
2635
-
2636
- <ul>
2637
- <li>Added ability to pass arbitrary command-line arguments to the Ruby interpreter (using <code class="code"><span style="color:#d70; font-weight:bold">$ruby_init</span></code>). Now you can invoke any Ruby script you want, instead of <tt>pli_init.rb</tt>.</li>
2638
- </ul>
2639
-
2640
-
2641
- <ul>
2642
- <li>Added ability to dynamically register system tasks from Ruby, using <code class="code"><span style="color:#036; font-weight:bold">VPI</span>::register_task(<span style="background-color:#fff0f0"><span style="color:#710">&quot;</span><span style="color:#D20">task name</span><span style="color:#710">&quot;</span></span>)</code>, and call them from Verilog, using <code class="code"><span style="color:#d70; font-weight:bold">$ruby_task</span>(<span style="background-color:#fff0f0"><span style="color:#710">&quot;</span><span style="color:#D20">task name</span><span style="color:#710">&quot;</span></span>)</code>.</li>
2643
- </ul>
2644
-
2645
-
2646
- <ul>
2647
- <li>Added <code class="code"><span style="color:#036; font-weight:bold">VPI</span>::<span style="color:#036; font-weight:bold">Handle</span></code> class which encapsulates a <code class="code">vpiHandle</code> VPI object.</li>
2648
- </ul>
2649
-
2650
-
2651
- <ul>
2652
- <li>This release was tested and developed using:
2653
- <ul>
2654
- <li>Ruby 1.8.2 and Icarus Verilog 0.8 on i686 GNU/Linux</li>
2655
- <li>Ruby 1.8.4, Synopsys <span class="caps">VCS X</span>-2005.06, and Mentor Modelsim 6.1b on i686 GNU/Linux</li>
2656
- </ul></li>
2657
- </ul>
2658
-
2659
- </div>
2660
-
2661
- <hr style="display: none"/>
2662
-
2663
- <div id="a0.0.0" class="section">
2664
- <h1 class="title">
2665
- <a href="#a-607020328" class="ref">43</a>
2666
-
2667
- &nbsp;
2668
-
2669
- Version 0.0.0 (1999-10-31)
2670
- </h1>
2671
-
2672
- This is Kazuhiro HIWADA&#8217;s initial testing release of Ruby-VPI. See its <a href="http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-list/18193">original announcement</a> and <a href="http://rubyforge.org/frs/?group_id=1339&#38;release_id=8852">source code</a>.
2673
-
2674
-
2675
- <h2>Details</h2>
2676
-
2677
-
2678
- <ul>
2679
- <li>Added ability to relay control from Verilog test bench to Ruby (using <code class="code"><span style="color:#d70; font-weight:bold">$ruby_callback</span></code>) and vice versa (using <code class="code"><span style="color:#036; font-weight:bold">PLI</span>::relay_Verilog</code>).</li>
2680
- </ul>
2681
-
2682
-
2683
- <ul>
2684
- <li>Tested and developed using Ruby 1.4 and Verilog-XL from Cadence systems, on a SPARC machine running Solaris 2.6.</li>
2685
- </ul>
2686
-
2687
- </div>
2688
-
2689
- <br/>
2690
- <hr/>
2691
- This website is maintained by Suraj N. Kurapati (SNK at GNA dot ORG). This particular webpage was last updated on Mon Aug 27 19:26:45 -0700 2007.
2692
- </div>
2693
- </body>
2694
- </html>