Jump to content

Soft microprocessor

From Wikipedia, the free encyclopedia

A soft microprocessor (also called softcore microprocessor or a soft processor) is a microprocessor core that can be wholly implemented using logic synthesis. It can be implemented via different semiconductor devices containing programmable logic (e.g., FPGA, CPLD), including both high-end and commodity variations.[1]

Most systems, if they use a soft processor at all, only use a single soft processor. However, a few designers tile as many soft cores onto an FPGA as will fit.[2] In those multi-core systems, rarely used resources can be shared between all the cores in a cluster.

While many people put exactly one soft microprocessor on a FPGA, a sufficiently large FPGA can hold two or more soft microprocessors, resulting in a multi-core processor. The number of soft processors on a single FPGA is limited only by the size of the FPGA.[3] Some people have put dozens or hundreds of soft microprocessors on a single FPGA.[4][5][6][7][8] This is one way to implement massive parallelism in computing and can likewise be applied to in-memory computing.

A soft microprocessor and its surrounding peripherals implemented in a FPGA is less vulnerable to obsolescence than a discrete processor.[9][10][11]

Core comparison

[edit]
Processor Developer Open source Bus support Notes Project home Description language
based on the ARM instruction set architecture
AmberConor Santifort LGPLv2.1 WishboneARMv2a 3-stage or 5-stage pipeline Project page at OpencoresVerilog
Cortex-M1ARMNo [6]70–200 MHz, 32-bit RISC [7]Verilog
based on the AVR instruction set architecture
Navré Sébastien Bourdeauducq Yes Direct SRAM Atmel AVR-compatible 8-bit RISC Project page at OpencoresVerilog
pAVR Doru Cuturela Yes Atmel AVR-compatible 8-bit RISC Project page at OpencoresVHDL
softavrcore Andras Pal Yes Standard AVR buses (core-coupled I/O, synchronous SRAM, synchronous program ROM) Atmel AVR-compatible 8-bit RISC (up to AVR5), peripherals and SoC features included Project page at OpencoresVerilog
based on the MicroBlaze instruction set architecture
AEMBShawn Tan Yes WishboneMicroBlaze EDK 3.2 compatible AEMBVerilog
MicroBlazeXilinxNo PLB, OPB, FSL, LMB, AXI4 Xilinx MicroBlaze
OpenFireVirginia Tech CCM Lab Yes OPB, FSL Binary compatible with the MicroBlaze [8][12]Verilog
SecretBlazeLIRMM, University of Montpellier / CNRS Yes WishboneMicroBlaze ISA, VHDL SecretBlazeVHDL
based on the MCS-51 instruction set architecture
MCL51MicroCore LabsYes Ultra-small-footprint microsequencer-based 8051 core 312 Artix-7 LUTs. Quad-core 8051 version is 1227 LUTs. MCL51 Core
TSK51/52AltiumRoyalty-free Wishbone / Intel 80518-bit Intel 8051 instruction set compatible, lower clock cycle alternative Embedded Design on Altium Wiki
based on the MIPS instruction set architecture
BERIUniversity of CambridgeBSD MIPSProject pageBluespec
DossmatikRené DossCC BY-NC 3.0, except commercial applicants have to pay a licence fee. Pipelined bus MIPS I instruction set pipeline stages DossmatikVHDL
TSK3000AAltiumRoyalty-free Wishbone32-bit R3000-style RISC modified Harvard-architecture CPU Embedded Design on Altium Wiki
based on the PicoBlaze instruction set architecture
PacoBlazePablo Bleyer Yes Compatible with the PicoBlaze processors PacoBlazeVerilog
PicoBlazeXilinxNo Xilinx PicoBlazeVHDL, Verilog
based on the RISC-V instruction set architecture
f32cUniversity of Zagreb BSD AXI, SDRAM, SRAM 32-bit, RISC-V / MIPS ISA subsets (retargetable), GCC toolchain f32cVHDL
NEORV32Stephan Nolting BSD Wishbone b4, AXI4 rv32[i/e] [m] [a] [c] [b] [u] [Zfinx] [Zicsr] [Zifencei], RISC-V-compliant, CPU & SoC available, highly customizable, GCC toolchain GitHubOpenCoresVHDL
VexRiscv SpinalHDL Yes AXI4 / Avalon 32-bit, RISC-V, up to 340 MHz on Artix 7. Up to 1.44 DMIPS/MHz. https://github.com/SpinalHDL/VexRiscvVHDLVerilog (SpinalHDL)
based on the SPARC instruction set architecture
LEON2(-FT)ESAYes AMBA2 SPARC V8 ESAVHDL
LEON3/4Aeroflex Gaisler Yes AMBA2 SPARC V8 Aeroflex GaislerVHDL
OpenPitonPrinceton Parallel Group Yes ManycoreSPARC V9OpenPitonVerilog
OpenSPARC T1SunYes 64-bit OpenSPARC.netVerilog
Tacus/PIPE5 TemLib Yes Pipelined bus SPARC V8 TEMLIBVHDL
based on the x86 instruction set architecture
CPU86 HT-Lab Yes 8088-compatible CPU in VHDL cpu86VHDL
MCL86MicroCore LabsYes 8088 BIU provided. Others easy to create. Cycle accurate 8088/8086 implemented with a microsequencer. Less than 2% utilization of Kintex-7. MCL86 Core
s80x86Jamie Iles GPLv3 Custom 80186-compatible GPLv3 core s80x86SystemVerilog
Zet Zeus Gómez Marmolejo Yes Wishbonex86 PC clone ZetVerilog
ao486Aleksander Osman 3-Clause BSD Avalon i486 SX compatible core ao486Verilog
based on the PowerPC/Power instruction set architecture
PowerPC 405SIBM No CoreConnect32-bit PowerPC v.2.03 Book E IBMVerilog
PowerPC 440SIBM No CoreConnect32-bit PowerPC v.2.03 Book E IBMVerilog
PowerPC 470SIBM No CoreConnect32-bit PowerPC v.2.05 Book E IBMVerilog
MicrowattIBM/OpenPOWER CC-BY 4.0 Wishbone64-bit PowerISA 3.0 proof of concept Microwatt @ GithubVHDL
ChiselwattIBM/OpenPOWER CC-BY 4.0 Wishbone64-bit PowerISA 3.0 Chiselwatt @ GithubChisel
Libre-SOCLibre-SoC.orgBSD/LGPLv2+ Wishbone64-bit PowerISA 3.0. CPU/GPU/VPU implementation and custom vector instructions Libre-SoC.orgpython/nMigen
A2IIBM/OpenPOWER CC-BY 4.0 Custom PBus 64-bit PowerPC 2.6 Book E. In order core A2I @ GithubVHDL
A2OIBM/OpenPOWER CC-BY 4.0 Custom PBus 64-bit PowerPC 2.7 Book E. Out of order core A2O @ GithubVerilog
Other architectures
ARCARC International, SynopsysNo 16/32/64-bit ISA RISC DesignWare ARCVerilog
ERIC5 Entner Electronics No 9-bit RISC, very small size, C-programmable ERIC5Archived 2016-03-05 at the Wayback MachineVHDL
H2 CPURichard James Howe MIT Custom 16-bit Stack Machine, designed to execute Forth directly, small H2 CPUVHDL
Instant SoCFPGA CoresNo Custom 32-bit RISC-V M Extension, SoC defined by C++ Instant SoCVHDL
JOPMartin Schoeberl Yes SimpCon / Wishbone (extension) Stack-oriented, hard real-time support, executing Java bytecode directly JopVHDL
LatticeMico8LatticeYes WishboneLatticeMico8Verilog
LatticeMico32LatticeYes WishboneLatticeMico32Verilog
LXP32Alex Kuznetsov MIT Wishbone32-bit, 3-stage pipeline, register file based on block RAM lxp32VHDL
MCL65MicroCore LabsYes Ultra-small-footprint microsequencer-based 6502 core 252 Spartan-7 LUTs. Clock cycle-exact. MCL65 Core
MRISC32-A1Marcus Geelnard Yes Wishbone, B4/pipelined 32-bit RISC/Vector CPU implementing the MRISC32 ISA MRISC32VHDL
NEO430Stephan Nolting Yes Wishbone (Avalon, AXI4-Lite) 16-bit MSP430 ISA-compatible, very small size, many peripherals, highly customizable NEO430VHDL
Nios, Nios IIAlteraNo Avalon Altera Nios IIVerilog
OpenRISCOpenCoresYes Wishbone32-bit; done in ASIC, Actel, Altera, Xilinx FPGA. [9]Verilog
SpartanMCTU Darmstadt / TU Dresden Yes Custom (AXI support in development) 18-bit ISA (GNU Binutils / GCC support in development) SpartanMCVerilog
SYNPIC12 Miguel Angel Ajo Pelayo MIT PIC12F compatible, program synthesised in gates nbee.esVHDL
xr16Jan Gray No XSOC abstract bus 16-bit RISC CPU and SoC featured in Circuit Cellar Magazine #116-118 XSOC/xr16Schematic
YASEPYann Guidon AGPLv3 Direct SRAM 16 or 32 bits, RTL in VHDL & asm in JS, microcontroller subset : ready yasep.org (Firefox required) VHDL
ZipCPUGisselquist TechnologyGPLv3 Wishbone, B4/pipelined 32-bit CPU targeted for minimal FPGA resource usage zipcpu.comVerilog
ZPUZylin AS Yes WishboneStack based CPU, configurable 16/32 bit datapath, eCos support Zylin CPUVHDL
RISC5 Niklaus Wirth Yes Custom Running a complete graphical Oberon System including an editor and compiler. Software can be developed and ran on the same FPGA board. www.projectoberon.com/Verilog

See also

[edit]

References

[edit]
  1. ^Article title[usurped] "Zet soft core running Windows 3.0" by Andrew Felch 2011
  2. ^"Embedded.com - FPGA Architectures from 'A' to 'Z' : Part 2". Archived from the original on 2007-10-08. Retrieved 2012-08-18. "FPGA Architectures from 'A' to 'Z'" by Clive Maxfield 2006
  3. ^MicroBlaze Soft Processor: Frequently Asked QuestionsArchived 2011-10-27 at the Wayback Machine
  4. ^ István Vassányi. "Implementing processor arrays on FPGAs". 1998. [1]
  5. ^ Zhoukun WANG and Omar HAMMAMI. "A 24 Processors System on Chip FPGA Design with Network on Chip". [2]
  6. ^ John Kent. "Micro16 Array - A Simple CPU Array" [3]
  7. ^ Kit Eaton. "1,000 Core CPU Achieved: Your Future Desktop Will Be a Supercomputer". 2011. [4]
  8. ^ "Scientists Squeeze Over 1,000 Cores onto One Chip". 2011. [5]Archived 2012-03-05 at the Wayback Machine
  9. ^Joe DeLaere. ""Top 7 Reasons to Replace Your Microcontroller with a MAX 10 FPGA""(PDF).
  10. ^John Swan; Tomek Krzyzak. (2008). ""Using FPGAs to avoid microprocessor obsolescence"". Archived from the original on 2016-10-13.
  11. ^Staff (2010-02-03). "FPGA processor IP needs to be supported". Electronics Weekly. Retrieved 2019-04-03.
  12. ^"Overview :: OpenFire Processor Core :: OpenCores".
[edit]
close