32-bit RISC-V system on chip for iCE40 and ECP5 FPGAs
Icicle supports several development boards:
blackice-ii: BlackIce II
ecp5-evn: ECP5 evaluation board
ice40hx8k-b-evn: iCE40-HX8K breakout board
ice40hx8k-b-evnfor the iCE40-HX8K breakout board).
make BOARD= syntaxto check the syntax with Icarus, which has a stricter parser than Yosys. At the time of writing the
masterbranch of Icarus is required as there isn't a stable release with
make BOARD=to synthesize the design, place and route, compile the demo program in
progmem.cand create the bitstream.
make BOARD=blackice-ii dfu-flashto flash the bitstream.
make BOARD=ice40hx8k-b-evn flashto flash the bitstream.
picocom -b 9600 /dev/ttyUSBn(replacing
ttyUSBnwith the name of the serial port) to connect to the serial port.
Hello, world!should be printed once per second.
make BOARD= stattarget runs
make BOARD= timetarget prints the
Makefileruns the IceStorm toolchain in quiet mode. Unset the
QUIETvariable to run the toolchain in verbose mode - e.g.
make BOARD= QUIET= ....
arachne-pnrto use arachne-pnr instead of nextpnr (the default) - e.g.
git clone https://github.com/SymbioticEDA/riscv-formalto clone riscv-formal.
cd riscv-formal/cores && git clone https://github.com/grahamedgecombe/icicleto clone Icicle in the
cd icicle && python ../../checks/genchecks.py && make -C checks -j `nproc` to verify the core.
The entire system on chip currently occupies around 3,000 LUTs on an iCE40 when synthesized with Yosys.
If bypassing and branch prediction are disabled nextpnr estimates it can be clocked at around 50 MHz on a HX series device and 20 MHz on a UP series device.
The core is capable of issuing and retiring one instruction per clock cycle, although the actual number of instructions per cycle will be slightly less than this in practice due to interlocking, branch mispredictions and the shared memory bus.
This project is available under the terms of the ISC license, which is similar to the 2-clause BSD license. See the
LICENSEfile for the copyright information and licensing terms.