[ANN] Ruby-VPI 11.1.0

S

Suraj Kurapati

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.
 

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 20.0.0 0
[ANN] Ruby-VPI 18.0.0 0
[ANN] Ruby-VPI 19.0.0 2
[ANN] Ruby-VPI 16.0.0 0
[ANN] Ruby-VPI 17.0.0 0
[ANN] Ruby-VPI 15.0.0 0
[ANN] Ruby-VPI 7.3.0 0
[ANN] Ruby-VPI 7.0.0 0

Members online

Forum statistics

Threads
473,995
Messages
2,570,236
Members
46,821
Latest member
AleidaSchi

Latest Threads

Top