[ann] rhdl 0.5.0

What is it?

···

==============
RHDL (Ruby Hardware Description Language) is a DSL for describing and
simulating digital circuits. It looks very similar to VHDL.

Where does it live?

http://rhdl.rubyforge.org/

"Why should I be interested?", you ask.

If you're a hardware type you probably already know why, but let's assume
you're a Ruby programmer who is not also a hardware designer type
person... You might be interested in RHDL because it's a DSL and maybe
it's a reasonable example of a DSL built on Ruby (or maybe you'll think
it's really a very scary example of how to do a DSL in Ruby once you start
looking at the code...). Another reason you might be interested: RHDL is
really all about dataflow programming and dataflow programming could be
pretty useful in the future for dealing with parallelism in multi-processor
systems... or maybe you want to learn about Event Driven Simulation (it's
in there).

What's changed:

RHDL now has at least 50% more Ruby metaprogramming goodness! The DSL has
been changed to remove some of the Ruby-isms that were in RHDL's previous
incarnations (class, super - these are now gone replaced with the model
declaration). Examples have been updated to reflect the new 'syntax' and
many unit tests have been added (more still needed).

Other changes:
* <= has replaced << for signal assignment ( <= has lower operator
precedence which is a good thing)
* lte (less than or equal) method has been introduced now that <= has been
taken for assignment (I really wish we had a definable := operator which
very low operator precedence for assignment semantics, hint, hint... but I
digress) (gte - greater than or equal - method has also been introduced
for signals for orthogonality with lte)
* models instead of classes - see docs. Big change to the RHDL syntax.
Hopefully it makes things less confusing for non-Ruby programmers who want
to use RHDL.
* named argument associations in model constructors (again, see docs and
examples) [oh, and model constructors themselves are created for you now
(more of that metaprogramming goodness!) so you don't have to define an
initialize method.
* inputs, outputs, generics (see docs)
* lots of unit tests added (but more are stil needed)
* bug fixes
* lots of other stuff I'm forgetting about...

The Future:

In future releases RHDL will (hopefully) interoperate with BLIF (Berkeley
Logic Interchange Format) and also be translatable to VHDL... but don't
hold your breath - note that it's been something like 3
years since the last release of RHDL.

How much would you pay for all of this?

Send cash, checks, MacBook pros to me at... oh, wait, actually it's free
and under the same license as Ruby. Damn - I really was looking forward to
that MacBook Pro.

Phil

As someone who had to do a lot of VHDL in school, I applaud you for your work. Hopefully this will gain some traction and younger students will never have to endure such pain.
-Mat

···

On Jul 18, 2006, at 2:10 AM, Phil Tomson wrote:

The Future:

In future releases RHDL will (hopefully) interoperate with BLIF (Berkeley
Logic Interchange Format) and also be translatable to VHDL... but don't
hold your breath - note that it's been something like 3
years since the last release of RHDL.