Soft microprocessor

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., ASIC, 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 by 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

Processor Developer Open source Bus support Notes Project home Description language
Amber Conor Santifort LGPLv2.1 Wishbone ARMv2a 3-stage or 5-stage pipeline Project page at Opencores Verilog
BERI University of Cambridge BSD MIPS Project page Bluespec
Dossmatik René Doss CC BY-NC 3.0, except commercial applicants have to pay a licence fee. Pipelined bus MIPS I instruction set pipeline stages Dossmatik VHDL
NEO430 Stephan Nolting Yes Wishbone (Avalon, AXI4-Lite) 16-bit MSP430 ISA-compatible, very small size, many peripherals, highly customizable NEO430 VHDL
MCL65 MicroCore Labs Yes Ultra-small-footprint microsequencer-based 6502 core 252 Spartan-7 LUTs. Clock cycle-exact. MCL65 Core
MCL51 MicroCore Labs No Ultra-small-footprint microsequencer-based 8051 core 312 Artix-7 LUTs. Quad-core 8051 version is 1227 LUTs. MCL51 Core
MCL86 MicroCore Labs No 8088 BIU provided. Others easy to create. Cycle accurate 8088/8086 implemented with a microsequencer. Less than 2% utilization of Kintex-7. MCL86 Core
TSK3000A Altium Royalty-free Wishbone 32-bit R3000-style RISC modified Harvard-architecture CPU Embedded Design on Altium Wiki
TSK51/52 Altium Royalty-free Wishbone / Intel 8051 8-bit Intel 8051 instruction set compatible, lower clock cycle alternative Embedded Design on Altium Wiki
OpenSPARC T1 Sun Yes 64-bit OpenSPARC.net Verilog
MicroBlaze Xilinx No PLB, OPB, FSL, LMB, AXI4 Xilinx MicroBlaze
PicoBlaze Xilinx No Xilinx PicoBlaze VHDL, Verilog
Nios, Nios II Altera No Avalon Altera Nios II Verilog
Cortex-M1 ARM No 70–200 MHz, 32-bit RISC Verilog
eSi-RISC EnSilica No AMBA AXI, AHB and APB Configurable as 16- or 32-bit. Supports ASIC and FPGA. EnSilica eSi-RISC Verilog
LatticeMico8 Lattice Yes Wishbone LatticeMico8 Verilog
LatticeMico32 Lattice Yes Wishbone LatticeMico32 Verilog
LEON2(-FT) ESA Yes AMBA2 SPARC V8 ESA VHDL
LEON3/4 Aeroflex Gaisler Yes AMBA2 SPARC V8 Aeroflex Gaisler VHDL
Tacus/PIPE5 TemLib Yes Pipelined bus SPARC V8 TEMLIB VHDL
Navré Sébastien Bourdeauducq Yes Direct SRAM Atmel AVR compatible 8-bit RISC Project page at Opencores Verilog
OpenRISC OpenCores Yes Wishbone 32-bit; done in ASIC, Actel, Altera, Xilinx FPGA. OR1K Verilog
ARC ARC International, Synopsys No 16/32-bit ISA RISC DesignWare ARC Verilog
pAVR Doru Cuturela Yes Atmel AVR-compatible 8-bit RISC Project page at Opencores VHDL
AEMB Shawn Tan Yes Wishbone MicroBlaze EDK 3.2 compatible AEMB Verilog
OpenFire Virginia Tech CCM Lab Yes OPB, FSL Binary compatible with the MicroBlaze [12] Verilog
SecretBlaze LIRMM, University of Montpellier / CNRS Yes Wishbone MicroBlaze ISA, VHDL SecretBlaze VHDL
SpartanMC TU Darmstadt / TU Dresden Yes Custom (AXI support in development) 18-bit ISA (GNU Binutils / GCC support in development) SpartanMC Verilog
SYNPIC12 Miguel Angel Ajo Pelayo MIT PIC12F compatible, program synthesised in gates nbee.es VHDL
PacoBlaze Pablo Bleyer Yes Compatible with the PicoBlaze processors PacoBlaze Verilog
CPU86 HT-Lab Yes 8088-compatible CPU in VHDL cpu86 VHDL
xr16 Jan Gray No XSOC abstract bus 16-bit RISC CPU and SoC featured in Circuit Cellar Magazine #116-118 XSOC/xr16 Schematic
JOP Martin Schoeberl Yes SimpCon / Wishbone (extension) Stack-oriented, hard real-time support, executing Java bytecode directly Jop VHDL
ERIC5 Entner Electronics No 9-bit RISC, very small size, C-programmable ERIC5 VHDL
YASEP Yann Guidon AGPLv3 Direct SRAM 16 or 32 bits, RTL in VHDL & asm in JS, microcontroller subset : ready yasep.org (Firefox required) VHDL
Zet Zeus Gómez Marmolejo Yes Wishbone x86 PC clone Zet Verilog
f32c University of Zagreb BSD AXI, SDRAM, SRAM 32-bit, RISC-V / MIPS ISA subsets (retargetable), GCC toolchain f32c VHDL
ZipCPU Gisselquist Technology GPLv3 Wishbone, B4/pipelined 32-bit CPU targeted for minimal FPGA resource usage zipcpu.com Verilog
ZPU Zylin AS Yes Wishbone Stack based CPU, configurable 16/32 bit datapath, eCos support Zylin CPU VHDL
ZPUino Álvaro Lopes Yes Wishbone Zylin's ZPU based SoC, 32 bit, Linux support. ZPUino VHDL
OpenPiton Princeton Parallel Group Yes Manycore SPARC V9 OpenPiton Verilog
s80x86 Jamie Iles GPLv3 Custom 80186-compatible GPLv3 core s80x86 SystemVerilog
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/VexRiscv VHDLVerilog (SpinalHDL)

See also

References

  1. http://www.dailycircuitry.com/2011/10/zet-soft-core-running-windows-30.html "Zet soft core running Windows 3.0" by Andrew Felch 2011
  2. "Archived copy". 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 Questions Archived 2011-10-27 at the Wayback Machine.
  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.
  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. "FPGA processor IP needs to be supported"
  12. http://opencores.org/project,openfire_core,overview
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.