unsubscribe 

-----Original Message-----
From: list-bounce / example.com [mailto:list-bounce / example.com] On Behalf Of Suraj Kurapati
Sent: Monday, August 27, 2007 9:34 PM
To: ruby-talk ML
Subject: [ANN] Ruby-VPI 19.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 19.0.0 (2007-08-27)

This release restores support for Cadence NC-Sim, breaks support for Mentor Modelsim, adds support for concurrent processes which simplify implementing Ruby prototypess, and offers numerous other improvements.

Mentor Modelsim users, take note: this release does not work very well with Mentor Modelsim, so do not upgrade until compatibility is restored in a future release. In the mean time, consider using this release with another simulator, such as GPL Cver.

Thanks

  * Calvin Wong requested the concurrent processes feature,
    helped test it, and provided useful feedback.

Caution

  * Prototypes no longer have a feign! method. Instead,
    they emulate the behavior of the real Verilog DUT using
    the new concurrency model.

  * All ¡Èinitial¡É blocks in Verilog code are now evaluated
    before the specification begins executing. This allows
    you to set the initial value of registers in Verilog
    before the specification interacts with them.

  * The Vpi module has been renamed to VPI for consistency
    with the project name.

  * The VPI::simulation_time method has been renamed to
    VPI::current_time.

  * The VPI::Handle.value_forced? method has been renamed
    to VPI::Handle.force?

  * The samp/ directory has been renamed to examples/.

  * Code coverage analysis results are now produced only in
    plain-text format.

Repairs

  * You can now access VPI constants using their original
    uncapitalized names. For example, you can now write
    ¡ÈvpiIntVal¡É instead of having to write ¡ÈVpiIntVal¡É.
    However, note that the capitalized names are still
    supported, so you are not required to change your code.

  * Value change / edge detection for VPI handles was
    previously incorrect: if you called the
    VPI::Handle.posedge? function twice in the same time
    step, it would give you two different answers.

  * The problem of not being able to write values to nets
    in Cadence NC-Sim has been fixed.

Additions

  * Added support for concurrent processes, which make Ruby
    prototypes appear more like Verilog code and also give
    the ability to write parallel tests.

  * Added support for performance profiling using the
    ruby-prof project. The profiler can be enabled by
    setting the PROFILER environment variable to ¡È1¡É before
    running a Ruby-VPI test.

  * Added new method aliases to VPI::Handle for value
    detection. The complete list of aliases is now:
      ¢¢ Tests if the logic value of this handle is unknown (x).
          ¡ù x?
          ¡ù unknown?
          ¡ù dont_care?
      ¢¢ Sets the logic value of this handle to unknown (x).
          ¡ù x!
          ¡ù unknown!
          ¡ù dont_care!
      ¢¢ Tests if the logic value of this handle is high
        impedance (z).
          ¡ù z?
          ¡ù hi_z?
          ¡ù high_z?
          ¡ù high_impedance?
          ¡ù tri_state?
          ¡ù floating?
      ¢¢ Sets the logic value of this handle to high
        impedance (z).
          ¡ù z!
          ¡ù hi_z!
          ¡ù high_z!
          ¡ù high_impedance!
          ¡ù tri_state!
          ¡ù floating!
      ¢¢ Tests if the logic value of this handle is at
        ¡Èlogic high¡É level.
          ¡ù high?
          ¡ù one?
      ¢¢ Sets the logic value of this handle to ¡Èlogic high¡É
        level.
          ¡ù high!
          ¡ù one!
      ¢¢ Tests if the logic value of this handle is at
        ¡Èlogic low¡É level.
          ¡ù low?
          ¡ù zero?
      ¢¢ Sets the logic value of this handle to ¡Èlogic low¡É
        level.
          ¡ù low!
          ¡ù zero!

  * Added new methods to VPI::Handle for value change /
    edge detection:
      ¢¢ edge? - detects positive and negative edges
      ¢¢ change? - detects any kind of value change
      ¢¢ change_00? - detects a value change from 0 to 0
      ¢¢ change_01? - detects a value change from 0 to 1
      ¢¢ change_0x? - detects a value change from 0 to unknown
      ¢¢ change_0z? - detects a value change from 0 to high-Z
      ¢¢ change_10? - detects a value change from 1 to 0
      ¢¢ change_11? - detects a value change from 1 to 1
      ¢¢ change_1x? - detects a value change from 1 to unknown
      ¢¢ change_1z? - detects a value change from 1 to high-Z
      ¢¢ change_x0? - detects a value change from unknown to 0
      ¢¢ change_x1? - detects a value change from unknown to 1
      ¢¢ change_xx? - detects a value change from unknown to unknown
      ¢¢ change_xz? - detects a value change from unknown to high-Z
      ¢¢ change_z0? - detects a value change from high-Z to 0
      ¢¢ change_z1? - detects a value change from high-Z to 1
      ¢¢ change_zx? - detects a value change from high-Z to unknown
      ¢¢ change_zz? - detects a value change from high-Z to high-Z
--
Posted via http://www.ruby-forum.com/.