Lattice Ice40 Ultra Plus FPGA: Gnarly Grey Upduino - Tutorial 1: The Basics

Long time no post! Now that’s out of the way… As ever, I’m always on the search for cheap electronics and this board is nearly mind blowing given both the price and form factor you can get it in. Enter the Gnarly Grey UPDuino v2.0 based on a Lattice iCE40UP5K FPGA featuring:

120Kbits of BRAM
1024Kbits of Single Port RAM
Integrated PLL
Integrated DSP units (MAC!)
I2C and SPI IP
Internal HF and LF oscillators
LED driver
PWM IP blocks
48pin QFN
A pretty feature packed little guy for only $15.99. I’ve been looking for an FPGA of this size and form factor for a very long time and finding one at this price just so happens to be a bonus.

The cheap price however comes with a few niggles, namely getting it up and running in the first place with the limited documentation. Gnarly Grey do a great job of explaining programming a starting program but don’t say much about further development. With that in mind, I’m going to run through the methodology of getting an LED flashing using VHDL. There seem to be a fair few Verilog methods but not many people seem to have touched upon VHDL with these FPGAs.”

Link