# Rhdl 0.5.0

**URL:** <https://www.ruby-forum.com/t/rhdl-0-5-0/98798>\
**Category:** Ruby\
**Created:** [July 18, 2006, 8:13am UTC](https://www.ruby-forum.com/t/rhdl-0-5-0/98798 "2006-07-18T08:13:34Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![unknown](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/u/4bbf92/32.png) [@unknown](https://www.ruby-forum.com/u/unknown)\
**Post date:** [July 18, 2006, 8:13am UTC](https://www.ruby-forum.com/t/rhdl-0-5-0/98798/1 "2006-07-18T08:13:34Z")

</div>

# 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/](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

---

<div class="post-metadata">

**Author:** ![unknown](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/u/4bbf92/32.png) [@unknown](https://www.ruby-forum.com/u/unknown)\
**Post date:** [July 18, 2006, 2:54pm UTC](https://www.ruby-forum.com/t/rhdl-0-5-0/98798/2 "2006-07-18T14:54:05Z")

</div>

On Jul 18, 2006, at 2:10 AM, Phil T. 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.

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
