What is Rapid Hardware Definition Language

This is a tool for rapidly creating hardware using Microsoft .Net languages.

With it, you can design objects representing a hardware component. The hardware components are combined using object oriented software techniques, in a high level language.

Further, arbitrary connections between your software and the syntheisized hardware are simply accomplished in your design by writing typical software code. This makes it easy to debug your hardware design. (Note: This integration first requires that some fairly simple and somewhat generic drivers be written to interface with your FPGA.)

When you run your project, it will output Verilog files that implement your design. Your design can be automatically syntehsized using the free Xilinx webpack. Your design will be automatically loaded into your FPGA. Your software will automatically talk to the synthesized hardware. Writing hardware is now a lot like writing software!

Why did you write Rapid HDL?

I am a graduate student, and I wrote Rapid HDL to help create some fairly complex hardware for my dissertation.

What Makes Rapid HDL Different from Other Hardware design methods?

When you make connections in software, you don't have to worry about routing connections through the object hierarchy. Similarly, when you make connections with Rapid HDL objects, you don't have to worry about routing wires through the component hierarchy. Signal routing is handled automatically when the Verilog is generated. This distinguishes Rapid HDL.

Rapid HDL is implemented as a .Net library. This means you can use it with any language supported by .Net, such as C#, F#, Visual Basic, etc. etc. This also means you can easily build your hardware along with nice GUI based programs in Visual Studio.

Why would I use RapidHDL?

If you want to generate hardware, but you are more comfortable with C# than Verilog or VHDL, then you can try Rapid HDL.

If you design digital hardware for FPGA's HDL, then Rapid HDL can speed up your development time. You can easily share and reusue hardware components, just like you would share a library in software.

If you have dynamic hardware, and you want to make it generate dynamically, RapidHDL is the tool for the job. You can write complex hardware generation scripts using the most advanced high level programming languages.

If you need hardware to integrate with software, RapidHDL makes it easy.

If you want to unit test your hardware components, RapidHDL makes it easy.

If you want to write your own library to accomplish something similar, you may profit from ideas and lessons learned in Rapid HDL.

RapidHDL is free, and it uses free tools.

Where can I get an FPGA?

RapidHDL was developed for the Pico Computing line of FPGA's http://picocomputing.com/. Last time I checked, they were selling for about $800 each.

Drivers that interact with the Pico Computer FGPA card are available, just drop me a line (I plan to publish them later, in a separate project). It should be easy to create drivers for any FPGA.

Where can I find better documentation?

Ask specific questions and I may try to improve the documentation in that area.

I can write a counter a lot quicker using regular Verilog. Why would I use Rapid HDL?

Now that the counter is part of the Rapid HDL library, nobody has to write a counter again. This counter can handle many permutations of parameters. After a library of components has been constructed, the speed of development dramatically improves. With Rapid HDL a microprocessor can be customized and generated from an XML file in an hour or so.

Isn't hardware generated by Rapid HDL sub-optimal?

Not necessarily. Rapid HDL scripts the output of Verilog. If the scripted output is a bad design, then the hardware will be slow. But there is no reason why the scripted output has to be a bad design if you have the time to do it right. If you don't have the time to do it right, then Rapid HDL will help you do it faster, anyway.

Your contrived FAQ questions didn't answer my question

Sorry. Please post your questions to the discussion board or the comments section.

Last edited Sep 11, 2009 at 4:12 AM by allen248, version 3

Comments

No comments yet.