P
Phil Tomson
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
==============
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