ruby-vpi 7.3.0 → 8.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (243) hide show
  1. data/HEADER +19 -4
  2. data/HISTORY +34 -1
  3. data/MEMO +2 -2
  4. data/README +14 -1
  5. data/Rakefile +39 -66
  6. data/bin/generate_test.rb +5 -23
  7. data/bin/generate_test_tpl/bench.rb +1 -1
  8. data/bin/generate_test_tpl/bench.v +2 -2
  9. data/bin/generate_test_tpl/proto.rb +8 -3
  10. data/bin/header_to_ruby.rb +3 -3
  11. data/doc/Rakefile +9 -26
  12. data/doc/{xhtml/background.html → background.html} +1 -1
  13. data/doc/{xhtml/background.methodology.html → background.methodology.html} +1 -1
  14. data/doc/{xhtml/background.organization.html → background.organization.html} +1 -1
  15. data/doc/{xhtml/background.running-tests.html → background.running-tests.html} +0 -0
  16. data/doc/{xhtml/background.terminology.html → background.terminology.html} +0 -0
  17. data/doc/{src/figures → figures}/organization.png +0 -0
  18. data/doc/{src/figures → figures}/organization_detailed.png +0 -0
  19. data/doc/{src/figures → figures}/ruby_init.png +0 -0
  20. data/doc/{src/figures → figures}/ruby_relay.png +0 -0
  21. data/doc/{xhtml/gfdl-0.html → gfdl-0.html} +0 -0
  22. data/doc/{xhtml/gfdl-1.html → gfdl-1.html} +0 -0
  23. data/doc/{xhtml/gfdl-10.html → gfdl-10.html} +0 -0
  24. data/doc/{xhtml/gfdl-2.html → gfdl-2.html} +0 -0
  25. data/doc/{xhtml/gfdl-3.html → gfdl-3.html} +0 -0
  26. data/doc/{xhtml/gfdl-4.html → gfdl-4.html} +0 -0
  27. data/doc/{xhtml/gfdl-5.html → gfdl-5.html} +0 -0
  28. data/doc/{xhtml/gfdl-6.html → gfdl-6.html} +0 -0
  29. data/doc/{xhtml/gfdl-7.html → gfdl-7.html} +0 -0
  30. data/doc/{xhtml/gfdl-8.html → gfdl-8.html} +0 -0
  31. data/doc/{xhtml/gfdl-9.html → gfdl-9.html} +0 -0
  32. data/doc/{xhtml/gfdl-addendum.html → gfdl-addendum.html} +0 -0
  33. data/doc/{xhtml/gfdl.html → gfdl.html} +0 -0
  34. data/doc/glossary.html +3 -0
  35. data/doc/{src/images → images}/COPYING +0 -0
  36. data/doc/{src/images → images}/ChangeLog +0 -0
  37. data/doc/{src/images → images}/blank.png +0 -0
  38. data/doc/{src/images → images}/callouts/1.png +0 -0
  39. data/doc/{src/images → images}/callouts/10.png +0 -0
  40. data/doc/{src/images → images}/callouts/11.png +0 -0
  41. data/doc/{src/images → images}/callouts/12.png +0 -0
  42. data/doc/{src/images → images}/callouts/13.png +0 -0
  43. data/doc/{src/images → images}/callouts/14.png +0 -0
  44. data/doc/{src/images → images}/callouts/15.png +0 -0
  45. data/doc/{src/images → images}/callouts/2.png +0 -0
  46. data/doc/{src/images → images}/callouts/3.png +0 -0
  47. data/doc/{src/images → images}/callouts/4.png +0 -0
  48. data/doc/{src/images → images}/callouts/5.png +0 -0
  49. data/doc/{src/images → images}/callouts/6.png +0 -0
  50. data/doc/{src/images → images}/callouts/7.png +0 -0
  51. data/doc/{src/images → images}/callouts/8.png +0 -0
  52. data/doc/{src/images → images}/callouts/9.png +0 -0
  53. data/doc/{src/images → images}/callouts/ChangeLog +0 -0
  54. data/doc/{src/images → images}/caution.png +0 -0
  55. data/doc/{src/images → images}/caution.svg +0 -0
  56. data/doc/{src/images → images}/copyright +0 -0
  57. data/doc/{src/images → images}/draft.png +0 -0
  58. data/doc/{src/images → images}/home.png +0 -0
  59. data/doc/{src/images → images}/home.svg +0 -0
  60. data/doc/{src/images → images}/important.png +0 -0
  61. data/doc/{src/images → images}/important.svg +0 -0
  62. data/doc/{src/images → images}/next.png +0 -0
  63. data/doc/{src/images → images}/next.svg +0 -0
  64. data/doc/{src/images → images}/note.png +0 -0
  65. data/doc/{src/images → images}/note.svg +0 -0
  66. data/doc/{src/images → images}/prev.png +0 -0
  67. data/doc/{src/images → images}/prev.svg +0 -0
  68. data/doc/{src/images → images}/tip.png +0 -0
  69. data/doc/{src/images → images}/tip.svg +0 -0
  70. data/doc/{src/images → images}/toc-blank.png +0 -0
  71. data/doc/{src/images → images}/toc-minus.png +0 -0
  72. data/doc/{src/images → images}/toc-plus.png +0 -0
  73. data/doc/{src/images → images}/up.png +0 -0
  74. data/doc/{src/images → images}/up.svg +0 -0
  75. data/doc/{src/images → images}/warning.png +0 -0
  76. data/doc/{src/images → images}/warning.svg +0 -0
  77. data/doc/{xhtml/index.html → index.html} +2 -2
  78. data/doc/{xhtml/introduction.html → introduction.html} +0 -0
  79. data/doc/{xhtml/introduction.license.html → introduction.license.html} +0 -0
  80. data/doc/{xhtml/introduction.manifest.html → introduction.manifest.html} +1 -1
  81. data/doc/{xhtml/introduction.related-works.html → introduction.related-works.html} +0 -0
  82. data/doc/{xhtml/introduction.resources.html → introduction.resources.html} +1 -1
  83. data/doc/{txt/manual.txt → manual.txt} +50 -49
  84. data/doc/{xhtml/problem.ivl.html → problem.ivl.html} +0 -0
  85. data/doc/{xhtml/problems.html → problems.html} +0 -0
  86. data/doc/{xhtml/problems.ruby.html → problems.ruby.html} +0 -0
  87. data/doc/{xhtml/problems.vsim.html → problems.vsim.html} +0 -0
  88. data/doc/src/manual.xml +53 -39
  89. data/doc/src/shared.dtd +1 -2
  90. data/doc/{xhtml/styles → styles}/manual.css +6 -10
  91. data/doc/{xhtml/usage.examples.html → usage.examples.html} +0 -0
  92. data/doc/{xhtml/usage.html → usage.html} +0 -0
  93. data/doc/{xhtml/usage.installation.html → usage.installation.html} +0 -0
  94. data/doc/{xhtml/usage.requirements.html → usage.requirements.html} +0 -0
  95. data/doc/{xhtml/usage.tools.html → usage.tools.html} +0 -0
  96. data/doc/{xhtml/usage.tutorial.html → usage.tutorial.html} +14 -18
  97. data/gem_extconf.rb +1 -1
  98. data/header.html +18 -4
  99. data/header.part.html +18 -4
  100. data/history.html +87 -5
  101. data/history.part.html +69 -1
  102. data/lib/ruby-vpi.rb +5 -5
  103. data/lib/ruby-vpi/rcov.rb +2 -2
  104. data/lib/ruby-vpi/runner.rb +4 -7
  105. data/lib/ruby-vpi/vpi_util.rb +2 -2
  106. data/memo.html +23 -9
  107. data/memo.part.html +5 -5
  108. data/readme.html +40 -5
  109. data/readme.part.html +22 -1
  110. data/ref/c/annotated.html +1 -1
  111. data/ref/c/common_8h.html +1 -1
  112. data/ref/c/files.html +1 -1
  113. data/ref/c/functions.html +1 -1
  114. data/ref/c/functions_vars.html +1 -1
  115. data/ref/c/globals.html +1 -1
  116. data/ref/c/globals_0x63.html +1 -1
  117. data/ref/c/globals_0x65.html +1 -1
  118. data/ref/c/globals_0x66.html +1 -1
  119. data/ref/c/globals_0x70.html +1 -1
  120. data/ref/c/globals_0x72.html +1 -1
  121. data/ref/c/globals_0x73.html +1 -1
  122. data/ref/c/globals_0x74.html +1 -1
  123. data/ref/c/globals_0x76.html +1 -1
  124. data/ref/c/globals_0x78.html +1 -1
  125. data/ref/c/globals_defs.html +1 -1
  126. data/ref/c/globals_defs_0x65.html +1 -1
  127. data/ref/c/globals_defs_0x70.html +1 -1
  128. data/ref/c/globals_defs_0x76.html +1 -1
  129. data/ref/c/globals_defs_0x78.html +1 -1
  130. data/ref/c/globals_enum.html +1 -1
  131. data/ref/c/globals_eval.html +1 -1
  132. data/ref/c/globals_func.html +1 -1
  133. data/ref/c/globals_type.html +1 -1
  134. data/ref/c/globals_vars.html +1 -1
  135. data/ref/c/hierarchy.html +1 -1
  136. data/ref/c/index.html +1 -1
  137. data/ref/c/relay_8cin.html +1 -1
  138. data/ref/c/relay_8hin.html +1 -1
  139. data/ref/c/ruby-vpi_8c.html +1 -1
  140. data/ref/c/structrelay____RubyOptions____def.html +1 -1
  141. data/ref/c/structt__cb__data.html +1 -1
  142. data/ref/c/structt__vpi__delay.html +1 -1
  143. data/ref/c/structt__vpi__error__info.html +1 -1
  144. data/ref/c/structt__vpi__strengthval.html +1 -1
  145. data/ref/c/structt__vpi__systf__data.html +1 -1
  146. data/ref/c/structt__vpi__time.html +1 -1
  147. data/ref/c/structt__vpi__value.html +1 -1
  148. data/ref/c/structt__vpi__vecval.html +1 -1
  149. data/ref/c/structt__vpi__vlog__info.html +1 -1
  150. data/ref/c/swig_8cin.html +1 -1
  151. data/ref/c/swig_8hin.html +1 -1
  152. data/ref/c/verilog_8h.html +1 -1
  153. data/ref/c/vlog_8cin.html +1 -1
  154. data/ref/c/vlog_8hin.html +1 -1
  155. data/ref/c/vpi__user_8h.html +1 -1
  156. data/ref/ruby/classes/OutputInfo.src/M000014.html +36 -36
  157. data/ref/ruby/classes/{RubyVPI.html → RubyVpi.html} +6 -6
  158. data/ref/ruby/classes/{RubyVPI.src → RubyVpi.src}/M000075.html +5 -5
  159. data/ref/ruby/classes/{RubyVPI.src → RubyVpi.src}/M000076.html +2 -2
  160. data/ref/ruby/classes/SWIG/TYPE_p_unsigned_int.src/M000070.html +2 -2
  161. data/ref/ruby/classes/Template.src/M000015.html +4 -4
  162. data/ref/ruby/classes/XX.html +4 -4
  163. data/ref/ruby/classes/XX/XHTML.html +5 -5
  164. data/ref/ruby/classes/XX/XHTML.src/{M000024.html → M000023.html} +0 -0
  165. data/ref/ruby/classes/XX/XHTML/Strict.html +5 -5
  166. data/ref/ruby/classes/XX/XHTML/Strict.src/{M000026.html → M000025.html} +0 -0
  167. data/ref/ruby/classes/XX/XHTML/Transitional.html +5 -5
  168. data/ref/ruby/classes/XX/XHTML/Transitional.src/{M000025.html → M000024.html} +0 -0
  169. data/ref/ruby/classes/XX/XMLish.html +5 -5
  170. data/ref/ruby/classes/XX/XMLish.src/{M000023.html → M000026.html} +0 -0
  171. data/ref/ruby/created.rid +1 -1
  172. data/ref/ruby/files/bin/generate_test_rb.html +7 -39
  173. data/ref/ruby/files/bin/generate_test_rb.src/M000001.html +15 -15
  174. data/ref/ruby/files/bin/header_to_ruby_rb.html +12 -4
  175. data/ref/ruby/files/lib/ruby-vpi/erb_rb.html +1 -1
  176. data/ref/ruby/files/lib/ruby-vpi/rake_rb.html +1 -1
  177. data/ref/ruby/files/lib/ruby-vpi/rcov_rb.html +1 -1
  178. data/ref/ruby/files/lib/ruby-vpi/rdoc_rb.html +1 -1
  179. data/ref/ruby/files/lib/ruby-vpi/rspec_rb.html +1 -1
  180. data/ref/ruby/files/lib/ruby-vpi/runner_proxy_rb.html +1 -1
  181. data/ref/ruby/files/lib/ruby-vpi/runner_rb.html +2 -7
  182. data/ref/ruby/files/lib/ruby-vpi/runner_rb.src/M000002.html +6 -6
  183. data/ref/ruby/files/lib/ruby-vpi/verilog_parser_rb.html +1 -1
  184. data/ref/ruby/files/lib/ruby-vpi/vpi_util_rb.html +1 -1
  185. data/ref/ruby/files/lib/ruby-vpi/xx_rb.html +1 -1
  186. data/ref/ruby/files/lib/ruby-vpi_rb.html +1 -1
  187. data/ref/ruby/fr_class_index.html +1 -1
  188. data/ref/ruby/fr_method_index.html +10 -10
  189. data/samp/counter/counter_rspecTest_bench.rb +1 -1
  190. data/samp/counter/counter_rspecTest_proto.rb +1 -1
  191. data/samp/counter/counter_unitTest_bench.rb +1 -1
  192. data/samp/counter/counter_unitTest_proto.rb +1 -1
  193. data/samp/pipelined_alu/hw5_unit_test_bench.rb +1 -1
  194. data/samp/pipelined_alu/hw5_unit_test_proto.rb +1 -1
  195. metadata +183 -237
  196. data/doc/src/styles/manual.css +0 -87
  197. data/doc/xhtml/figures/organization.png +0 -0
  198. data/doc/xhtml/figures/organization_detailed.png +0 -0
  199. data/doc/xhtml/figures/ruby_init.png +0 -0
  200. data/doc/xhtml/figures/ruby_relay.png +0 -0
  201. data/doc/xhtml/glossary.html +0 -3
  202. data/doc/xhtml/images/COPYING +0 -67
  203. data/doc/xhtml/images/ChangeLog +0 -27
  204. data/doc/xhtml/images/blank.png +0 -0
  205. data/doc/xhtml/images/callouts/1.png +0 -0
  206. data/doc/xhtml/images/callouts/10.png +0 -0
  207. data/doc/xhtml/images/callouts/11.png +0 -0
  208. data/doc/xhtml/images/callouts/12.png +0 -0
  209. data/doc/xhtml/images/callouts/13.png +0 -0
  210. data/doc/xhtml/images/callouts/14.png +0 -0
  211. data/doc/xhtml/images/callouts/15.png +0 -0
  212. data/doc/xhtml/images/callouts/2.png +0 -0
  213. data/doc/xhtml/images/callouts/3.png +0 -0
  214. data/doc/xhtml/images/callouts/4.png +0 -0
  215. data/doc/xhtml/images/callouts/5.png +0 -0
  216. data/doc/xhtml/images/callouts/6.png +0 -0
  217. data/doc/xhtml/images/callouts/7.png +0 -0
  218. data/doc/xhtml/images/callouts/8.png +0 -0
  219. data/doc/xhtml/images/callouts/9.png +0 -0
  220. data/doc/xhtml/images/callouts/ChangeLog +0 -15
  221. data/doc/xhtml/images/caution.png +0 -0
  222. data/doc/xhtml/images/caution.svg +0 -290
  223. data/doc/xhtml/images/copyright +0 -55
  224. data/doc/xhtml/images/draft.png +0 -0
  225. data/doc/xhtml/images/home.png +0 -0
  226. data/doc/xhtml/images/home.svg +0 -386
  227. data/doc/xhtml/images/important.png +0 -0
  228. data/doc/xhtml/images/important.svg +0 -163
  229. data/doc/xhtml/images/next.png +0 -0
  230. data/doc/xhtml/images/next.svg +0 -191
  231. data/doc/xhtml/images/note.png +0 -0
  232. data/doc/xhtml/images/note.svg +0 -483
  233. data/doc/xhtml/images/prev.png +0 -0
  234. data/doc/xhtml/images/prev.svg +0 -852
  235. data/doc/xhtml/images/tip.png +0 -0
  236. data/doc/xhtml/images/tip.svg +0 -1145
  237. data/doc/xhtml/images/toc-blank.png +0 -0
  238. data/doc/xhtml/images/toc-minus.png +0 -0
  239. data/doc/xhtml/images/toc-plus.png +0 -0
  240. data/doc/xhtml/images/up.png +0 -0
  241. data/doc/xhtml/images/up.svg +0 -195
  242. data/doc/xhtml/images/warning.png +0 -0
  243. data/doc/xhtml/images/warning.svg +0 -334
@@ -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 2. Background</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="introduction.related-works.html" title="Related works" /><link rel="next" href="background.methodology.html" title="Methodology" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 2. Background</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="introduction.related-works.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="background.methodology.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="background"></a>Chapter 2. Background</h2></div></div></div><div class="toc"><p><b>Table of Contents</b></p><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></div><p><span class="application">Ruby-VPI</span> is a <a href="glossary.html#term..bench"><em class="glossterm">bench</em></a> which lets you <a href="glossary.html#term..test"><em class="glossterm">test</em></a> Verilog modules using the Ruby language.</p></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="introduction.related-works.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="background.methodology.html"><img src="images/next.png" alt="Next" /></a></td></tr><tr><td width="40%" align="left" valign="top">Related works </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"> Methodology</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 2. Background</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="introduction.related-works.html" title="Related works" /><link rel="next" href="background.methodology.html" title="Methodology" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 2. Background</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="introduction.related-works.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="background.methodology.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="background"></a>Chapter 2. Background</h2></div></div></div><div class="toc"><p><b>Table of Contents</b></p><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></div><p><span class="application">Ruby-VPI</span> is a <a href="glossary.html#term..bench">Bench</a> which lets you <a href="glossary.html#term..test">Test</a> Verilog modules using the Ruby language.</p></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="introduction.related-works.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="background.methodology.html"><img src="images/next.png" alt="Next" /></a></td></tr><tr><td width="40%" align="left" valign="top">Related works </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"> Methodology</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>Methodology</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.html" title="Chapter 2. Background" /><link rel="next" href="background.terminology.html" title="Terminology" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Methodology</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="background.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="background.terminology.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.methodology"></a>Methodology</h2></div></div></div><p><span class="application">Ruby-VPI</span> presents an open-ended interface to <span class="acronym">VPI</span>. Thus, you can use any methodology you wish when writing tests. However, <a href="glossary.html#term..BDD"><em class="glossterm">BDD</em></a> is emphasized in this project because it greatly simplifies thinking about <span class="emphasis"><em>how</em></span> to verify a design.</p></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="background.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.terminology.html"><img src="images/next.png" alt="Next" /></a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 2. Background </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"> Terminology</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>Methodology</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.html" title="Chapter 2. Background" /><link rel="next" href="background.terminology.html" title="Terminology" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Methodology</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="background.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="background.terminology.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.methodology"></a>Methodology</h2></div></div></div><p><span class="application">Ruby-VPI</span> presents an open-ended interface to <span class="acronym">VPI</span>. Thus, you can use any methodology you wish when writing tests. However, <a href="glossary.html#term..BDD"><span class="acronym">BDD</span></a> is emphasized in this project because it greatly simplifies thinking about <span class="emphasis"><em>how</em></span> to verify a design.</p></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="background.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.terminology.html"><img src="images/next.png" alt="Next" /></a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 2. Background </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"> Terminology</td></tr></table></div></body></html>
@@ -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="id2482976"></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 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="id2482977"></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>
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
data/doc/glossary.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>Glossary</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="problems.vsim.html" title="Mentor Modelsim" /><link rel="next" href="gfdl.html" title="Appendix A. GNU Free Documentation License" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Glossary</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="problems.vsim.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="gfdl.html"><img src="images/next.png" alt="Next" /></a></td></tr></table><hr /></div><div class="glossary"><div class="titlepage"><div><div><h2 class="title"><a id="glossary"></a>Glossary</h2></div></div></div><div class="glossdiv"><h3 class="title">B</h3><dl><dt><a id="term..bench"></a>Bench</dt><dd><p>An environment in which a <a href="glossary.html#term..design">Design</a> is verified against a <a href="glossary.html#term..specification">Specification</a>. Often, it is used to emulate conditions in which the design will be eventually deployed.</p></dd><dt><a id="term..BDD"></a><span class="acronym">BDD</span></dt><dd><p>Behavior driven development.</p><p>A software development methodology which emphasizes thinking in terms of behavior when designing, implementing, and verifying software. See the <a href="http://behaviour-driven.org/" target="_top">official wiki</a> for more information.</p><p>See Also <a href="glossary.html#term..TDD">TDD</a>, <a href="glossary.html#term..rspec">RSpec</a>.</p></dd></dl></div><div class="glossdiv"><h3 class="title">D</h3><dl><dt><a id="term..design"></a>Design</dt><dd><p>An idea or entity that is verified against a <a href="glossary.html#term..specification">Specification</a> in order to ensure correctness or soundness of its being. In other words, it is the thing being checked: does it work or not?</p></dd></dl></div><div class="glossdiv"><h3 class="title">E</h3><dl><dt><a id="term..expectation"></a>Expectation</dt><dd><p>The desired response to some stimulus.</p></dd></dl></div><div class="glossdiv"><h3 class="title">H</h3><dl><dt><a id="term..handle"></a>Handle</dt><dd><p>An object in a Verilog simulation. For example, a handle can represent a wire, register, module, if-statement, expression, and so on.</p></dd></dl></div><div class="glossdiv"><h3 class="title">R</h3><dl><dt><a id="term..rake"></a>Rake</dt><dd><div class="blockquote"><table border="0" width="100%" cellspacing="0" cellpadding="0" class="blockquote" summary="Block quote"><tr><td width="10%" valign="top"> </td><td width="80%" valign="top"><p>Rake is a build tool, written in Ruby, using Ruby as a build language. Rake is similar to make in scope and purpose.</p></td><td width="10%" valign="top"> </td></tr><tr><td width="10%" valign="top"> </td><td colspan="2" align="right" valign="top">--<span class="attribution"><a href="http://docs.rubyrake.org/" target="_top">Rake documentation</a></span></td></tr></table></div><p>See the <a href="http://rake.rubyforge.org/" target="_top">Rake website</a> for more information.</p></dd><dt><a id="term..rspec"></a>RSpec</dt><dd><p>Ruby framework for BDD. See the <a href="http://rspec.rubyforge.org" target="_top">RSpec website</a> and <a href="http://rspec.rubyforge.org/tutorials/index.html" target="_top">RSpec tutorial</a> for more information.</p><p>See Also <a href="glossary.html#term..BDD"><span class="acronym">BDD</span></a>.</p></dd></dl></div><div class="glossdiv"><h3 class="title">S</h3><dl><dt><a id="term..specification"></a>Specification</dt><dd><p>A set of <a href="glossary.html#term..expectation">Expectation</a>s which define the desired behavior of a <a href="glossary.html#term..design">Design</a> when it is subjected to certain conditions.</p></dd></dl></div><div class="glossdiv"><h3 class="title">T</h3><dl><dt><a id="term..TDD"></a>TDD</dt><dd><p>Test Driven Development.</p><p>See Also <a href="glossary.html#term..BDD"><span class="acronym">BDD</span></a>.</p></dd><dt><a id="term..test"></a>Test</dt><dd><p>Something that checks if a <a href="glossary.html#term..design">Design</a> satisfies a <a href="glossary.html#term..specification">Specification</a>.</p><p>See Also <a href="glossary.html#term..test-bench">Test bench</a>.</p></dd><dt><a id="term..test-bench"></a>Test bench</dt><dd><p>An allusion to <a href="background.terminology.html" title="Terminology">a bench in an electronics laboratory</a>, or so it seems.</p><p>See Also <a href="glossary.html#term..test">Test</a>.</p></dd></dl></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="problems.vsim.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="gfdl.html"><img src="images/next.png" alt="Next" /></a></td></tr><tr><td width="40%" align="left" valign="top">Mentor Modelsim </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"> Appendix A. GNU Free Documentation License</td></tr></table></div></body></html>
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -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="id2467206"></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="id2511299"></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.installation.html">Installation and maintenance</a></span></dt><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.TestUnit">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 unit test format</a></dt><dt>3.4. <a href="usage.tutorial.html#fig..counter_rspecTest_spec.rb">Specification implemented in RSpec format</a></dt><dt>3.5. <a href="usage.tutorial.html#fig..counter_unitTest_spec.rb">Specification implemented in unit test 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 unit test 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 unit test 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#id2482976">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. 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="id2467520"></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="id2511299"></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.installation.html">Installation and maintenance</a></span></dt><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.TestUnit">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 unit test format</a></dt><dt>3.4. <a href="usage.tutorial.html#fig..counter_rspecTest_spec.rb">Specification implemented in RSpec format</a></dt><dt>3.5. <a href="usage.tutorial.html#fig..counter_unitTest_spec.rb">Specification implemented in unit test 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 unit test 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 unit test 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#id2482977">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>
File without changes
@@ -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>Manifest</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="introduction.html" title="Chapter 1. Introduction" /><link rel="prev" href="introduction.license.html" title="License" /><link rel="next" href="introduction.resources.html" title="Resources" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Manifest</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="introduction.license.html"><img src="images/prev.png" alt="Prev" /></a> </td><th width="60%" align="center">Chapter 1. Introduction</th><td width="20%" align="right"> <a accesskey="n" href="introduction.resources.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="introduction.manifest"></a>Manifest</h2></div></div></div><p>When you extract a <span class="application">Ruby-VPI</span> release package, the following is what you would expect to find.</p><div class="variablelist"><dl><dt><span class="term"><code class="filename">doc</code></span></dt><dd><p>This directory contains user documentation in various formats.</p></dd><dt><span class="term"><code class="filename">ref</code></span></dt><dd><p>This directory contains reference <span class="acronym">API</span> documentation in <span class="acronym">HTML</span> format.</p></dd><dt><span class="term"><code class="filename">ext</code></span></dt><dd><p>This directory contains source code, written in the C language, for the <a href="background.organization.html" title="Organization">core of <span class="application">Ruby-VPI</span></a>.</p></dd><dt><span class="term"><code class="filename">lib</code></span></dt><dd><p>This directory contains libraries, written in the Ruby language, for use by specifications.</p></dd><dt><span class="term"><code class="filename">bin</code></span></dt><dd><p>This directory contains various tools. See <a href="usage.tools.html" title="Tools">the section called “Tools”</a> for more information.</p></dd><dt><span class="term"><code class="filename">samp</code></span></dt><dd><p>This directory contains example tests. See <a href="usage.examples.html" title="Examples">the section called “Examples”</a> for more information.</p></dd></dl></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="introduction.license.html"><img src="images/prev.png" alt="Prev" /></a> </td><td width="20%" align="center"><a accesskey="u" href="introduction.html"><img src="images/up.png" alt="Up" /></a></td><td width="40%" align="right"> <a accesskey="n" href="introduction.resources.html"><img src="images/next.png" alt="Next" /></a></td></tr><tr><td width="40%" align="left" valign="top">License </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"> Resources</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>Manifest</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="introduction.html" title="Chapter 1. Introduction" /><link rel="prev" href="introduction.license.html" title="License" /><link rel="next" href="introduction.resources.html" title="Resources" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Manifest</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="introduction.license.html"><img src="images/prev.png" alt="Prev" /></a> </td><th width="60%" align="center">Chapter 1. Introduction</th><td width="20%" align="right"> <a accesskey="n" href="introduction.resources.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="introduction.manifest"></a>Manifest</h2></div></div></div><p>When you extract a <span class="application">Ruby-VPI</span> release package, the following is what you would expect to find.</p><div class="variablelist"><dl><dt><span class="term"><code class="filename">doc</code></span></dt><dd><p>This directory contains user documentation in various formats.</p></dd><dt><span class="term"><code class="filename">ref</code></span></dt><dd><p>This directory contains reference <span class="acronym">API</span> documentation in <span class="acronym">HTML</span> format.</p></dd><dt><span class="term"><code class="filename">ext</code></span></dt><dd><p>This directory contains source code, written in the C language, for the <a href="background.organization.html" title="Organization">core of <span class="application">Ruby-VPI</span></a>.</p></dd><dt><span class="term"><code class="filename">lib</code></span></dt><dd><p>This directory contains Ruby libraries provided by <span class="application">Ruby-VPI</span>.</p></dd><dt><span class="term"><code class="filename">bin</code></span></dt><dd><p>This directory contains various tools. See <a href="usage.tools.html" title="Tools">the section called “Tools”</a> for more information.</p></dd><dt><span class="term"><code class="filename">samp</code></span></dt><dd><p>This directory contains example tests. See <a href="usage.examples.html" title="Examples">the section called “Examples”</a> for more information.</p></dd></dl></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="introduction.license.html"><img src="images/prev.png" alt="Prev" /></a> </td><td width="20%" align="center"><a accesskey="u" href="introduction.html"><img src="images/up.png" alt="Up" /></a></td><td width="40%" align="right"> <a accesskey="n" href="introduction.resources.html"><img src="images/next.png" alt="Next" /></a></td></tr><tr><td width="40%" align="left" valign="top">License </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"> Resources</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>Resources</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="introduction.html" title="Chapter 1. Introduction" /><link rel="prev" href="introduction.manifest.html" title="Manifest" /><link rel="next" href="introduction.related-works.html" title="Related works" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Resources</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="introduction.manifest.html"><img src="images/prev.png" alt="Prev" /></a> </td><th width="60%" align="center">Chapter 1. Introduction</th><td width="20%" align="right"> <a accesskey="n" href="introduction.related-works.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="introduction.resources"></a>Resources</h2></div></div></div><div class="variablelist"><dl><dt><span class="term"><a href="http://rubyforge.org/projects/ruby-vpi" target="_top">Project</a></span></dt><dd><p>Access project facilities, hosted generously by <a href="http://rubyforge.org" target="_top">RubyForge</a>.</p></dd><dt><span class="term"><a href="http://rubyforge.org/projects/ruby-vpi" target="_top">Tracker</a></span></dt><dd><p>Report problems, contribute patches, and more.</p></dd><dt><span class="term"><a href="http://rubyforge.org/frs/?group_id=1339" target="_top">Releases</a></span></dt><dd><p>Download the newest release of <span class="application">Ruby-VPI</span>.</p></dd><dt><span class="term"><a href="http://rubyforge.org/scm/?group_id=1339" target="_top">Sources</a></span></dt><dd><p>Browse or access the source code repository.</p></dd><dt><span class="term"><a href="http://rubyforge.org/forum/?group_id=1339" target="_top">Forums</a></span></dt><dd><p>Ask for help, give feedback, or discuss.</p></dd></dl></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="introduction.manifest.html"><img src="images/prev.png" alt="Prev" /></a> </td><td width="20%" align="center"><a accesskey="u" href="introduction.html"><img src="images/up.png" alt="Up" /></a></td><td width="40%" align="right"> <a accesskey="n" href="introduction.related-works.html"><img src="images/next.png" alt="Next" /></a></td></tr><tr><td width="40%" align="left" valign="top">Manifest </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"> Related works</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>Resources</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="introduction.html" title="Chapter 1. Introduction" /><link rel="prev" href="introduction.manifest.html" title="Manifest" /><link rel="next" href="introduction.related-works.html" title="Related works" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Resources</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="introduction.manifest.html"><img src="images/prev.png" alt="Prev" /></a> </td><th width="60%" align="center">Chapter 1. Introduction</th><td width="20%" align="right"> <a accesskey="n" href="introduction.related-works.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="introduction.resources"></a>Resources</h2></div></div></div><div class="variablelist"><dl><dt><span class="term"><a href="http://rubyforge.org/projects/ruby-vpi" target="_top">Project</a></span></dt><dd><p>Access project facilities, hosted generously by <a href="http://rubyforge.org" target="_top">RubyForge</a>.</p></dd><dt><span class="term"><a href="http://rubyforge.org/tracker/?group_id=1339" target="_top">Tracker</a></span></dt><dd><p>Report problems, contribute patches, and more.</p></dd><dt><span class="term"><a href="http://rubyforge.org/frs/?group_id=1339" target="_top">Releases</a></span></dt><dd><p>Download the newest release of <span class="application">Ruby-VPI</span>.</p></dd><dt><span class="term"><a href="http://ruby-vpi.rubyforge.org/src/ruby-vpi" target="_top">Sources</a></span></dt><dd><p>Browse or access the source code repository.</p></dd><dt><span class="term"><a href="http://rubyforge.org/forum/?group_id=1339" target="_top">Forums</a></span></dt><dd><p>Ask for help, give feedback, or discuss.</p></dd></dl></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="introduction.manifest.html"><img src="images/prev.png" alt="Prev" /></a> </td><td width="20%" align="center"><a accesskey="u" href="introduction.html"><img src="images/up.png" alt="Up" /></a></td><td width="40%" align="right"> <a accesskey="n" href="introduction.related-works.html"><img src="images/next.png" alt="Next" /></a></td></tr><tr><td width="40%" align="left" valign="top">Manifest </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"> Related works</td></tr></table></div></body></html>
@@ -168,8 +168,7 @@ ext
168
168
 
169
169
  lib
170
170
 
171
- This directory contains libraries, written in the Ruby language, for use by
172
- specifications.
171
+ This directory contains Ruby libraries provided by Ruby-VPI.
173
172
 
174
173
  bin
175
174
 
@@ -256,7 +255,7 @@ Running a test
256
255
  Initialization
257
256
  Execution
258
257
 
259
- Ruby-VPI is a bench which lets you test Verilog modules using the Ruby
258
+ Ruby-VPI is a Bench which lets you Test Verilog modules using the Ruby
260
259
  language.
261
260
 
262
261
  Methodology
@@ -696,7 +695,7 @@ Procedure 3.1. Typical way of using Ruby-VPI
696
695
 
697
696
  Start with a design
698
697
 
699
- First, we need a design to verify. In this tutorial, Figure 3.1, “Declaration
698
+ First, we need a Design to verify. In this tutorial, Figure 3.1, “Declaration
700
699
  of a simple up-counter with synchronous reset” will serve as our design. Its
701
700
  interface is composed of the following parts:
702
701
 
@@ -732,16 +731,16 @@ endmodule
732
731
 
733
732
  Generate a test
734
733
 
735
- Now that we have a design to verify, let us generate a test for it using the
734
+ Now that we have a Design to verify, let us generate a Test for it using the
736
735
  automated test generator tool. This tool allows us to implement our
737
- specification in either RSpec, unit test, or our very own format. Each format
736
+ Specification in either RSpec, unit test, or our very own format. Each format
738
737
  represents a different software development methodology: RSpec represents BDD,
739
738
  unit testing represents TDD, and our own format can represent another
740
739
  methodology.
741
740
 
742
741
  [Note] Note
743
- In this tutorial, we will see how to implement our specification in both
744
- RSpec and unit test formats.
742
+ In this tutorial, you will see how specifications are implemented in
743
+ both RSpec and unit test formats.
745
744
 
746
745
  Once we have decided how we want to implement our specification, we can proceed
747
746
  to generate a test for our design. Figure 3.2, “Generating a test with
@@ -775,8 +774,9 @@ The reason for dividing a single test into these parts is mainly to decouple
775
774
  the design from the specification. This allows you to focus on writing the
776
775
  specification while the remainder is automatically generated by the tool. For
777
776
  example, when the interface of a Verilog module changes, you would simply
778
- re-run this tool to incorporate those changes into the test without diverting
779
- your focus from the specification.
777
+ re-run this tool and incorporate those changes (with the help of a smart
778
+ merging tool, such as kdiff3) into the test without diverting your focus from
779
+ the specification.
780
780
 
781
781
  Figure 3.2. Generating a test with specification in RSpec format
782
782
 
@@ -808,9 +808,9 @@ Parsed module: counter
808
808
 
809
809
  Specify your expectations
810
810
 
811
- So far, the test generation tool has created a basic foundation for our test.
812
- Now we must build upon this foundation by identifying our expectations of the
813
- design. That is, how do we expect the design to behave under certain
811
+ So far, the test generation tool has created a basic foundation for our Test.
812
+ Now we must build upon this foundation by identifying our Expectations of the
813
+ Design. That is, how do we expect the design to behave under certain
814
814
  conditions?
815
815
 
816
816
  The following is a reasonable set of expectations for our simple counter:
@@ -934,7 +934,7 @@ end
934
934
 
935
935
  Implement the prototype
936
936
 
937
- Now that we have a specification against which to verify our design, let us
937
+ Now that we have a Specification against which to verify our Design, let us
938
938
  build a prototype of our design. By doing so, we exercise our specification,
939
939
  experience potential problems that may arise when we later implement our design
940
940
  in Verilog, and gain confidence in our work. Figure 3.6, “Ruby prototype of our
@@ -947,7 +947,7 @@ Verilog design” shows the completed prototype for our design.
947
947
 
948
948
  Figure 3.6. Ruby prototype of our Verilog design
949
949
 
950
- class CounterProto < Counter
950
+ class CounterPrototype < Counter
951
951
  def simulate!
952
952
  if @reset.intVal == 1
953
953
  @count.intVal = 0
@@ -960,23 +960,22 @@ end
960
960
  Verify the prototype
961
961
 
962
962
  Now that we have implemented our prototype, we are ready to verify it against
963
- our specification by running the test. Figure 3.7, “Running a test with
963
+ our Specification by running the Test. Figure 3.7, “Running a test with
964
964
  specification in RSpec format” and Figure 3.8, “Running a test with
965
965
  specification in unit test format” illustrate this process.
966
966
 
967
- Here, the PROTO environment variable is set—any value is fine—before running
968
- the test in order to replace the design with the prototype in the simulation.
969
- Otherwise, instead of our prototype, our design will be verified against our
970
- specification. Furthermore, the manner in which the PROTO environment variable
971
- is set in these figures follows the syntax of the GNU BASH shell. If you use a
972
- different shell, you may have to use different syntax, or a different command
973
- altogether, in order to set this variable. Finally, the Icarus Verilog
974
- simulator, denoted by ivl, is used to simulate our design.
967
+ [Tip] Tip
968
+ The same specification can be used to verify both prototype and design.
969
+
970
+ Here, the PROTOTYPE environment variable is assigned a non-empty value while
971
+ running the test, so that, instead of our design, our prototype is verified
972
+ against our specification. You can also assign a value to PROTOTYPE before
973
+ running the test, by using your shell's export or setenv command. Finally, the
974
+ Icarus Verilog simulator, denoted by ivl, is used to run the simulation.
975
975
 
976
976
  Figure 3.7. Running a test with specification in RSpec format
977
977
 
978
- $ export PROTO=1
979
- $ rake -f counter_rspecTest_runner.rake ivl
978
+ $ rake -f counter_rspecTest_runner.rake ivl PROTOTYPE=1
980
979
  counter_rspecTest: verifying prototype instead of design
981
980
 
982
981
  A resetted counter's value
@@ -992,8 +991,7 @@ Finished in 0.018199 seconds
992
991
 
993
992
  Figure 3.8. Running a test with specification in unit test format
994
993
 
995
- $ export PROTO=1
996
- $ rake -f counter_unitTest_runner.rake ivl
994
+ $ rake -f counter_unitTest_runner.rake ivl PROTOTYPE=1
997
995
  counter_unitTest: verifying prototype instead of design
998
996
 
999
997
  Loaded suite counter_unitTest_bench
@@ -1006,11 +1004,11 @@ Finished in 0.040668 seconds.
1006
1004
  Implement the design
1007
1005
 
1008
1006
  Now that we have implemented and verified our prototype, we are ready to
1009
- implement our design. This is often quite simple because we translate existing
1007
+ implement our Design. This is often quite simple because we translate existing
1010
1008
  code from Ruby (our prototype) into Verilog (our design). Figure 3.9,
1011
1009
  “Implementation of a simple up-counter with synchronous reset” illustrates the
1012
1010
  result of this process. Once again, note the striking similarities between the
1013
- implementations of our prototype and our design.
1011
+ implementation of our prototype and design.
1014
1012
 
1015
1013
  [Important] Before we continue…
1016
1014
  Replace the contents of the file named counter.v with the source
@@ -1034,23 +1032,19 @@ endmodule
1034
1032
 
1035
1033
  Verify the design
1036
1034
 
1037
- Now that we have implemented our design, we are ready to verify it against our
1038
- specification by running the test. Figure 3.10, “Running a test with
1035
+ Now that we have implemented our Design, we are ready to verify it against our
1036
+ Specification by running the Test. Figure 3.10, “Running a test with
1039
1037
  specification in RSpec format” and Figure 3.11, “Running a test with
1040
1038
  specification in unit test format” illustrate this process.
1041
1039
 
1042
- Here, the PROTO environment variable is unset before the test is run in order
1043
- to prevent the design from being replaced by the prototype. Otherwise, our
1044
- prototype will be verified—instead of our design—against our specification.
1045
- Furthermore, the manner in which the PROTO environment variable is unset in
1046
- these figures follows the syntax of the GNU BASH shell. If you use a different
1047
- shell, you may have to use different syntax, or a different command altogether,
1048
- in order to set this variable. Finally, the Icarus Verilog simulator, denoted
1049
- by ivl, is used to simulate our design.
1040
+ Here, the PROTOTYPE environment variable is not specified while running the
1041
+ test, so that our design, instead of our prototype, is verified against our
1042
+ specification. You can also achieve this effect by assigning an empty value to
1043
+ PROTOTYPE, or by using your shell's unset command. Finally, the Icarus Verilog
1044
+ simulator, denoted by ivl, is used to run the simulation.
1050
1045
 
1051
1046
  Figure 3.10. Running a test with specification in RSpec format
1052
1047
 
1053
- $ unset PROTO
1054
1048
  $ rake -f counter_rspecTest_runner.rake ivl
1055
1049
  A resetted counter's value
1056
1050
  - should be zero
@@ -1065,7 +1059,6 @@ Finished in 0.005628 seconds
1065
1059
 
1066
1060
  Figure 3.11. Running a test with specification in unit test format
1067
1061
 
1068
- $ unset PROTO
1069
1062
  $ rake -f counter_unitTest_runner.rake ivl
1070
1063
  Loaded suite counter_unitTest_bench
1071
1064
  Started
@@ -1203,7 +1196,7 @@ B
1203
1196
 
1204
1197
  Bench
1205
1198
 
1206
- An environment in which a design is verified against a specification.
1199
+ An environment in which a Design is verified against a Specification.
1207
1200
  Often, it is used to emulate conditions in which the design will be
1208
1201
  eventually deployed.
1209
1202
 
@@ -1221,14 +1214,22 @@ D
1221
1214
 
1222
1215
  Design
1223
1216
 
1224
- An idea or entity that is verified against a specification in order to
1225
- ensure correctness or soundness of its being.
1217
+ An idea or entity that is verified against a Specification in order to
1218
+ ensure correctness or soundness of its being. In other words, it is the
1219
+ thing being checked: does it work or not?
1220
+
1221
+ E
1222
+
1223
+ Expectation
1224
+
1225
+ The desired response to some stimulus.
1226
1226
 
1227
1227
  H
1228
1228
 
1229
1229
  Handle
1230
1230
 
1231
- An object in a Verilog simulation.
1231
+ An object in a Verilog simulation. For example, a handle can represent a
1232
+ wire, register, module, if-statement, expression, and so on.
1232
1233
 
1233
1234
  R
1234
1235
 
@@ -1252,8 +1253,8 @@ S
1252
1253
 
1253
1254
  Specification
1254
1255
 
1255
- A collection of expectations that must be satisfied by a design when
1256
- subjected to certain conditions.
1256
+ A set of Expectations which define the desired behavior of a Design when it
1257
+ is subjected to certain conditions.
1257
1258
 
1258
1259
  T
1259
1260
 
@@ -1265,7 +1266,7 @@ TDD
1265
1266
 
1266
1267
  Test
1267
1268
 
1268
- The act of verifying a design against a specification in a bench.
1269
+ Something that checks if a Design satisfies a Specification.
1269
1270
 
1270
1271
  See Also Test bench.
1271
1272
 
File without changes
File without changes