软核微处理器
软核微处理器(英文:Soft microprocessor),也称为软微处理器、软核处理器或软核,是可以完全使用逻辑综合实现的微处理器核心。软核处理器可以通过含有可编程逻辑器件(如ASIC、FPGA、CPLD)的不同半导体器件来实做。[1]
对于大多数系统,如果使用了软核处理器,那它们往往仅使用单个软处理器。但是,仍有一些设计人员将尽可能多的软核平铺到 FPGA 上。[2]在多核系统中,较少使用的资源可以在多个核心间共享。
尽管许多人在 FPGA 中只放置了一个软核处理器,但 FPGA 在资源足够多的情况下可以容纳更多的软核处理器,从而构成多核处理器。单个 FPGA 上的软核处理器的数量仅受 FPGA 资源数量的限制。[3]有的人在单个 FPGA 上放置了数十或数百个软核处理器。[4][5][6][7][8]这是一种实现大规模并行计算的方法,并且同样可以应用于内存内计算。
与分立处理器相比,由于 FPGA 的可重新编程的特点,FPGA 中实现的软核处理器及其外围设备不容易过时。[9][10][11]
核心比较
处理器 | 开发者 | 是否开源 | 总线支持 | 备注 | 项目名称 | 描述语言 |
---|---|---|---|---|---|---|
基于 ARM 指令集架构 | ||||||
Amber | Conor Santifort | LGPLv2.1 | Wishbone | ARMv2a 三级或五级流水线 | Opencores 上的项目主页 (页面存档备份,存于互联网档案馆) | Verilog |
Cortex-M1 | ARM | 否 | [1] | 70–200 MHz, 32位 RISC | [2] (页面存档备份,存于互联网档案馆) | 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 二进制兼容 | [3][12] | 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 | 是 | 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 |
JOP | 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 上实现 | [4] (页面存档备份,存于互联网档案馆) | 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 |
参见
参考资料
- ^ http://www.dailycircuitry.com/2011/10/zet-soft-core-running-windows-30.html互联网档案馆的存档,存档日期2018-10-13. "Zet soft core running Windows 3.0" by Andrew Felch 2011
- ^ Archived copy. [2012-08-18]. (原始内容存档于2007-10-08).
- ^ MicroBlaze Soft Processor: Frequently Asked Questions 互联网档案馆的存档,存档日期2011-10-27.
- ^ 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. 存档副本. [2020-07-17]. (原始内容存档于2012-03-05).
- ^ 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
- ^ Staff. FPGA processor IP needs to be supported. Electronics Weekly. 2010-02-03 [2019-04-03]. (原始内容存档于2020-08-07) (英国英语).
- ^ 存档副本. [2020-07-17]. (原始内容存档于2017-07-05).
外部链接
- FPGA 的软 CPU 内核
- 12 种软微处理器的详细比较
- FPGA CPU 新闻 (页面存档备份,存于互联网档案馆)
- 自由 CPU 网站 (页面存档备份,存于互联网档案馆)
- Opencores.org 上的微处理器核心 (页面存档备份,存于互联网档案馆)(该页面的“Processor”选项卡中)
- NikTech (页面存档备份,存于互联网档案馆) 32 位 RISC 微处理器 MANIK