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@ | &nbsp; | &nbsp; | fullName | _ | s | &nbsp; | | @handle.vpiParent@ | &nbsp; | &nbsp; | vpiParent | &nbsp; | &nbsp; | &nbsp; |/4. These expressions access the *handle value* of the handle's @VpiParent@ property. | | @handle.vpiParent_h@ | &nbsp; | &nbsp; | vpiParent | _ | h | &nbsp; | | @handle.parent@ | &nbsp; | &nbsp; | parent | &nbsp; | &nbsp; | &nbsp; | | @handle.parent_h@ | &nbsp; | &nbsp; | parent | _ | h | &nbsp; | -| <code>handle.each_vpiNet {|net| puts net.fullName}</code> | each | _ | vpiNet | &nbsp; | &nbsp; | &nbsp; |/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 | &nbsp; | &nbsp; | &nbsp; |/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 | &nbsp; | &nbsp; | &nbsp; | | <code>handle.all_vpiReg? {|reg| reg.size == 1}</code> | all? | _ | vpiReg | &nbsp; | &nbsp; | &nbsp; |/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 | &nbsp; | &nbsp; | &nbsp; | -| <code>handle.select_vpiNet {|net| net.x?}</code> | select | _ | VpiNet | &nbsp; | &nbsp; | &nbsp; |/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 | &nbsp; | &nbsp; | &nbsp; |/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 | &nbsp; | &nbsp; | &nbsp; | <% 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.