[ANN] Ruby-VPI 16.0.0

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 16.0.0 (2007-05-02)

This release adds support for the Cadence NC-Sim /
NC-Verilog simulator, improves the project website and
documentation, simplifies interaction with VPI, and comes
with a more permissive license.

Caution

• The Integer.ensure_min and Integer.ensure_max methods
have been removed from the ruby-vpi/integer.rb library
because Ruby already has idioms for these operations:

>> 5.ensure_min 10
=> 10
>> [5, 10].max
=> 10

>> 5.ensure_max 10
=> 5
>> [5, 10].min
=> 5

• Ruby-VPI is now developed under a more permissive
license that better reflects my ethical beliefs than
the previous license.

New features

• The Cadence NC-Sim / NC-Verilog (ncsim) simulator is
now supported.

• VPI structures (whose names begin with “S_”) now allow
initialization of their members through their
constructor, in the style of Ruby on Rails. For
example, the expression time = S_vpi_time.new :type =>
VpiSuppressTime is equivalent to:

time      = S_vpi_time.new
time.type = VpiSuppressTime

• Added the Vpi::Handle.cbValueChange method which
simplifies the registration of a value-change callback
for a particular VPI handle. For instance, the user
manual’s example of setting up a value-change callback
can now be written as follows:

Counter.count.cbValueChange do |s_cb_data|
  puts "hello from callback! time=#{s_cb_data.time.to_i}

count=#{s_cb_data.obj.intVal}"
end

Details

• Revised the project website according to the Producing
OSS guidelines.

• Added instructions for checking out source code and
generating documentation.