Crusty's laptop is sprouting hardware in the form of an FPGA-based USB iCEstick from Lattice Semiconductor.
On running the Lattice iCEcube2 suite I receive the following message: "Free 30 day trial has expired, please input a relevant license number." This is strange because I downloaded the file only yesterday. Never mind; it's off to the Lattice website and log in to get a license. Now, what was my password at Lattice? It's a good thing my keychain remembers it for me.
Do I finish Step 1 now, or do I let my eagerness get the better of me and go directly to Step 2? What can I say? Ready or not, Step 2 here we go... I throw caution to the winds and insert the iCEstick into a USB socket in my MacBookPro. You can see a 15-second clip of the iCEstick performing its pre-loaded LED chasing routine in this video:
Now it's back to Step 1 to obtain a node-locked license. This requires me to get the NIC address from my desktop computer and fill in the little box on the Lattice site with its address. I get an e-mail back in 15 minutes with a license attachment file and advice as to where it should reside on my system. I run the license updater program telling the IceCube2 program where it can find the license.
So it's "Hey Ho and off we go!" Well, not quite. I get a message box saying that IceCube2 will not run as I am using a Remote Desktop application and the license is not compatible with this. If I can do this remote desktop interaction with a node-locked Xilinx ISE suite, why in the seven types of hell can I not do this with the node-locked Lattice license? There is a PDF with 168 pages of notes on managing license troubles, but I only have about 30 more years at most to live and TIME IS TOO SHORT FOR THIS.
Brute Force and Ignorance (which, by some strange quirk of fate, is also the name of my engineering company) sees me booting the IceCube2 program direct from the desktop, which brings up the Lattice IDE without any complaints. Now when I logon to the desktop via the remote desktop connection, IceCube2 is happy to work this way. There's more work to do here, but not for this blog.
The Lattice programming environment is new to me, I first started my newbie journey into the world of FPGA a year ago with Xilinx and their ISE, so what will I be able to do with the Lattice IDE. If all else fails I could read the manual, but first let's see how intuitive the Lattice IDE is.
After a few false starts, I finally realize that I need to press the "Active-HDL" button at the top of the screen. This rewards me with an Aldec IDE that is similar in some respects to the Xilinx ISE I am used to. A quick run across the menus leaves me thinking that I will be able to write VHDL and synthesize it with only minor reprogramming of my brain. Annoyingly, the option for a visual circuit input to produce VHDL code requires another license to become operable. Considering that someone moving from a hardware background might be trying out this evaluation module, this seems to be a strange omission? Let's hope Aldec will accept me as valid account someday (they refused my first request).
The first thing I intend to do is try a simple VHDL session. This will be the FPGA hardware equivalent to the "Hello World" program used by the software guys -- basically I'm going to blink the iCEstick's LEDs.
There are four LEDs on board (not counting the power LED) along with some 0.1 connector sockets connected to free I/O pins that will allow patch wires to be pressed into service as the activators for the LEDs.
I am going to need to drop the clock speed to a mark-space ratio suitable for a visual blink; some form of counter should do this. This counter will need four selectable outputs along the chain so I can output different blink rates to the onboard LEDs when selected inputs are pulled high or low.
So, if Max likes the idea of seeing what the very cool iCEstick and I can do together, then in my next blog we will start on how to get the VHDL into the IDE, synthesize it, and load the iCEstick to see the results in hardware. Until then, please share any comments and questions below.