PORTLAND, Ore. Illustrating the power of the Ruby scripting language, consulting engineer Phil Tomson has used it to create the open-source Ruby hardware-description language (RHDL). Not currently intended for production use, RHDL is rather meant as a "proof of concept" for Ruby, a language that Tomson believes is superior to Perl or Tcl for EDA applications.
Ruby, an interpreted scripting language that's available for free, is known for its simplicity and its object-oriented design. "It's like a much cleaned up Perl," Tomson said. "It's sort of like Perl meets Smalltalk. It's completely object-oriented, while Perl is not."
Tomson said he decided to build RHDL after he learned about JHDL, an open-source Java-based HDL developed at Brigham Young University. "I was looking at it on their Web page, and it seemed to me their stuff was structural, and that it might not support RTL. I thought I'd do an exercise to see what I could do in Ruby, and I came up with RHDL."
Currently an independent software engineer, Tomson has worked as an ASIC designer and was most recently employed at Cypress Semiconductor Corp., where he worked with the company's Warp VHDL synthesis compiler. He is a founder of the FreeHDL project, which is working to create an open-source VHDL simulator for Linux.
Tomson said he wrote the initial version of RHDL in one day this past February, with the first cut taking only 300 lines of Ruby code. "I think that is a good example of the power and expressiveness of Ruby," he said. "Since then I've done a bit of code refactoring and cleanup. In total I've probably spent something like 40 hours on it."
Beyond simple examples, Tomson acknowledges that RHDL is not something a designer would use for an actual chip design. It's lacking hierarchy and could also use more types, including bit types and vectors. Tomson said he hopes to add these features over time to help Ruby evolve towards a full-fledged HDL.
RHDL does, however, support signals and parallel processes, and supports sensitivity lists. Tomson said it's more similar to VHDL than Verilog.
Tomson said his primary motivation is to bring Ruby to the attention of chip designers. Its object-oriented nature supports the reusability of code and encapsulation, he said. "The code is quite readable and easy to maintain. That's a problem in Perl," he said.
Tomson said he is now using Ruby as an EDA scripting language for one of his clients.
RHDL can be downloaded under GNU Public License from the Web.
An example of RHDL code can be found at the EEdesign Web site.