The LibFPGA blog

Practical FPGA design, one problem at a time: FIFOs and clock domains, timing closure, RISC-V soft cores, and the tools that make the hard parts routine.

Block RAM vs distributed RAM: where your memory actually goes

Write reg [7:0] mem [0:255]; and the synthesizer has a choice to make:

Jul 3, 2026 · 3 min read

How to size an async FIFO (and why "double it" isn't a strategy)

The most common FIFO sizing method in industry is: take a guess, double it,

Jul 3, 2026 · 2 min read