Quire

Soft microprocessor

From Quire, the open reference·Microprocessor design embeddable in other computer systems·1 min read

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

ProcessorDeveloperOpen sourceBus supportNotesProject homeDescription language
based on the ARM instruction set architecture
AmberConor SantifortLGPLv2.1WishboneARMv2a 3-stage or 5-stage pipelinehttps://opencores.org/project/amberVerilog
Cortex-M1ARMNohttp://www.arm.com/products/system-ip/interconnect/index.php70–200 MHz, 32-bit RISChttp://www.arm.com/products/CPUs/ARM_Cortex-M1.htmlVerilog
based on the AVR instruction set architecture
NavréSébastien BourdeauducqYesDirect SRAMAtmel AVR-compatible 8-bit RISChttp://opencores.org/project,navreVerilog
pAVRDoru CuturelaYesAtmel AVR-compatible 8-bit RISChttp://opencores.org/project,pavrVHDL
softavrcoreAndras PalYesStandard AVR buses (core-coupled I/O, synchronous SRAM, synchronous program ROM)Atmel AVR-compatible 8-bit RISC (up to AVR5), peripherals and SoC features includedhttp://opencores.org/project/softavrcoreVerilog
based on the MicroBlaze instruction set architecture
AEMBShawn TanYesWishboneMicroBlaze EDK 3.2 compatiblehttp://www.aeste.my/aembVerilog
MicroBlazeXilinxNoPLB, OPB, FSL, LMB, AXI4https://web.archive.org/web/20030430214925/http://www.xilinx.com/microblaze/
OpenFireVirginia Tech CCM LabYesOPB, FSLBinary compatible with the MicroBlazehttps://web.archive.org/web/20090724052731/http://www.ccm.ece.vt.edu/~scraven/openfire.html, http://opencores.org/project,openfire_core,overviewVerilog
SecretBlazeLIRMM, University of Montpellier / CNRSYesWishboneMicroBlaze ISA, VHDLhttp://www.lirmm.fr/ADAC/?page_id=462VHDL
based on the MCS-51 instruction set architecture
MCL51MicroCore LabsYesUltra-small-footprint microsequencer-based 8051 core312 Artix-7 LUTs. Quad-core 8051 version is 1227 LUTs.http://www.microcorelabs.com
TSK51/52AltiumRoyalty-freeWishbone / Intel 80518-bit Intel 8051 instruction set compatible, lower clock cycle alternativehttps://web.archive.org/web/20160306202550/http://wiki.altium.com/display/adoh/processor-based+fpga+design, https://web.archive.org/web/20131008041359/http://wiki.altium.com/display/ADOH/TSK51x+MCU
based on the MIPS instruction set architecture
BERIUniversity of CambridgeBSDMIPShttp://www.cl.cam.ac.uk/research/security/ctsrd/beri/Bluespec
DossmatikRené DossCC BY-NC 3.0; commercial applicants have to pay a licence feePipelined busMIPS I instruction set pipeline stageshttp://www.dossmatik.de/mais-cpu.htmlVHDL
TSK3000AAltiumRoyalty-freeWishbone32-bit R3000-style RISC modified Harvard architecture CPUhttps://web.archive.org/web/20131020113429/http://wiki.altium.com/display/ADOH/TSK3000A
based on the PicoBlaze instruction set architecture
PacoBlazePablo BleyerYesCompatible with the PicoBlaze processorshttp://bleyer.org/pacoblazeVerilog
PicoBlazeXilinxNohttps://web.archive.org/web/20030501203653/http://www.xilinx.com/picoblaze/VHDL, Verilog
based on the RISC-V instruction set architecture
f32cUniversity of ZagrebBSDAXI, SDRAM, SRAM32-bit, RISC-V / MIPS ISA subsets (retargetable), GCC toolchainhttps://github.com/f32c/f32cVHDL
NEORV32Stephan NoltingBSDWishbone b4, AXI4rv32[i/e] [m] [a] [c] [b] [u] [Zfinx] [Zicsr] [Zifencei], RISC-V-compliant, CPU & SoC available, highly customizable, GCC toolchainhttps://github.com/stnolting/neorv32, https://opencores.org/projects/neorv32VHDL
VexRiscvSpinalHDLYesAXI4 / Avalon32-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)ESAYesAMBA2SPARC V8http://www.esa.int/TEC/Microelectronics/SEMUD70CYTE_0.htmlVHDL
LEON3/4Aeroflex GaislerYesAMBA2SPARC V8http://www.gaisler.com/cms/index.php?option=com_content&task=view&id=156&Itemid=104VHDL
OpenPitonPrinceton Parallel GroupYesManycore SPARC V9http://parallel.princeton.edu/openpiton/specs.htmlVerilog
OpenSPARC T1SunYes64-bithttp://www.opensparc.net/opensparc-t1/index.htmlVerilog
Tacus/PIPE5TemLibYesPipelined busSPARC V8http://temlib.orgVHDL
based on the x86 instruction set architecture
CPU86HT-LabYes8088-compatible CPU in VHDLhttp://www.ht-lab.com/cpu86.htmVHDL
MCL86MicroCore LabsYes8088 BIU provided. Others easy to create.Cycle accurate 8088/8086 implemented with a microsequencer. Less than 2% utilization of Kintex-7.http://www.microcorelabs.com
s80x86Jamie IlesGPLv3Custom80186-compatible GPLv3 corehttps://www.jamieiles.com/80186/SystemVerilog
ZetZeus Gómez MarmolejoYesWishbonex86 PC clonehttps://web.archive.org/web/20130215004406/http://zet.aluzina.org/index.php/Zet_processorVerilog
ao486Aleksander Osman3-clause BSDAvaloni486SX compatible corehttps://github.com/alfikpl/ao486Verilog
based on the PowerPC/Power instruction set architecture
PowerPC 405SIBMNoCoreConnect32-bit PowerPC v.2.03 Book EVerilog
PowerPC 440SIBMNoCoreConnect32-bit PowerPC v.2.03 Book EVerilog
PowerPC 470SIBMNoCoreConnect32-bit PowerPC v.2.05 Book EVerilog
MicrowattIBM/OpenPOWERCC-BY 4.0Wishbone64-bit PowerISA 3.0 proof of concepthttps://github.com/antonblanchard/microwattVHDL
ChiselwattIBM/OpenPOWERCC-BY 4.0Wishbone64-bit PowerISA 3.0https://github.com/antonblanchard/chiselwattChisel
Libre-SOCLibre-SoC.orgBSD/LGPLv2+Wishbone64-bit PowerISA 3.0. CPU/GPU/VPU implementation and custom vector instructionshttps://libre-soc.orgPython/nMigen
A2IIBM/OpenPOWERCC-BY 4.0Custom PBus64-bit PowerPC 2.6 Book E. In order corehttps://github.com/openpower-cores/a2iVHDL
A2OIBM/OpenPOWERCC-BY 4.0Custom PBus64-bit PowerPC 2.7 Book E. Out of order corehttps://github.com/openpower-cores/a2oVerilog
Other architectures
ARCARC International, SynopsysNo16/32/64-bit ISA RISChttps://www.synopsys.com/designware-ip/processor-solutions.htmlVerilog
ERIC5Entner ElectronicsNo9-bit RISC, very small size, C-programmablehttps://web.archive.org/web/20160305131214/http://www.entner-electronics.com/tl/index.php/eric5.htmlVHDL
H2 CPURichard James HoweMITCustom16-bit stack machine, designed to execute Forth directly, smallhttps://github.com/howerj/forth-cpuVHDL
Instant SoCFPGA CoresNoCustom32-bit RISC-V M Extension, SoC defined by C++http://www.fpga-cores.com/instant-soc/VHDL
JOPMartin SchoeberlYesSimpCon / Wishbone (extension)Stack-oriented, hard real-time support, executing Java bytecode directlyhttps://web.archive.org/web/20190417225405/http://www.jopdesign.com/VHDL
LatticeMico8LatticeYesWishbonehttp://www.latticesemi.com/Products/DesignSoftwareAndIP/IntellectualProperty/IPCore/IPCores02/Mico8.aspxVerilog
LatticeMico32LatticeYesWishbonehttp://www.latticesemi.com/products/intellectualproperty/ipcores/mico32/index.cfmVerilog
LXP32Alex KuznetsovMITWishbone32-bit, 3-stage pipeline, register file based on block RAMhttps://lxp32.github.io/VHDL
MCL65MicroCore LabsYesUltra-small-footprint microsequencer-based 6502 core252 Spartan-7 LUTs. Clock cycle-exact.https://github.com/MicroCoreLabs/Projects
MRISC32-A1Marcus GeelnardYesWishbone, B4/pipelined32-bit RISC/Vector CPU implementing the MRISC32 ISAhttps://mrisc32.bitsnbites.eu/VHDL
NEO430Stephan NoltingYesWishbone (Avalon, AXI4-Lite)16-bit MSP430 ISA-compatible, very small size, many peripherals, highly customizablehttps://github.com/stnolting/neo430VHDL
Nios, Nios IIAlteraNoAvalonhttps://web.archive.org/web/20101225092752/http://www.altera.com/products/ip/processors/nios2/ni2-index.htmlVerilog
OpenRISCOpenCoresYesWishbone32-bit; done in ASIC, Actel, Altera, Xilinx FPGA.https://openrisc.io/Verilog
SpartanMCTU Darmstadt / TU DresdenYesCustom (AXI support in development)18-bit ISA (GNU Binutils / GCC support in development)http://www.spartanmc.deVerilog
SYNPIC12Miguel Angel Ajo PelayoMITPIC12F compatible, program synthesised in gateshttp://projects.nbee.es/display/IPCORES/SYNPIC12+8bit+RISC+CPU+coreVHDL
xr16Jan GrayNoXSOC abstract bus16-bit RISC CPU and SoC featured in Circuit Cellar Magazine #116-118http://www.fpgacpu.org/xsoc/index.htmlSchematic
YASEPYann GuidonAGPLv3Direct SRAM16 or 32 bits, RTL in VHDL & asm in JS, microcontroller subset : readyhttp://yasep.org, https://web.archive.org/web/20121207045204/http://yasep.org/VHDL/, http://yasep.org/#!ASM/impASM#examples/keywords.yasVHDL
ZipCPUGisselquist TechnologyGPLv3Wishbone, B4/pipelined32-bit CPU targeted for minimal FPGA resource usagehttp://zipcpu.com/about/zipcpu.html, http://zipcpu.com/about/gisselquist-technology.htmlVerilog
ZPUZylin ASYesWishboneStack based CPU, configurable 16/32 bit datapath, eCos supporthttp://opensource.zylin.com/zpu.htmVHDL
RISC5Niklaus WirthYesCustomRunning a complete graphical Oberon System including an editor and compiler. Software can be developed and ran on the same FPGA board.http://www.projectoberon.com/Verilog

See also#edit

References#edit

  1. ^ Felch, Andrew (October 7, 2011). "Zet soft core running Windows 3.0". The Daily Circuit. Archived from the original on 2018-10-13.
  2. ^ Maxfield, Clive (September 8, 2006). "FPGA Architectures from 'A' to 'Z' : Part 2". Embedded.com. Archived from the original on 2007-10-08. Retrieved 2012-08-18. Abstracted from Chapter 4 of The Design Warrior's Guide to FPGAs, ISBN 0750676043.
  3. ^ "MicroBlaze Soft Processor v8.10a : Frequently Asked Questions" (PDF). 24 February 2011. Archived from the original (PDF) on 2011-10-27.
  4. ^ Vassányi, István (1998). "Implementing Processor Arrays on FPGAs". In Hartenstein, Reiner W.; Keevallik, Andres (eds.). Field-Programmable Logic and Applications: From FPGAs to Computing Paradigm. Lecture Notes in Computer Science (LNCS), volume 1482. Springer Berlin Heidelberg. pp. 446–450. doi:10.1007/BFb0055278. ISBN 978-3-540-64948-9. Retrieved 2026-09-09. Presented at the 8th International Workshop on Field-Programmable Logic and Applications (FPL'98), held in Tallinn, Estonia, August 31 to September 3, 1998.
  5. ^ Wang, Zhoukun; Hammami, Omar (September 21, 2009). "A 24 Processors System on Chip FPGA Design with Network on Chip". Industry Articles. Design And Reuse (D&R).
  6. ^ Kent, John (5 June 2004). "Micro16 - A Simple 16 bit VHDL CPU / Micro16 Array - A Simple CPU Array". John's FPGA Page. Archived from the original on 2023-04-24.
  7. ^ Eaton, Kit (January 4, 2011). "1,000 Core CPU Achieved: Your Future Desktop Will Be a Supercomputer". Fast Company. Archived from the original on 2025-10-28. Retrieved 2026-09-09.
  8. ^ "Scientists Squeeze Over 1,000 Cores onto One Chip". ECNmag.com / ECN: Electronic Component News. Advantage Business Media. January 4, 2011. Archived from the original on 2012-03-05.
  9. ^ Delaere, Joe; Zammattio, Stefano. "Top 7 Reasons to Replace Your Microcontroller with a MAX® 10 FPGA: Differentiate products, meet time-to-market schedules, and navigate processor obsolescence risk with Intel® MAX 10 FPGAs and the Nios® II processor" (PDF). Intel Corporation. WP-01155-1.1. Archived from the original (PDF) on 2017-12-07.
  10. ^ Swan, John; Krzyzak, Tomek (March 5, 2008). "Using FPGAs to avoid microprocessor obsolescence". Embedded. UBM Communities. Archived from the original on 2016-10-13.
  11. ^ Kendrick, Mike (3 February 2010). "FPGA processor IP needs to be supported". Programmable Logic and Asic. Electronics Weekly. Emap. Retrieved 2019-04-03.

This article is mirrored from “Soft microprocessor” on English Wikipedia, revision 1380575339, written by Wikipedia's contributors and licensed CC BY-SA 4.0. Editing it here creates a Quire copy with its own history.

Synced with Wikipedia revision 1380575339 · just now