[ANN] Ruby-VPI 18.0.0

S

Suraj Kurapati

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 http://ruby-vpi.rubyforge.org 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.

Thanks

• 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



Caution

• SWIG is now required in order to compile and install
Ruby-VPI.

• 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
your_wire.release_value
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
case).

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

Repairs

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

Improvements

• 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.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Similar Threads

[ANN] Ruby-VPI 16.0.0 0
[ANN] Ruby-VPI 19.0.0 2
[ANN] Ruby-VPI 15.0.0 0
[ANN] Ruby-VPI 18.0.1 0
[ANN] Ruby-VPI 15.0.2 0
[ANN] Ruby-VPI 20.0.0 0
[ANN] Ruby-VPI 15.0.1 0
[ANN] Ruby-VPI 16.0.1 0

Members online

Forum statistics

Threads
473,769
Messages
2,569,582
Members
45,057
Latest member
KetoBeezACVGummies

Latest Threads

Top