# Soft microprocessor

Un processador softcore és un processador (CPU) implementat en un sistema reprogramable com una FPGA. Es coneix com un sistema en un xip programable (System on a Programmable Chip o SOPC).
Es pot implementar utilitzant una síntesi lògica, fent servir diferents dispositius semiconductors lògics programables, com per exemple (ASIC, FPGA, CPLD,etc). La majoria dels sistemes utilitzant un únic microprocessador, no obstant, hi ha alguns dissenyadors que fan servir més d'un processador sobre una FPGA. Té l'avantatge de la capacitat de configurar-se de forma òptima, eliminar les funcionalitats innecessàries, o fins i tot modificar el codi del compilador amb les seves característiques. És improbable que cap proveïdor important de processadors d'alt rendiment com Intel o IBM ofereixi una versió soft dels seus processadors, ja que posaria a l'abast moltes propietats intel·lectuals. El processador soft és específic per cada fabricant de FPGA, no obstant existeixen alguns soft processadors de tercers que poden executar FPGAs de diferents proveïdors amb suport d'unes eines de software.
Una comparació entre els avantatges i desavantatges de cada processador (com mostra la següent taula), a primera vista el Hard sembla més preferible que el soft processador, però malgrat això, el soft té més avantatges, ja que es pot configurar o eliminar qualsevol funcionalitat innecessària.

## Taula d'avantatges

| | Soft Processador | Hard Processador |
| Previsió | Menys | Més |
| Configuració | Alt | Baix |
| Eines de software | Menys | Més |
| Rapidesa | baix | Alt |

## Comparació de nuclis

| Processor | Developer | Open Source | Bus Support | Notes | Project Home | Description Language |
| 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 | | | 64-bit | OpenSPARC.net | Verilog |
| MicroBlaze | Xilinx | | PLB, OPB, FSL, LMB, AXI4 | | Xilinx MicroBlaze | |
| PicoBlaze | Xilinx | | | | Xilinx PicoBlaze | VHDL, Verilog |
| Nios, Nios II | Altera | | Avalon | | Altera Nios II | Verilog |
| Cortex-M1 | ARM | | | 70-200 MHz, 32bit RISC | | Verilog |
| eSi-RISC | EnSilica | | AMBA AXI, AHB and APB | Configurable as 16 or 32-bit. Supports ASIC and FPGA. | EnSilica eSi-RISC Arxivat 2010-11-07 a Wayback Machine. | Verilog |
| LatticeMico32 | Lattice | | Wishbone | | LatticeMico32 | Verilog |
| LEON2(-FT) | ESA | | AMBA2 | SPARC V8 | ESA | VHDL |
| LEON3/4 | Aeroflex Gaisler | | AMBA2 | SPARC V8 | Aeroflex Gaisler | VHDL |
| Navré | Sébastien Bourdeauducq | | Direct SRAM | Atmel AVR compatible 8-bit RISC | Project page at Opencores | Verilog |
| OpenRISC | OpenCores | | Wishbone | 32-bit; Done in ASIC, Actel, Altera, Xilinx FPGA | OR1K | Verilog |
| ARC | ARC International, Synopsys | | | 16/32-bit ISA RISC | DesignWare ARC Arxivat 2016-12-04 a Wayback Machine. | Verilog |
| pAVR | Doru Cuturela | | | Atmel AVR compatible 8-bit RISC | Project page at Opencores | VHDL |
| AEMB | Shawn Tan | | Wishbone | MicroBlaze EDK 3.2 compatible | AEMB | Verilog |
| OpenFire | Virginia Tech CCM Lab | | OPB, FSL | Binary compatible with the MicroBlaze | Arxivat 2009-07-24 a Wayback Machine. | Verilog |
| SecretBlaze | LIRMM, University of Montpellier / CNRS | | Wishbone | MicroBlaze ISA, VHDL | SecretBlaze | VHDL |
| RISC-V | UC Berkeley | | | RISC-V ISA, Xilinx Zynq | riscv.org | Chisel |
| SYNPIC12 | Miguel Angel Ajo Pelayo | MIT | | PIC12F compatible, program synthesised in gates | nbee.es | VHDL |
| PacoBlaze | Pablo Bleyer | | | Compatible with the PicoBlaze processors | PacoBlaze | Verilog |
| CPU86 | HT-Lab | | | 8088 compatible CPU in VHDL | cpu86 Arxivat 2015-05-16 a Wayback Machine. | VHDL |
| xr16 | Jan Gray | | XSOC abstract bus | 16-bit RISC CPU + SoC featured in Circuit Cellar Magazine #116-118 | XSOC/xr16 | Schematic |
| JOP | Martin Schoeberl | | SimpCon / Wishbone (extension) | Stack oriented, hard real-time support, executes Java bytecode directly | Jop | VHDL |
| ERIC5 | Entner Electronics | | | 9-bit RISC, very small size, C-programmable | ERIC5 Arxivat 2016-03-05 a Wayback Machine. | VHDL |
| YASEP | Yann Guidon | AGPLv3 | Direct SRAM | 16 or 32 bits, RTL in VHDL Arxivat 2018-08-15 a Wayback Machine. & asm in JS, microcontroller subset : ready | yasep.org (Firefox required) | VHDL |
| Zet | Zeus Gómez Marmolejo | | Wishbone | x86 PC clone | Zet Arxivat 2013-01-12 at Archive.is | Verilog |
| ZPU | Zylin AS | | Wishbone | Stack based CPU, configurable 16/32 bit datapath, eCos support | Zylin CPU | VHDL |
| ZPUino | Álvaro Lopes | | Wishbone | Zylin's ZPU based SoC, 32 bit, Linux support. | ZPUino Arxivat 2014-02-19 a Wayback Machine. | VHDL |

## Referències

* ↑ http://opencores.org/project,openfire_core,overview

## Vegeu també

* SoC (System-on-a-chip)
* PSoC (Programmable System on a Chip)
* FPGA (Field Programmable Gate Array)

## Enllaços externs

* Detailed Comparison of 12 Soft Microprocessors - broken link?
* FPGA CPU News
* Freedom CPU website
* Microprocessor cores on Opencores.org (Expand the "Processor" tab)
* NikTech 32 bit RISC Microprocessor MANIK.