Go Board – Setting Up Build Environment
Before we start with the fun stuff, we need to get your build environment set up. I know, you’re excited because you just received your new board and you want to play with it, but we need to get this boring stuff out of the way first. The build environment used on the Go Board is a program called iCEcube2, which is put out by Lattice Semiconductor. This page explains how to download and set up iCEcube2, but I also made a YouTube video, should you prefer to follow along with that.
iCEcube2 Introduction
iCEcube2 is an IDE (Integrated Development Environment) put out by Lattice Semiconductor. Its purpose is to turn your VHDL or Verilog code into a file that the FPGA can be programmed with. Other FPGA companies like Xilinx and Altera have their own IDEs. Xilinx has Vivado, Altera has Quartus. The difference between those IDEs and ICEcube2 is that iCEcube2 is significantly less complicated than Vivado or Quartus. This makes Lattice FPGAs especially attractive to beginners. Those other programs are several gigabytes in size and are extremely complicated. They have many bells and whistles, of which you will only be using 10% at most when getting started. This was one reason why I chose to use a Lattice FPGA: their IDE is much easier to use.
It’s also interesting to note that Lattice has two IDEs: iCEcube2 and Diamond. The reason for this (according to my Lattice Rep that I work with) is that iCEcube2 was originally created by another company: SiliconBlue. Lattice purchased SiliconBlue in late 2011. SiliconBlue created the ICE series of FPGAs, you may notice that some of the FPGAs on the Go Boards are still labeled with SiliconBlue! Don’t worry, internally they’re exactly the same. Originally the plan was to merge the functionality from iCEcube2 into Diamond, so that Lattice would only have one IDE to support, but apparently that was too challenging. So there are two tools for Lattice FPGAs. Honestly, I don’t mind this arrangement since Diamond is a much heavier tool than is required for the work we will be doing with the Go Board.
ICEcube2 Download, Install, and License
Okay, enough chat, let’s download iCEcube2. Navigate to this page to download the program. Choose the ICEcube2 download link for either Windows or Linux. When you click the link you’ll be asked to create an account for the website. Note that you will need to create an account with Lattice to get a license the tools. Go ahead and create the website account now. Make sure to enter valid details, as they will email you to confirm the account (and later, to send your requested licence).
Now that you’ve created your account you’ll need to go back to the download page and click the download link (again) for ICEcube2 for either Windows or Linux. This time you’ll be asked to agree to an end-user license agreement, then finally the download will begin. Next you’ll need to request a license, this is a manual process.
To Request A License: Send an email to lic_admn@latticesemi.com with the subject, “New iCEcube2 License Request”. Include in the email your MAC address for your computer. To find that on windows, hit Windows Key + R to open up Run, then type in cmd. Once the command prompt opens, type in ipconfig /all and hit enter. Copy the 12 Hex Digits next to Physical Address into your email.
Once the iCEcube2 installer is downloaded, launch the installer. Point the installation at the license file that you received in your email. If you already installed the iCEcube2, you can use the program LicenseSetup.exe which is in the same folder where you installed iCEcube2 to point the tool at your license file. Now let’s launch the program!
This is the first window you see when you launch the program. Feel free to click around here and get a feel for the program. The next lesson will take you through an entire build of your first FPGA project.
Now there’s one more Lattice tool that we need to download. You will be needing Diamond Programmer, which is a standalone programming tool that takes the output of iCEcube2 and programs the Go Board. I know, it’s unfortunate that iCEcube2 does not have a programmer built into it, but such is the life of an FPGA designer. Nothing is as easy as it should be.
Downloading Programmer Standalone
You can find the Programmer Standalone on this page. Download for windows/linux:
- Programmer Standalone 3.13 64-bit for Windows or
- Programmer Standalone 3.13 64-bit for Linux
- You do NOT need the encryption pack
Build Flow
The flow for building FPGAs will be as follows:
- Write Your VHDL or Verilog
- Simulate Your Design (optional, but recommended)
- Synthesize Your Design (create Bitstream)
- Program the Bitstream to Your Board
hi it seems to need a license now ??
The programmer should not. Make sure you are downloading Programmer Standalone and not the full Lattice Diamond!
Sven wrote some helpful tips for those of you who may be trying to get setup on Linux:
https://wehrend.uber.space/posts/web/26_get_the_nandlab_go_board_ready_on_debian/
Hello, it seems that the IceCube2 license is no longer free? The website sends you to buy a license or contact sales.
Thanks for the comment. I’m aware of this issue also and I’m working to find resolution. Please reach out to Lattice support and file a help ticket also, that would be beneficial.
I had exactly the same problem today April 18,
trying to download the ICEcube2 software.
I have contacted Lattice and I am waiting for feedback.
I had just received the book,
and wanted to get the software installation ready as described in the book
to use the ICEstick I have here for many years unused.
Yes thanks for the comment. I’m aware of this issue and I’m trying to find resolution. In the meantime please reach out to Lattice support.
Hi, Russell!
I created the account to Icecube2, but the to get the license, I tried to go by the video provided by you. The free license link in not there. Can you please help me?
Send me an email: contact@nandland.com with your MAC address.
Hi,
I basically have the same issue. It looks like ICEcube2 is no longer a free license. I raised a ticket with Lattice but no reply from them yet.
I looked at the Diamond and Radiant tools as these have free licenses but neither support the ICE40 HX1K. Do you know of any Windows opensource tools that will support the FPGA on the GO Board.
Email me (contact@nandland.com) with your MAC address of your computer and I will forward your request to my Lattice representative until this issue is resolved.
My license has expired , MAC Address D4-BE-D9-0B-31-7A.
I have just known, expired. I have just sent email to New iCEcube2 License Request”.
The iCEcube2 license request form asks for License Type (Node-locked or Floating). Which should we request?
The form also asks for iCE Device Used. Again, what should we write?
Node locked ( for a single computer). The ice decide is ICE40HX1K.
Great! Thanks.
For anyone who might want to use VHDL on a Mac, this could be helpful: https://github.com/tebrown/goboard
So did the issues with whether or not the license was free get resolved? I’m having all kinds of issues just logging into to even try to download the software
All,
Lattice (the icecube2) creators may have updated their site since y’all posted these comments, but at least on my end, this is what I see:
”
Licensing
iCEcube2 Software Subscription License
The iCEcube2 license enables users to design and optimize solutions for ultra-low density, low power, and low-cost Lattice iCE40 devices.
To purchase an iCEcube2 license, please go to the Online Store or contact a local sales representative or distributor.
If you have purchased a software license and received a software serial number, please go to our Subscription licensing form.
iCEcube2 Makers Community
Lattice offers free licenses to hobbyists, enthusiasts, community educators & start-up companies. If this describes you, please contact us to register for a free iCEcube2 license with subject “New iCEcube2 License Request”.
”
In other words, it looks like as long as you register your account as an individual, you can request a free license. Disregard the fact that the webpage you are initially directed to has a button that says “contact sales”. Near the bottom of the page is the info on licensing (what I included above), and below that is the download section.