End-to-end workflow for taking an RHDL design from source to running on an FPGA.
Workflow Overview
RHDL Source → Verilog Export → FPGA Synthesis → Bitstream → Program
Step 1: Design and Verify
Write and test your design in RHDL using RSpec:
rspec spec/
rhdl simulate lib/top.rb --level rtlStep 2: Export Verilog
rhdl export verilog lib/top.rb -o fpga/rtl/top.vStep 3: Add Constraints
Create a constraints file for your target board (pin assignments, clock definitions):
# Xilinx XDC example
set_property PACKAGE_PIN W5 [get_ports clk]
set_property IOSTANDARD LVCMOS33 [get_ports clk]
create_clock -period 20.000 [get_ports clk]Step 4: Synthesize and Implement
Run your FPGA vendor’s toolchain:
vivado -mode batch -source build.tclStep 5: Program
Flash the bitstream to your board and verify behavior matches simulation.
Supported Boards
RHDL designs have been tested on:
- Xilinx Artix-7 (Basys 3, Arty)
- Xilinx Zynq (PYNQ, ZedBoard)
- Intel Cyclone V (DE10-Nano)
- Lattice iCE40 (via Yosys + nextpnr)