软核微处理器

软核微处理器(英文:Soft microprocessor),也称为软微处理器软核处理器软核,是可以完全使用逻辑综合实现的微处理器核心。软核处理器可以通过含有可编程逻辑器件(如ASICFPGACPLD)的不同半导体器件来實做。[1]

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

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

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

核心比较 编辑

处理器开发者是否开源总线支持备注项目名称描述语言
基于 ARM 指令集架构
AmberConor SantifortLGPLv2.1Wishbone英语Wishbone (computer bus)ARMv2a 三级或五级流水线Opencores 上的项目主页页面存档备份,存于互联网档案馆Verilog
Cortex-M1英语Cortex-M1ARM[1]70–200 MHz, 32位 RISC[2]页面存档备份,存于互联网档案馆Verilog
基于 AVR 指令集架构
NavréSébastien BourdeauducqDirect SRAM兼容 Atmel AVR 的8位 RISCOpencores 上的项目主页页面存档备份,存于互联网档案馆Verilog
pAVRDoru Cuturela兼容 Atmel AVR 的8位 RISCOpencores 上的项目主页页面存档备份,存于互联网档案馆VHDL
基于 MicroBlaze英语MicroBlaze 指令集架构
AEMBShawn TanWishbone英语Wishbone (computer bus)兼容 MicroBlaze EDK 3.2AEMBVerilog
MicroBlaze英语MicroBlazeXilinxPLB, OPB, FSL, LMB, AXI4Xilinx MicroBlaze
OpenFireVirginia Tech CCM LabOPB, FSL与 MicroBlaze 二进制兼容[3][12]Verilog
SecretBlazeLIRMM, 蒙彼利埃大学 / CNRSWishbone英语Wishbone (computer bus)MicroBlaze 指令集架构, VHDLSecretBlazeVHDL
基于 MCS-51 指令集架构
MCL51MicroCore Labs基于 Ultra-small-footprint 微定序器的 8051 核心312 个 Artix-7 查找表. 四核的 8051 版本则有 1227 个MCL51 Core
TSK51/52Altium免版税Wishbone英语Wishbone (computer bus) / 英特爾 8051兼容8位 英特爾 8051 指令集,更低时钟周期的替代Altium Wiki 上的 Embedded Design
基于 MIPS 指令集架构
BERI页面存档备份,存于互联网档案馆剑桥大学BSDMIPS项目主页页面存档备份,存于互联网档案馆Bluespec英语Bluespec
DossmatikRené DossCC BY-NC 3.0 授权, 但商业使用需要付授权费流水线总线MIPS I 指令集,多级流水线DossmatikVHDL
TSK3000AAltium免版税Wishbone英语Wishbone (computer bus)32位 R3000 风格的 RISC 修正哈佛架构 CPUAltium Wiki 上的 Embedded Design
基于 PicoBlaze 指令集架构
PacoBlazePablo Bleyer与 PicoBlaze 处理器兼容PacoBlaze页面存档备份,存于互联网档案馆Verilog
PicoBlaze英语PicoBlazeXilinxXilinx PicoBlazeVHDL, Verilog
基于 RISC-V 指令集架构
f32c页面存档备份,存于互联网档案馆萨格勒布大学BSDAXI, SDRAM, SRAM32位, RISC-V / MIPS 指令集架构自己 (可重定向), GCC 工具链f32c页面存档备份,存于互联网档案馆VHDL
VexRiscvSpinalHDLAXI4 / Avalon32位, RISC-V, 在 Artix 7 上最高 340 MHz. 最高 1.44 DMIPS/MHz.GitHub页面存档备份,存于互联网档案馆VHDLVerilog (SpinalHDL)
基于 SPARC 指令集架构
LEON2(-FT)ESAAMBA2SPARC V8ESA页面存档备份,存于互联网档案馆VHDL
LEON3/4Aeroflex GaislerAMBA2SPARC V8Aeroflex Gaisler页面存档备份,存于互联网档案馆VHDL
OpenPiton普林斯顿并行研究组Manycore SPARC V9OpenPitonVerilog
OpenSPARC T1Sun64位OpenSPARC.net页面存档备份,存于互联网档案馆Verilog
Tacus/PIPE5TemLib流水线总线SPARC V8TEMLIBVHDL
基于 x86 指令集架构
CPU86HT-Lab兼容 8088 CPUcpu86VHDL
MCL86MicroCore Labs提供了8088的总线接口单元,其他易于创建带有微定序器的精准周期8088/8086,在 Kintex-7 上资源利用率小于2%MCL86 Core
s80x86Jamie IlesGPLv3自定义兼容 80186 内核s80x86SystemVerilog
Zet英语Zet (hardware)Zeus Gómez MarmolejoWishbone英语Wishbone (computer bus)x86 PC 的复制ZetVerilog
ao486Aleksander Osman3-Clause BSDAvalon兼容 i486 SX 核心ao486页面存档备份,存于互联网档案馆Verilog
其他架构
ARC英语ARC (processor)ARC International, Synopsys16/32位指令集架构 RISCDesignWare ARCVerilog
ERIC5Entner Electronics9位 RISC, 非常小型, 与C语言兼容ERIC5页面存档备份,存于互联网档案馆VHDL
H2 CPU页面存档备份,存于互联网档案馆Richard James HoweMIT自定义16位堆疊結構機器,为直接执行 Forth 语言而设计,较小H2 CPU页面存档备份,存于互联网档案馆VHDL
Instant SoC页面存档备份,存于互联网档案馆FPGA Cores页面存档备份,存于互联网档案馆自定义32位 RISC-V M 拓展,C++定义的 SoCInstant SoC页面存档备份,存于互联网档案馆VHDL
JOP英语Java optimized processorMartin SchoeberlSimpCon / Wishbone英语Wishbone (computer bus) (拓展)面向堆栈,硬实时支持,能直接执行 Java 字节码JopVHDL
LatticeMico8英语LatticeMico8LatticeWishbone英语Wishbone (computer bus)LatticeMico8页面存档备份,存于互联网档案馆Verilog
LatticeMico32英语LatticeMico32LatticeWishbone英语Wishbone (computer bus)LatticeMico32页面存档备份,存于互联网档案馆Verilog
LXP32页面存档备份,存于互联网档案馆Alex KuznetsovMITWishbone英语Wishbone (computer bus)32位,三级流水线,基于块状 RAM 的寄存器堆lxp32页面存档备份,存于互联网档案馆VHDL
MCL65页面存档备份,存于互联网档案馆MicroCore Labs基于 Ultra-small-footprint 微定序器的 6502 核心252 个 Spartan-7 查找表,精确的时钟周期MCL65 Core页面存档备份,存于互联网档案馆
MRISC32-A1页面存档备份,存于互联网档案馆Marcus GeelnardWishbone英语Wishbone (computer bus), B4/流水线32位 RISC/Vector CPU,自定义指令集架构MRISC32页面存档备份,存于互联网档案馆VHDL
NEO430页面存档备份,存于互联网档案馆Stephan NoltingWishbone (Avalon, AXI4-Lite)兼容 16位 MSP430 指令集架构,非常小型,多外设,高自定性NEO430页面存档备份,存于互联网档案馆VHDL
Nios英语Nios embedded processor, Nios IIAlteraAvalonAltera Nios IIVerilog
OpenRISC英语OpenRISCOpenCoresWishbone英语Wishbone (computer bus)32位,在 ASIC、Actel、Altera、Xilinx FPGA 上实现[4]页面存档备份,存于互联网档案馆Verilog
SpartanMCTU Darmstadt / TU Dresden自定义 (AXI 支持正处于开发中)18位 ISA (GNU Binutils / GCC 的支持正在开发中)SpartanMC页面存档备份,存于互联网档案馆Verilog
SYNPIC12Miguel Angel Ajo PelayoMIT兼容 PIC12F,程序用逻辑门合成nbee.esVHDL
xr16Jan GrayXSOC 抽象总线在 Circuit Cellar 杂志的116-118期中提供了16位的 RISC CPU 和 SoCXSOC/xr16Schematic
YASEPYann GuidonAGPLv3Direct SRAM16位或32位, RTL 使用 VHDL & 汇编 使用 JavaScriptyasep.org (需要 火狐页面存档备份,存于互联网档案馆) 浏览器)VHDL
ZipCPUGisselquist TechnologyGPLv3Wishbone英语Wishbone (computer bus), B4/流水线32位 CPU,目标是最少的 FPGA 资源利用zipcpu.comVerilog
ZPU英语ZPU_(microprocessor)Zylin ASWishbone英语Wishbone (computer bus)基于栈的 CPU,可配置的 16/32位数据路径, 支持 eCosZylin CPUVHDL

参见 编辑

参考资料 编辑

  1. ^ 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
  2. ^ Archived copy. [2012-08-18]. (原始内容存档于2007-10-08). 
  3. ^ MicroBlaze Soft Processor: Frequently Asked Questions 互联网档案馆存檔,存档日期2011-10-27.
  4. ^ István Vassányi."Implementing processor arrays on FPGAs". 1998.
  5. ^ Zhoukun WANG and Omar HAMMAMI."A 24 Processors System on Chip FPGA Design with Network on Chip".
  6. ^ John Kent."Micro16 Array - A Simple CPU Array"
  7. ^ Kit Eaton."1,000 Core CPU Achieved: Your Future Desktop Will Be a Supercomputer".2011.
  8. ^ "Scientists Squeeze Over 1,000 Cores onto One Chip".2011.存档副本. [2020-07-17]. (原始内容存档于2012-03-05). 
  9. ^ Joe DeLaere."Top 7 Reasons to Replace Your Microcontroller with a MAX 10 FPGA"页面存档备份,存于互联网档案馆).
  10. ^ John Swan; Tomek Krzyzak."Using FPGAs to avoid microprocessor obsolescence"页面存档备份,存于互联网档案馆).2008
  11. ^ Staff. FPGA processor IP needs to be supported. Electronics Weekly. 2010-02-03 [2019-04-03]. (原始内容存档于2020-08-07) (英国英语). 
  12. ^ 存档副本. [2020-07-17]. (原始内容存档于2017-07-05). 

外部链接 编辑