Hazard3-Doom

Doom running on the Hazard3 RISC-V CPU in an ECP5 FPGA - and a hands-on playground for learning how processors, FPGA logic, memory, video, firmware, and software fit together.

Hazard3-Doom is more than just Doom running on another FPGA board. It is an educational hardware and software ecosystem built around the open-source Hazard3 RISC-V processor and the ULX3S and ULX4M ECP5 FPGA families.

The same Hazard3 CPU used in Raspberry Pi RP2350

Hazard3 is not a one-off processor created for this project. Raspberry Pi’s RP2350 microcontroller contains a pair of open-hardware Hazard3 RISC-V cores, selectable in place of its Arm Cortex-M33 pair, and RP2350 powers the Raspberry Pi Pico 2 family. Hazard3-Doom synthesizes that same open-source Hazard3 processor architecture into the ECP5 FPGA.

The processor configuration is not identical: RP2350 and Hazard3-Doom enable different optional Hazard3 features and ISA extensions for their respective SoCs. The common CPU lineage and RTL make Hazard3-Doom a useful way to study the processor architecture in a system you can rebuild and modify.

The project brings together C and Verilog examples, FPGA board designs, HDMI video and framebuffer support, external memory controllers, SD card access, UART and JTAG debugging, a resident boot monitor, host-side upload tools, and a loadable DoomGeneric application.

You can use Hazard3-Doom simply to play Doom on a RISC-V soft CPU, or dig deeper into the system to see how a complete FPGA-based computer is built. Explore processor integration, memory interfaces, clocking and timing, video generation, peripherals, boot and upload mechanisms, debugging tools, and the boundary between hardware and software.

Whether you are experimenting with RISC-V, learning Verilog, exploring FPGA development, or just curious about what it takes to make Doom run on hardware you can inspect and modify from top to bottom, Hazard3-Doom is designed to give you plenty to explore.

Note

These pages describe the selected documentation version. Features that are still evolving are called out explicitly. The detailed processor architecture pages are additionally anchored to the exact Hazard3 source snapshot named in Hazard3 RISC-V Processor.

Start here