doc/manual.doc in ruby-vpi-15.0.2 vs doc/manual.doc in ruby-vpi-16.0.0
- old
+ new
@@ -7,47 +7,22 @@
You can give feedback about this manual and, in general, any aspect of the Ruby-VPI project on the "project forums":http://rubyforge.org/forum/?group_id=1339.
_Happy reading!_
-h2(#terms). Terms
+h2(#legal). Legalities
-Copyright (c) 2006, 2007 Suraj N. Kurapati.
+This manual is distributed under "the same license as Ruby-VPI":#intro.license.
-Permission is granted to copy, distribute and/or modify this document under the terms of the "GNU Free Documentation License":http://www.gnu.org/copyleft/fdl.html, Version 1.1 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 the file named "LICENSE":./LICENSE.
+The admonition and navigation graphics used in this manual are Copyright (c) 2005, 2006 "Tango Desktop Project":http://tango.freedesktop.org and are licensed under "these terms":./images/tango/LICENSE.
-The admonition and navigation graphics used in this manual are Copyright (c) 2005, 2006 "Tango Desktop Project":http://tango.freedesktop.org and are licensed under "these terms":./images/LICENSE.
-
h1(#intro). Introduction
<%= import 'intro.inc' %>
-h2(#intro.license). License
-
-Ruby-VPI is "free software":http://en.wikipedia.org/wiki/Free_software ; you can redistribute it and/or modify it under the terms of the "GNU General Public License":http://www.gnu.org/copyleft/gpl.html as published by the "Free Software Foundation":http://www.fsf.org ; either version 2 of the License, or (at your option) any later version.
-
-
-h2(#intro.related-works). Related works
-
-* "JOVE":http://jove.sourceforge.net is a Java interface to VPI.
-* "Teal":http://teal.sourceforge.net is a C++ interface to VPI.
-* "ScriptEDA":http://embedded.eecs.berkeley.edu/Alumni/pinhong/scriptEDA/ is a Perl, Python, and Tcl interface to VPI.
-* "RHDL":http://rhdl.rubyforge.org is a hardware description and verification language based on Ruby.
-* "MyHDL":http://myhdl.jandecaluwe.com is a hardware description and verification language based on Python, which features conversion to Verilog and co-simulation.
-
-
-h3(#intro.related-works.pli). Ye olde PLI
-
-The following projects utilize the archaic *tf* and *acc* PLI interfaces, which have been officially deprecated in IEEE Std 1364-2005.
-
-* "ScriptSim":http://www.nelsim.com is a Perl, Python, and Tcl/Tk interface to PLI.
-* "Verilog::Pli":http://www.veripool.com/verilog-pli.html is a Perl interface to PLI.
-* "JPLI":http://www.time-rover.com/jpli/ is a proprietary Java interface to PLI.
-
-
h1(#background). Background
h2(#background.methodology). Methodology
@@ -124,43 +99,17 @@
* <tt>samp</tt> contains example tests. See <xref #usage.examples> for more information.
h2(#setup.reqs). Requirements
-The following software is necessary in order to use Ruby-VPI.
+See <xref#intro.reqs> above.
-* Verilog simulator
- - Ruby-VPI is known to work with the following simulators. However, you should be able to use it with any Verilog simulator that supports VPI.
-** "GPL Cver":http://www.pragmatic-c.com/gpl-cver/
- - version 2.11a or newer is acceptable.
-** "Icarus Verilog":http://www.icarus.com/eda/Verilog/
- - version 0.8 is _mostly_ acceptable -- you *will not* be able to "access child handles through method calls":#background.org.vpi.util. The reason for this limitation is explained in <xref #problems.ivl.vpi_handle_by_name.absolute-paths>.
-** "Synopsys VCS":http://www.synopsys.com/products/simulation/simulation.html
- - any version that supports the <tt>-load</tt> option is acceptable.
-** "Mentor Modelsim":http://www.model.com
- - any version that supports the <tt>-pli</tt> option is acceptable.
-
<% tip "Add support for your Verilog simulator" do %>
Write a "support request":http://rubyforge.org/tracker/?group_id=1339 for your simulator, while providing a sample transcript of the commands you use to run a test with your simulator, and we will add support for your simulator in the next release!
<% end %>
-* *make*
- - any distribution should be acceptable.
-* C compiler
- - the "GNU Compiler Collection (GCC)":http://www.gnu.org/software/gcc/ is preferred, but any C compiler should be acceptable.
-
-* "POSIX threads (pthreads)":http://en.wikipedia.org/wiki/Pthreads
- - header and linkable object files, and operating system support for this library are necessary.
-
-* "Ruby":http://www.ruby-lang.org
- - version 1.8 or newer, including header and linkable object files for building extensions, is necessary. You can install Ruby by following "these instructions":http://www.rubygarden.org/faq/section/show/3.
-
-* "RubyGems":http://rubyforge.org/frs/?group_id=126
- - any recent version should be acceptable. You can install RubyGems by following "these instructions":http://www.rubygems.org/read/chapter/3.
-
-
h2(#setup.recom). Recommendations
The following software may make your interactions with Ruby-VPI more pleasant.
@@ -340,15 +289,15 @@
| @handle.fullName_s@ | | | fullName | _ | s | |
| @handle.vpiParent@ | | | vpiParent | | | |/4. These expressions access the *handle value* of the handle's @VpiParent@ property. |
| @handle.vpiParent_h@ | | | vpiParent | _ | h | |
| @handle.parent@ | | | parent | | | |
| @handle.parent_h@ | | | parent | _ | h | |
-| <code>handle.each_vpiNet {|net| puts net.fullName}</code> | each | _ | vpiNet | | | |/2. These expressions print the full name of each vpiNet object associated with the handle. |
+| <code>handle.each_vpiNet {|net| puts net.fullName}</code> | each | _ | vpiNet | | | |/2. These expressions print the full name of each @VpiNet@ object associated with the handle. |
| <code>handle.each_net {|net| puts net.fullName}</code> | each | _ | net | | | |
| <code>handle.all_vpiReg? {|reg| reg.size == 1}</code> | all? | _ | vpiReg | | | |/2. These expressions check if all registers associated with the handle are capable of storing only one bit. |
| <code>handle.all_reg? {|reg| reg.size == 1}</code> | all? | _ | reg | | | |
-| <code>handle.select_vpiNet {|net| net.x?}</code> | select | _ | VpiNet | | | |/2. These expressions return a list of nets whose logic value is unknown or "don't care" (x).|
+| <code>handle.select_vpiNet {|net| net.x?}</code> | select | _ | VpiNet | | | |/2. These expressions return a list of nets whose *logic value* is unknown or "don't care" (x).|
| <code>handle.select_net {|net| net.x?}</code> | select | _ | net | | | |
<% end %>
h3(#usage.vpi.callbacks). Callbacks
@@ -524,13 +473,13 @@
<%= `rake -f ../samp/counter/counter_rspec_runner.rake` %></pre>
<% end %>
<% tip "Running multiple tests at once." do %>
-Create a file named <tt>Rakefile</tt> containing the following line.
+Create a file named <tt>Rakefile</tt> containing the following line:
-bq. @require 'ruby-vpi/runner_proxy'@
+@require 'ruby-vpi/runner_proxy'@
Now you can invoke all test runners in the current directory simply by executing <pre>rake cver</pre> (where _cver_ denotes the "GPL Cver simulator":#setup.reqs).
<% end %>
@@ -829,10 +778,17 @@
<% end %>
h1(#hacking). Hacking
+
+h2(#hacking.scm). Getting the source code
+
+Check out the source code using "Darcs":http://darcs.net from the project repository:
+
+ darcs get http://ruby-vpi.rubyforge.org/src/ruby-vpi
+
h2(#hacking.release-packages). Building release packages
In addition to the "normal requirements":#setup.reqs, you need the following software to build release packages:
* "SWIG":http://www.swig.org/
@@ -970,10 +926,10 @@
h2(#glossary.rake). Rake
bq. Rake is a build tool, written in Ruby, using Ruby as a build language. Rake is similar to *make* in scope and purpose.
-bq>. --"Rake documentation":http://docs.rubyrake.org
+p>. --"Rake documentation":http://docs.rubyrake.org
h2(#glossary.rspec). rSpec
The "BDD":#glossary.BDD framework for Ruby.