A complete, production-quality High Bandwidth Memory 3 controller built from scratch in Verilog — with AI collaboration, full documentation, and a SystemVerilog testbench for every module.
| Parameter | Symbol | Min | What It Controls |
|---|---|---|---|
| RAS to CAS Delay | tRCD | 14 ns | Time from ACT to first RD/WR |
| Row Active Time | tRAS | 32 ns | Minimum time row stays open |
| Precharge Time | tRP | 14 ns | PRE to next ACT on same bank |
| CAS Read Latency | CL | 35 ns | RD command to first data bit |
| CAS Write Latency | CWL | 18 ns | WR command to first data |
| Refresh Interval | tREFI | 3.9 µs | Max time between refresh commands |
| Refresh Cycle Time | tRFC | 220 ns | Duration of a refresh operation |
| Row Cycle Time | tRC | 46 ns | ACT to ACT on same bank (tRAS+tRP) |
No. Each module starts from fundamentals. Module 1 explains what tRCD, tRAS, tRP mean physically before writing a single line of Verilog. If you know basic digital design (FSMs, flip-flops, synchronous logic) you can follow along.
The controller RTL (Modules 1–15, excluding the PHY behavioral model) is fully synthesizable. It can be used with a real HBM3 PHY hardmacro from the foundry. On FPGA you'd pair it with an HBM3 soft PHY available on UltraScale+ HBM devices (Xilinx provides the PHY hardblock).
DDR5 controllers are well-documented and several open-source implementations exist. HBM3 has no good free RTL reference, the industry demand is exploding (every AI chip uses it), and the pseudo-channel architecture makes it architecturally richer to build and understand.
We're building it live — one module at a time. Phase 1 (4 modules) is the starting point. Each module is a self-contained page with full RTL + testbench. Follow along, bookmark, and build your own version alongside us.