[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.

···

--
Posted via http://www.ruby-forum.com/.