ruby-vpi 7.3.0 → 8.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/HEADER +19 -4
- data/HISTORY +34 -1
- data/MEMO +2 -2
- data/README +14 -1
- data/Rakefile +39 -66
- data/bin/generate_test.rb +5 -23
- data/bin/generate_test_tpl/bench.rb +1 -1
- data/bin/generate_test_tpl/bench.v +2 -2
- data/bin/generate_test_tpl/proto.rb +8 -3
- data/bin/header_to_ruby.rb +3 -3
- data/doc/Rakefile +9 -26
- data/doc/{xhtml/background.html → background.html} +1 -1
- data/doc/{xhtml/background.methodology.html → background.methodology.html} +1 -1
- data/doc/{xhtml/background.organization.html → background.organization.html} +1 -1
- data/doc/{xhtml/background.running-tests.html → background.running-tests.html} +0 -0
- data/doc/{xhtml/background.terminology.html → background.terminology.html} +0 -0
- data/doc/{src/figures → figures}/organization.png +0 -0
- data/doc/{src/figures → figures}/organization_detailed.png +0 -0
- data/doc/{src/figures → figures}/ruby_init.png +0 -0
- data/doc/{src/figures → figures}/ruby_relay.png +0 -0
- data/doc/{xhtml/gfdl-0.html → gfdl-0.html} +0 -0
- data/doc/{xhtml/gfdl-1.html → gfdl-1.html} +0 -0
- data/doc/{xhtml/gfdl-10.html → gfdl-10.html} +0 -0
- data/doc/{xhtml/gfdl-2.html → gfdl-2.html} +0 -0
- data/doc/{xhtml/gfdl-3.html → gfdl-3.html} +0 -0
- data/doc/{xhtml/gfdl-4.html → gfdl-4.html} +0 -0
- data/doc/{xhtml/gfdl-5.html → gfdl-5.html} +0 -0
- data/doc/{xhtml/gfdl-6.html → gfdl-6.html} +0 -0
- data/doc/{xhtml/gfdl-7.html → gfdl-7.html} +0 -0
- data/doc/{xhtml/gfdl-8.html → gfdl-8.html} +0 -0
- data/doc/{xhtml/gfdl-9.html → gfdl-9.html} +0 -0
- data/doc/{xhtml/gfdl-addendum.html → gfdl-addendum.html} +0 -0
- data/doc/{xhtml/gfdl.html → gfdl.html} +0 -0
- data/doc/glossary.html +3 -0
- data/doc/{src/images → images}/COPYING +0 -0
- data/doc/{src/images → images}/ChangeLog +0 -0
- data/doc/{src/images → images}/blank.png +0 -0
- data/doc/{src/images → images}/callouts/1.png +0 -0
- data/doc/{src/images → images}/callouts/10.png +0 -0
- data/doc/{src/images → images}/callouts/11.png +0 -0
- data/doc/{src/images → images}/callouts/12.png +0 -0
- data/doc/{src/images → images}/callouts/13.png +0 -0
- data/doc/{src/images → images}/callouts/14.png +0 -0
- data/doc/{src/images → images}/callouts/15.png +0 -0
- data/doc/{src/images → images}/callouts/2.png +0 -0
- data/doc/{src/images → images}/callouts/3.png +0 -0
- data/doc/{src/images → images}/callouts/4.png +0 -0
- data/doc/{src/images → images}/callouts/5.png +0 -0
- data/doc/{src/images → images}/callouts/6.png +0 -0
- data/doc/{src/images → images}/callouts/7.png +0 -0
- data/doc/{src/images → images}/callouts/8.png +0 -0
- data/doc/{src/images → images}/callouts/9.png +0 -0
- data/doc/{src/images → images}/callouts/ChangeLog +0 -0
- data/doc/{src/images → images}/caution.png +0 -0
- data/doc/{src/images → images}/caution.svg +0 -0
- data/doc/{src/images → images}/copyright +0 -0
- data/doc/{src/images → images}/draft.png +0 -0
- data/doc/{src/images → images}/home.png +0 -0
- data/doc/{src/images → images}/home.svg +0 -0
- data/doc/{src/images → images}/important.png +0 -0
- data/doc/{src/images → images}/important.svg +0 -0
- data/doc/{src/images → images}/next.png +0 -0
- data/doc/{src/images → images}/next.svg +0 -0
- data/doc/{src/images → images}/note.png +0 -0
- data/doc/{src/images → images}/note.svg +0 -0
- data/doc/{src/images → images}/prev.png +0 -0
- data/doc/{src/images → images}/prev.svg +0 -0
- data/doc/{src/images → images}/tip.png +0 -0
- data/doc/{src/images → images}/tip.svg +0 -0
- data/doc/{src/images → images}/toc-blank.png +0 -0
- data/doc/{src/images → images}/toc-minus.png +0 -0
- data/doc/{src/images → images}/toc-plus.png +0 -0
- data/doc/{src/images → images}/up.png +0 -0
- data/doc/{src/images → images}/up.svg +0 -0
- data/doc/{src/images → images}/warning.png +0 -0
- data/doc/{src/images → images}/warning.svg +0 -0
- data/doc/{xhtml/index.html → index.html} +2 -2
- data/doc/{xhtml/introduction.html → introduction.html} +0 -0
- data/doc/{xhtml/introduction.license.html → introduction.license.html} +0 -0
- data/doc/{xhtml/introduction.manifest.html → introduction.manifest.html} +1 -1
- data/doc/{xhtml/introduction.related-works.html → introduction.related-works.html} +0 -0
- data/doc/{xhtml/introduction.resources.html → introduction.resources.html} +1 -1
- data/doc/{txt/manual.txt → manual.txt} +50 -49
- data/doc/{xhtml/problem.ivl.html → problem.ivl.html} +0 -0
- data/doc/{xhtml/problems.html → problems.html} +0 -0
- data/doc/{xhtml/problems.ruby.html → problems.ruby.html} +0 -0
- data/doc/{xhtml/problems.vsim.html → problems.vsim.html} +0 -0
- data/doc/src/manual.xml +53 -39
- data/doc/src/shared.dtd +1 -2
- data/doc/{xhtml/styles → styles}/manual.css +6 -10
- data/doc/{xhtml/usage.examples.html → usage.examples.html} +0 -0
- data/doc/{xhtml/usage.html → usage.html} +0 -0
- data/doc/{xhtml/usage.installation.html → usage.installation.html} +0 -0
- data/doc/{xhtml/usage.requirements.html → usage.requirements.html} +0 -0
- data/doc/{xhtml/usage.tools.html → usage.tools.html} +0 -0
- data/doc/{xhtml/usage.tutorial.html → usage.tutorial.html} +14 -18
- data/gem_extconf.rb +1 -1
- data/header.html +18 -4
- data/header.part.html +18 -4
- data/history.html +87 -5
- data/history.part.html +69 -1
- data/lib/ruby-vpi.rb +5 -5
- data/lib/ruby-vpi/rcov.rb +2 -2
- data/lib/ruby-vpi/runner.rb +4 -7
- data/lib/ruby-vpi/vpi_util.rb +2 -2
- data/memo.html +23 -9
- data/memo.part.html +5 -5
- data/readme.html +40 -5
- data/readme.part.html +22 -1
- data/ref/c/annotated.html +1 -1
- data/ref/c/common_8h.html +1 -1
- data/ref/c/files.html +1 -1
- data/ref/c/functions.html +1 -1
- data/ref/c/functions_vars.html +1 -1
- data/ref/c/globals.html +1 -1
- data/ref/c/globals_0x63.html +1 -1
- data/ref/c/globals_0x65.html +1 -1
- data/ref/c/globals_0x66.html +1 -1
- data/ref/c/globals_0x70.html +1 -1
- data/ref/c/globals_0x72.html +1 -1
- data/ref/c/globals_0x73.html +1 -1
- data/ref/c/globals_0x74.html +1 -1
- data/ref/c/globals_0x76.html +1 -1
- data/ref/c/globals_0x78.html +1 -1
- data/ref/c/globals_defs.html +1 -1
- data/ref/c/globals_defs_0x65.html +1 -1
- data/ref/c/globals_defs_0x70.html +1 -1
- data/ref/c/globals_defs_0x76.html +1 -1
- data/ref/c/globals_defs_0x78.html +1 -1
- data/ref/c/globals_enum.html +1 -1
- data/ref/c/globals_eval.html +1 -1
- data/ref/c/globals_func.html +1 -1
- data/ref/c/globals_type.html +1 -1
- data/ref/c/globals_vars.html +1 -1
- data/ref/c/hierarchy.html +1 -1
- data/ref/c/index.html +1 -1
- data/ref/c/relay_8cin.html +1 -1
- data/ref/c/relay_8hin.html +1 -1
- data/ref/c/ruby-vpi_8c.html +1 -1
- data/ref/c/structrelay____RubyOptions____def.html +1 -1
- data/ref/c/structt__cb__data.html +1 -1
- data/ref/c/structt__vpi__delay.html +1 -1
- data/ref/c/structt__vpi__error__info.html +1 -1
- data/ref/c/structt__vpi__strengthval.html +1 -1
- data/ref/c/structt__vpi__systf__data.html +1 -1
- data/ref/c/structt__vpi__time.html +1 -1
- data/ref/c/structt__vpi__value.html +1 -1
- data/ref/c/structt__vpi__vecval.html +1 -1
- data/ref/c/structt__vpi__vlog__info.html +1 -1
- data/ref/c/swig_8cin.html +1 -1
- data/ref/c/swig_8hin.html +1 -1
- data/ref/c/verilog_8h.html +1 -1
- data/ref/c/vlog_8cin.html +1 -1
- data/ref/c/vlog_8hin.html +1 -1
- data/ref/c/vpi__user_8h.html +1 -1
- data/ref/ruby/classes/OutputInfo.src/M000014.html +36 -36
- data/ref/ruby/classes/{RubyVPI.html → RubyVpi.html} +6 -6
- data/ref/ruby/classes/{RubyVPI.src → RubyVpi.src}/M000075.html +5 -5
- data/ref/ruby/classes/{RubyVPI.src → RubyVpi.src}/M000076.html +2 -2
- data/ref/ruby/classes/SWIG/TYPE_p_unsigned_int.src/M000070.html +2 -2
- data/ref/ruby/classes/Template.src/M000015.html +4 -4
- data/ref/ruby/classes/XX.html +4 -4
- data/ref/ruby/classes/XX/XHTML.html +5 -5
- data/ref/ruby/classes/XX/XHTML.src/{M000024.html → M000023.html} +0 -0
- data/ref/ruby/classes/XX/XHTML/Strict.html +5 -5
- data/ref/ruby/classes/XX/XHTML/Strict.src/{M000026.html → M000025.html} +0 -0
- data/ref/ruby/classes/XX/XHTML/Transitional.html +5 -5
- data/ref/ruby/classes/XX/XHTML/Transitional.src/{M000025.html → M000024.html} +0 -0
- data/ref/ruby/classes/XX/XMLish.html +5 -5
- data/ref/ruby/classes/XX/XMLish.src/{M000023.html → M000026.html} +0 -0
- data/ref/ruby/created.rid +1 -1
- data/ref/ruby/files/bin/generate_test_rb.html +7 -39
- data/ref/ruby/files/bin/generate_test_rb.src/M000001.html +15 -15
- data/ref/ruby/files/bin/header_to_ruby_rb.html +12 -4
- data/ref/ruby/files/lib/ruby-vpi/erb_rb.html +1 -1
- data/ref/ruby/files/lib/ruby-vpi/rake_rb.html +1 -1
- data/ref/ruby/files/lib/ruby-vpi/rcov_rb.html +1 -1
- data/ref/ruby/files/lib/ruby-vpi/rdoc_rb.html +1 -1
- data/ref/ruby/files/lib/ruby-vpi/rspec_rb.html +1 -1
- data/ref/ruby/files/lib/ruby-vpi/runner_proxy_rb.html +1 -1
- data/ref/ruby/files/lib/ruby-vpi/runner_rb.html +2 -7
- data/ref/ruby/files/lib/ruby-vpi/runner_rb.src/M000002.html +6 -6
- data/ref/ruby/files/lib/ruby-vpi/verilog_parser_rb.html +1 -1
- data/ref/ruby/files/lib/ruby-vpi/vpi_util_rb.html +1 -1
- data/ref/ruby/files/lib/ruby-vpi/xx_rb.html +1 -1
- data/ref/ruby/files/lib/ruby-vpi_rb.html +1 -1
- data/ref/ruby/fr_class_index.html +1 -1
- data/ref/ruby/fr_method_index.html +10 -10
- data/samp/counter/counter_rspecTest_bench.rb +1 -1
- data/samp/counter/counter_rspecTest_proto.rb +1 -1
- data/samp/counter/counter_unitTest_bench.rb +1 -1
- data/samp/counter/counter_unitTest_proto.rb +1 -1
- data/samp/pipelined_alu/hw5_unit_test_bench.rb +1 -1
- data/samp/pipelined_alu/hw5_unit_test_proto.rb +1 -1
- metadata +183 -237
- data/doc/src/styles/manual.css +0 -87
- data/doc/xhtml/figures/organization.png +0 -0
- data/doc/xhtml/figures/organization_detailed.png +0 -0
- data/doc/xhtml/figures/ruby_init.png +0 -0
- data/doc/xhtml/figures/ruby_relay.png +0 -0
- data/doc/xhtml/glossary.html +0 -3
- data/doc/xhtml/images/COPYING +0 -67
- data/doc/xhtml/images/ChangeLog +0 -27
- data/doc/xhtml/images/blank.png +0 -0
- data/doc/xhtml/images/callouts/1.png +0 -0
- data/doc/xhtml/images/callouts/10.png +0 -0
- data/doc/xhtml/images/callouts/11.png +0 -0
- data/doc/xhtml/images/callouts/12.png +0 -0
- data/doc/xhtml/images/callouts/13.png +0 -0
- data/doc/xhtml/images/callouts/14.png +0 -0
- data/doc/xhtml/images/callouts/15.png +0 -0
- data/doc/xhtml/images/callouts/2.png +0 -0
- data/doc/xhtml/images/callouts/3.png +0 -0
- data/doc/xhtml/images/callouts/4.png +0 -0
- data/doc/xhtml/images/callouts/5.png +0 -0
- data/doc/xhtml/images/callouts/6.png +0 -0
- data/doc/xhtml/images/callouts/7.png +0 -0
- data/doc/xhtml/images/callouts/8.png +0 -0
- data/doc/xhtml/images/callouts/9.png +0 -0
- data/doc/xhtml/images/callouts/ChangeLog +0 -15
- data/doc/xhtml/images/caution.png +0 -0
- data/doc/xhtml/images/caution.svg +0 -290
- data/doc/xhtml/images/copyright +0 -55
- data/doc/xhtml/images/draft.png +0 -0
- data/doc/xhtml/images/home.png +0 -0
- data/doc/xhtml/images/home.svg +0 -386
- data/doc/xhtml/images/important.png +0 -0
- data/doc/xhtml/images/important.svg +0 -163
- data/doc/xhtml/images/next.png +0 -0
- data/doc/xhtml/images/next.svg +0 -191
- data/doc/xhtml/images/note.png +0 -0
- data/doc/xhtml/images/note.svg +0 -483
- data/doc/xhtml/images/prev.png +0 -0
- data/doc/xhtml/images/prev.svg +0 -852
- data/doc/xhtml/images/tip.png +0 -0
- data/doc/xhtml/images/tip.svg +0 -1145
- data/doc/xhtml/images/toc-blank.png +0 -0
- data/doc/xhtml/images/toc-minus.png +0 -0
- data/doc/xhtml/images/toc-plus.png +0 -0
- data/doc/xhtml/images/up.png +0 -0
- data/doc/xhtml/images/up.svg +0 -195
- data/doc/xhtml/images/warning.png +0 -0
- 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"
|
|
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"><
|
|
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> = &<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
|
|
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="
|
|
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#
|
|
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
|
|
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
|
|
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>
|
|
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>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/
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
-
|
|
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,
|
|
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
|
|
779
|
-
your focus from
|
|
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
|
|
812
|
-
Now we must build upon this foundation by identifying our
|
|
813
|
-
|
|
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
|
|
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
|
|
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
|
|
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
|
-
|
|
968
|
-
|
|
969
|
-
|
|
970
|
-
|
|
971
|
-
|
|
972
|
-
|
|
973
|
-
|
|
974
|
-
simulator, denoted by ivl, is used to
|
|
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
|
-
$
|
|
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
|
-
$
|
|
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
|
|
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
|
-
|
|
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
|
|
1038
|
-
|
|
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
|
|
1043
|
-
|
|
1044
|
-
|
|
1045
|
-
|
|
1046
|
-
|
|
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
|
|
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
|
|
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
|
|
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
|
-
|
|
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
|
|
File without changes
|