After a long break, I finally started working on RHDL again…
With version 0.3.0 RHDL moves a little bit closer to being an actual,
usable Hardware Description Language. Most notably, design hierarchy is
now supported and a ‘wait’ statement has been added so that processes can
be suspended until a condition becomes true.
From the README:
RHDL - Ruby Hardware Description Language
RHDL looks similar to VHDL - there are signals and concurrent processes
which can have sensitivity lists and can be suspended using wait
In the examples subdirectory you’ll find a couple of examples with
The example in testdesign.rb file defines a counter which increments on
the rising edge of clk. It also has a synchronous reset so that if the
rst signal is high on the rising edge of clk, counter gets reset to 0.
To run the testdesign example:
The input vectors and expected output for this testcase are contained
in the file ‘count_test_data’.
There is also a testTB.rb example which shows how to do hierarchy and
structural style in RHDL.
NOTE: You’ll need the Test::Unit module to run these examples. I believe
that Test::Unit is built into Ruby 1.7, but for 1.6 you’ll need to
the package from http://testunit.talbott.ws/ and follow the included
instructions for installing it.
- Hierarchy is now working.
- Structural design style is now working and illustrated in
- wait statement added which allows processes to be suspended until a
given condition becomes true.
- converted examples in examples subdir to use Test::Unit instead of Runit
See TODO file for future directions.
If you have questions you can send them to me at: