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.
on 2007-08-01 09:47