ICEBreaker, The Open Source Development Board For FPGAs

The Hackaday Superconference is over, which is a shame, but one of the great things about our conference is the people who manage to trek out to Pasadena every year to show us all the cool stuff they’re working on. One of those people was [Piotr Esden-Tempski], founder of 1 Bit Squared, and he brought some goodies that would soon be launched on a few crowdfunding platforms. The coolest of these was the iCEBreaker, an FPGA development kit that makes it easy to learn FPGAs with an Open Source toolchain.

The hardware for the iCEBreaker includes the iCE40UP5K fpga with 5280 logic cells,, 120 kbit of dual-port RAM, 1 Mbit of single-port RAM, and a PLL, two SPIs and two I2Cs. Because the most interesting FPGA applications include sending bits out over pins really, really fast, there’s also 16 Megabytes of SPI Flash that allows you to stream video to a LED matrix. There are enough logic cells here to synthesize a CPU, too, and already the iCEBreaker can handle the PicoRV32, and some of the RISC-V cores. Extensibility is through PMOD connectors, and yes, there’s also an HDMI output for your vintage computing projects.

If you’re looking to get into FPGA development, there’s no better time. Joe Fitz‘s WTFpga workshop from the 2018 Hackaday Superconference has already been converted to this iCEBreaker board, and yes, the seven-segment display and DIP switches are available. Between this and the Open Source iCE toolchain, you’ve got a complete development system that’s ready to go, fun to play with, and extremely capable.

40 thoughts on “ICEBreaker, The Open Source Development Board For FPGAs

    1. I assume that meant something like “Make an HDMI output card for your vintage computer” rather than “Your computer is so vintage, it has HDMI”. The former is something I’ve thought about creating for a while now, so it’s pretty reasonable.

    2. A lot of people build vintage computer recreations or reimaginations on FPGA. With the HDMI Pmod you can attach a monitor to that “retro computer”, without having to dig out your old VGA CRT screen. That is what I meant with that. :D

  1. IceStorm, this (or the TinyFPGA) are the Arduino FPGA equivalent for me (without the equivalent Wiring abstraction that can lead one down the wrong road in C). It feels like hobbyist FPGA development is starting to snowball. I finally dipped my toe in recently, and being able to use my standard workflow of Vim and a terminal meant I could concentrate on learning the subject rather than a new environment.

    1. To me the gateway to FPGA is the Cypress PSoC, because it’s a CPU with just a few programmable LUTs on the side. So you can always see the shore, you can really dabble, and the tools are well integrated, so you don’t have to fight the tooling during your hello world.

  2. FPGA is great but hardware MUST have normal procesor for system AND FPGA.
    This is best choice. Because ist library for linux and specialize program for fpga.

    or usb interface to put FPGA into raspberry or big x86 computer

  3. I attended Piotr’s WTFpga workshop this year at Supercon, where used (and kept!) pre-release versions of this board. Great workshop and great boards! Having used commercial FPGA development tools (granted, 10 years ago) in college and been turned off by the whole workflow, it was a breath of fresh air to see how far this new open ecosystem has come. Synthesizing and flahing the designs to the board was snappy and felt just like compiling and flashing any other microcontroller from the command line. Thanks again Piotr and best of luck with the CrowdSupply campaign!

        1. Also by switching around three jumpers on the back of the iCEBreaker you can program the FPGA SRAM directly — bypassing the FLASH chip. It is faster, does not “wear out” the flash but it does not survive a power cycle. Still very useful in some situations.

          1. Even programming flash on the icebreaker is not slow though! Just 3.8s on my PC. Then again, switching to programming SRAM probably gets that down to less than a second.

      1. I get that. However, the workshop took 2 hrs as it was. Squeezing in install steps would have been pushing it, especially with the variability of different OSes/configurations/etc (if they brought at laptop at all). I personally thought providing a pre-configured laptop for everyone was very nice.

        1. He could have told everyone to arrive with all the software already installed. Other workshops did that. But I think Piotr ran out of time, the hardware was apparently fresh from the factory and they had been soldering and testing in the hotel room.

          It was great that the laptops made it easy to get started and I really did enjoy the workshop, but now I have some hardware that I might like to use for a project, without the software to use it.

          There was another FPGA workshop 2 years ago (I think) that avoided installation problems by providing an entire virtual machine running Linux with the necessary software installed on it. The download was a pain because it was so big (several gigabytes!), but it worked for everyone right out of the box because the VM was self-contained. In this case that would have been a good idea too. The software and hardware in the WTFPGA workshop worked flawlessly and I have to commend Piotr and everyone else for what they did and do.

          1. Thank you very much! I am glad you enjoyed the workshop and that it worked without too many problems. (Ignoring a few: “why is this not working! Ohh I forgot to save my changes” issues ;) )

            Asking people to install the tools or download VM never works reliably. People have Windows, Linux, Mac OS causing a ton of problems when you just want to get to the meat of the workshop. People arrive with “pre installed” tools and have outdated packages or their drivers don’t work as they should. I tried that in the past it is a headache for the teacher and the students. The laptop model was intentional and is the way Joe Fitz (who generously lent us the machines) does his workshops. This helps streamline, make people enjoy the workshop and learn things instead of debugging their tool setup.

            That said, in the workshop guide, there is a link to the installation instructions: http://www.clifford.at/icestorm/#install so you can install them on your computer when you go home with the hardware.

            I have also created a shell script that downloads all the tools and compiles them for you: https://github.com/esden/summon-fpga-tools

            The open source FPGA tools are at the moment still moving at such a break neck speed that it is a good idea to build them from sources. But I really want to see pre-compiled binary distributions of them. APIO (https://github.com/fpgawars/apio) is a good start but we need more. :)

          2. VM is good, but then everyone has to be able to play it. We did that for our FPGA class ages ago in my old hackerspace.

            Not that it applies to Piotr’s workshop, but if you’re using proprietary toolchains, doing this with identical VMs definitely violates some EULA or other. Let your own moral compass be your guide…

    1. Once the open source ASIC tools are good enough to design an OPENfpga in 65nm (like the first SiliconBlue FPGA was manufactures in that node) and when someone will put up the money to pay 300.000 USD for the
      full ASIC mask set.

    2. I think this will still take a while. Making ASICs is not that simple, and the tools are getting there but they are still a big hurdle. Even most of the RISC-V open chips are only partly open, as they use proprietary blocks (power supply, clock conditioning, ram and probably more) from the chip manufacturers. There is more to an ASIC than just the core. There is a great article about that from the Open-V folks: https://www.crowdsupply.com/onchip/open-v/updates/a-taste-of-chip-design

      But the more people are interested in this stuff, learn about it and put their effort behind it the more likely and faster this will become a reality. ;)

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.