Starting with ICE40, advise on IDEs and environment - Page 1
Forum section: electronics / general

author: damien22
author_rank: Contributor
timestamp: February 06, 2022, 08:11:17 am
content: Hi There,Been a long time dev on MCUs and looking to increase my knowledge of FPGAs and ICE40 seems very attractive.However, ICECube 2, IceStorm, Lattice Diamond, APIO, Yosis, etc... as just starting, the amount of different tools is quite overwhelming.Is it better to go with the proprietary IceCUBE2, or the open-source tools?My understanding is that icecube2 is quite old and clunky/manual, and that the open-source tools seem to be quite a nightmare to install and get working.Every tutorial out there uses different set of tools / software.Any suggestions, as of 2022, to which software / toolset would be recommended to start with ?Cheers

author: sicco
author_rank: Regular Contributor
timestamp: February 06, 2022, 12:00:55 pm
content: I was in a similar position a year ago. Started with IceBreaker modules and IceStudio. Even though i initially played with the Lattice tools with The lattice ice40 starter kit. Yes the Icestudio installation with usb drivers on a Windows machine can be a hassle, but do-able. And yes it’s all work in progress, but it’s a fun way for getting to grips with FPGAs, Verilog etc. It’s for free, so…

author: laugensalm
author_rank: Regular Contributor
timestamp: February 06, 2022, 01:02:55 pm
content: Quote from: damien22 on February 06, 2022, 08:11:17 amThe editors of those proprietary IDEs are in general ok for beginning, but a pain when it gets to performance coding or code refactoring. The opensource stuff again requires some knowledge on setting up simulator environments. You've got to die a death of one or another :-)If you're working with a Debian based OS, it's not nightmarish to get the yosys/nextpnr based tools to play at all, also, you could use pre-built Docker containers that get you going in no time. I'm afraid I don't have one set up for ICE40 (ECP5 only), but I'm sure someone can point you to a working one, best is to check for one of those many community board supply packages. But I can only tell from the linux comfort zone, it might be tedious on Windows, especially when you need to access your hardware and fiddle with exported USB devices in the Docker Desktop environment.

author: woofy
author_rank: Frequent Contributor
timestamp: February 06, 2022, 01:24:25 pm
content: You don't mention your OS.For a windows user, iceCube2 is quick and easy, but the editor is terrible, not even having syntax highlighting.If you are on Linux then its easy to install the open source toolchain. There are instructions athttps://clifford.at/icestorm, but I would install nexrpnr from the instructions herehttps://github.com/YosysHQ/nextpnrIf you're on an Ubuntu base distro (I use Mint) then the above instructions just work.You can use your editor of choice to create the verilog, vim and xed both include verilog syntax highlighting.

author: damien22
author_rank: Contributor
timestamp: February 06, 2022, 02:00:19 pm
content: Thanks for the inputI'm stuck to windows because of other embedded software/drivers that only run on windows and would prefer not having to work in a VM.I intended to use Visual Studio as an editor. IceStudio is a nice project, but I don't think it can be used for things more complex than blinking a few LEDs or in a professional capacity (which is ultimately the goal).As far as I understand, most FPGA proprietary softwares are free, at least the IceCube2, usually, the IP is what needs some $$For the opensource tools, regardless of the OS; each youtube video I could find about them starts with "I had some issues", "I had to use this version with that version" and the maker of my dev board recommend to use their ready-to-use VM over trying to install the toolchain, so if there are no big downsides, I think the IceCube 2 is still the easier way to get started from what I've understood unless I'm missing something.

author: rstofer
author_rank: Super Contributor
timestamp: February 06, 2022, 04:21:48 pm
content: Quote from: woofy on February 06, 2022, 01:24:25 pmBut you can use Visual Studio Code (on Windows or Linux) for editing and iCEcube2 for building the binary.Getting the first project to build and program was quite a challenge. None of the default settings (cable, device, programming methodology) are correct for my NandLand GO Board (iCE40HX1K). Watch the tutorials, the settings go by quick.If I were starting with the iCE40, I would want to start with NandLand's GO Board for the tutorials. VHDLwhiz uses the iceStick40 (same chip) and his tutorials are very good as well.After stumbling around for a couple of hours, I have a couple of projects working and I can use these as templates for further development. Never underestimate the utility of a 'blinking LED'. An enormous number of things have to work to get that far.I'm assuming the iCE40 boards are being bought for price, not features and capacity. I bought them just to see what other people are putting up with. I prefer the Digilent Nexys A7 board (100T variant) and Vivado. I understand there is a huge difference in price but I won't run out of features any time soon.

author: damien22
author_rank: Contributor
timestamp: February 06, 2022, 05:07:48 pm
content: So I went in the direction of the IceCube2 and everything was quite smooth, got my first verilog blinky working within about 1h from installing the software, got a bit challenged on the SB_IO_OD on the verilog (LED Driver).Overall, the IceCube UI is not very intuitive for first timers, but seems to get the work done with some getting "used to" and has some neat functionalities.

author: SiliconWizard
author_rank: Super Contributor
timestamp: February 06, 2022, 05:35:35 pm
content: Now if the iCE40 *UltraPlus* series is of interest to you, the tool is Lattice Radiant, which is a simple yet modern tool.