Ibex is a small 32 bit RISC-V CPU core, previously known as zero-riscy.
Find a file
Pasquale Davide Schiavone a7b7aa390d fix synthax
2017-01-20 15:32:50 +01:00
include fixed ret and misaligned memory accesses 2017-01-18 16:25:31 +01:00
tb/serDiv Compile all files 2017-01-12 19:34:41 +01:00
.gitignore Fix some issues and cleanup 2016-12-30 00:26:15 +01:00
alu.sv changed module names into littleriscv 2017-01-18 10:41:40 +01:00
alu_div.sv changed module names into littleriscv 2017-01-18 10:41:40 +01:00
alu_simplified.sv changed module names into littleriscv 2017-01-18 10:41:40 +01:00
alu_simplified_splitted.sv changed module names into littleriscv 2017-01-18 10:41:40 +01:00
compressed_decoder.sv changed module names into littleriscv 2017-01-18 10:41:40 +01:00
controller.sv fix synthax 2017-01-20 15:32:50 +01:00
cs_registers.sv changed module names into littleriscv 2017-01-18 10:41:40 +01:00
debug_unit.sv changed module names into littleriscv 2017-01-18 10:41:40 +01:00
decoder.sv fixed decoder 2017-01-19 13:44:45 +01:00
ex_stage.sv modified LSU Irq and the controller 2017-01-20 15:10:10 +01:00
exc_controller.sv modified LSU Irq and the controller 2017-01-20 15:10:10 +01:00
hwloop_controller.sv changed module names into littleriscv 2017-01-18 10:41:40 +01:00
hwloop_regs.sv changed module names into littleriscv 2017-01-18 10:41:40 +01:00
id_stage.sv modified LSU Irq and the controller 2017-01-20 15:10:10 +01:00
if_stage.sv modified LSU Irq and the controller 2017-01-20 15:10:10 +01:00
LICENSE Added LICENSE file and started adding headers 2015-12-11 17:20:07 +01:00
littleriscv_core.sv fix synthax 2017-01-20 15:32:50 +01:00
load_store_unit.sv modified LSU Irq and the controller 2017-01-20 15:10:10 +01:00
mult.sv changed module names into littleriscv 2017-01-18 10:41:40 +01:00
prefetch_buffer.sv changed module names into littleriscv 2017-01-18 10:41:40 +01:00
prefetch_buffer_only_aligned.sv changed module names into littleriscv 2017-01-18 10:41:40 +01:00
prefetch_buffer_small.sv changed module names into littleriscv 2017-01-18 10:41:40 +01:00
prefetch_L0_buffer.sv changed module names into littleriscv 2017-01-18 10:41:40 +01:00
README.md Update README.md 2017-01-11 00:44:18 +01:00
register_file.sv changed module names into littleriscv 2017-01-18 10:41:40 +01:00
register_file_ff.sv changed module names into littleriscv 2017-01-18 10:41:40 +01:00
riscv_simchecker.sv changed module names into littleriscv 2017-01-18 10:41:40 +01:00
riscv_tracer.sv fixed ret and misaligned memory accesses 2017-01-18 16:25:31 +01:00
src_files.yml changed module names into littleriscv 2017-01-18 10:41:40 +01:00
THIS_CORE_IS_AUTOMATICALLY_GENERATATED!!!.txt Begin tapeout of littleRISCV (misaligned RV32IC) 2017-01-12 19:31:49 +01:00

LITTLEriscv: RISC-V Core

LITTLEriscv is a smaller 3-or-4-stage RISC-V core. It is a more configurable version of the RI5CY core, which started its life as a fork of the OR10N CPU core (OpenRISC ISA).

LITTLEriscv fully implements the RV32I instruction set, the multiply instruction from RV32M, RV32C and many custom instruction set extensions that improve its performance for signal processing applications.

Additional features include

  • hardware loop
  • post/pre increment
  • vector operations (RV32V)
  • bit operations (RV32B)
  • shuffling
  • rotate

and many more.

It can be configured to remove many non-needed compontents (e.g. multiplier), and enable more area-efficient versions of the modules (e.g. a smaller prefetch buffer, RV32E) for use as a lighter control core.

The core was developed as part of the PULP platform for energy-efficient computing and is currently used as the processing core for PULP and PULPino.

Configuration

The core can be configured by enabling and disabling capabilities in /include/riscv_config.sv. You can find some example configurations in /scripts/example_configs/.

To overwrite, test, synthesize, and generate a clean version of all these configurations use the tool scripts/ri5cly-manage.py.

Just open it's help for more information

python3 ./scripts/ri5cly-manage.py --help

Documentation

A datasheet that explains the most important features of the core can be found in docs/datasheet/.

It is written using LaTeX and can be generated as follows

make all