Hello again, continuing on my quasi-annual attempt to get started with low cost Field Programmable Gate Arrays, or FPGA's.
How will I do in 2025?
Last post I installed a Windows toolchain for Altera/Quartus; I read that offerings from Lattice Semiconductor are a bit more DIY/hobbyist friendly. Let's find out.
![]() |
Nandland Go Board, sporting a Lattice FPGA chip |
WHICH LATTICE-BASED DEVELOPMENT BOARD?
I already owned a couple of Lattice FPGA based boards: "TinyFPGA BX's", hardware and their open source toolchain are covered in this previous post.
As far as I could tell BX boards were no longer being manufactured, also, I guessed that Lattice's software might be easier to get going vs. open source software I used to program the TinyFPGA's.
After research: fingers pointed to Nandland Go Board as an affordable way to get started with Lattice FPGA's.....bought one!
TOOLCHAIN
I followed the webpage here to get the toolchain going. Conclusion: Nandland's one-stop online resources (tutorials, purchasing, videos, more) made things much easier to get going versus Quartus Prime and Altera. Their "getting started" video and webpage (here and here) were invaluable; I went from nothing to blink in about 2 hours.
How I got iCEcube2 for free:
I had to create an account on the Lattice Semi page: here.
Then I emailed the Lattice Licensing dudes (lic_admn@latticesemi.com) with the subject "New iCEcube2 License Request" from my audiodiwhy email. I sent the email on Saturday.
I was a bit surprised that the following Monday, yes, I got an email from Lattice Semi that had a serial number in it.
With that, I went back to Lattice's website (the page here) to turn the serial number into a license (*.dat file). Lattice emailed the .dat file to me, I saved that on my Window 11 system's hard drive, then used it complete the installation of iCEcube2.
NOW--A WORD FROM OUR SPONSOR
I haven't crafted any audio projects yet using an FPGA, but when I do, I will run, not walk, to PCBWAY to get the boards--might be 4 layer? They have been instrumental in helping get my projects working and they will take great care of you as well.
If you need injection molding, 3D printing, assembly, and a lot more hit 'em up:
You can also help out this blog by checking them out here.
Back to today's topic....
ICECUBES (2 of them) in YER TROUSERS
During the iCEcube2 installation I had to enter the MAC address of my windows system (start > run > cmd > ipconfig); everything else was straightforward.
iCEcube2 did not have a built in programmer. As per the Nandland tutorials, I had to install the Diamond Programmer Standalone (here). Be sure to download the 50 odd MB Standalone programmer, not the 1GB+ Diamond software zip. You only need the former.
I downloaded and installed the Windows title:
![]() |
You will need the "Diamond Programmer Standalone" to get your .bin files onto your FPGA board |
I also downloaded the FTDI Windows driver for the Go Board, here. I installed the driver for Windows 11 using all defaults, a reboot wasn't necessary.
All in all--pretty easy.
Next: a few screenshots that might prove helpful in 6 months when I forget all this.
![]() |
The Diamond Programmer needs the changes in red above to work with the Go Board.... |
![]() |
Then: "device properties" need to be set for the Go Board. Note--"Device: M25P10" did not match what is shown the Nandland blink project video, but the M25P10 setting worked. |
CODE
To test the toolchain I used the .v blink code from the Nanoland site.
module Switches_To_LEDs
(input i_Switch_1,
input i_Switch_2,
input i_Switch_3,
input i_Switch_4,
output o_LED_1,
output o_LED_2,
output o_LED_3,
output o_LED_4);
assign o_LED_1 = i_Switch_1;
assign o_LED_2 = i_Switch_2;
assign o_LED_3 = i_Switch_3;
assign o_LED_4 = i_Switch_4;
endmodule
I uploaded it using the instructions from the "getting started" tutorial--here.
It didn't work at first, but I ran through the steps a second time and viola:
BLINKORAMA?
![]() |
Boy Howdy! |