# \[ANN\] Ruby-VPI 20.0.0

**URL:** <https://www.ruby-forum.com/t/ann-ruby-vpi-20-0-0/127318>\
**Category:** Ruby\
**Created:** [January 28, 2008, 8:04am UTC](https://www.ruby-forum.com/t/ann-ruby-vpi-20-0-0/127318 "2008-01-28T08:04:06Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![snk](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/d9b06d/32.png) [@snk](https://www.ruby-forum.com/u/snk)\
**Post date:** [January 28, 2008, 8:04am UTC](https://www.ruby-forum.com/t/ann-ruby-vpi-20-0-0/127318/1 "2008-01-28T08:04:06Z")

</div>

```
                    Ruby-VPI

```

Ruby-VPI is a Ruby interface to IEEE 1364-2005 Verilog VPI  
and a platform for unit testing, rapid prototyping, and  
systems integration of Verilog modules through Ruby. It  
lets you create complex Verilog test benches easily and  
wholly in Ruby.

```
         http://ruby-vpi.rubyforge.org

```

â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”

Version 20.0.0

Contents

â€¢ Caution  
â€¢ Improvements  
â€¢ Repairs

This release shifts focus from single-module unit testing  
to a system-level testing approach by adding support for  
testing multiple designs in a single session, improves the  
Ruby interface to VPI, fixes several bugs, and updates the  
documentation.

1 Caution

â€¢ The way tests are loaded has been changed to shift  
focus from single-module unit testing to system level  
testing. See this discussion thread and its  
significance explained in the user guide.

â€¢ The excessive & verbose aliases for testing & setting  
logic values introduced in the previous 19.0.0 release  
have been removed in favor or short and relevant method  
names following this pattern: /vpi[01XZHL][?!]/.  
Furthermore, single-character aliases /[tfxzhl]/ (t & f  
for 1 & 0) have been added for simplicity.

â€¢ The test runner will now chdir (change the working  
directory) into same directory as the runner file  
before running a test.

â€¢ The RubyVPI::SIMULATORS hash has been changed into an  
array.

â€¢ The VPI::Handle#[] method now gives access to VPI  
properties (instead of child handles) by name or  
integer constant. To fill the void, the VPI::Handle#/  
method has been added to give access to child handles  
by relative path, and the VPI::Handle.to\_a method has  
been added to give access to child handles by VPI type  
(name or integer constant).

2 Improvements

â€¢ Upgraded and revised the website and user manual to  
make use of the Gerbil project and the new project  
organization.

â€¢ The ruby-vpi executable now accepts a -v option to show  
the project version information.

â€¢ â€œtâ€ and â€œfâ€ are now synonyms of 1 & 0 in method names  
for setting and testing the logic values of handles.

â€¢ API documentation for dynamically generated methods is  
now present.

â€¢ Rubyâ€™s standard output and error streams are now copied  
into the simulatorâ€™s log file. This will help keep a  
record of failures (stack trace) in the log file for  
debugging.

â€¢ In ./lib/ruby-vpi/rake.rb, the sh() method now prints  
args in array form before execution to help users  
readily see the ARGV being passed to the target  
program.

3 Repairs

â€¢ Fixed several Ruby warnings in the edge detection  
logic.

â€¢ There was an infinite loop during recursive rake clean/  
clobber.

â€¢ String to integer conversion was incorrect when â€˜xâ€™ or  
â€˜zâ€™ present in a handleâ€™s logic value.
