ruby-vpi 9.0.0 → 10.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (250) hide show
  1. data/HISTORY +120 -56
  2. data/MEMO +8 -0
  3. data/README +1 -1
  4. data/Rakefile +2 -2
  5. data/bin/generate_test.rb +11 -12
  6. data/bin/generate_test_tpl/bench.rb +2 -2
  7. data/bin/generate_test_tpl/bench.v +1 -4
  8. data/bin/generate_test_tpl/design.rb +6 -20
  9. data/bin/generate_test_tpl/proto.rb +5 -3
  10. data/bin/generate_test_tpl/runner.rake +2 -1
  11. data/bin/generate_test_tpl/spec.rb +5 -12
  12. data/doc/background.organization.html +1 -1
  13. data/doc/background.running-tests.html +1 -1
  14. data/doc/index.html +2 -2
  15. data/doc/manual.txt +276 -223
  16. data/doc/problem.ivl.html +3 -3
  17. data/doc/problems.html +1 -1
  18. data/doc/problems.ruby.html +1 -1
  19. data/doc/problems.vsim.html +1 -1
  20. data/doc/setup.html +3 -0
  21. data/doc/setup.installation.html +9 -0
  22. data/doc/setup.maintenance.html +3 -0
  23. data/doc/setup.reqs.html +3 -0
  24. data/doc/src/manual.xml +232 -195
  25. data/doc/styles/manual.css +8 -0
  26. data/doc/usage.examples.html +1 -1
  27. data/doc/usage.html +1 -1
  28. data/doc/usage.tools.html +7 -1
  29. data/doc/usage.tutorial.html +50 -56
  30. data/history.html +195 -77
  31. data/history.part.html +195 -77
  32. data/lib/ruby-vpi/vpi.rb +13 -1
  33. data/lib/ruby-vpi.rb +18 -7
  34. data/memo.html +19 -0
  35. data/memo.part.html +19 -0
  36. data/readme.html +1 -1
  37. data/readme.part.html +1 -1
  38. data/samp/counter/counter_rspec_bench.rb +2 -2
  39. data/samp/counter/counter_rspec_bench.v +1 -4
  40. data/samp/counter/counter_rspec_design.rb +4 -18
  41. data/samp/counter/counter_rspec_proto.rb +7 -5
  42. data/samp/counter/counter_rspec_runner.rake +2 -1
  43. data/samp/counter/counter_rspec_spec.rb +8 -12
  44. data/samp/counter/counter_xunit_bench.rb +2 -2
  45. data/samp/counter/counter_xunit_bench.v +1 -4
  46. data/samp/counter/counter_xunit_design.rb +4 -18
  47. data/samp/counter/counter_xunit_proto.rb +7 -5
  48. data/samp/counter/counter_xunit_runner.rake +2 -1
  49. data/samp/counter/counter_xunit_spec.rb +8 -14
  50. data/samp/pipelined_alu/hw5_unit_test_bench.rb +3 -3
  51. data/samp/pipelined_alu/hw5_unit_test_bench.v +1 -4
  52. data/samp/pipelined_alu/hw5_unit_test_design.rb +49 -65
  53. data/samp/pipelined_alu/hw5_unit_test_proto.rb +9 -5
  54. data/samp/pipelined_alu/hw5_unit_test_runner.rake +2 -1
  55. data/samp/pipelined_alu/hw5_unit_test_spec.rb +18 -21
  56. metadata +8 -242
  57. data/doc/usage.installation.html +0 -9
  58. data/doc/usage.recommendations.html +0 -3
  59. data/doc/usage.requirements.html +0 -3
  60. data/ref/c/annotated.html +0 -35
  61. data/ref/c/common_8h.html +0 -146
  62. data/ref/c/doxygen.css +0 -358
  63. data/ref/c/doxygen.png +0 -0
  64. data/ref/c/files.html +0 -34
  65. data/ref/c/functions.html +0 -134
  66. data/ref/c/functions_vars.html +0 -134
  67. data/ref/c/globals.html +0 -55
  68. data/ref/c/globals_0x63.html +0 -86
  69. data/ref/c/globals_0x65.html +0 -55
  70. data/ref/c/globals_0x66.html +0 -55
  71. data/ref/c/globals_0x70.html +0 -71
  72. data/ref/c/globals_0x72.html +0 -62
  73. data/ref/c/globals_0x73.html +0 -65
  74. data/ref/c/globals_0x74.html +0 -55
  75. data/ref/c/globals_0x76.html +0 -472
  76. data/ref/c/globals_0x78.html +0 -55
  77. data/ref/c/globals_defs.html +0 -81
  78. data/ref/c/globals_defs_0x65.html +0 -50
  79. data/ref/c/globals_defs_0x70.html +0 -51
  80. data/ref/c/globals_defs_0x76.html +0 -463
  81. data/ref/c/globals_defs_0x78.html +0 -50
  82. data/ref/c/globals_enum.html +0 -39
  83. data/ref/c/globals_eval.html +0 -40
  84. data/ref/c/globals_func.html +0 -49
  85. data/ref/c/globals_type.html +0 -63
  86. data/ref/c/globals_vars.html +0 -42
  87. data/ref/c/index.html +0 -20
  88. data/ref/c/relay_8c.html +0 -214
  89. data/ref/c/relay_8h.html +0 -129
  90. data/ref/c/structrelay____RubyOptions____def.html +0 -67
  91. data/ref/c/structt__cb__data.html +0 -151
  92. data/ref/c/structt__vpi__delay.html +0 -134
  93. data/ref/c/structt__vpi__error__info.html +0 -151
  94. data/ref/c/structt__vpi__strengthval.html +0 -83
  95. data/ref/c/structt__vpi__systf__data.html +0 -151
  96. data/ref/c/structt__vpi__time.html +0 -100
  97. data/ref/c/structt__vpi__value.html +0 -204
  98. data/ref/c/structt__vpi__vecval.html +0 -66
  99. data/ref/c/structt__vpi__vlog__info.html +0 -100
  100. data/ref/c/swig_8c.html +0 -80
  101. data/ref/c/swig_8h.html +0 -83
  102. data/ref/c/tab_b.gif +0 -0
  103. data/ref/c/tab_l.gif +0 -0
  104. data/ref/c/tab_r.gif +0 -0
  105. data/ref/c/tabs.css +0 -102
  106. data/ref/c/verilog_8h.html +0 -117
  107. data/ref/c/vlog_8c.html +0 -168
  108. data/ref/c/vlog_8h.html +0 -128
  109. data/ref/c/vpi__user_8h.html +0 -8739
  110. data/ref/ruby/classes/ERB.html +0 -158
  111. data/ref/ruby/classes/ERB.src/M000034.html +0 -29
  112. data/ref/ruby/classes/FileUtils.html +0 -165
  113. data/ref/ruby/classes/FileUtils.src/M000089.html +0 -18
  114. data/ref/ruby/classes/FileUtils.src/M000090.html +0 -18
  115. data/ref/ruby/classes/Integer.html +0 -398
  116. data/ref/ruby/classes/Integer.src/M000012.html +0 -25
  117. data/ref/ruby/classes/Integer.src/M000013.html +0 -18
  118. data/ref/ruby/classes/Integer.src/M000014.html +0 -18
  119. data/ref/ruby/classes/Integer.src/M000015.html +0 -18
  120. data/ref/ruby/classes/Integer.src/M000016.html +0 -18
  121. data/ref/ruby/classes/Integer.src/M000017.html +0 -18
  122. data/ref/ruby/classes/Integer.src/M000020.html +0 -22
  123. data/ref/ruby/classes/Integer.src/M000021.html +0 -22
  124. data/ref/ruby/classes/Integer.src/M000022.html +0 -25
  125. data/ref/ruby/classes/Integer.src/M000023.html +0 -31
  126. data/ref/ruby/classes/Integer.src/M000024.html +0 -25
  127. data/ref/ruby/classes/Integer.src/M000025.html +0 -30
  128. data/ref/ruby/classes/OutputInfo.html +0 -299
  129. data/ref/ruby/classes/OutputInfo.src/M000030.html +0 -51
  130. data/ref/ruby/classes/RDoc.html +0 -135
  131. data/ref/ruby/classes/RDoc.src/M000093.html +0 -40
  132. data/ref/ruby/classes/RubyVpi/Config.html +0 -148
  133. data/ref/ruby/classes/RubyVpi.html +0 -186
  134. data/ref/ruby/classes/RubyVpi.src/M000091.html +0 -50
  135. data/ref/ruby/classes/RubyVpi.src/M000092.html +0 -20
  136. data/ref/ruby/classes/SWIG/TYPE_p_unsigned_int.html +0 -407
  137. data/ref/ruby/classes/SWIG/TYPE_p_unsigned_int.src/M000081.html +0 -18
  138. data/ref/ruby/classes/SWIG/TYPE_p_unsigned_int.src/M000082.html +0 -18
  139. data/ref/ruby/classes/SWIG/TYPE_p_unsigned_int.src/M000083.html +0 -22
  140. data/ref/ruby/classes/SWIG/TYPE_p_unsigned_int.src/M000084.html +0 -44
  141. data/ref/ruby/classes/SWIG/TYPE_p_unsigned_int.src/M000085.html +0 -82
  142. data/ref/ruby/classes/SWIG/TYPE_p_unsigned_int.src/M000086.html +0 -127
  143. data/ref/ruby/classes/SWIG/TYPE_p_unsigned_int.src/M000087.html +0 -26
  144. data/ref/ruby/classes/SWIG/TYPE_p_unsigned_int.src/M000088.html +0 -18
  145. data/ref/ruby/classes/SWIG.html +0 -111
  146. data/ref/ruby/classes/String.html +0 -158
  147. data/ref/ruby/classes/String.src/M000032.html +0 -41
  148. data/ref/ruby/classes/String.src/M000033.html +0 -18
  149. data/ref/ruby/classes/Table.html +0 -191
  150. data/ref/ruby/classes/Table.src/M000026.html +0 -38
  151. data/ref/ruby/classes/Table.src/M000027.html +0 -18
  152. data/ref/ruby/classes/Table.src/M000028.html +0 -18
  153. data/ref/ruby/classes/Table.src/M000029.html +0 -18
  154. data/ref/ruby/classes/Template.html +0 -158
  155. data/ref/ruby/classes/Template.src/M000031.html +0 -18
  156. data/ref/ruby/classes/VerilogParser/Module/Parameter.html +0 -160
  157. data/ref/ruby/classes/VerilogParser/Module/Parameter.src/M000011.html +0 -21
  158. data/ref/ruby/classes/VerilogParser/Module/Port.html +0 -207
  159. data/ref/ruby/classes/VerilogParser/Module/Port.src/M000007.html +0 -21
  160. data/ref/ruby/classes/VerilogParser/Module/Port.src/M000008.html +0 -18
  161. data/ref/ruby/classes/VerilogParser/Module/Port.src/M000009.html +0 -18
  162. data/ref/ruby/classes/VerilogParser/Module/Port.src/M000010.html +0 -18
  163. data/ref/ruby/classes/VerilogParser/Module.html +0 -172
  164. data/ref/ruby/classes/VerilogParser/Module.src/M000006.html +0 -29
  165. data/ref/ruby/classes/VerilogParser.html +0 -187
  166. data/ref/ruby/classes/VerilogParser.src/M000005.html +0 -34
  167. data/ref/ruby/classes/XX/Document.html +0 -295
  168. data/ref/ruby/classes/XX/Document.src/M000072.html +0 -22
  169. data/ref/ruby/classes/XX/Document.src/M000073.html +0 -20
  170. data/ref/ruby/classes/XX/Document.src/M000074.html +0 -20
  171. data/ref/ruby/classes/XX/Document.src/M000075.html +0 -20
  172. data/ref/ruby/classes/XX/Document.src/M000076.html +0 -22
  173. data/ref/ruby/classes/XX/Document.src/M000077.html +0 -21
  174. data/ref/ruby/classes/XX/Document.src/M000078.html +0 -21
  175. data/ref/ruby/classes/XX/Document.src/M000079.html +0 -34
  176. data/ref/ruby/classes/XX/Document.src/M000080.html +0 -98
  177. data/ref/ruby/classes/XX/HTML4/Strict.html +0 -138
  178. data/ref/ruby/classes/XX/HTML4/Strict.src/M000038.html +0 -20
  179. data/ref/ruby/classes/XX/HTML4/Transitional.html +0 -138
  180. data/ref/ruby/classes/XX/HTML4/Transitional.src/M000037.html +0 -20
  181. data/ref/ruby/classes/XX/HTML4.html +0 -145
  182. data/ref/ruby/classes/XX/HTML4.src/M000036.html +0 -20
  183. data/ref/ruby/classes/XX/Markup/ClassMethods.html +0 -236
  184. data/ref/ruby/classes/XX/Markup/ClassMethods.src/M000044.html +0 -22
  185. data/ref/ruby/classes/XX/Markup/ClassMethods.src/M000045.html +0 -20
  186. data/ref/ruby/classes/XX/Markup/ClassMethods.src/M000046.html +0 -25
  187. data/ref/ruby/classes/XX/Markup/ClassMethods.src/M000047.html +0 -20
  188. data/ref/ruby/classes/XX/Markup/ClassMethods.src/M000048.html +0 -27
  189. data/ref/ruby/classes/XX/Markup/ClassMethods.src/M000049.html +0 -20
  190. data/ref/ruby/classes/XX/Markup/ClassMethods.src/M000050.html +0 -27
  191. data/ref/ruby/classes/XX/Markup/ClassMethods.src/M000051.html +0 -22
  192. data/ref/ruby/classes/XX/Markup/Error.html +0 -111
  193. data/ref/ruby/classes/XX/Markup/InstanceMethods.html +0 -474
  194. data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000052.html +0 -56
  195. data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000053.html +0 -33
  196. data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000054.html +0 -31
  197. data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000055.html +0 -48
  198. data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000056.html +0 -20
  199. data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000057.html +0 -31
  200. data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000058.html +0 -32
  201. data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000059.html +0 -32
  202. data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000060.html +0 -28
  203. data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000061.html +0 -23
  204. data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000062.html +0 -26
  205. data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000063.html +0 -20
  206. data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000064.html +0 -20
  207. data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000065.html +0 -20
  208. data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000066.html +0 -20
  209. data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000067.html +0 -20
  210. data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000068.html +0 -21
  211. data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000069.html +0 -20
  212. data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000070.html +0 -20
  213. data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000071.html +0 -20
  214. data/ref/ruby/classes/XX/Markup.html +0 -160
  215. data/ref/ruby/classes/XX/Markup.src/M000043.html +0 -28
  216. data/ref/ruby/classes/XX/XHTML/Strict.html +0 -138
  217. data/ref/ruby/classes/XX/XHTML/Strict.src/M000041.html +0 -20
  218. data/ref/ruby/classes/XX/XHTML/Transitional.html +0 -138
  219. data/ref/ruby/classes/XX/XHTML/Transitional.src/M000040.html +0 -20
  220. data/ref/ruby/classes/XX/XHTML.html +0 -145
  221. data/ref/ruby/classes/XX/XHTML.src/M000039.html +0 -36
  222. data/ref/ruby/classes/XX/XML.html +0 -138
  223. data/ref/ruby/classes/XX/XML.src/M000035.html +0 -20
  224. data/ref/ruby/classes/XX/XMLish.html +0 -138
  225. data/ref/ruby/classes/XX/XMLish.src/M000042.html +0 -18
  226. data/ref/ruby/classes/XX.html +0 -138
  227. data/ref/ruby/created.rid +0 -1
  228. data/ref/ruby/files/bin/generate_test_rb.html +0 -245
  229. data/ref/ruby/files/bin/generate_test_rb.src/M000001.html +0 -18
  230. data/ref/ruby/files/bin/generate_test_rb.src/M000002.html +0 -39
  231. data/ref/ruby/files/bin/header_to_ruby_rb.html +0 -125
  232. data/ref/ruby/files/lib/ruby-vpi/erb_rb.html +0 -108
  233. data/ref/ruby/files/lib/ruby-vpi/integer_rb.html +0 -101
  234. data/ref/ruby/files/lib/ruby-vpi/rake_rb.html +0 -108
  235. data/ref/ruby/files/lib/ruby-vpi/rcov_rb.html +0 -111
  236. data/ref/ruby/files/lib/ruby-vpi/rdoc_rb.html +0 -108
  237. data/ref/ruby/files/lib/ruby-vpi/rspec_rb.html +0 -115
  238. data/ref/ruby/files/lib/ruby-vpi/runner_proxy_rb.html +0 -108
  239. data/ref/ruby/files/lib/ruby-vpi/runner_rb.html +0 -208
  240. data/ref/ruby/files/lib/ruby-vpi/runner_rb.src/M000003.html +0 -24
  241. data/ref/ruby/files/lib/ruby-vpi/runner_rb.src/M000004.html +0 -26
  242. data/ref/ruby/files/lib/ruby-vpi/verilog_parser_rb.html +0 -107
  243. data/ref/ruby/files/lib/ruby-vpi/vpi_rb.html +0 -108
  244. data/ref/ruby/files/lib/ruby-vpi/xx_rb.html +0 -148
  245. data/ref/ruby/files/lib/ruby-vpi_rb.html +0 -109
  246. data/ref/ruby/fr_class_index.html +0 -56
  247. data/ref/ruby/fr_file_index.html +0 -40
  248. data/ref/ruby/fr_method_index.html +0 -119
  249. data/ref/ruby/index.html +0 -24
  250. data/ref/ruby/rdoc-style.css +0 -208
data/doc/problem.ivl.html CHANGED
@@ -1,15 +1,15 @@
1
1
  <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
2
  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3
- <html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Icarus Verilog</title><link rel="stylesheet" href="styles/manual.css" type="text/css" /><meta name="generator" content="DocBook XSL Stylesheets V1.68.1" /><link rel="start" href="index.html" title="Ruby-VPI user manual" /><link rel="up" href="problems.html" title="Chapter 4. Known problems" /><link rel="prev" href="problems.ruby.html" title="Ruby" /><link rel="next" href="problems.vsim.html" title="Mentor Modelsim" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Icarus Verilog</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="problems.ruby.html"><img src="images/prev.png" alt="Prev" /></a> </td><th width="60%" align="center">Chapter 4. Known problems</th><td width="20%" align="right"> <a accesskey="n" href="problems.vsim.html"><img src="images/next.png" alt="Next" /></a></td></tr></table><hr /></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="problem.ivl"></a>Icarus Verilog</h2></div></div></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="problems.ivl.vpi_handle_by_name"></a>vpi_handle_by_name</h3></div></div></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h4 class="title"><a id="problems.ivl.vpi_handle_by_name.absolute-paths"></a>Give full paths to Verilog objects</h4></div></div></div><p>In version 0.8 of Icarus Verilog, the <code class="function">vpi_handle_by_name</code> function requires an <span class="emphasis"><em>absolute</em></span> path (including the name of the bench which instantiates the design) to a Verilog object.</p><p>For example, consider <a href="problem.ivl.html#ex..TestFoo" title="Example 4.1. Part of a bench which instantiates a Verilog design">Example 4.1, “Part of a bench which instantiates a Verilog design”</a>. Here, one needs to specify <code class="code">TestFoo.my_foo.clk</code> instead of <code class="code">my_foo.clk</code> in order to access the <code class="varname">clk</code> input of the <code class="varname">my_foo</code> module instance.</p><div class="example"><a id="ex..TestFoo"></a><p class="title"><b>Example 4.1. Part of a bench which instantiates a Verilog design</b></p><pre class="programlisting">
3
+ <html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Icarus Verilog</title><link rel="stylesheet" href="styles/manual.css" type="text/css" /><meta name="generator" content="DocBook XSL Stylesheets V1.68.1" /><link rel="start" href="index.html" title="Ruby-VPI user manual" /><link rel="up" href="problems.html" title="Chapter 5. Known problems" /><link rel="prev" href="problems.ruby.html" title="Ruby" /><link rel="next" href="problems.vsim.html" title="Mentor Modelsim" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Icarus Verilog</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="problems.ruby.html"><img src="images/prev.png" alt="Prev" /></a> </td><th width="60%" align="center">Chapter 5. Known problems</th><td width="20%" align="right"> <a accesskey="n" href="problems.vsim.html"><img src="images/next.png" alt="Next" /></a></td></tr></table><hr /></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="problem.ivl"></a>Icarus Verilog</h2></div></div></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="problems.ivl.vpi_handle_by_name"></a>vpi_handle_by_name</h3></div></div></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h4 class="title"><a id="problems.ivl.vpi_handle_by_name.absolute-paths"></a>Give full paths to Verilog objects</h4></div></div></div><p>In version 0.8 and snapshot 20061009 of Icarus Verilog, the <code class="function">vpi_handle_by_name</code> function requires an <span class="emphasis"><em>absolute</em></span> path (including the name of the bench which instantiates the design) to a Verilog object. In addition, <code class="function">vpi_handle_by_name</code> is unable to retrieve the handle for a module parameter.</p><p>For example, consider <a href="problem.ivl.html#ex..TestFoo" title="Example 5.1. Part of a bench which instantiates a Verilog design">Example 5.1, “Part of a bench which instantiates a Verilog design”</a>. Here, one needs to specify <code class="code">TestFoo.my_foo.clk</code> instead of <code class="code">my_foo.clk</code> in order to access the <code class="varname">clk</code> input of the <code class="varname">my_foo</code> module instance.</p><div class="example"><a id="ex..TestFoo"></a><p class="title"><b>Example 5.1. Part of a bench which instantiates a Verilog design</b></p><pre class="programlisting">
4
4
  <span class="token">module</span> TestFoo;
5
5
  <span class="type">reg</span> <code class="varname">clk_reg</code>;
6
6
  Foo <code class="varname">my_foo</code>(<em class="parameter"><code>.clk</code></em>(<code class="varname">clk_reg</code>));
7
7
  <span class="token">endmodule</span>
8
- </pre></div></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h4 class="title"><a id="problems.ivl.vpi_handle_by_name.connect-registers"></a>Registers must be connected</h4></div></div></div><p>In version 0.8 of Icarus Verilog, if you want to access a register in a design, then it must be connected to something (either assigned to a wire or passed as a parameter to a module instantiation). Otherwise, you will get a <code class="literal">nil</code> value as the result of <code class="function">vpi_handle_by_name</code> method.</p><p>For example, suppose you wanted to access the <code class="varname">clk_reg</code> register, from the bench shown in <a href="problem.ivl.html#ex..TestFoo_bad" title="Example 4.2. Bad design with unconnected registers">Example 4.2, “Bad design with unconnected registers”</a>. If you execute the statement <code class="code"><code class="varname">clk_reg</code> = <code class="function">vpi_handle_by_name</code>(<em class="parameter"><code><code class="literal">"TestFoo.clk_reg"</code></code></em>, <em class="parameter"><code><code class="literal">nil</code></code></em>)</code> in a specification, then you will discover that the <code class="function">vpi_handle_by_name</code> method returns <code class="literal">nil</code> instead of a handle to the <code class="varname">clk_reg</code> register.</p><p>The solution is to change the design such that it appears like the one shown in <a href="problem.ivl.html#ex..TestFoo_fix" title="Example 4.3. Fixed design with wired registers">Example 4.3, “Fixed design with wired registers”</a> where the register is connected to a wire, or <a href="problem.ivl.html#ex..TestFoo" title="Example 4.1. Part of a bench which instantiates a Verilog design">Example 4.1, “Part of a bench which instantiates a Verilog design”</a> where the register is connected to a module instantiation.</p><div class="example"><a id="ex..TestFoo_bad"></a><p class="title"><b>Example 4.2. Bad design with unconnected registers</b></p><p>Here the <code class="varname">clk_reg</code> register is not connected to anything.</p><pre class="programlisting">
8
+ </pre></div></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h4 class="title"><a id="problems.ivl.vpi_handle_by_name.connect-registers"></a>Registers must be connected</h4></div></div></div><p>In version 0.8 of Icarus Verilog, if you want to access a register in a design, then it must be connected to something (either assigned to a wire or passed as a parameter to a module instantiation). Otherwise, you will get a <code class="literal">nil</code> value as the result of <code class="function">vpi_handle_by_name</code> method.</p><p>For example, suppose you wanted to access the <code class="varname">clk_reg</code> register, from the bench shown in <a href="problem.ivl.html#ex..TestFoo_bad" title="Example 5.2. Bad design with unconnected registers">Example 5.2, “Bad design with unconnected registers”</a>. If you execute the statement <code class="code"><code class="varname">clk_reg</code> = <code class="function">vpi_handle_by_name</code>(<em class="parameter"><code><code class="literal">"TestFoo.clk_reg"</code></code></em>, <em class="parameter"><code><code class="literal">nil</code></code></em>)</code> in a specification, then you will discover that the <code class="function">vpi_handle_by_name</code> method returns <code class="literal">nil</code> instead of a handle to the <code class="varname">clk_reg</code> register.</p><p>The solution is to change the design such that it appears like the one shown in <a href="problem.ivl.html#ex..TestFoo_fix" title="Example 5.3. Fixed design with wired registers">Example 5.3, “Fixed design with wired registers”</a> where the register is connected to a wire, or <a href="problem.ivl.html#ex..TestFoo" title="Example 5.1. Part of a bench which instantiates a Verilog design">Example 5.1, “Part of a bench which instantiates a Verilog design”</a> where the register is connected to a module instantiation.</p><div class="example"><a id="ex..TestFoo_bad"></a><p class="title"><b>Example 5.2. Bad design with unconnected registers</b></p><p>Here the <code class="varname">clk_reg</code> register is not connected to anything.</p><pre class="programlisting">
9
9
  <span class="token">module</span> TestFoo;
10
10
  <span class="type">reg</span> <code class="varname">clk_reg</code>;
11
11
  <span class="token">endmodule</span>
12
- </pre></div><div class="example"><a id="ex..TestFoo_fix"></a><p class="title"><b>Example 4.3. Fixed design with wired registers</b></p><p>Here the <code class="varname">clk_reg</code> register is connected to the <code class="varname">clk_wire</code> wire.</p><pre class="programlisting">
12
+ </pre></div><div class="example"><a id="ex..TestFoo_fix"></a><p class="title"><b>Example 5.3. Fixed design with wired registers</b></p><p>Here the <code class="varname">clk_reg</code> register is connected to the <code class="varname">clk_wire</code> wire.</p><pre class="programlisting">
13
13
  <span class="token">module</span> TestFoo;
14
14
  <span class="type">reg</span> <code class="varname">clk_reg</code>;
15
15
  <span class="type">wire</span> <code class="varname">clk_wire</code>;
data/doc/problems.html CHANGED
@@ -1,3 +1,3 @@
1
1
  <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
2
  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3
- <html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 4. Known problems</title><link rel="stylesheet" href="styles/manual.css" type="text/css" /><meta name="generator" content="DocBook XSL Stylesheets V1.68.1" /><link rel="start" href="index.html" title="Ruby-VPI user manual" /><link rel="up" href="index.html" title="Ruby-VPI user manual" /><link rel="prev" href="usage.tutorial.html" title="Tutorial" /><link rel="next" href="problems.ruby.html" title="Ruby" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 4. Known problems</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="usage.tutorial.html"><img src="images/prev.png" alt="Prev" /></a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="problems.ruby.html"><img src="images/next.png" alt="Next" /></a></td></tr></table><hr /></div><div class="chapter" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title"><a id="problems"></a>Chapter 4. Known problems</h2></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="section"><a href="problems.ruby.html">Ruby</a></span></dt><dd><dl><dt><span class="section"><a href="problems.ruby.html#problems.ruby.SystemStackError">SystemStackError</a></span></dt><dt><span class="section"><a href="problems.ruby.html#problems.ruby.xUnit">test/unit</a></span></dt></dl></dd><dt><span class="section"><a href="problem.ivl.html">Icarus Verilog</a></span></dt><dd><dl><dt><span class="section"><a href="problem.ivl.html#problems.ivl.vpi_handle_by_name">vpi_handle_by_name</a></span></dt><dt><span class="section"><a href="problem.ivl.html#problems.ivl.vpi_reset">Vpi::reset</a></span></dt></dl></dd><dt><span class="section"><a href="problems.vsim.html">Mentor Modelsim</a></span></dt><dd><dl><dt><span class="section"><a href="problems.vsim.html#problems.vsim.ruby_run">ruby_run()</a></span></dt></dl></dd></dl></div><p>This chapter presents known problems and possible solutions. In addition, previously solved problems have been retained for historical reference.</p></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="usage.tutorial.html"><img src="images/prev.png" alt="Prev" /></a> </td><td width="20%" align="center"> </td><td width="40%" align="right"> <a accesskey="n" href="problems.ruby.html"><img src="images/next.png" alt="Next" /></a></td></tr><tr><td width="40%" align="left" valign="top">Tutorial </td><td width="20%" align="center"><a accesskey="h" href="index.html"><img src="images/home.png" alt="Home" /></a></td><td width="40%" align="right" valign="top"> Ruby</td></tr></table></div></body></html>
3
+ <html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 5. Known problems</title><link rel="stylesheet" href="styles/manual.css" type="text/css" /><meta name="generator" content="DocBook XSL Stylesheets V1.68.1" /><link rel="start" href="index.html" title="Ruby-VPI user manual" /><link rel="up" href="index.html" title="Ruby-VPI user manual" /><link rel="prev" href="usage.examples.html" title="Examples" /><link rel="next" href="problems.ruby.html" title="Ruby" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 5. Known problems</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="usage.examples.html"><img src="images/prev.png" alt="Prev" /></a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="problems.ruby.html"><img src="images/next.png" alt="Next" /></a></td></tr></table><hr /></div><div class="chapter" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title"><a id="problems"></a>Chapter 5. Known problems</h2></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="section"><a href="problems.ruby.html">Ruby</a></span></dt><dd><dl><dt><span class="section"><a href="problems.ruby.html#problems.ruby.SystemStackError">SystemStackError</a></span></dt><dt><span class="section"><a href="problems.ruby.html#problems.ruby.xUnit">test/unit</a></span></dt></dl></dd><dt><span class="section"><a href="problem.ivl.html">Icarus Verilog</a></span></dt><dd><dl><dt><span class="section"><a href="problem.ivl.html#problems.ivl.vpi_handle_by_name">vpi_handle_by_name</a></span></dt><dt><span class="section"><a href="problem.ivl.html#problems.ivl.vpi_reset">Vpi::reset</a></span></dt></dl></dd><dt><span class="section"><a href="problems.vsim.html">Mentor Modelsim</a></span></dt><dd><dl><dt><span class="section"><a href="problems.vsim.html#problems.vsim.ruby_run">ruby_run()</a></span></dt></dl></dd></dl></div><p>This chapter presents known problems and possible solutions. In addition, previously solved problems have been retained for historical reference.</p></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="usage.examples.html"><img src="images/prev.png" alt="Prev" /></a> </td><td width="20%" align="center"> </td><td width="40%" align="right"> <a accesskey="n" href="problems.ruby.html"><img src="images/next.png" alt="Next" /></a></td></tr><tr><td width="40%" align="left" valign="top">Examples </td><td width="20%" align="center"><a accesskey="h" href="index.html"><img src="images/home.png" alt="Home" /></a></td><td width="40%" align="right" valign="top"> Ruby</td></tr></table></div></body></html>
@@ -1,3 +1,3 @@
1
1
  <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
2
  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3
- <html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Ruby</title><link rel="stylesheet" href="styles/manual.css" type="text/css" /><meta name="generator" content="DocBook XSL Stylesheets V1.68.1" /><link rel="start" href="index.html" title="Ruby-VPI user manual" /><link rel="up" href="problems.html" title="Chapter 4. Known problems" /><link rel="prev" href="problems.html" title="Chapter 4. Known problems" /><link rel="next" href="problem.ivl.html" title="Icarus Verilog" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Ruby</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="problems.html"><img src="images/prev.png" alt="Prev" /></a> </td><th width="60%" align="center">Chapter 4. Known problems</th><td width="20%" align="right"> <a accesskey="n" href="problem.ivl.html"><img src="images/next.png" alt="Next" /></a></td></tr></table><hr /></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="problems.ruby"></a>Ruby</h2></div></div></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="problems.ruby.SystemStackError"></a>SystemStackError</h3></div></div></div><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Note: Problem solved"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="images/note.png" /></td><th align="left">Problem solved</th></tr><tr><td align="left" valign="top"><p>This problem was fixed in release 2.0.0 (2006-04-17). If it still occurs, then <a href="introduction.resources.html" title="Resources">please report it</a>.</p></td></tr></table></div><p>If a “<span class="quote">stack level too deep (SystemStackError)</span>” error occurs during the simulation, then increase the system-resource limit for stack-size by running the command <span><strong class="command">ulimit <code class="option">-s</code> <em class="replaceable"><code>unlimited</code></em></strong></span> before starting the simulation.</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="problems.ruby.xUnit"></a>test/unit</h3></div></div></div><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Note: Problem solved"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="images/note.png" /></td><th align="left">Problem solved</th></tr><tr><td align="left" valign="top"><p>This problem was fixed in release 2.0.0 (2006-04-17). If it still occurs, then <a href="introduction.resources.html" title="Resources">please report it</a>.</p></td></tr></table></div><p>If your specification employs Ruby's unit testing framework, then you will encounter the error: “<span class="quote">[BUG] cross-thread violation on rb_gc()</span>”.</p></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="problems.html"><img src="images/prev.png" alt="Prev" /></a> </td><td width="20%" align="center"><a accesskey="u" href="problems.html"><img src="images/up.png" alt="Up" /></a></td><td width="40%" align="right"> <a accesskey="n" href="problem.ivl.html"><img src="images/next.png" alt="Next" /></a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 4. Known problems </td><td width="20%" align="center"><a accesskey="h" href="index.html"><img src="images/home.png" alt="Home" /></a></td><td width="40%" align="right" valign="top"> Icarus Verilog</td></tr></table></div></body></html>
3
+ <html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Ruby</title><link rel="stylesheet" href="styles/manual.css" type="text/css" /><meta name="generator" content="DocBook XSL Stylesheets V1.68.1" /><link rel="start" href="index.html" title="Ruby-VPI user manual" /><link rel="up" href="problems.html" title="Chapter 5. Known problems" /><link rel="prev" href="problems.html" title="Chapter 5. Known problems" /><link rel="next" href="problem.ivl.html" title="Icarus Verilog" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Ruby</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="problems.html"><img src="images/prev.png" alt="Prev" /></a> </td><th width="60%" align="center">Chapter 5. Known problems</th><td width="20%" align="right"> <a accesskey="n" href="problem.ivl.html"><img src="images/next.png" alt="Next" /></a></td></tr></table><hr /></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="problems.ruby"></a>Ruby</h2></div></div></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="problems.ruby.SystemStackError"></a>SystemStackError</h3></div></div></div><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Note: Problem solved"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="images/note.png" /></td><th align="left">Problem solved</th></tr><tr><td align="left" valign="top"><p>This problem was fixed in release 2.0.0 (2006-04-17). If it still occurs, then <a href="introduction.resources.html" title="Resources">please report it</a>.</p></td></tr></table></div><p>If a “<span class="quote">stack level too deep (SystemStackError)</span>” error occurs during the simulation, then increase the system-resource limit for stack-size by running the command <span><strong class="command">ulimit <code class="option">-s</code> <em class="replaceable"><code>unlimited</code></em></strong></span> before starting the simulation.</p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="problems.ruby.xUnit"></a>test/unit</h3></div></div></div><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Note: Problem solved"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="images/note.png" /></td><th align="left">Problem solved</th></tr><tr><td align="left" valign="top"><p>This problem was fixed in release 2.0.0 (2006-04-17). If it still occurs, then <a href="introduction.resources.html" title="Resources">please report it</a>.</p></td></tr></table></div><p>If your specification employs Ruby's unit testing framework, then you will encounter the error: “<span class="quote">[BUG] cross-thread violation on rb_gc()</span>”.</p></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="problems.html"><img src="images/prev.png" alt="Prev" /></a> </td><td width="20%" align="center"><a accesskey="u" href="problems.html"><img src="images/up.png" alt="Up" /></a></td><td width="40%" align="right"> <a accesskey="n" href="problem.ivl.html"><img src="images/next.png" alt="Next" /></a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 5. Known problems </td><td width="20%" align="center"><a accesskey="h" href="index.html"><img src="images/home.png" alt="Home" /></a></td><td width="40%" align="right" valign="top"> Icarus Verilog</td></tr></table></div></body></html>
@@ -1,3 +1,3 @@
1
1
  <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
2
  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3
- <html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Mentor Modelsim</title><link rel="stylesheet" href="styles/manual.css" type="text/css" /><meta name="generator" content="DocBook XSL Stylesheets V1.68.1" /><link rel="start" href="index.html" title="Ruby-VPI user manual" /><link rel="up" href="problems.html" title="Chapter 4. Known problems" /><link rel="prev" href="problem.ivl.html" title="Icarus Verilog" /><link rel="next" href="glossary.html" title="Glossary" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Mentor Modelsim</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="problem.ivl.html"><img src="images/prev.png" alt="Prev" /></a> </td><th width="60%" align="center">Chapter 4. Known problems</th><td width="20%" align="right"> <a accesskey="n" href="glossary.html"><img src="images/next.png" alt="Next" /></a></td></tr></table><hr /></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="problems.vsim"></a>Mentor Modelsim</h2></div></div></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="problems.vsim.ruby_run"></a>ruby_run()</h3></div></div></div><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Note: Problem solved"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="images/note.png" /></td><th align="left">Problem solved</th></tr><tr><td align="left" valign="top"><p>This problem was fixed in release 2.0.0 (2006-04-17). If it still occurs, then <a href="introduction.resources.html" title="Resources">please report it</a>.</p></td></tr></table></div><p>Version 6.1b of Mentor Modelsim doesn't play nicely with either an embedded Ruby interpreter or POSIX threads in a PLI application. When <span class="application">Ruby-VPI</span> invokes the <code class="function">ruby_run</code> function (which starts the Ruby interpreter), the simulator terminates immediately with an exit status of 0.</p></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="problem.ivl.html"><img src="images/prev.png" alt="Prev" /></a> </td><td width="20%" align="center"><a accesskey="u" href="problems.html"><img src="images/up.png" alt="Up" /></a></td><td width="40%" align="right"> <a accesskey="n" href="glossary.html"><img src="images/next.png" alt="Next" /></a></td></tr><tr><td width="40%" align="left" valign="top">Icarus Verilog </td><td width="20%" align="center"><a accesskey="h" href="index.html"><img src="images/home.png" alt="Home" /></a></td><td width="40%" align="right" valign="top"> Glossary</td></tr></table></div></body></html>
3
+ <html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Mentor Modelsim</title><link rel="stylesheet" href="styles/manual.css" type="text/css" /><meta name="generator" content="DocBook XSL Stylesheets V1.68.1" /><link rel="start" href="index.html" title="Ruby-VPI user manual" /><link rel="up" href="problems.html" title="Chapter 5. Known problems" /><link rel="prev" href="problem.ivl.html" title="Icarus Verilog" /><link rel="next" href="glossary.html" title="Glossary" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Mentor Modelsim</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="problem.ivl.html"><img src="images/prev.png" alt="Prev" /></a> </td><th width="60%" align="center">Chapter 5. Known problems</th><td width="20%" align="right"> <a accesskey="n" href="glossary.html"><img src="images/next.png" alt="Next" /></a></td></tr></table><hr /></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="problems.vsim"></a>Mentor Modelsim</h2></div></div></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="problems.vsim.ruby_run"></a>ruby_run()</h3></div></div></div><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Note: Problem solved"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="images/note.png" /></td><th align="left">Problem solved</th></tr><tr><td align="left" valign="top"><p>This problem was fixed in release 2.0.0 (2006-04-17). If it still occurs, then <a href="introduction.resources.html" title="Resources">please report it</a>.</p></td></tr></table></div><p>Version 6.1b of Mentor Modelsim doesn't play nicely with either an embedded Ruby interpreter or POSIX threads in a PLI application. When <span class="application">Ruby-VPI</span> invokes the <code class="function">ruby_run</code> function (which starts the Ruby interpreter), the simulator terminates immediately with an exit status of 0.</p></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="problem.ivl.html"><img src="images/prev.png" alt="Prev" /></a> </td><td width="20%" align="center"><a accesskey="u" href="problems.html"><img src="images/up.png" alt="Up" /></a></td><td width="40%" align="right"> <a accesskey="n" href="glossary.html"><img src="images/next.png" alt="Next" /></a></td></tr><tr><td width="40%" align="left" valign="top">Icarus Verilog </td><td width="20%" align="center"><a accesskey="h" href="index.html"><img src="images/home.png" alt="Home" /></a></td><td width="40%" align="right" valign="top"> Glossary</td></tr></table></div></body></html>
data/doc/setup.html ADDED
@@ -0,0 +1,3 @@
1
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3
+ <html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 3. Setup</title><link rel="stylesheet" href="styles/manual.css" type="text/css" /><meta name="generator" content="DocBook XSL Stylesheets V1.68.1" /><link rel="start" href="index.html" title="Ruby-VPI user manual" /><link rel="up" href="index.html" title="Ruby-VPI user manual" /><link rel="prev" href="background.running-tests.html" title="Running a test" /><link rel="next" href="setup.reqs.html" title="Requirements" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 3. Setup</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="background.running-tests.html"><img src="images/prev.png" alt="Prev" /></a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="setup.reqs.html"><img src="images/next.png" alt="Next" /></a></td></tr></table><hr /></div><div class="chapter" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title"><a id="setup"></a>Chapter 3. Setup</h2></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="section"><a href="setup.reqs.html">Requirements</a></span></dt><dd><dl><dt><span class="section"><a href="setup.reqs.html#setup.reqs.optional">Recommendations</a></span></dt></dl></dd><dt><span class="section"><a href="setup.installation.html">Installation</a></span></dt><dd><dl><dt><span class="section"><a href="setup.installation.html#setup.installation.windows">Installing on Windows</a></span></dt></dl></dd><dt><span class="section"><a href="setup.maintenance.html">Maintenance</a></span></dt></dl></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="background.running-tests.html"><img src="images/prev.png" alt="Prev" /></a> </td><td width="20%" align="center"> </td><td width="40%" align="right"> <a accesskey="n" href="setup.reqs.html"><img src="images/next.png" alt="Next" /></a></td></tr><tr><td width="40%" align="left" valign="top">Running a test </td><td width="20%" align="center"><a accesskey="h" href="index.html"><img src="images/home.png" alt="Home" /></a></td><td width="40%" align="right" valign="top"> Requirements</td></tr></table></div></body></html>
@@ -0,0 +1,9 @@
1
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3
+ <html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Installation</title><link rel="stylesheet" href="styles/manual.css" type="text/css" /><meta name="generator" content="DocBook XSL Stylesheets V1.68.1" /><link rel="start" href="index.html" title="Ruby-VPI user manual" /><link rel="up" href="setup.html" title="Chapter 3. Setup" /><link rel="prev" href="setup.reqs.html" title="Requirements" /><link rel="next" href="setup.maintenance.html" title="Maintenance" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Installation</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="setup.reqs.html"><img src="images/prev.png" alt="Prev" /></a> </td><th width="60%" align="center">Chapter 3. Setup</th><td width="20%" align="right"> <a accesskey="n" href="setup.maintenance.html"><img src="images/next.png" alt="Next" /></a></td></tr></table><hr /></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="setup.installation"></a>Installation</h2></div></div></div><p>Once you have satisfied the <a href="setup.reqs.html" title="Requirements">necessary requirements</a>, you can install <span class="application">Ruby-VPI</span> by running the command <span><strong class="command">gem <span class="action">install</span> <em class="replaceable"><code>ruby-vpi</code></em></strong></span>. RubyGems will install <span class="application">Ruby-VPI</span> into the system gem directory, whose path can be determined by running the command <span><strong class="command">gem <span class="action">env</span> <em class="replaceable"><code>gemdir</code></em></strong></span>. Within this directory, there is a "gems" subdirectory which contains the <span class="application">Ruby-VPI</span> installation, as illustrated below.</p><pre class="screen">
4
+ <code class="prompt">$</code> <strong class="userinput"><code><span><strong class="command">gem <span class="action">env</span> <em class="replaceable"><code>gemdir</code></em></strong></span></code></strong>
5
+ <code class="computeroutput">/usr/lib/ruby/gems/1.8</code>
6
+
7
+ <code class="prompt">$</code> <strong class="userinput"><code><span><strong class="command">ls <code class="option">-d</code> <em class="replaceable"><code>/usr/lib/ruby/gems/1.8</code></em>/gems/ruby-vpi-*</strong></span></code></strong>
8
+ <code class="computeroutput">/usr/lib/ruby/gems/1.8/gems/ruby-vpi-7.0.0/</code>
9
+ </pre><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="setup.installation.windows"></a>Installing on Windows</h3></div></div></div><div class="procedure"><ol type="1"><li><p>Install <a href="http://www.cygwin.com" target="_top">Cygwin</a>, the Linux-like environment for Windows.</p></li><li><p>Search for object files whose names end with <code class="filename">.so</code>, <code class="filename">.o</code>, or <code class="filename">.dll</code> in your Verilog simulator's installation directory.</p></li><li><p>Determine which object files, among those found in the previous step, contain symbols whose names begin with <span class="symbol">_vpi</span><sup>[<a id="id2528227" href="#ftn.id2528227">1</a>]</sup> by running the command <span><strong class="command">for x in *.{o,so,dll}; do nm $x | grep -q '[Tt] _vpi' &gt; /dev/null &amp;&amp; echo $x; done</strong></span> in Cygwin.</p><div class="tip" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Tip"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Tip]" src="images/tip.png" /></td><th align="left">Tip</th></tr><tr><td align="left" valign="top"><p>If you are using Mentor Modelsim, the desired object file can be found at a path similar to <code class="filename">C:\Modeltech\win32\libvsim.dll</code>.</p></td></tr></table></div><div class="tip" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Tip"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Tip]" src="images/tip.png" /></td><th align="left">Tip</th></tr><tr><td align="left" valign="top"><p>If you are using GPL Cver, the desired object file can be found at a path similar to <code class="filename">C:\gplcver\objs\v_vpi.o</code>.</p></td></tr></table></div></li><li><p>Assign the path of the object file (determined in the previous step) to the <code class="varname">LDFLAGS</code> environment variable. For example, if the object file's path is <em class="replaceable"><code>/foo/bar/vpi.so</code></em>, then you would run the command <span><strong class="command">export <code class="varname">LDFLAGS</code>=<em class="replaceable"><code>/foo/bar/vpi.so</code></em></strong></span> in Cygwin.</p></li><li><p>You may now install <span class="application">Ruby-VPI</span> by running the command <span><strong class="command">gem <span class="action">install</span> <em class="replaceable"><code>ruby-vpi</code></em></strong></span> in Cygwin.</p></li></ol></div></div><div class="footnotes"><br /><hr width="100" align="left" /><div class="footnote"><p><sup>[<a id="ftn.id2528227" href="#id2528227">1</a>] </sup>Because <span class="application">Ruby-VPI</span> makes use of the <span class="acronym">VPI</span> C-language interface, it links to symbols whose names begin with <span class="symbol">_vpi</span>. It is possible for these symbols to be undefined when <span class="application">Ruby-VPI</span> is compiled under GNU/Linux and similar operating systems. In contrast, one <a href="http://sourceware.org/ml/cygwin/2001-12/msg01293.html" target="_top">cannot compile a shared object file with references to undefined symbols under Windows</a>. Thus, we must find a Verilog simulator's shared object file, which contains definitions of all <span class="acronym">VPI</span> symbols, and give this file to the linker when compiling <span class="application">Ruby-VPI</span>.</p></div></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="setup.reqs.html"><img src="images/prev.png" alt="Prev" /></a> </td><td width="20%" align="center"><a accesskey="u" href="setup.html"><img src="images/up.png" alt="Up" /></a></td><td width="40%" align="right"> <a accesskey="n" href="setup.maintenance.html"><img src="images/next.png" alt="Next" /></a></td></tr><tr><td width="40%" align="left" valign="top">Requirements </td><td width="20%" align="center"><a accesskey="h" href="index.html"><img src="images/home.png" alt="Home" /></a></td><td width="40%" align="right" valign="top"> Maintenance</td></tr></table></div></body></html>
@@ -0,0 +1,3 @@
1
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3
+ <html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Maintenance</title><link rel="stylesheet" href="styles/manual.css" type="text/css" /><meta name="generator" content="DocBook XSL Stylesheets V1.68.1" /><link rel="start" href="index.html" title="Ruby-VPI user manual" /><link rel="up" href="setup.html" title="Chapter 3. Setup" /><link rel="prev" href="setup.installation.html" title="Installation" /><link rel="next" href="usage.html" title="Chapter 4. Usage" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Maintenance</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="setup.installation.html"><img src="images/prev.png" alt="Prev" /></a> </td><th width="60%" align="center">Chapter 3. Setup</th><td width="20%" align="right"> <a accesskey="n" href="usage.html"><img src="images/next.png" alt="Next" /></a></td></tr></table><hr /></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="setup.maintenance"></a>Maintenance</h2></div></div></div><p>You can uninstall <span class="application">Ruby-VPI</span> by running the command <span><strong class="command">gem <span class="action">uninstall</span> <em class="replaceable"><code>ruby-vpi</code></em></strong></span>. Furthermore, you can upgrade to the latest release of <span class="application">Ruby-VPI</span> by running the command <span><strong class="command">gem <span class="action">update</span> <em class="replaceable"><code>ruby-vpi</code></em></strong></span>. Finally, you can learn more about using and manipulating RubyGems in <a href="http://www.rubygems.org" target="_top">the RubyGems user manual</a>.</p></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="setup.installation.html"><img src="images/prev.png" alt="Prev" /></a> </td><td width="20%" align="center"><a accesskey="u" href="setup.html"><img src="images/up.png" alt="Up" /></a></td><td width="40%" align="right"> <a accesskey="n" href="usage.html"><img src="images/next.png" alt="Next" /></a></td></tr><tr><td width="40%" align="left" valign="top">Installation </td><td width="20%" align="center"><a accesskey="h" href="index.html"><img src="images/home.png" alt="Home" /></a></td><td width="40%" align="right" valign="top"> Chapter 4. Usage</td></tr></table></div></body></html>
@@ -0,0 +1,3 @@
1
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3
+ <html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Requirements</title><link rel="stylesheet" href="styles/manual.css" type="text/css" /><meta name="generator" content="DocBook XSL Stylesheets V1.68.1" /><link rel="start" href="index.html" title="Ruby-VPI user manual" /><link rel="up" href="setup.html" title="Chapter 3. Setup" /><link rel="prev" href="setup.html" title="Chapter 3. Setup" /><link rel="next" href="setup.installation.html" title="Installation" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Requirements</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="setup.html"><img src="images/prev.png" alt="Prev" /></a> </td><th width="60%" align="center">Chapter 3. Setup</th><td width="20%" align="right"> <a accesskey="n" href="setup.installation.html"><img src="images/next.png" alt="Next" /></a></td></tr></table><hr /></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="setup.reqs"></a>Requirements</h2></div></div></div><p>The following software is necessary in order to use <span class="application">Ruby-VPI</span>.</p><div class="variablelist"><dl><dt><span class="term">Verilog simulator</span></dt><dd><p><span class="application">Ruby-VPI</span> is known to work with the following simulators. Nevertheless, you should be able to use it with any Verilog simulator that supports <span class="acronym">VPI</span>.</p><div class="variablelist"><dl><dt><span class="term"><a href="http://www.icarus.com/eda/Verilog/" target="_top">Icarus Verilog</a></span></dt><dd><p>Version 0.8 or newer is acceptable.</p></dd><dt><span class="term"><a href="http://www.pragmatic-c.com/gpl-cver/" target="_top">GPL Cver</a></span></dt><dd><p>Version 2.11a or newer is acceptable.</p></dd><dt><span class="term"><a href="http://www.synopsys.com/products/simulation/simulation.html" target="_top">Synopsys VCS</a></span></dt><dd><p>Any version that supports the <code class="option">-load</code> option is acceptable.</p></dd><dt><span class="term"><a href="http://www.model.com" target="_top">Mentor Modelsim</a></span></dt><dd><p>Any version that supports the <code class="option">-pli</code> option is acceptable.</p></dd></dl></div></dd><dt><span class="term"><span class="application">make</span></span></dt><dd><p><a href="http://www.gnu.org/software/make/" target="_top"><span class="acronym">GNU</span> make</a> is preferred but any distribution of <span><strong class="command">make</strong></span> should be acceptable.</p></dd><dt><span class="term">C compiler</span></dt><dd><p><a href="http://www.gnu.org/software/gcc/" target="_top"><span class="acronym">GNU</span> Compiler Collection (<span class="acronym">GCC</span>)</a> is preferred but any C compiler should be acceptable.</p></dd><dt><span class="term"><a href="http://en.wikipedia.org/wiki/Pthreads" target="_top"><span class="acronym">POSIX</span> threads (pthreads)</a></span></dt><dd><p>Header and linkable object files, and operating system support for this library are necessary.</p></dd><dt><span class="term"><a href="http://www.ruby-lang.org" target="_top">Ruby</a></span></dt><dd><p>Version 1.8 or newer, including header and linkable object files for building extensions, is necessary. You can install Ruby by following <a href="http://www.rubygarden.org/faq/section/show/3" target="_top">these instructions</a>.</p></dd><dt><span class="term"><a href="http://rubyforge.org/frs/?group_id=126" target="_top">RubyGems</a></span></dt><dd><p>Any recent version should be acceptable. You can install RubyGems by following <a href="http://www.rubygems.org/read/chapter/3" target="_top">these instructions</a>.</p></dd></dl></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="setup.reqs.optional"></a>Recommendations</h3></div></div></div><p>The following software may make your interactions with <span class="application">Ruby-VPI</span> more pleasant.</p><div class="variablelist"><dl><dt><span class="term">Text merging tool</span></dt><dd><p>An <span class="emphasis"><em>interactive</em></span> text merging tool can greatly simplify the process of transferring wanted changes from one file to another. In particular, such tools are especially beneficial when using the <a href="usage.tools.html#usage.tools.generate-test" title="Automated test generation">automated test generator</a>. A handful of the currently available open-source text merging tools are listed below.</p><div class="variablelist"><dl><dt><span class="term"><a href="http://kdiff3.sourceforge.net/" target="_top"><span class="application">kdiff3</span></a></span></dt><dd><p>A graphical, three-way merging tool for KDE.</p></dd><dt><span class="term"><a href="http://meld.sourceforge.net/" target="_top"><span class="application">meld</span></a></span></dt><dd><p>A graphical, three-way merging tool for GNOME.</p></dd><dt><span class="term"><a href="http://tkdiff.sourceforge.net/" target="_top"><span class="application">tkdiff</span></a></span></dt><dd><p>A graphical, two-way merging tool that uses the cross-platform Tk windowing toolkit.</p></dd><dt><span class="term"><a href="http://furius.ca/xxdiff/" target="_top"><span class="application">xxdiff</span></a></span></dt><dd><p>A graphical, three-way merging tool.</p></dd><dt><span class="term"><a href="http://elonen.iki.fi/code/imediff/" target="_top"><span class="application">imediff2</span></a></span></dt><dd><p>A textual, fullscreen two-way merging tool. This tool is useful when you are working remotely via SSH.</p></dd></dl></div></dd></dl></div></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="setup.html"><img src="images/prev.png" alt="Prev" /></a> </td><td width="20%" align="center"><a accesskey="u" href="setup.html"><img src="images/up.png" alt="Up" /></a></td><td width="40%" align="right"> <a accesskey="n" href="setup.installation.html"><img src="images/next.png" alt="Next" /></a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 3. Setup </td><td width="20%" align="center"><a accesskey="h" href="index.html"><img src="images/home.png" alt="Home" /></a></td><td width="40%" align="right" valign="top"> Installation</td></tr></table></div></body></html>