Skip to content

Supported Boards

TCal edited this page Jul 25, 2022 · 19 revisions

Stuck? Questions? Visit us at https://gitter.im/CFU-Playground/community


Are you having difficulty connecting to your board? If it's a new board and you've never connected to it, you may need to set up udev permissions by adding a file to /etc/udev/rules.d/. The exact contents of the file depend on your board. Try searching for "(your board name) udev".


Arty A7 35T/100T

The first and still best supported board. There's plenty of fabric for your CFU and plenty of memory for your software. Because the 35T is the default board, you don't need to specify TARGET:

cd proj/proj_template
make prog
make load

If you have the 100T version of the board, note that there is not a separate TARGET for that. Instead, it is a variant of the default TARGET. You need to either add this on each make command line:

EXTRA_LITEX_ARGS='--variant=a7-100'

(it's important that you add that for every make command, even on make software or make load commands!)

OR add this in the Makefile:

export EXTRA_LITEX_ARGS
EXTRA_LITEX_ARGS += --variant=a7-100

In either case, if you're using other EXTRA_LITEX_ARGS, combine them appropriately.

ULX3S

Use TARGET=radiona_ulx3s.

OrangeCrab

Use TARGET=gsd_orangecrab.

You need to hold the button down when you plug it in, to put it into loading mode.

Fomu

The biggest "gotcha" is that the Fomu needs to be power cycled to place it in a state ready for programming. The LED will be cyan colored, fading bright to dark and back, when it is ready to be programmed. Because the Fomu is a bit difficult to remove if it's buried in your computer's USB slot, it's best to put it on an extender cable, or even better, a USB hub that has a power switch for each port.

It took a bit of hacking to get CFU Playground to fit onto Fomu. The full story is here..

The KWS (keyword spotting) accelerator currently does fit on Fomu, although we needed to take out the single-cycle shifter and instead use and iterative shifter, so the performance may be less than was reported elsewhere.

In the meantime, you can run proj/proj_template or proj/proj_template_v, which have trivial (and unused) CFUs. The default pdti8 model can run in the Fomu RAM, or you can add one of these tinyML models by modifying the Makefile: MLCOMMONS_TINY_V01_ANOMD, MLCOMMONS_TINY_V01_IMGC, MLCOMMONS_TINY_V01_KWS. MLCOMMONS_TINY_V01_VWW is too big and doesn't fit in Fomu's RAM.

# make sure your Fomu is ready for bootloading; power cycle if necessary
cd proj/proj_template
make TARGET=kosagi_fomu clean
make TARGET=kosagi_fomu TTY=/dev/ttyACM0 prog load

iCEBreaker

Recent change: LiteX has changed the name of this board from "1bitsquared_icebreaker" to just "icebreaker", so use that instead.

iCEBreaker also uses the "Fomu" RISC-V variant. It is limited as to what projects and models that it can run, same as Fomu above. The KWS accelerator (proj/kws_micro_accel) and model do fit on iCEBreaker.

Also, the TTY=... option is not needed with iCEBreaker.

cd proj/kws_micro_accel
make TARGET=1bitsquared_icebreaker clean 
make TARGET=1bitsquared_icebreaker prog 
make TARGET=1bitsquared_icebreaker load

Often you will need to hit <space> to see the interactive menu.

Clone this wiki locally