From: Suraj Kurapati Date: 2006-11-09T12:07:14+09:00 Subject: [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 # now appears as # 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/.