Home

Awesome

CI

Leros, a Tiny Processor Core

An FPGA optimized tiny processor core for embedded systems. See more documentation on the website for Leros.

This repository contains two versions of Leros: the initial 16-bit version in VHDL and the redesign of 16/32/64-bit version in Chisel. The two versions are in the same spirit, but not compatible. The initial version exposes the pipeline to the programmer. The initial version is supported by a small Java runtime (muvium).

The new version is pipeline agnostic and also has a slightly different ISA. The new version is supported by a C compiler (LLVM port.)

Note that this project includes a submodule. Therefore, you need to update with:

git submodule init
git submodule update

Testing

The tests are in the asm/test directory. The tests are written in ScalaTest and run with the SBT build tool. To run the tests, use:

sbt test

or use make

make test

The assembler tests are written to exit with 1 in the accumulator if they pass.

Questions

See also TODO.md.

Implementation Notes (Leros 16)

Pipeline discussion:

Fmax

We target a very high fmax in an FPGA to compensate for the more instructions execute.

Initial measurement on DE2-115 with almost no function and debug output (e.g., accu) in registers: 184 MHz. Could be better.