It is no secret that we like the Lattice iCE40 FPGA. It has a cheap development board and an open source toolchain, so it is an easy way to get started developing low-cost, low-power FPGA designs. There are a few members of the family that have similar characteristics including the top-of-the-line UltraPlus. [Steve] from Lattice and [Michael Klopfer] from the University of California Irvine have a three-part video series that explain the architecture of the devices. Altogether, the videos are about an hour long and — of course — they use the official tools, not IceStorm. But it is still a great time investment if you have an iCE40 board and you want to understand what the chip has under the hood.
The first part is fairly short and talks a lot about applications. There’s also a nod to the hobbyist use of FPGAs. Keep in mind that the iCE40 FPGAs come in different sizes and variants, so don’t get excited when you see them mention a RISC-V — that isn’t going to fit in your iCEStick, that we know of. The iCEstick has a HX-1K onboard, which is the high-performance variant with 1,280 logic elements, as opposed to the low-power (LP) version.
In fact, you might want to watch the video with the datasheets open. The lowest-end UltraPlus device has more logic elements (2,800 vs 1,280) and more RAM (1,104 kbits vs 64 kbit). It also has specialized I2C, SPI, DSP, and PWM hardware onboard. While the HX-1K lacks those extra features, it does allow 98 I/Os maximum compared to the low-end UltraPlus’ 21 I/O. They also have lower maximum propagation delays which means you can usually get them to clock faster than other members of the family.
However, the core fabric is the same: a four-input lookup table (LUT4), a D flip-flop, and some carry logic. More modern FPGAs will often have more inputs to the LUTs to provide denser packing, so be careful comparing one FPGA family’s cell count to another.
Of course, if you are using the iCEstick, you may want to graduate to the more powerful family members and then everything in the videos will apply. They use the UpDuino which is a good upgrade and still very inexpensive. The third video covers the Lattice-specific tools. Be aware that if you want to use the Ultra or UltraPlus devices that Icestorm only supports some of them. If you do use IceStorm, you’ll want to read about the support for newer devices. If you haven’t gotten started with FPGAs yet, why not head over to Hackaday.io and learn more about using the iCE40 in the FPGA bootcamps?