FPGAs
FPGAs are very parallel circuits well suited to processing high bandwidth video.
Open Source FPGAs. View
FPGAs which can be configured with the Open Source Yosys and Nextpnr tools are called Open Source FPGAs.
Lattice ICE 40 was the initial platform supported by Yosys. There are many open source circuit boards using Lattice FPGAs [4] ICE 40 UP adds large Block Rams, but they limit the frequency to 50Mhz. The Pico2-Ice is recommended for beginners.
Gowin is a Chinese FPGA manufacturer. Their Littlebe chips are now supported by the open source Yosys tool chain. Clearly they are the price leader in the FPGA market. But there is a very serious bug report they have not responded to. The datasheet lacks critical information; how many resources does it take to build a mux4 or mux32? The github reporitories lack licensing information, putting our projects in legal limbo. Compared to Gowin, the European made FPGAs are subject to much better environmental and labor laws. Gernany even has labor union representatives on the company boards. If there is a supply disruption, or worse yet another war, good to have local suppliers. And our money should go towards improving European fabs, not asian ones. The money we spend in Europe, gets spent again in Europe, boosting our economies.
Lattice ECP5 allows for larger fabrics and faster clock frequencies than ICE40. ECP5 supports 1920*1080 DVI out @30FPS. The ULX3S ($145 - $235) is recommended. The $69 Ice Pi Zero will ship in early 2026. It has the Raspberry Pi Form Factor, so it can use the $10 Raspberry Pi Zero to connect to a wide range of MIPI cameras.
Lattice Nexus 17 and 40 add two 10Gbit/s MIPI CSI or DSI hard cores and large Block RAMs to the Lattice ECP 5 family. These are needed for some video applications such as fisheye lens dewarping.
NanoXplore offers 3 radiation hardened FPGAs. NG-Mediam with 34,272 LUT-4s, ULTRA300 with 290 496LUT-4s, and NG-ULTRA with 536-928 LUT-4s. The NG-Ultra is Open Source.
Open Source FPGAs with MIPI. View
The Lattice NX 17/40 FPGAs include MIPI hard cores, but are limited to 2.5 Gbits/s, or about 1.2 Mpixels @60FPS.
The Lattice NX33 adds a USB device interface, but is closed source.
Closed Source FPGAs with MIPI. View
For applications requiring more bandwidth one has to use an FPGA not supported by the open source Yosys synthesis and Nextpnr placement tools.
AMD’s Xilinx has a great reputation at the high end of the market. For low-cost FPGAs, there are better choices.
INTEL’s Altera is the other high end FPGA vendor. Intels drama-filled relationship with Altera has been much in the news recently.
Comparing FPGAs' Performance. View
There is now a github repository to comare the performance of FPGAs.
The question is how fast are the different FPGAs. The answer is to write a portable test, and see how fast the circuits can run. This work was motivated by the excellent Lattice ICE40 UP5K FPGA's datasheet. (pages 35-38). I kept saying that the GateMate needed similar documentation, and the Nextpnr engineer responsible was kind enough to oblige.
The github repository contains test cases for adders counters and muxes. It looks like more tests are being added as I write this. I encourage everyone to fork it and contribute test cases.
Best to visit the github repository to get the most recent version of the numbers.
I am particularly interested in test cases for memory access speed, and for the more complex issue of LVDS speeds. I encourage everyone to fork it and contribute.
Hardware Definition Languages. View
There are many different languages for defining digital circuits, not just Verilog and VHDL. They will be iscussed here.
Open FPGA Loader. View
OpenFPGALoader transmits the FPGA bitstream from the desktop to the FPGA board. There is a long list of supported FPGAs, boards and cables.
Universal utility for programming FPGAs. Compatible with many boards, cables and FPGA from major manufacturers (Xilinx, Altera/Intel, Lattice, Gowin, Efinix, Anlogic, Cologne Chip). openFPGALoader works on Linux, Windows and MacOS.
Built with the Forest WIki.
User contributed content is licensed under a
Creative Commons CC By 4.0 License.