软核微处理器

软核微处理器（英文：Soft microprocessor），也称为软微处理器、软核处理器或软核，是可以完全使用逻辑综合实现的微处理器核心。软核处理器可以通过含有可编程逻辑器件（如ASIC、FPGA、CPLD）的不同半导体器件来实做。

对于大多数系统，如果使用了软核处理器，那它们往往仅使用单个软处理器。但是，仍有一些设计人员将尽可能多的软核平铺到 FPGA 上。在多核系统中，较少使用的资源可以在多个核心间共享。

尽管许多人在 FPGA 中只放置了一个软核处理器，但 FPGA 在资源足够多的情况下可以容纳更多的软核处理器，从而构成多核处理器。单个 FPGA 上的软核处理器的数量仅受 FPGA 资源数量的限制。有的人在单个 FPGA 上放置了数十或数百个软核处理器。这是一种实现大规模并行计算的方法，并且同样可以应用于内存内计算。

与分立处理器相比，由于 FPGA 的可重新编程的特点，FPGA 中实现的软核处理器及其外围设备不容易过时。

## 核心比较

处理器｜开发者｜是否开源｜总线支持｜备注｜项目名称｜描述语言

基于 ARM 指令集架构

Amber｜Conor Santifort｜LGPLv2.1｜Wishbone总线｜ARMv2a 三级或五级流水线｜ Opencores 上的项目主页｜Verilog

Cortex-M1｜ARM｜否｜70–200 MHz, 32位 RISC｜Verilog

基于 AVR 指令集架构

Navré｜Sébastien Bourdeauducq｜是｜Direct SRAM｜兼容 Atmel AVR 的8位 RISC｜ Opencores 上的项目主页｜Verilog

pAVR｜Doru Cuturela｜是｜兼容 Atmel AVR 的8位 RISC｜ Opencores 上的项目主页｜VHDL

基于 MicroBlaze 指令集架构

AEMB｜Shawn Tan｜是｜Wishbone总线｜兼容 MicroBlaze EDK 3.2｜ AEMB｜Verilog

MicroBlaze｜Xilinx｜否｜PLB, OPB, FSL, LMB, AXI4｜ Xilinx MicroBlaze

OpenFire｜Virginia Tech CCM Lab｜是｜OPB, FSL｜与 MicroBlaze 二进制兼容｜Verilog

SecretBlaze｜LIRMM, 蒙彼利埃大学 / CNRS｜是｜Wishbone总线｜MicroBlaze 指令集架构, VHDL｜ SecretBlaze｜VHDL

基于 MCS-51 指令集架构

MCL51｜MicroCore Labs｜是｜基于 Ultra-small-footprint 微定序器的 8051 核心｜312 个 Artix-7 查找表. 四核的 8051 版本则有 1227 个｜ MCL51 Core

TSK51/52｜Altium｜免版税｜Wishbone总线 / 英特尔 8051｜兼容8位 英特尔 8051 指令集，更低时钟周期的替代｜ Altium Wiki 上的 Embedded Design

基于 MIPS 指令集架构

BERI｜剑桥大学｜BSD｜MIPS｜ 项目主页｜Bluespec

Dossmatik｜René Doss｜CC BY-NC 3.0 授权, 但商业使用需要付授权费｜流水线总线｜MIPS I 指令集，多级流水线｜ Dossmatik｜VHDL

TSK3000A｜Altium｜免版税｜Wishbone总线｜32位 R3000 风格的 RISC 修正哈佛架构 CPU｜ Altium Wiki 上的 Embedded Design

基于 PicoBlaze 指令集架构

PacoBlaze｜Pablo Bleyer｜是｜与 PicoBlaze 处理器兼容｜ PacoBlaze｜Verilog

PicoBlaze｜Xilinx｜否｜ Xilinx PicoBlaze｜VHDL, Verilog

基于 RISC-V 指令集架构

f32c｜萨格勒布大学｜BSD｜AXI, SDRAM, SRAM｜32位, RISC-V / MIPS 指令集架构自己 (可重定向), GCC 工具链｜ f32c｜VHDL

VexRiscv｜SpinalHDL|SpinalHDL｜是｜AXI4 / Avalon｜32位, RISC-V, 在 Artix 7 上最高 340 MHz. 最高 1.44 DMIPS/MHz.｜ GitHub｜VHDLVerilog (SpinalHDL)

基于 SPARC 指令集架构

LEON2(-FT)｜ESA｜是｜AMBA2｜SPARC V8｜ ESA｜VHDL

LEON3/4｜Aeroflex Gaisler｜是｜AMBA2｜SPARC V8｜ Aeroflex Gaisler｜VHDL

OpenPiton｜ 普林斯顿并行研究组｜是｜Manycore SPARC V9｜ OpenPiton｜Verilog

OpenSPARC T1｜Sun｜是｜64位｜ OpenSPARC.net｜Verilog

Tacus/PIPE5｜TemLib｜是｜流水线总线｜SPARC V8｜ TEMLIB｜VHDL

基于 x86 指令集架构

CPU86｜HT-Lab｜是｜兼容 8088 CPU｜ cpu86｜VHDL

MCL86｜MicroCore Labs｜是｜提供了8088的总线接口单元，其他易于创建｜带有微定序器的精准周期8088/8086，在 Kintex-7 上资源利用率小于2%｜ MCL86 Core

s80x86｜Jamie Iles｜GPLv3｜自定义｜兼容 80186 内核｜ s80x86｜SystemVerilog

Zet｜Zeus Gómez Marmolejo｜是｜Wishbone总线｜x86 PC 的复制｜ Zet｜Verilog

ao486｜Aleksander Osman｜3-Clause BSD｜Avalon｜兼容 i486 SX 核心｜ ao486｜Verilog

其他架构

ARC｜ARC International, Synopsys｜否｜16/32位指令集架构 RISC｜ DesignWare ARC｜Verilog

ERIC5｜Entner Electronics｜否｜9位 RISC, 非常小型, 与C语言兼容｜ ERIC5｜VHDL

H2 CPU｜Richard James Howe｜MIT｜自定义｜16位堆叠结构机器，为直接执行 Forth 语言而设计，较小｜ H2 CPU｜VHDL

Instant SoC｜ FPGA Cores｜否｜自定义｜32位 RISC-V M 拓展，C++定义的 SoC｜ Instant SoC｜VHDL

Java优化处理器｜Martin Schoeberl｜是｜SimpCon / Wishbone总线 (拓展)｜面向堆栈，硬实时支持，能直接执行 Java 字节码｜ Jop｜VHDL

LatticeMico8｜Lattice｜是｜Wishbone总线｜ LatticeMico8｜Verilog

LatticeMico32｜Lattice｜是｜Wishbone总线｜ LatticeMico32｜Verilog

LXP32｜Alex Kuznetsov｜MIT｜Wishbone总线｜32位，三级流水线，基于块状 RAM 的寄存器堆｜ lxp32｜VHDL

MCL65｜MicroCore Labs｜是｜基于 Ultra-small-footprint 微定序器的 6502 核心｜252 个 Spartan-7 查找表，精确的时钟周期｜ MCL65 Core

MRISC32-A1｜Marcus Geelnard｜是｜Wishbone总线, B4/流水线｜32位 RISC/Vector CPU，自定义指令集架构｜ MRISC32｜VHDL

NEO430｜Stephan Nolting｜是｜Wishbone (Avalon, AXI4-Lite)｜兼容 16位 MSP430 指令集架构，非常小型，多外设，高自定性｜ NEO430｜VHDL

Nios, Nios II｜Altera｜否｜Avalon｜ Altera Nios II｜Verilog

OpenRISC｜OpenCores｜是｜Wishbone总线｜32位，在 ASIC、Actel、Altera、Xilinx FPGA 上实现｜Verilog

SpartanMC｜TU Darmstadt / TU Dresden｜是｜自定义 (AXI 支持正处于开发中)｜18位 ISA (GNU Binutils / GCC 的支持正在开发中)｜ SpartanMC｜Verilog

SYNPIC12｜Miguel Angel Ajo Pelayo｜MIT｜兼容 PIC12F，程序用逻辑门合成｜ nbee.es｜VHDL

xr16｜Jan Gray｜否｜XSOC 抽象总线｜在 Circuit Cellar 杂志的116-118期中提供了16位的 RISC CPU 和 SoC｜ XSOC/xr16｜Schematic

YASEP｜Yann Guidon｜AGPLv3｜Direct SRAM｜16位或32位, RTL 使用 VHDL & 汇编 使用 JavaScript｜ yasep.org (需要 火狐 浏览器)｜VHDL

ZipCPU｜ Gisselquist Technology｜GPLv3｜Wishbone总线, B4/流水线｜32位 CPU，目标是最少的 FPGA 资源利用｜ zipcpu.com｜Verilog

ZPU｜Zylin AS｜是｜Wishbone总线｜基于栈的 CPU，可配置的 16/32位数据路径, 支持 eCos｜ Zylin CPU｜VHDL