# \[ANN\] Ruby-VPI 13.0.0

**URL:** <https://www.ruby-forum.com/t/ann-ruby-vpi-13-0-0/80525>\
**Category:** Ruby\
**Created:** [December 28, 2006, 7:59am UTC](https://www.ruby-forum.com/t/ann-ruby-vpi-13-0-0/80525 "2006-12-28T07:59:41Z")\
**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:** [December 28, 2006, 7:59am UTC](https://www.ruby-forum.com/t/ann-ruby-vpi-13-0-0/80525/1 "2006-12-28T07:59:41Z")

</div>

Ruby-VPI is a Ruby interface to Verilog VPI. It lets you create  
complex Verilog test benches easily and wholly in Ruby.

Web site: [http://ruby-vpi.rubyforge.org](http://ruby-vpi.rubyforge.org)

Install: gem install ruby-vpi

Version 13.0.0 (2006-12-27)

Summary

This release fixes a major instability bug, simplifies  
generated Verilog benches, and purifies the API reference  
documentation.

Notice

â€¢ The $ruby\_init and $ruby\_relay system task/functions  
have been removed. Generated Verilog benches no longer  
use them.  
â–¡ To pass your own command-line options to Ruby, set  
the RUBYOPT environment variable before running a  
test.

New features

â€¢ You can now choose when Vpi::relay\_verilog is  
triggered: upon positive/negative edge of the clock  
signal, or any other criteria. This is done by passing  
a block to the RubyVpi::init\_bench method (see the API  
reference documentation for details).

Details

â€¢ Fixed a major instability bug that was randomly causing  
segmentation faults and pthread assertion failures.

```
The problem was that the $ruby_init system task/
function was mischeviously unlocking a pthread mutex.
From then onward, all code assumed that the mutex was
still lockedâ€”but in reality, the mutex was already
unlocked.

```

â€¢ Replaced the $ruby\_init and $ruby\_relay system task/  
functions with callbacks.

â€¢ Excluded internal stuff from the API reference  
documentation for Ruby.

â€¢ Removed system-dependent path /usr/bin/ruby from the  
tools.
