Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > Ruby > [ANN] Ruby-VPI 18.0.0

Thread Tools

[ANN] Ruby-VPI 18.0.0

Suraj Kurapati
Posts: n/a
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.

• See for details.

━━━━━━━━━━━━━━━━ ━━━━━━━━━━━━━━━━ ━━━━━━━━━━━━━━━━ ━━━━━━━━━

Version 18.0.0 (2007-07-31)

This release restores support for Synopsys VCS and Cadence
NC-Sim, improves portability and performance, and enhances
the VPI abstraction layer.


• Calvin Wong discovered how to bypass the following
error emitted by Synopsys VCS when loading the Ruby-VPI
shared object file.

Could not open library specified in -load option obj/vcs
obj/vcs: undefined symbol: vpi_put_data


• SWIG is now required in order to compile and install

• Vpi::Handle.put_value no longer checks whether the
value written matches the value read back after writing
because that only works when there is no VPI delay
associated with the write.

• When Vpi::Handle.put_value is used to write a value to
a wire (VpiNet), it now forces the value. This is done
to ensure portability:

Synopsys VCS and Cadence NC-Sim forget the value
written to a wire during the next simulation time step,
whereas Mentor Modelsim and GPL Cver remember the value
(thereby treating wires as registers).

Note that you have to release a forced value (using
Vpi::Handle.release_value) on a wire after writing to
the wire if you want the design under test have the
ability to update the value of the wire later on:

your_wire.intVal = 15
advance_time # let the Verilog DUT modify your_wire

In addition, you can check if a wire has a forced value
using the Vpi::Handle.value_forced? method.

• If the format is not specified, Vpi::Handle.get_value
now assumes that you want to read the value in
VpiIntVal format (because this is the most common

• The definition of “Derivatives” has been reworded for
clarity in the project license.


• Synopsys VCS and Cadence NC-Sim simulators now
correctly load Ruby-VPI. Also, the 64-bit versions of
these simulators are now supported.


• Added “force_value”, “release_value”, and
“value_forced?” methods to the Vpi::Handle class.

• Vpi::Handle.put_value now tries to automatically detect
the format of the value to be written. As a result, you
can now write your_handle.put_value 35 in lieu of
writing your_handle.intVal = 35.

• Vpi::Handle.inspect now shows the hexStrVal of the
handle (because it is a common case to want to see a
handle’s logic value along with its other information).

• Added method caching (memoizing) for VPI property
accesses on handles.
Posted via

Reply With Quote

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off