软核微处理器

软核微处理器（英文：Soft microprocessor），也称为软微处理器、软核处理器或软核，是可以完全使用逻辑综合实现的微处理器核心。软核处理器可以通过含有可编程逻辑器件（如ASIC、FPGA、CPLD）的不同半导体器件来實做。http://www.dailycircuitry.com/2011/10/zet-soft-core-running-windows-30.html
"Zet soft core running Windows 3.0" by Andrew Felch 2011

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

尽管许多人在 FPGA 中只放置了一个软核处理器，但 FPGA 在资源足够多的情况下可以容纳更多的软核处理器，从而构成多核处理器。单个 FPGA 上的软核处理器的数量仅受 FPGA 资源数量的限制。MicroBlaze Soft Processor: Frequently Asked Questions 有的人在单个 FPGA 上放置了数十或数百个软核处理器。István Vassányi.
"Implementing processor arrays on FPGAs". 1998.Zhoukun WANG and Omar HAMMAMI.
"A 24 Processors System on Chip FPGA Design with Network on Chip".John Kent.
"Micro16 Array - A Simple CPU Array"Kit Eaton.
"1,000 Core CPU Achieved: Your Future Desktop Will Be a Supercomputer".
2011."Scientists Squeeze Over 1,000 Cores onto One Chip".
2011.这是一种实现大规模并行计算的方法，并且同样可以应用于内存内计算。

与分立处理器相比，由于 FPGA 的可重新编程的特点，FPGA 中实现的软核处理器及其外围设备不容易过时。Joe DeLaere.
"Top 7 Reasons to Replace Your Microcontroller with a MAX 10 FPGA" .John Swan; Tomek Krzyzak.
"Using FPGAs to avoid microprocessor obsolescence" .
2008

 核心比较 

 处理器 开发者 是否开源 总线支持 备注 项目名称 描述语言 基于 ARM 指令集架构  Conor Santifort   ARMv2a 三级或五级流水线 Opencores 上的项目主页  Verilog  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 基于  指令集架构 AEMB Shawn Tan   兼容 MicroBlaze EDK 3.2 AEMB Verilog  Xilinx  PLB, OPB, FSL, LMB, AXI4 Xilinx MicroBlaze OpenFire Virginia Tech CCM Lab  OPB, FSL 与 MicroBlaze 二进制兼容  Verilog SecretBlaze LIRMM, 蒙彼利埃大学 / CNRS   MicroBlaze 指令集架构, VHDL SecretBlaze VHDL 基于 MCS-51 指令集架构 MCL51 MicroCore Labs  基于 Ultra-small-footprint 微定序器的 8051 核心 312 个 Artix-7 查找表. 四核的 8051 版本则有 1227 个 MCL51 Core TSK51/52 Altium   / 英特爾 8051 兼容8位 英特爾 8051 指令集，更低时钟周期的替代 Altium Wiki 上的 Embedded Design 基于 MIPS 指令集架构 BERI  剑桥大学   MIPS 项目主页   Dossmatik René Doss  流水线总线 MIPS I 指令集，多级流水线 Dossmatik VHDL TSK3000A Altium   32位 R3000 风格的 RISC 修正哈佛架构 CPU Altium Wiki 上的 Embedded Design 基于 PicoBlaze 指令集架构 PacoBlaze Pablo Bleyer   与 PicoBlaze 处理器兼容 PacoBlaze  Verilog  Xilinx  Xilinx PicoBlaze VHDL, Verilog 基于 RISC-V 指令集架构 f32c  萨格勒布大学  AXI, SDRAM, SRAM 32位, RISC-V / MIPS 指令集架构自己 (可重定向), GCC 工具链 f32c  VHDL VexRiscvSpinalHDL  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  自定义 兼容 80186 内核 s80x86 SystemVerilog  Zeus Gómez Marmolejo   x86 PC 的复制 Zet Verilog ao486 Aleksander Osman  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  自定义 16位堆疊結構機器，为直接执行 Forth 语言而设计，较小 H2 CPU  VHDL Instant SoC  FPGA Cores   自定义 32位 RISC-V M 拓展，C++定义的 SoC Instant SoC  VHDL  Martin Schoeberl  SimpCon /  (拓展) 面向堆栈，硬实时支持，能直接执行 Java 字节码 Jop VHDL  Lattice   LatticeMico8  Verilog  Lattice   LatticeMico32  Verilog LXP32  Alex Kuznetsov   32位，三级流水线，基于块状 RAM 的寄存器堆 lxp32  VHDL MCL65  MicroCore Labs  基于 Ultra-small-footprint 微定序器的 6502 核心 252 个 Spartan-7 查找表，精确的时钟周期 MCL65 Core  MRISC32-A1  Marcus Geelnard  , B4/流水线 32位 RISC/Vector CPU，自定义指令集架构 MRISC32  VHDL NEO430  Stephan Nolting  Wishbone (Avalon, AXI4-Lite) 兼容 16位 MSP430 指令集架构，非常小型，多外设，高自定性 NEO430  VHDL , Nios II Altera  Avalon Altera Nios II Verilog  OpenCores   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   兼容 PIC12F，程序用逻辑门合成 nbee.es VHDL xr16 Jan Gray  XSOC 抽象总线 在 Circuit Cellar 杂志的116-118期中提供了16位的 RISC CPU 和 SoC XSOC/xr16 Schematic YASEP Yann Guidon  Direct SRAM 16位或32位, RTL 使用 VHDL & 汇编 使用 JavaScript yasep.org (需要 火狐  浏览器) VHDL ZipCPU Gisselquist Technology  , B4/流水线 32位 CPU，目标是最少的 FPGA 资源利用 zipcpu.com Verilog  Zylin AS   基于栈的 CPU，可配置的 16/32位数据路径, 支持 eCos Zylin CPU VHDL

 参见 

 片上系统（SoC）
 片上网络（NoC）
 可重构计算
 现场可编程逻辑门阵列（FPGA）
 VHDL
 Verilog
 SystemVerilog
 硬件加速

 参考资料 

 外部链接 

 FPGA 的软 CPU 内核
 12 种软微处理器的详细比较
 FPGA CPU 新闻 
 自由 CPU 网站 
 Opencores.org 上的微处理器核心 （该页面的“Processor”选项卡中）
 NikTech  32 位 RISC 微处理器 MANIK

Category:软核微处理器