[ANN] Ruby-VPI 11.1.0

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

Website: http://ruby-vpi.rubyforge.org

Install: gem install ruby-vpi

Version 11.1.0 (2006-11-08)

Summary

This release fixes a bug in generated benches, improves the
the Vpi::Handle class, and improves performance by roughly
20%.

Acknowledgment

Thanks to Matt Fischler for finding the bug in generated
benches (see below).

Notice

• A bug in generated Verilog and Ruby benches, which
caused this error

ruby: no such file to load -- ruby-vpi (LoadError)

has been fixed.
  â–¡ Please regenerate your tests to apply this bug fix
    to your tests.

Detail

• The class SWIG::TYPE_p_unsigned_int has been aliased as
Vpi::Handle for easier access.

• Vpi::Handle#to_s and Vpi::Handle#inspect now produce
more informative output. For example, what used to
appear as

#<SWIG::TYPE_p_unsigned_int:0x2aaab6574fa0>

now appears as

#<Vpi::Handle vpiModule fullName=counter_rspec_bench, size=-1, 

file=counter_rspec_bench.v, lineNo=2>

in this release.
  â–¡ You can also provide a list of VPI property/type
    names or integer constants to those methods to see
    additional information in the output.

• Vpi::Handle now implements all methods from Enumerable,
such as map, each, select, and so on. However, unlike
their counterparts in Enumerable, these methods also
accept a list of VPI property/type names or integer
constants. Thus, you are now able to write
handle.select(:reg, :net) {|h| h.size > 5} to obtain a
list of child handles to registers and nets whose
capacity is greater than 5 bits.

• The Vpi::Handle#[], Vpi::Handle#get_value, and
Vpi::Handle#put_value methods now accept names of VPI
types/properties as well as their integer constants.
Thus, you are now able to write handle[:reg, :net] to
obtain a list of handles to all child registers and
nets.

• Vpi::Handle#method_missing has been refactored to cache
queries. There is now, approximately, 20% improvement
in performance.

• Vpi::Handle#method_missing has been fixed to accept
operations with multiple underscores. For example,
before this release, you could not write
handle.find_all_reg {|r| r.name =~ /foo/} because the
“find_all_reg” method would be interpreted as the
operation “find” and the VPI property “all_reg”.

• The IntegerGenerator class, in the pipelined ALU
example, has been fixed so that multiple instances do
not interfere with the generation of each other’s prime
integers.

• Due to a bug in the Rakefile, the reference
documentation was not included in the previous few
releases. This has been fixed.

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs