-
Notifications
You must be signed in to change notification settings - Fork 79
Soft CPU
All LiteX SoCs need some type of CPU to operate correctly. Most use an "Soft CPU" embedded in the gateware for this purpose, but in some cases a host computer is used instead (for example this can be true in the PCIe card case).
Currently the supported Soft CPUs are:
-
lm32
-- a LatticeMico32 soft core (with an optionalminimal
variant) -
or1k
-- an OpenRISC 1000 soft core (see also Open RISC on Wikipedia)
The lm32
is the better tested of the two (and also can be configured to be a smaller CPU core).
Two RISC V based soft CPUs:
-
picorv32
-- a Small RISC V core by Clifford Wolf, implementing therv32imc
instruction set (or configured subsets) -
vexriscv
-- an FPGA Friendly RISC V core by SpinalHDL, implementing therv32im
instruction set (hardware multiply optional)
(Of these two, the vexriscv
is slightly better tested, but both are work in progress.)
The RISC V soft CPUs support rv32i
on smaller FPGAs, and rv32im
on larger FPGAs -- the rv32im
adds hardware multiplication and division (see RISC V ISA base and extensions on Wikipedia for more detail).
- J-Core Open Processor -- a Hitachi SuperH instruction set clean room implementation
The LiteX CPU core definitions are the definitive list of possibly supported CPUs, but some additional support may be needed in the litex-buildenv
in order to actually use some of those CPU cores.
-
lm32 - LatticeMico32
- Currently supported under MiSoC
- Not upstream Linux, very old Linux port
- Upstream GCC
- Upstream Binutils
- No current new activity
-
- Currently supported under MiSoC
- Upstream Linux
- No upstream GCC. Needs clean room reimplementation.
- Upstream Binutils
- (maybe) Upstream clang?
- Reasonable amount of activity.
-
???? - RISC-V
-
J2 - J-Core / SH2
- Is the implementation any good?
- Some upstream Linux
- Some upstream GCC
- Some upstream Binutils?
- Some activity?
-
ZPU -
- Is the implementation any good?
- Unknown Linux
- Unknown upstream GCC
- Unknown upstream Binutils
- Not much activity