-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).
+LiteX can create SoCs with or without CPU. Some simple SoCs don’t use any CPU (bridging SoCs for example), some SoCs use a CPU but external to the FPGA (PCIe SoCs for example where the CPU is directly the CPU of the Host machine) but in most of the cases the SoC embedded a "Soft CPU" to control the system and/or ease splitting tasks between software/hardware.
# Summary of Soft CPUs
* [`vexriscv`](https://github.com/enjoy-digital/litex/tree/master/litex/soc/cores/cpu/vexriscv) -- an [FPGA Friendly RISC V core by SpinalHDL](https://github.com/SpinalHDL/VexRiscv), implementing the `rv32im` instruction set (hardware multiply optional)
-* [`minerva`](https://github.com/enjoy-digital/litex/tree/master/litex/soc/cores/cpu/minerva) -- an Minerva is a CPU core that currently implements the RISC-V RV32I instruction set and its microarchitecture is described in plain Python code using the [nMigen toolbox](https://github.com/m-labs/nmigen).
+* [`minerva`](https://github.com/enjoy-digital/litex/tree/master/litex/soc/cores/cpu/minerva) -- a CPU core that currently implements the RISC-V RV32I instruction set with its microarchitecture described in plain Python code using the [nMigen toolbox](https://github.com/m-labs/nmigen).
# Soft CPU Variants
-Most of these CPUs have multiple configuration "variants" which customize the configuration to target a specific type of firmware and performance. All these CPUs can be used with your own bare metal firmware.
+Most of these CPUs have multiple configuration variants which customize the configuration to target a specific type of firmware, performance and resource usage. All these CPUs can be used with your own bare metal firmware.
## `minimal`
### Recommended FPGAs
- * Xilinx Series 7 - Artix 7, Kintex 7, Spartan 7
- * Xilinx Spartan 6
+ * Xilinx 7-Series - Artix7, Kintex7, Spartan7
+ * Xilinx Spartan6
* Lattice ECP5
+## `full`
+
+This target enables **all** features of each CPU.
+
+### Supported CPUs
+
+ * (TODO) - lm32
+ * (TODO) - minerva
+ * (TODO) - picorv32
+ * (TODO) - or1k
+ * vexriscv
+
+
## `linux`
This target enables CPU features such as MMU that are required to get Linux booting.
The `hmul` extension enables hardware multiplication acceleration.
+## TODO - `fpu`
+
+The `fpu` extension enables a floating point acceleration unit.
+
+### Supported CPUs
+
+ * or1k
+
+
---
# Binutils + Compiler
## RISC-V - [`minerva`](https://github.com/enjoy-digital/litex/tree/master/litex/soc/cores/cpu/minerva)
-The Minerva is a CPU core that currently implements the RISC-V RV32I instruction set and its microarchitecture is described in plain Python code using the [nMigen toolbox](https://github.com/m-labs/nmigen).
+The Minerva is a CPU core that currently implements the RISC-V RV32I instruction set with its microarchitecture described in plain Python code using the [nMigen toolbox](https://github.com/m-labs/nmigen).
### CPU Variants