icicle - 32-bit RISC-V system on chip for iCE40 FPGAs

  •        625

Icicle is a 32-bit RISC-V system on chip for iCE40 HX8K and iCE40 UP5K FPGAs. It can be built with the open-source Project IceStorm toolchain and currently targets the iCE40-HX8K breakout board, with experimental support for the UPduino board. The make stat target runs icebox_stat and the make time target prints the icetime report.

https://github.com/grahamedgecombe/icicle

Tags
Implementation
License
Platform

   




Related Projects

icestorm - Project IceStorm - Lattice iCE40 FPGAs Bitstream Documentaion (Reverse Engineered)

  •    Python

Project IceStorm - Lattice iCE40 FPGAs Bitstream Documentaion (Reverse Engineered)

ariane - Ariane is a 6-stage RISC-V CPU

  •    SystemVerilog

Ariane is a 6-stage, single issue, in-order CPU which implements the 64-bit RISC-V instruction set. It fully implements I, M and C extensions as specified in Volume I: User-Level ISA V 2.1 as well as the draft privilege extension 1.10. It implements three privilege levels M, S, U to fully support a Unix-like operating system. Furthermore it is compliant to the draft external debug spec 0.13. It has configurable size, separate TLBs, a hardware PTW and branch-prediction (branch target buffer and branch history table). The primary design goal was on reducing critical path length.

icestudio - :snowflake: Visual editor for open FPGA boards

  •    Javascript

Visual editor for open FPGA boards. Built on top of the Icestorm project using Apio. Check the Documentation for more information.

VexRiscv - A FPGA friendly 32 bit RISC-V CPU implementation

  •    Assembly

For commercial support, please contact spinalhdl@gmail.com. The following numbers were obtained by synthesizing the CPU as toplevel without any specific synthesis options to save area or to get better maximal frequency (neutral). The clock constraint is set to an unattainable value, which tends to increase the design area. The dhrystone benchmark was compiled with the -O3 -fno-inline option. All the cached configurations have some cache trashing during the dhrystone benchmark except the VexRiscv full max perf one. This of course reduces the performance. It is possible to produce dhrystone binaries which fit inside a 4KB I$ and 4KB D$ (I already had this case once) but currently it isn't the case. The CPU configurations used below can be found in the src/scala/vexriscv/demo directory.

riscv-boom - Berkeley Out-of-Order Machine

  •    Scala

This is the source repository for the RV64G RISC-V superscalar Berkeley Out-of-Order Machine (BOOM), written in the Chisel hardware construction language. BOOM is a synthesizable core that targets ASIC processes. It can run on an FPGA (50 MHz on a zc706), but optimizing it to be an FPGA soft-core is a non-goal. For documentation on BOOM visit (https://ccelio.github.io/riscv-boom-doc).


picorv32 - PicoRV32 - A Size-Optimized RISC-V CPU

  •    Verilog

PicoRV32 is a CPU core that implements the RISC-V RV32IMC Instruction Set. It can be configured as RV32E, RV32I, RV32IC, RV32IM, or RV32IMC core, and optionally contains a built-in interrupt controller. Tools (gcc, binutils, etc..) can be obtained via the RISC-V Website. The examples bundled with PicoRV32 expect various RV32 toolchains to be installed in /opt/riscv32i[m][c]. See the build instructions below for details.

riscv-isa-manual - RISC-V Instruction Set Manual

  •    TeX

This repository contains the LaTeX source for the draft RISC-V Instruction Set Manual. At the time of this writing, none of these specifications have been formally adopted by the RISC-V Foundation. This work is licensed under a Creative Commons Attribution 4.0 International License. See the LICENSE file for details.

riscv-isa-sim - Spike, a RISC-V ISA Simulator

  •    C

Spike, the RISC-V ISA Simulator, implements a functional model of one or more RISC-V processors. Spike is named after the golden spike used to celebrate the completion of the US transcontinental railway.

arachne-pnr - Place and route tool for FPGAs

  •    C++

2015-08-06: Interface change: Default seed is 1, can be randomized with -r option. Arachne-pnr implements the place and route step of the hardware compilation process for FPGAs. It accepts as input a technology-mapped netlist in BLIF format, as output by the Yosys [0] synthesis suite for example. It currently targets the Lattice Semiconductor iCE40 family of FPGAs [1]. Its output is a textual bitstream representation for assembly by the IceStorm [2] icepack command. The output of icepack is a binary bitstream which can be uploaded to a hardware device.

arachne-pnr - Place and route tool for FPGAs

  •    C++

2015-08-06: Interface change: Default seed is 1, can be randomized with -r option. Arachne-pnr implements the place and route step of the hardware compilation process for FPGAs. It accepts as input a technology-mapped netlist in BLIF format, as output by the Yosys [0] synthesis suite for example. It currently targets the Lattice Semiconductor iCE40 family of FPGAs [1]. Its output is a textual bitstream representation for assembly by the IceStorm [2] icepack command. The output of icepack is a binary bitstream which can be uploaded to a hardware device.

eclipse-plugins - The GNU MCU Eclipse plug-ins for ARM & RISC-V C/C++ developers

  •    C

These are the Eclipse projects used to build the GNU MCU Eclipse plug-ins. For new installs, the preferred method is via GNU MCU Eclipse IDE for C/C++ Developers , which packs the official Eclipse IDE for C/C++ Developers release with all GNU MCU Eclipse plug-ins already installed.

pulpino - An open-source microcontroller system based on RISC-V

  •    C

PULPino is an open-source single-core microcontroller system, based on 32-bit RISC-V cores developed at ETH Zurich. PULPino is configurable to use either the RISCY or the zero-riscy core. RISCY is an in-order, single-issue core with 4 pipeline stages and it has an IPC close to 1, full support for the base integer instruction set (RV32I), compressed instructions (RV32C) and multiplication instruction set extension (RV32M). It can be configured to have single-precision floating-point instruction set extension (RV32F). It implements several ISA extensions such as: hardware loops, post-incrementing load and store instructions, bit-manipulation instructions, MAC operations, support fixed-point operations, packed-SIMD instructions and the dot product. It has been designed to increase the energy efficiency of in ultra-low-power signal processing applications. RISCY implementes a subset of the 1.9 privileged specification. Further informations can be found in http://ieeexplore.ieee.org/abstract/document/7864441/.

riscv-linux - RISC-V Linux Port

  •    C

RISC-V Linux Port

riscv-qemu - QEMU with RISC-V (RV64G, RV32G) Emulation Support

  •    C

QEMU with RISC-V (RV64G, RV32G) Emulation Support

e200_opensource - The Ultra-Low Power RISC Core

  •    Verilog

This repository hosts the project for open-source hummingbird E200 RISC processor Core. The Hummingbird E200 core is a two-stages pipeline based ultra-low power/area implementation, which has both performance and areas benchmark better than ARM Cortex-M0+ core, makes the Hummingbird E200 as a perfect replacement for legacy 8051 core or ARM Cortex-M cores in the IoT or other ultra-low power applications.

Brandy Basic V Interpreter

  •    Basic

Brandy is an interpreter for BBC Basic (or Basic V) that runs under a variety of operating systems. Basic V is the version of Basic supplied with desktop computers running RISC OS. These were originally made by Acorn Computers.

awesome-cpus - All CPU and MCU documentation in one place

  •    HTML

This repository contains documentation for various CPUs. There are data sheets, programmer's manuals, quick reference cards, etc. Before submitting a pull request, please read the Contribution Guidelines.

rt-thread - RT-Thread is an open source IoT operating system from China.

  •    C

RT-Thread is an open source IoT operating system from China, which has strong scalability: from a tiny kernel running on a tiny core, for example ARM Cortex-M0, or Cortex-M3/4/7, to a rich feature system running on MIPS32, ARM Cortex-A8, ARM Cortex-A9 DualCore etc. The device driver is more like a driver framework, UART, IIC, SPI, SDIO, USB device/host, EMAC, MTD NAND etc. The developer can easily add low level driver and board configuration, then combined with the upper framework, he/she can use lots of features.

CompCert - The CompCert formally-verified C compiler

  •    Coq

The verified C compiler. The CompCert C verified compiler is a compiler for a large subset of the C programming language that generates code for the PowerPC, ARM, x86 and RISC-V processors.

rocket-chip - Rocket Chip Generator

  •    Scala

This repository contains the Rocket chip generator necessary to instantiate the RISC-V Rocket Core. For more information on Rocket Chip, please consult our technical report. To build the rocket-chip repository, you must point the RISCV environment variable to your riscv-tools installation directory.