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
@@ -7,4 +7,4 @@
7
7
  <span class="type">va_list</span> *<code class="varname">p</code> = &amp;<code class="varname">ap</code>;
8
8
  }
9
9
  </pre></li></ul></div><p>
10
- </p><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h4 class="title"><a id="organization.vpi.util"></a><span class="acronym">VPI</span> utility layer</h4></div></div></div><p>From a user's perspective, the <span class="acronym">VPI</span> utility layer greatly enhances the ability to interact with handles. One simply invokes a handle's methods, which are carefully named in the following manner, to access its <span class="acronym">VPI</span> properties.</p><div class="table"><a id="table..handle-property-accessor-naming-format"></a><p class="title"><b>Table 2.1. Naming format for accessing a handle's <span class="acronym">VPI</span> properties</b></p><table summary="Naming format for accessing a handle's VPI properties" border="1"><colgroup><col /><col /><col /><col /><col /><col /></colgroup><thead><tr><th>Operation</th><th>_</th><th>Property</th><th>_</th><th>Accessor</th><th>Addendum</th></tr></thead><tbody><tr><td colspan="2">optional</td><td>required</td><td colspan="2">optional</td><td>optional</td></tr></tbody></table></div><div class="variablelist"><dl><dt><span class="term">Operation</span></dt><dd><p>This parameter suggests a method that should be invoked in the context of the Property parameter.</p></dd><dt><span class="term">Property</span></dt><dd><p>This parameter suggests which <span class="acronym">VPI</span> property should be accessed. The first letter of this parameter's value should be lower case, and the <span class="emphasis"><em>vpi</em></span> prefix—common to all <span class="acronym">VPI</span> properties—can be omitted.</p><p>For example, the <span class="acronym">VPI</span> property <span class="emphasis"><em>vpiFullName</em></span> is considered equivalent to <span class="emphasis"><em>fullName</em></span> but not equivalent to either <span class="emphasis"><em>FullName</em></span> or <span class="emphasis"><em>full_name</em></span>.</p></dd><dt><span class="term">Accessor</span></dt><dd><p>This parameter suggests which <span class="acronym">VPI</span> function should be used to access the <span class="acronym">VPI</span> property. When this parameter is not specified, the <span class="acronym">VPI</span> utility layer will attempt to <span class="emphasis"><em>guess</em></span> the value of this parameter (<a href="../../ref/ruby/classes/SWIG/TYPE_p_unsigned_int.html" target="_top">see the source code</a> of the <code class="code"><code class="constant">SWIG</code>::<code class="constant">TYPE_p_unsigned_int</code>#<code class="function">method_missing</code></code> method for details).</p><div class="table"><a id="id2488052"></a><p class="title"><b>Table 2.2. Possible accessors and their implications</b></p><table summary="Possible accessors and their implications" border="1"><colgroup></colgroup><thead><tr><th>Accessor</th><th>Kind of value accessed</th><th><span class="acronym">VPI</span> functions used to access the value</th></tr></thead><tbody><tr><td>d</td><td>delay</td><td><code class="function">vpi_get_delays</code>, <code class="function">vpi_put_delays</code></td></tr><tr><td>l</td><td>logic</td><td><code class="function">vpi_get_value</code>, <code class="function">vpi_put_value</code></td></tr><tr><td>i</td><td>integer</td><td><code class="function">vpi_get</code></td></tr><tr><td>b</td><td>boolean</td><td><code class="function">vpi_get</code></td></tr><tr><td>s</td><td>string</td><td><code class="function">vpi_get_str</code></td></tr><tr><td>h</td><td>handle</td><td><code class="function">vpi_handle</code></td></tr></tbody></table></div></dd><dt><span class="term">Addendum</span></dt><dd><p>When this parameter is a question mark (<span class="emphasis"><em>?</em></span>), it suggests that the specified <span class="acronym">VPI</span> property should be queried as a boolean value. This produces the same effect as specifying <span class="emphasis"><em>b</em></span> for the Accessor parameter.</p><p>When this parameter is an equal sign (<span class="emphasis"><em>=</em></span>), it suggests that the specified <span class="acronym">VPI</span> property should be written to.</p></dd></dl></div><div class="example"><a id="ex..handle-property-accessor-naming-format"></a><p class="title"><b>Example 2.1. Accessing a handle's <span class="acronym">VPI</span> properties</b></p><div class="informaltable"><table border="1"><colgroup><col /><col /><col /><col /><col /><col /></colgroup><thead><tr><th rowspan="2">Ruby expression</th><th colspan="6">Naming format</th><th rowspan="2">Description</th></tr><tr><th>Operation</th><th>_</th><th>Property</th><th>_</th><th>Accessor</th><th>Addendum</th></tr></thead><tbody><tr><td><code class="code"><code class="varname">handle</code>.<code class="function">each_vpiNet</code> {|<code class="varname">net</code>| <code class="function">puts</code> <code class="varname">net</code>.<code class="function">fullName</code>}</code></td><td>each</td><td>_</td><td>vpiNet</td><td> </td><td> </td><td> </td><td rowspan="2">These expressions print the full name of each <code class="constant">vpiNet</code> object associated with the handle.</td></tr><tr><td><code class="code"><code class="varname">handle</code>.<code class="function">each_net</code> {|<code class="varname">net</code>| <code class="function">puts</code> <code class="varname">net</code>.<code class="function">fullName</code>}</code></td><td>each</td><td>_</td><td>net</td><td> </td><td> </td><td> </td></tr><tr><td><code class="code"><code class="varname">handle</code>.<code class="function">vpiIntVal</code></code></td><td> </td><td> </td><td>vpiIntVal</td><td> </td><td> </td><td> </td><td rowspan="4">These expressions access the logic value of the handle's <code class="constant">vpiIntVal</code> property.</td></tr><tr><td><code class="code"><code class="varname">handle</code>.<code class="function">vpiIntVal_l</code></code></td><td> </td><td> </td><td>vpiIntVal</td><td>_</td><td>l</td><td> </td></tr><tr><td><code class="code"><code class="varname">handle</code>.<code class="function">intVal</code></code></td><td> </td><td> </td><td>intVal</td><td> </td><td> </td><td> </td></tr><tr><td><code class="code"><code class="varname">handle</code>.<code class="function">intVal_l</code></code></td><td> </td><td> </td><td>intVal</td><td>_</td><td>l</td><td> </td></tr><tr><td><code class="code"><code class="varname">handle</code>.<code class="function">vpiIntVal</code> = <code class="literal">15</code></code></td><td> </td><td> </td><td>vpiIntVal</td><td> </td><td> </td><td>=</td><td rowspan="4">These expressions assign the number 15 to the logic value of the handle's <code class="constant">vpiIntVal</code> property.</td></tr><tr><td><code class="code"><code class="varname">handle</code>.<code class="function">vpiIntVal_l</code> = <code class="literal">15</code></code></td><td> </td><td> </td><td>vpiIntVal</td><td>_</td><td>l</td><td>=</td></tr><tr><td><code class="code"><code class="varname">handle</code>.<code class="function">intVal</code> = <code class="literal">15</code></code></td><td> </td><td> </td><td>intVal</td><td> </td><td> </td><td>=</td></tr><tr><td><code class="code"><code class="varname">handle</code>.<code class="function">intVal</code>_l = <code class="literal">15</code></code></td><td> </td><td> </td><td>intVal</td><td>_</td><td>l</td><td>=</td></tr><tr><td><code class="code"><code class="varname">handle</code>.<code class="function">vpiType</code></code></td><td> </td><td> </td><td>vpiType</td><td> </td><td> </td><td> </td><td rowspan="4">These expressions access the integer value of the handle's <code class="constant">vpiType</code> property.</td></tr><tr><td><code class="code"><code class="varname">handle</code>.<code class="function">vpiType_i</code></code></td><td> </td><td> </td><td>vpiType</td><td>_</td><td>i</td><td> </td></tr><tr><td><code class="code"><code class="varname">handle</code>.<code class="function">type</code></code></td><td> </td><td> </td><td>type</td><td> </td><td> </td><td> </td></tr><tr><td><code class="code"><code class="varname">handle</code>.<code class="function">type_i</code></code></td><td> </td><td> </td><td>type</td><td>_</td><td>i</td><td> </td></tr><tr><td><code class="code"><code class="varname">handle</code>.<code class="function">vpiProtected</code></code></td><td> </td><td> </td><td>vpiProtected</td><td> </td><td> </td><td> </td><td rowspan="6">These expressions access the boolean value of the handle's <code class="constant">vpiProtected</code> property.</td></tr><tr><td><code class="code"><code class="varname">handle</code>.<code class="function">vpiProtected_b</code></code></td><td> </td><td> </td><td>vpiProtected</td><td>_</td><td>b</td><td> </td></tr><tr><td><code class="code"><code class="varname">handle</code>.<code class="function">vpiProtected?</code></code></td><td> </td><td> </td><td>vpiProtected</td><td> </td><td> </td><td>?</td></tr><tr><td><code class="code"><code class="varname">handle</code>.<code class="function">protected</code></code></td><td> </td><td> </td><td>protected</td><td> </td><td> </td><td> </td></tr><tr><td><code class="code"><code class="varname">handle</code>.<code class="function">protected_b</code></code></td><td> </td><td> </td><td>protected</td><td>_</td><td>b</td><td> </td></tr><tr><td><code class="code"><code class="varname">handle</code>.<code class="function">protected?</code></code></td><td> </td><td> </td><td>protected</td><td> </td><td> </td><td>?</td></tr><tr><td><code class="code"><code class="varname">handle</code>.<code class="function">vpiFullName</code></code></td><td> </td><td> </td><td>vpiFullName</td><td> </td><td> </td><td> </td><td rowspan="4">These expressions access the string value of the handle's <code class="constant">vpiFullName</code> property.</td></tr><tr><td><code class="code"><code class="varname">handle</code>.<code class="function">vpiFullName_s</code></code></td><td> </td><td> </td><td>vpiFullName</td><td>_</td><td>s</td><td> </td></tr><tr><td><code class="code"><code class="varname">handle</code>.<code class="function">fullName</code></code></td><td> </td><td> </td><td>fullName</td><td> </td><td> </td><td> </td></tr><tr><td><code class="code"><code class="varname">handle</code>.<code class="function">fullName_s</code></code></td><td> </td><td> </td><td>fullName</td><td>_</td><td>s</td><td> </td></tr><tr><td><code class="code"><code class="varname">handle</code>.<code class="function">vpiParent</code></code></td><td> </td><td> </td><td>vpiParent</td><td> </td><td> </td><td> </td><td rowspan="4">These expressions access the handle value of the handle's <code class="constant">vpiParent</code> property.</td></tr><tr><td><code class="code"><code class="varname">handle</code>.<code class="function">vpiParent_h</code></code></td><td> </td><td> </td><td>vpiParent</td><td>_</td><td>h</td><td> </td></tr><tr><td><code class="code"><code class="varname">handle</code>.<code class="function">parent</code></code></td><td> </td><td> </td><td>parent</td><td> </td><td> </td><td> </td></tr><tr><td><code class="code"><code class="varname">handle</code>.<code class="function">parent_h</code></code></td><td> </td><td> </td><td>parent</td><td>_</td><td>h</td><td> </td></tr></tbody></table></div></div></div></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="background.terminology.html"><img src="images/prev.png" alt="Prev" /></a> </td><td width="20%" align="center"><a accesskey="u" href="background.html"><img src="images/up.png" alt="Up" /></a></td><td width="40%" align="right"> <a accesskey="n" href="background.running-tests.html"><img src="images/next.png" alt="Next" /></a></td></tr><tr><td width="40%" align="left" valign="top">Terminology </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"> Running a test</td></tr></table></div></body></html>
10
+ </p><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h4 class="title"><a id="organization.vpi.util"></a><span class="acronym">VPI</span> utility layer</h4></div></div></div><p>From a user's perspective, the <span class="acronym">VPI</span> utility layer greatly enhances the ability to interact with handles. One simply invokes a handle's methods, which are carefully named in the following manner, to access either (1) its children or (2) its <span class="acronym">VPI</span> properties.</p><p>The children of a handle are simply the handles that are immediately contained within it in. For example, suppose that you had a Verilog module that contains some registers. The children, of a handle to the module, would be handles to the registers.</p><p>In the event that a child handle has the same name as a <span class="acronym">VPI</span> property, the child is given priority. However, you can always access <span class="acronym">VPI</span> properties explicitly via the <code class="function">get_value</code> and <code class="function">put_value</code> methods.</p><div class="table"><a id="table..handle-property-accessor-naming-format"></a><p class="title"><b>Table 2.1. Naming format for accessing a handle's <span class="acronym">VPI</span> properties</b></p><table summary="Naming format for accessing a handle's VPI properties" border="1"><colgroup><col /><col /><col /><col /><col /><col /></colgroup><thead><tr><th>Operation</th><th>_</th><th>Property</th><th>_</th><th>Accessor</th><th>Addendum</th></tr></thead><tbody><tr><td colspan="2">optional</td><td>required</td><td colspan="2">optional</td><td>optional</td></tr></tbody></table></div><div class="variablelist"><dl><dt><span class="term">Operation</span></dt><dd><p>This parameter suggests a method that should be invoked in the context of the Property parameter.</p></dd><dt><span class="term">Property</span></dt><dd><p>This parameter suggests which <span class="acronym">VPI</span> property should be accessed. The first letter of this parameter's value should be lower case, and the <span class="emphasis"><em>vpi</em></span> prefix—common to all <span class="acronym">VPI</span> properties—can be omitted.</p><p>For example, the <span class="acronym">VPI</span> property <span class="emphasis"><em>vpiFullName</em></span> is considered equivalent to <span class="emphasis"><em>fullName</em></span> but not equivalent to either <span class="emphasis"><em>FullName</em></span> or <span class="emphasis"><em>full_name</em></span>.</p></dd><dt><span class="term">Accessor</span></dt><dd><p>This parameter suggests which <span class="acronym">VPI</span> function should be used to access the <span class="acronym">VPI</span> property. When this parameter is not specified, the <span class="acronym">VPI</span> utility layer will attempt to <span class="emphasis"><em>guess</em></span> the value of this parameter (<a href="../../ref/ruby/classes/SWIG/TYPE_p_unsigned_int.html" target="_top">see the source code</a> of the <code class="code"><code class="constant">SWIG</code>::<code class="constant">TYPE_p_unsigned_int</code>#<code class="function">method_missing</code></code> method for details).</p><div class="table"><a id="id2488119"></a><p class="title"><b>Table 2.2. Possible accessors and their implications</b></p><table summary="Possible accessors and their implications" border="1"><colgroup></colgroup><thead><tr><th>Accessor</th><th>Kind of value accessed</th><th><span class="acronym">VPI</span> functions used to access the value</th></tr></thead><tbody><tr><td>d</td><td>delay</td><td><code class="function">vpi_get_delays</code>, <code class="function">vpi_put_delays</code></td></tr><tr><td>l</td><td>logic</td><td><code class="function">vpi_get_value</code>, <code class="function">vpi_put_value</code></td></tr><tr><td>i</td><td>integer</td><td><code class="function">vpi_get</code></td></tr><tr><td>b</td><td>boolean</td><td><code class="function">vpi_get</code></td></tr><tr><td>s</td><td>string</td><td><code class="function">vpi_get_str</code></td></tr><tr><td>h</td><td>handle</td><td><code class="function">vpi_handle</code></td></tr></tbody></table></div></dd><dt><span class="term">Addendum</span></dt><dd><p>When this parameter is a question mark (<span class="emphasis"><em>?</em></span>), it suggests that the specified <span class="acronym">VPI</span> property should be queried as a boolean value. This produces the same effect as specifying <span class="emphasis"><em>b</em></span> for the Accessor parameter.</p><p>When this parameter is an equal sign (<span class="emphasis"><em>=</em></span>), it suggests that the specified <span class="acronym">VPI</span> property should be written to.</p></dd></dl></div><div class="example"><a id="ex..handle-property-accessor-naming-format"></a><p class="title"><b>Example 2.1. Accessing a handle's <span class="acronym">VPI</span> properties</b></p><div class="informaltable"><table border="1"><colgroup><col /><col /><col /><col /><col /><col /></colgroup><thead><tr><th rowspan="2">Ruby expression</th><th colspan="6">Naming format</th><th rowspan="2">Description</th></tr><tr><th>Operation</th><th>_</th><th>Property</th><th>_</th><th>Accessor</th><th>Addendum</th></tr></thead><tbody><tr><td><code class="code"><code class="varname">handle</code>.<code class="function">each_vpiNet</code> {|<code class="varname">net</code>| <code class="function">puts</code> <code class="varname">net</code>.<code class="function">fullName</code>}</code></td><td>each</td><td>_</td><td>vpiNet</td><td> </td><td> </td><td> </td><td rowspan="2">These expressions print the full name of each <code class="constant">vpiNet</code> object associated with the handle.</td></tr><tr><td><code class="code"><code class="varname">handle</code>.<code class="function">each_net</code> {|<code class="varname">net</code>| <code class="function">puts</code> <code class="varname">net</code>.<code class="function">fullName</code>}</code></td><td>each</td><td>_</td><td>net</td><td> </td><td> </td><td> </td></tr><tr><td><code class="code"><code class="varname">handle</code>.<code class="function">vpiIntVal</code></code></td><td> </td><td> </td><td>vpiIntVal</td><td> </td><td> </td><td> </td><td rowspan="4">These expressions access the logic value of the handle's <code class="constant">vpiIntVal</code> property.</td></tr><tr><td><code class="code"><code class="varname">handle</code>.<code class="function">vpiIntVal_l</code></code></td><td> </td><td> </td><td>vpiIntVal</td><td>_</td><td>l</td><td> </td></tr><tr><td><code class="code"><code class="varname">handle</code>.<code class="function">intVal</code></code></td><td> </td><td> </td><td>intVal</td><td> </td><td> </td><td> </td></tr><tr><td><code class="code"><code class="varname">handle</code>.<code class="function">intVal_l</code></code></td><td> </td><td> </td><td>intVal</td><td>_</td><td>l</td><td> </td></tr><tr><td><code class="code"><code class="varname">handle</code>.<code class="function">vpiIntVal</code> = <code class="literal">15</code></code></td><td> </td><td> </td><td>vpiIntVal</td><td> </td><td> </td><td>=</td><td rowspan="4">These expressions assign the number 15 to the logic value of the handle's <code class="constant">vpiIntVal</code> property.</td></tr><tr><td><code class="code"><code class="varname">handle</code>.<code class="function">vpiIntVal_l</code> = <code class="literal">15</code></code></td><td> </td><td> </td><td>vpiIntVal</td><td>_</td><td>l</td><td>=</td></tr><tr><td><code class="code"><code class="varname">handle</code>.<code class="function">intVal</code> = <code class="literal">15</code></code></td><td> </td><td> </td><td>intVal</td><td> </td><td> </td><td>=</td></tr><tr><td><code class="code"><code class="varname">handle</code>.<code class="function">intVal</code>_l = <code class="literal">15</code></code></td><td> </td><td> </td><td>intVal</td><td>_</td><td>l</td><td>=</td></tr><tr><td><code class="code"><code class="varname">handle</code>.<code class="function">vpiType</code></code></td><td> </td><td> </td><td>vpiType</td><td> </td><td> </td><td> </td><td rowspan="4">These expressions access the integer value of the handle's <code class="constant">vpiType</code> property.</td></tr><tr><td><code class="code"><code class="varname">handle</code>.<code class="function">vpiType_i</code></code></td><td> </td><td> </td><td>vpiType</td><td>_</td><td>i</td><td> </td></tr><tr><td><code class="code"><code class="varname">handle</code>.<code class="function">type</code></code></td><td> </td><td> </td><td>type</td><td> </td><td> </td><td> </td></tr><tr><td><code class="code"><code class="varname">handle</code>.<code class="function">type_i</code></code></td><td> </td><td> </td><td>type</td><td>_</td><td>i</td><td> </td></tr><tr><td><code class="code"><code class="varname">handle</code>.<code class="function">vpiProtected</code></code></td><td> </td><td> </td><td>vpiProtected</td><td> </td><td> </td><td> </td><td rowspan="6">These expressions access the boolean value of the handle's <code class="constant">vpiProtected</code> property.</td></tr><tr><td><code class="code"><code class="varname">handle</code>.<code class="function">vpiProtected_b</code></code></td><td> </td><td> </td><td>vpiProtected</td><td>_</td><td>b</td><td> </td></tr><tr><td><code class="code"><code class="varname">handle</code>.<code class="function">vpiProtected?</code></code></td><td> </td><td> </td><td>vpiProtected</td><td> </td><td> </td><td>?</td></tr><tr><td><code class="code"><code class="varname">handle</code>.<code class="function">protected</code></code></td><td> </td><td> </td><td>protected</td><td> </td><td> </td><td> </td></tr><tr><td><code class="code"><code class="varname">handle</code>.<code class="function">protected_b</code></code></td><td> </td><td> </td><td>protected</td><td>_</td><td>b</td><td> </td></tr><tr><td><code class="code"><code class="varname">handle</code>.<code class="function">protected?</code></code></td><td> </td><td> </td><td>protected</td><td> </td><td> </td><td>?</td></tr><tr><td><code class="code"><code class="varname">handle</code>.<code class="function">vpiFullName</code></code></td><td> </td><td> </td><td>vpiFullName</td><td> </td><td> </td><td> </td><td rowspan="4">These expressions access the string value of the handle's <code class="constant">vpiFullName</code> property.</td></tr><tr><td><code class="code"><code class="varname">handle</code>.<code class="function">vpiFullName_s</code></code></td><td> </td><td> </td><td>vpiFullName</td><td>_</td><td>s</td><td> </td></tr><tr><td><code class="code"><code class="varname">handle</code>.<code class="function">fullName</code></code></td><td> </td><td> </td><td>fullName</td><td> </td><td> </td><td> </td></tr><tr><td><code class="code"><code class="varname">handle</code>.<code class="function">fullName_s</code></code></td><td> </td><td> </td><td>fullName</td><td>_</td><td>s</td><td> </td></tr><tr><td><code class="code"><code class="varname">handle</code>.<code class="function">vpiParent</code></code></td><td> </td><td> </td><td>vpiParent</td><td> </td><td> </td><td> </td><td rowspan="4">These expressions access the handle value of the handle's <code class="constant">vpiParent</code> property.</td></tr><tr><td><code class="code"><code class="varname">handle</code>.<code class="function">vpiParent_h</code></code></td><td> </td><td> </td><td>vpiParent</td><td>_</td><td>h</td><td> </td></tr><tr><td><code class="code"><code class="varname">handle</code>.<code class="function">parent</code></code></td><td> </td><td> </td><td>parent</td><td> </td><td> </td><td> </td></tr><tr><td><code class="code"><code class="varname">handle</code>.<code class="function">parent_h</code></code></td><td> </td><td> </td><td>parent</td><td>_</td><td>h</td><td> </td></tr></tbody></table></div></div></div></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="background.terminology.html"><img src="images/prev.png" alt="Prev" /></a> </td><td width="20%" align="center"><a accesskey="u" href="background.html"><img src="images/up.png" alt="Up" /></a></td><td width="40%" align="right"> <a accesskey="n" href="background.running-tests.html"><img src="images/next.png" alt="Next" /></a></td></tr><tr><td width="40%" align="left" valign="top">Terminology </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"> Running a test</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>Running a test</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="background.html" title="Chapter 2. Background" /><link rel="prev" href="background.organization.html" title="Organization" /><link rel="next" href="usage.html" title="Chapter 3. Usage" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Running a test</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="background.organization.html"><img src="images/prev.png" alt="Prev" /></a> </td><th width="60%" align="center">Chapter 2. Background</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="background.running-tests"></a>Running a test</h2></div></div></div><p>Unlike an engineer who can verify an electronic component in real-time, the Verilog simulator and the Ruby interpreter (see <a href="background.organization.html#fig..organization.detail" title="Figure 2.2. Detailed organization of a test">Figure 2.2, “Detailed organization of a test”</a>) take turns working with objects in a simulation when a test is run. In particular, they take turns manipulating the design and transfer control to each other when appropriate.</p><p>The situation is similar to a pair of friends playing catch. One friend throws a ball to the other, and the other throws it back. Either is able to inspect and modify the ball, but only when it is in hand.</p><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="background.running-tests.init"></a>Initialization</h3></div></div></div><p>A test is first initialized before it is <a href="background.running-tests.html#background.running-tests.exec" title="Execution">executed</a>. <a href="background.running-tests.html#fig..ruby_init" title="Figure 2.3. Initialization of a test">Figure 2.3, “Initialization of a test”</a> illustrates the initialization process <a href="background.running-tests.html#proc..ruby_init">described below</a>.</p><div class="figure"><a id="fig..ruby_init"></a><p class="title"><b>Figure 2.3. Initialization of a test</b></p><div class="mediaobject"><img src="figures/ruby_init.png" alt="Initialization of a test" /></div></div><div class="procedure"><a id="proc..ruby_init"></a><p class="title"><b>Procedure 2.1. Initialization of a test</b></p><ol type="1"><li><p>The Verilog simulator initializes the Ruby interpreter by invoking the <code class="code"><code class="function">$ruby_init</code>;</code> system task/function, whose parameters represent the command-line invocation of the Ruby interpreter. For example, one would specify <code class="code"><code class="function">$ruby_init</code>(<em class="parameter"><code><code class="literal">"ruby"</code></code></em>, <em class="parameter"><code><code class="literal">"-w"</code></code></em>);</code> in Verilog to achieve the same effect as specifying <span><strong class="command">ruby <code class="option">-w</code></strong></span> at a command-prompt.</p></li><li><p>The Verilog simulator is paused and the Ruby interpreter is initialized with the arguments of the <code class="code"><code class="function">$ruby_init</code>;</code> system task/function.</p></li><li><p>When the Ruby interpreter invokes the <code class="code"><code class="constant">Vpi</code>::<code class="function">relay_verilog</code></code> method, it is paused and the Verilog simulator is given control.</p></li></ol></div></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="background.running-tests.exec"></a>Execution</h3></div></div></div><p>After a test is <a href="background.running-tests.html#background.running-tests.init" title="Initialization">initialized</a>, it is executed such that the design is verified against the specification. <a href="background.running-tests.html#fig..ruby_relay" title="Figure 2.4. Execution of a test">Figure 2.4, “Execution of a test”</a> illustrates the execution process <a href="background.running-tests.html#proc..ruby_relay">described below</a>.</p><div class="figure"><a id="fig..ruby_relay"></a><p class="title"><b>Figure 2.4. Execution of a test</b></p><div class="mediaobject"><img src="figures/ruby_relay.png" alt="Execution of a test" /></div></div><div class="procedure"><a id="proc..ruby_relay"></a><p class="title"><b>Procedure 2.2. Execution of a test</b></p><ol type="1"><li><p>The Verilog simulator transfers control to the Ruby interpreter by invoking the <code class="code"><code class="function">$ruby_relay</code>;</code> system task/function.</p></li><li><p>The Verilog simulator is paused and the Ruby interpreter is given control.</p></li><li><p>When the Ruby interpreter invokes the <code class="code"><code class="constant">Vpi</code>::<code class="function">relay_verilog</code></code> method, it is paused and the Verilog simulator is given control.</p></li></ol></div></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="background.organization.html"><img src="images/prev.png" alt="Prev" /></a> </td><td width="20%" align="center"><a accesskey="u" href="background.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">Organization </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 3. Usage</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>Running a test</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="background.html" title="Chapter 2. Background" /><link rel="prev" href="background.organization.html" title="Organization" /><link rel="next" href="setup.html" title="Chapter 3. Setup" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Running a test</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="background.organization.html"><img src="images/prev.png" alt="Prev" /></a> </td><th width="60%" align="center">Chapter 2. Background</th><td width="20%" align="right"> <a accesskey="n" href="setup.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="background.running-tests"></a>Running a test</h2></div></div></div><p>Unlike an engineer who can verify an electronic component in real-time, the Verilog simulator and the Ruby interpreter (see <a href="background.organization.html#fig..organization.detail" title="Figure 2.2. Detailed organization of a test">Figure 2.2, “Detailed organization of a test”</a>) take turns working with objects in a simulation when a test is run. In particular, they take turns manipulating the design and transfer control to each other when appropriate.</p><p>The situation is similar to a pair of friends playing catch. One friend throws a ball to the other, and the other throws it back. Either is able to inspect and modify the ball, but only when it is in hand.</p><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="background.running-tests.init"></a>Initialization</h3></div></div></div><p>A test is first initialized before it is <a href="background.running-tests.html#background.running-tests.exec" title="Execution">executed</a>. <a href="background.running-tests.html#fig..ruby_init" title="Figure 2.3. Initialization of a test">Figure 2.3, “Initialization of a test”</a> illustrates the initialization process <a href="background.running-tests.html#proc..ruby_init">described below</a>.</p><div class="figure"><a id="fig..ruby_init"></a><p class="title"><b>Figure 2.3. Initialization of a test</b></p><div class="mediaobject"><img src="figures/ruby_init.png" alt="Initialization of a test" /></div></div><div class="procedure"><a id="proc..ruby_init"></a><p class="title"><b>Procedure 2.1. Initialization of a test</b></p><ol type="1"><li><p>The Verilog simulator initializes the Ruby interpreter by invoking the <code class="code"><code class="function">$ruby_init</code>;</code> system task/function, whose parameters represent the command-line invocation of the Ruby interpreter. For example, one would specify <code class="code"><code class="function">$ruby_init</code>(<em class="parameter"><code><code class="literal">"ruby"</code></code></em>, <em class="parameter"><code><code class="literal">"-w"</code></code></em>);</code> in Verilog to achieve the same effect as specifying <span><strong class="command">ruby <code class="option">-w</code></strong></span> at a command-prompt.</p></li><li><p>The Verilog simulator is paused and the Ruby interpreter is initialized with the arguments of the <code class="code"><code class="function">$ruby_init</code>;</code> system task/function.</p></li><li><p>When the Ruby interpreter invokes the <code class="code"><code class="constant">Vpi</code>::<code class="function">relay_verilog</code></code> method, it is paused and the Verilog simulator is given control.</p></li></ol></div></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="background.running-tests.exec"></a>Execution</h3></div></div></div><p>After a test is <a href="background.running-tests.html#background.running-tests.init" title="Initialization">initialized</a>, it is executed such that the design is verified against the specification. <a href="background.running-tests.html#fig..ruby_relay" title="Figure 2.4. Execution of a test">Figure 2.4, “Execution of a test”</a> illustrates the execution process <a href="background.running-tests.html#proc..ruby_relay">described below</a>.</p><div class="figure"><a id="fig..ruby_relay"></a><p class="title"><b>Figure 2.4. Execution of a test</b></p><div class="mediaobject"><img src="figures/ruby_relay.png" alt="Execution of a test" /></div></div><div class="procedure"><a id="proc..ruby_relay"></a><p class="title"><b>Procedure 2.2. Execution of a test</b></p><ol type="1"><li><p>The Verilog simulator transfers control to the Ruby interpreter by invoking the <code class="code"><code class="function">$ruby_relay</code>;</code> system task/function.</p></li><li><p>The Verilog simulator is paused and the Ruby interpreter is given control.</p></li><li><p>When the Ruby interpreter invokes the <code class="code"><code class="constant">Vpi</code>::<code class="function">relay_verilog</code></code> method, it is paused and the Verilog simulator is given control.</p></li></ol></div></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="background.organization.html"><img src="images/prev.png" alt="Prev" /></a> </td><td width="20%" align="center"><a accesskey="u" href="background.html"><img src="images/up.png" alt="Up" /></a></td><td width="40%" align="right"> <a accesskey="n" href="setup.html"><img src="images/next.png" alt="Next" /></a></td></tr><tr><td width="40%" align="left" valign="top">Organization </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 3. Setup</td></tr></table></div></body></html>
data/doc/index.html CHANGED
@@ -1,4 +1,4 @@
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-VPI user manual</title><link rel="stylesheet" href="styles/manual.css" type="text/css" /><meta name="generator" content="DocBook XSL Stylesheets V1.68.1" /><meta name="description" content="This manual explains how to use Ruby-VPI. You can find the newest version of this manual at the Ruby-VPI website." /><link rel="start" href="index.html" title="Ruby-VPI user manual" /><link rel="next" href="introduction.html" title="Chapter 1. Introduction" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="application">Ruby-VPI</span> user manual</th></tr><tr><td width="20%" align="left"> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="introduction.html"><img src="images/next.png" alt="Next" /></a></td></tr></table><hr /></div><div class="book" lang="en" xml:lang="en"><div class="titlepage"><div><div><h1 class="title"><a id="id2472600"></a><span class="application">Ruby-VPI</span> user manual</h1></div><div><p class="copyright">Copyright © 2006 Suraj N. Kurapati</p></div><div><p class="copyright">Copyright © 2005, 2006 <a href="http://tango.freedesktop.org" target="_top">Tango Desktop Project</a> <em><span class="remark">for admonition and navigation graphics released under <a href="images/COPYING" target="_top">this license</a>.</span></em></p></div><div><p class="copyright">Copyright © 1999, 2000, 2001 Norman Walsh <em><span class="remark">for DocBook graphics released under <a href="images/copyright" target="_top">this license</a>.</span></em></p></div><div><div class="legalnotice"><a id="id2516377"></a><p>Permission is granted to copy, distribute and/or modify this document under the terms of the <span class="acronym">GNU</span> Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled "<span class="acronym">GNU</span> Free Documentation License".</p></div></div><div><div class="abstract"><p class="title"><b>Abstract</b></p><p>This manual explains how to use <span class="application">Ruby-VPI</span>. You can find the newest version of this manual at the <a href="http://ruby-vpi.rubyforge.org" target="_top"><span class="application">Ruby-VPI</span> website</a>.</p></div></div></div><hr /></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="chapter"><a href="introduction.html">1. Introduction</a></span></dt><dd><dl><dt><span class="section"><a href="introduction.license.html">License</a></span></dt><dt><span class="section"><a href="introduction.manifest.html">Manifest</a></span></dt><dt><span class="section"><a href="introduction.resources.html">Resources</a></span></dt><dt><span class="section"><a href="introduction.related-works.html">Related works</a></span></dt><dd><dl><dt><span class="section"><a href="introduction.related-works.html#introduction.related-works.pli">Ye olde PLI</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="background.html">2. Background</a></span></dt><dd><dl><dt><span class="section"><a href="background.methodology.html">Methodology</a></span></dt><dt><span class="section"><a href="background.terminology.html">Terminology</a></span></dt><dt><span class="section"><a href="background.organization.html">Organization</a></span></dt><dd><dl><dt><span class="section"><a href="background.organization.html#organization.vpi">Interface to <span class="acronym">VPI</span></a></span></dt></dl></dd><dt><span class="section"><a href="background.running-tests.html">Running a test</a></span></dt><dd><dl><dt><span class="section"><a href="background.running-tests.html#background.running-tests.init">Initialization</a></span></dt><dt><span class="section"><a href="background.running-tests.html#background.running-tests.exec">Execution</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="usage.html">3. Usage</a></span></dt><dd><dl><dt><span class="section"><a href="usage.requirements.html">Requirements</a></span></dt><dt><span class="section"><a href="usage.recommendations.html">Recommendations</a></span></dt><dt><span class="section"><a href="usage.installation.html">Installation and maintenance</a></span></dt><dd><dl><dt><span class="section"><a href="usage.installation.html#usage.installation.windows">Installing on Windows</a></span></dt></dl></dd><dt><span class="section"><a href="usage.tools.html">Tools</a></span></dt><dd><dl><dt><span class="section"><a href="usage.tools.html#usage.tools.generate-test">Automated test generation</a></span></dt><dt><span class="section"><a href="usage.tools.html#usage.tools.verilog-ruby-conv">Verilog to Ruby conversion</a></span></dt></dl></dd><dt><span class="section"><a href="usage.examples.html">Examples</a></span></dt><dt><span class="section"><a href="usage.tutorial.html">Tutorial</a></span></dt><dd><dl><dt><span class="section"><a href="usage.tutorial.html#usage.tutorial.declare-design">Start with a design</a></span></dt><dt><span class="section"><a href="usage.tutorial.html#usage.tutorial.generate-test">Generate a test</a></span></dt><dt><span class="section"><a href="usage.tutorial.html#usage.tutorial.specification">Specify your expectations</a></span></dt><dt><span class="section"><a href="usage.tutorial.html#usage.tutorial.implement-proto">Implement the prototype</a></span></dt><dt><span class="section"><a href="usage.tutorial.html#usage.tutorial.test-proto">Verify the prototype</a></span></dt><dt><span class="section"><a href="usage.tutorial.html#usage.tutorial.implement-design">Implement the design</a></span></dt><dt><span class="section"><a href="usage.tutorial.html#usage.tutorial.test-design">Verify the design</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="problems.html">4. Known problems</a></span></dt><dd><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></dd><dt><span class="glossary"><a href="glossary.html">Glossary</a></span></dt><dt><span class="appendix"><a href="gfdl.html">A. GNU Free Documentation License</a></span></dt><dd><dl><dt><span class="section"><a href="gfdl-0.html">PREAMBLE</a></span></dt><dt><span class="section"><a href="gfdl-1.html">APPLICABILITY AND DEFINITIONS</a></span></dt><dt><span class="section"><a href="gfdl-2.html">VERBATIM COPYING</a></span></dt><dt><span class="section"><a href="gfdl-3.html">COPYING IN QUANTITY</a></span></dt><dt><span class="section"><a href="gfdl-4.html">MODIFICATIONS</a></span></dt><dt><span class="section"><a href="gfdl-5.html">COMBINING DOCUMENTS</a></span></dt><dt><span class="section"><a href="gfdl-6.html">COLLECTIONS OF DOCUMENTS</a></span></dt><dt><span class="section"><a href="gfdl-7.html">AGGREGATION WITH INDEPENDENT WORKS</a></span></dt><dt><span class="section"><a href="gfdl-8.html">TRANSLATION</a></span></dt><dt><span class="section"><a href="gfdl-9.html">TERMINATION</a></span></dt><dt><span class="section"><a href="gfdl-10.html">FUTURE REVISIONS OF THIS LICENSE</a></span></dt><dt><span class="section"><a href="gfdl-addendum.html">ADDENDUM: How to use this License for
4
- your documents</a></span></dt></dl></dd></dl></div><div class="list-of-figures"><p><b>List of Figures</b></p><dl><dt>2.1. <a href="background.organization.html#fig..organization">Overall organization of a test</a></dt><dt>2.2. <a href="background.organization.html#fig..organization.detail">Detailed organization of a test</a></dt><dt>2.3. <a href="background.running-tests.html#fig..ruby_init">Initialization of a test</a></dt><dt>2.4. <a href="background.running-tests.html#fig..ruby_relay">Execution of a test</a></dt><dt>3.1. <a href="usage.tutorial.html#fig..counter.v_decl">Declaration of a simple up-counter with synchronous reset</a></dt><dt>3.2. <a href="usage.tutorial.html#fig..generate-test.rspec">Generating a test with specification in rSpec format</a></dt><dt>3.3. <a href="usage.tutorial.html#fig..generate-test.unit-test">Generating a test with specification in xUnit format</a></dt><dt>3.4. <a href="usage.tutorial.html#fig..counter_rspec_spec.rb">Specification implemented in rSpec format</a></dt><dt>3.5. <a href="usage.tutorial.html#fig..counter_xunit_spec.rb">Specification implemented in xUnit format</a></dt><dt>3.6. <a href="usage.tutorial.html#fig..counter_proto.rb">Ruby prototype of our Verilog design</a></dt><dt>3.7. <a href="usage.tutorial.html#fig..test-proto.rspec">Running a test with specification in rSpec format</a></dt><dt>3.8. <a href="usage.tutorial.html#fig..test-proto.unit-test">Running a test with specification in xUnit format</a></dt><dt>3.9. <a href="usage.tutorial.html#fig..counter.v_impl">Implementation of a simple up-counter with synchronous reset</a></dt><dt>3.10. <a href="usage.tutorial.html#fig..test-design.rspec">Running a test with specification in rSpec format</a></dt><dt>3.11. <a href="usage.tutorial.html#fig..test-design.unit-test">Running a test with specification in xUnit format</a></dt></dl></div><div class="list-of-tables"><p><b>List of Tables</b></p><dl><dt>2.1. <a href="background.organization.html#table..handle-property-accessor-naming-format">Naming format for accessing a handle's <span class="acronym">VPI</span> properties</a></dt><dt>2.2. <a href="background.organization.html#id2488052">Possible accessors and their implications</a></dt></dl></div><div class="list-of-examples"><p><b>List of Examples</b></p><dl><dt>2.1. <a href="background.organization.html#ex..handle-property-accessor-naming-format">Accessing a handle's <span class="acronym">VPI</span> properties</a></dt><dt>4.1. <a href="problem.ivl.html#ex..TestFoo">Part of a bench which instantiates a Verilog design</a></dt><dt>4.2. <a href="problem.ivl.html#ex..TestFoo_bad">Bad design with unconnected registers</a></dt><dt>4.3. <a href="problem.ivl.html#ex..TestFoo_fix">Fixed design with wired registers</a></dt></dl></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"> </td><td width="20%" align="center"> </td><td width="40%" align="right"> <a accesskey="n" href="introduction.html"><img src="images/next.png" alt="Next" /></a></td></tr><tr><td width="40%" align="left" valign="top"> </td><td width="20%" align="center"> </td><td width="40%" align="right" valign="top"> Chapter 1. Introduction</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-VPI user manual</title><link rel="stylesheet" href="styles/manual.css" type="text/css" /><meta name="generator" content="DocBook XSL Stylesheets V1.68.1" /><meta name="description" content="This manual explains how to use Ruby-VPI. A plain-text version of this manual is also available. Finally, you can find the newest version of this manual at the Ruby-VPI website." /><link rel="start" href="index.html" title="Ruby-VPI user manual" /><link rel="next" href="introduction.html" title="Chapter 1. Introduction" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="application">Ruby-VPI</span> user manual</th></tr><tr><td width="20%" align="left"> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="introduction.html"><img src="images/next.png" alt="Next" /></a></td></tr></table><hr /></div><div class="book" lang="en" xml:lang="en"><div class="titlepage"><div><div><h1 class="title"><a id="id2472672"></a><span class="application">Ruby-VPI</span> user manual</h1></div><div><p class="copyright">Copyright © 2006 Suraj N. Kurapati</p></div><div><p class="copyright">Copyright © 2005, 2006 <a href="http://tango.freedesktop.org" target="_top">Tango Desktop Project</a> <em><span class="remark">for admonition and navigation graphics released under <a href="images/COPYING" target="_top">this license</a>.</span></em></p></div><div><p class="copyright">Copyright © 1999, 2000, 2001 Norman Walsh <em><span class="remark">for DocBook graphics released under <a href="images/copyright" target="_top">this license</a>.</span></em></p></div><div><div class="legalnotice"><a id="id2516403"></a><p>Permission is granted to copy, distribute and/or modify this document under the terms of the <span class="acronym">GNU</span> Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled "<span class="acronym">GNU</span> Free Documentation License".</p></div></div><div><div class="abstract"><p class="title"><b>Abstract</b></p><p>This manual explains how to use <span class="application">Ruby-VPI</span>. A <a href="manual.txt" target="_top">plain-text version of this manual</a> is also available. Finally, you can find the newest version of this manual at the <a href="http://ruby-vpi.rubyforge.org" target="_top"><span class="application">Ruby-VPI</span> website</a>.</p></div></div></div><hr /></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="chapter"><a href="introduction.html">1. Introduction</a></span></dt><dd><dl><dt><span class="section"><a href="introduction.license.html">License</a></span></dt><dt><span class="section"><a href="introduction.manifest.html">Manifest</a></span></dt><dt><span class="section"><a href="introduction.resources.html">Resources</a></span></dt><dt><span class="section"><a href="introduction.related-works.html">Related works</a></span></dt><dd><dl><dt><span class="section"><a href="introduction.related-works.html#introduction.related-works.pli">Ye olde PLI</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="background.html">2. Background</a></span></dt><dd><dl><dt><span class="section"><a href="background.methodology.html">Methodology</a></span></dt><dt><span class="section"><a href="background.terminology.html">Terminology</a></span></dt><dt><span class="section"><a href="background.organization.html">Organization</a></span></dt><dd><dl><dt><span class="section"><a href="background.organization.html#organization.vpi">Interface to <span class="acronym">VPI</span></a></span></dt></dl></dd><dt><span class="section"><a href="background.running-tests.html">Running a test</a></span></dt><dd><dl><dt><span class="section"><a href="background.running-tests.html#background.running-tests.init">Initialization</a></span></dt><dt><span class="section"><a href="background.running-tests.html#background.running-tests.exec">Execution</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="setup.html">3. Setup</a></span></dt><dd><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></dd><dt><span class="chapter"><a href="usage.html">4. Usage</a></span></dt><dd><dl><dt><span class="section"><a href="usage.tools.html">Tools</a></span></dt><dd><dl><dt><span class="section"><a href="usage.tools.html#usage.tools.generate-test">Automated test generation</a></span></dt><dt><span class="section"><a href="usage.tools.html#usage.tools.verilog-ruby-conv">Verilog to Ruby conversion</a></span></dt></dl></dd><dt><span class="section"><a href="usage.tutorial.html">Tutorial</a></span></dt><dd><dl><dt><span class="section"><a href="usage.tutorial.html#usage.tutorial.declare-design">Start with a design</a></span></dt><dt><span class="section"><a href="usage.tutorial.html#usage.tutorial.generate-test">Generate a test</a></span></dt><dt><span class="section"><a href="usage.tutorial.html#usage.tutorial.specification">Specify your expectations</a></span></dt><dt><span class="section"><a href="usage.tutorial.html#usage.tutorial.implement-proto">Implement the prototype</a></span></dt><dt><span class="section"><a href="usage.tutorial.html#usage.tutorial.test-proto">Verify the prototype</a></span></dt><dt><span class="section"><a href="usage.tutorial.html#usage.tutorial.implement-design">Implement the design</a></span></dt><dt><span class="section"><a href="usage.tutorial.html#usage.tutorial.test-design">Verify the design</a></span></dt></dl></dd><dt><span class="section"><a href="usage.examples.html">Examples</a></span></dt></dl></dd><dt><span class="chapter"><a href="problems.html">5. Known problems</a></span></dt><dd><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></dd><dt><span class="glossary"><a href="glossary.html">Glossary</a></span></dt><dt><span class="appendix"><a href="gfdl.html">A. GNU Free Documentation License</a></span></dt><dd><dl><dt><span class="section"><a href="gfdl-0.html">PREAMBLE</a></span></dt><dt><span class="section"><a href="gfdl-1.html">APPLICABILITY AND DEFINITIONS</a></span></dt><dt><span class="section"><a href="gfdl-2.html">VERBATIM COPYING</a></span></dt><dt><span class="section"><a href="gfdl-3.html">COPYING IN QUANTITY</a></span></dt><dt><span class="section"><a href="gfdl-4.html">MODIFICATIONS</a></span></dt><dt><span class="section"><a href="gfdl-5.html">COMBINING DOCUMENTS</a></span></dt><dt><span class="section"><a href="gfdl-6.html">COLLECTIONS OF DOCUMENTS</a></span></dt><dt><span class="section"><a href="gfdl-7.html">AGGREGATION WITH INDEPENDENT WORKS</a></span></dt><dt><span class="section"><a href="gfdl-8.html">TRANSLATION</a></span></dt><dt><span class="section"><a href="gfdl-9.html">TERMINATION</a></span></dt><dt><span class="section"><a href="gfdl-10.html">FUTURE REVISIONS OF THIS LICENSE</a></span></dt><dt><span class="section"><a href="gfdl-addendum.html">ADDENDUM: How to use this License for
4
+ your documents</a></span></dt></dl></dd></dl></div><div class="list-of-figures"><p><b>List of Figures</b></p><dl><dt>2.1. <a href="background.organization.html#fig..organization">Overall organization of a test</a></dt><dt>2.2. <a href="background.organization.html#fig..organization.detail">Detailed organization of a test</a></dt><dt>2.3. <a href="background.running-tests.html#fig..ruby_init">Initialization of a test</a></dt><dt>2.4. <a href="background.running-tests.html#fig..ruby_relay">Execution of a test</a></dt><dt>4.1. <a href="usage.tutorial.html#fig..counter.v_decl">Declaration of a simple up-counter with synchronous reset</a></dt><dt>4.2. <a href="usage.tutorial.html#fig..generate-test.rspec">Generating a test with specification in rSpec format</a></dt><dt>4.3. <a href="usage.tutorial.html#fig..generate-test.unit-test">Generating a test with specification in xUnit format</a></dt><dt>4.4. <a href="usage.tutorial.html#fig..counter_rspec_spec.rb">Specification implemented in rSpec format</a></dt><dt>4.5. <a href="usage.tutorial.html#fig..counter_xunit_spec.rb">Specification implemented in xUnit format</a></dt><dt>4.6. <a href="usage.tutorial.html#fig..counter_proto.rb">Ruby prototype of our Verilog design</a></dt><dt>4.7. <a href="usage.tutorial.html#fig..test-proto.rspec">Running a test with specification in rSpec format</a></dt><dt>4.8. <a href="usage.tutorial.html#fig..test-proto.unit-test">Running a test with specification in xUnit format</a></dt><dt>4.9. <a href="usage.tutorial.html#fig..counter.v_impl">Implementation of a simple up-counter with synchronous reset</a></dt><dt>4.10. <a href="usage.tutorial.html#fig..test-design.rspec">Running a test with specification in rSpec format</a></dt><dt>4.11. <a href="usage.tutorial.html#fig..test-design.unit-test">Running a test with specification in xUnit format</a></dt></dl></div><div class="list-of-tables"><p><b>List of Tables</b></p><dl><dt>2.1. <a href="background.organization.html#table..handle-property-accessor-naming-format">Naming format for accessing a handle's <span class="acronym">VPI</span> properties</a></dt><dt>2.2. <a href="background.organization.html#id2488119">Possible accessors and their implications</a></dt></dl></div><div class="list-of-examples"><p><b>List of Examples</b></p><dl><dt>2.1. <a href="background.organization.html#ex..handle-property-accessor-naming-format">Accessing a handle's <span class="acronym">VPI</span> properties</a></dt><dt>5.1. <a href="problem.ivl.html#ex..TestFoo">Part of a bench which instantiates a Verilog design</a></dt><dt>5.2. <a href="problem.ivl.html#ex..TestFoo_bad">Bad design with unconnected registers</a></dt><dt>5.3. <a href="problem.ivl.html#ex..TestFoo_fix">Fixed design with wired registers</a></dt></dl></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"> </td><td width="20%" align="center"> </td><td width="40%" align="right"> <a accesskey="n" href="introduction.html"><img src="images/next.png" alt="Next" /></a></td></tr><tr><td width="40%" align="left" valign="top"> </td><td width="20%" align="center"> </td><td width="40%" align="right" valign="top"> Chapter 1. Introduction</td></tr></table></div></body></html>