Handy recipes for solving FPGA problems. See also recommended FPGA sites.
Hardware & Devices
- SPRAM on iCE40 FPGA - use SPRAM with Yosys and compare it with Block RAM
- Memory Types - understand FPGA memory types, including BRAM, HBM, SRAM, and DRAM
- Initialize Memory in Verilog - use $readmemh and $readmemb to initialize RAM or ROM
- Video Timings: VGA, SVGA, 720p, 1080p - work with standard monitors and TVs
Maths
- Fixed Point Numbers - precision without floating-point complexity
- Division - simple division algorithm for integers and fixed-point
- Sine & Cosine - lookup sine and cosine from ROM
- Square Root - calculate square roots for integers and fixed-point
Tools
- Verilog Simulation with Verilator and SDL - blazingly fast way to simulate your designs
- Verilog Lint with Verilator - quickly check your Verilog designs
- iCE40 FPGA Toolchain on Linux - building an open source FPGA toolchain for iCE40
- FPGA Tooling on Ubuntu 20.04 - testing FPGA tools with Ubuntu 20.04 Focal Fossa
Get in touch: GitHub Issues, 1BitSquared Discord, @WillFlux (Mastodon), @WillFlux (Twitter)