Getting started

From iCEBreaker FPGA
Jump to navigation Jump to search

Welcome

Welcome to the iCEBreaker community. This wiki is work in progress and the information included here might not be sufficient or not what you are looking for.

If you have any questions or suggestions please make sure to let us know in our Discord chat (#icebreaker channel) or in the iCEBreaker forum.

Install the FPGA flow (toolchain)

The first thing you should do is install the necessary tools to synthesize, place, route your design and then generate the bitstream.

Note: We sincerely recommend that you use a Linux or Mac computers when you start out. You can use Windows but unless you are comfortable with the vendor tools (The vendor tools have their own learning curve and complexity, we do not have examples or step by step guides for them for now, you are on your own ;) ) it requires more advanced knowledge of the tools as well as Windows and you will need to combine and match a few solutions together. We are working on a canned solution for Windows but it is not ready for prime time yet. The only simple path for Windows is to use icestudio. It will limit you to the use of their graphical design software for your projects. If that is what you are looking for go ahead, follow icestudio installation instructions on their website. We do have some example projects for icestudio on our GitHub. If you want to develop your designs using verilog, migen or nMigen then continue reading. :)

The tools that are used for that are:

  • Yosys (Synthesis)
  • nextpnr (Place & Route)
  • icestorm (Provide the database to nextpnr. Generate and program the bitstream to the iCEBreaker as well as some other useful ice40 tools.)

There are several ways to install the tools.

On Linux an easy way to install the tools is the summon-fpga-tools script. This will build the most up to date tools for you and install them in your home subdirectory. You don't need admin rights except for the udev rules file.

On Mac OS you can either use the summon-fpga-tools script or use the awesome ktemkin homebrew tap.

Workshops

We have developed two workshops so far. WTFpga and icebreaker-workshop. Depending on which Pmods you have you might choose one or the other, or both. :)

WTFpga Workshop

The WTFpga Workshop requires an iCEBreaker, 7-Segment Display Pmod and Dip Switch Pmod. You can find all the current materials on github. It includes a PDF that is meant as a guide, the whole workshop is self guided. But if you have questions ask us in the Discord Chat and we will try to help you. :)

iCEBreaker Stopwatch Workshop

The iCEBreaker Stopwatch Workshop requires an iCEBreaker and two 7-segment Display Pmod. This workshop does a better job of teaching synchronous logic and better practices than WTFpga.

Try out examples

The iCEBreaker community keeps creating more and more great examples for the iCEBreaker. Here is a list of links to the different github repositories containing small and big examples.

If you know of more repositories we should include in this list make sure to let us know in the Discord Chat.