Microprocesador suave - Soft microprocessor

Un microprocesador blando (también llamado microprocesador de núcleo blando o un procesador blando ) es un núcleo de microprocesador que se puede implementar completamente mediante síntesis lógica . Se puede implementar a través de diferentes dispositivos semiconductores que contienen lógica programable (por ejemplo, ASIC , FPGA , CPLD ), incluidas las variaciones de gama alta y de productos básicos.

La mayoría de los sistemas, si usan un procesador suave, solo usan un solo procesador suave. Sin embargo, algunos diseñadores colocan tantos núcleos blandos en un FPGA como quepan. En esos sistemas de varios núcleos , los recursos que se utilizan con poca frecuencia se pueden compartir entre todos los núcleos de un clúster.

Si bien muchas personas colocan exactamente un microprocesador suave en un FPGA, un FPGA suficientemente grande puede contener dos o más microprocesadores suaves, lo que da como resultado un procesador de múltiples núcleos . La cantidad de procesadores de software en una sola FPGA está limitada solo por el tamaño de la FPGA. Algunas personas han puesto docenas o cientos de microprocesadores blandos en una sola FPGA. Esta es una forma de implementar un paralelismo masivo en la informática y también se puede aplicar a la informática en memoria .

Un microprocesador suave y sus periféricos circundantes implementados en un FPGA son menos vulnerables a la obsolescencia que un procesador discreto.

Comparación de núcleos

Procesador Desarrollador Fuente abierta Soporte de bus Notas Proyecto casa Lenguaje descriptivo
basado en la arquitectura del conjunto de instrucciones ARM
Ámbar Conor Santifort LGPLv2.1 Espoleta Canalización ARMv2a de 3 o 5 etapas Página del proyecto en Opencores Verilog
Corteza-M1 BRAZO No [6] 70-200  MHz, RISC de 32 bits [7] Verilog
basado en la arquitectura del conjunto de instrucciones AVR
Navré Sébastien Bourdeauducq SRAM directo RISC de 8 bits compatible con Atmel AVR Página del proyecto en Opencores Verilog
pAVR Doru Cuturela RISC de 8 bits compatible con Atmel AVR Página del proyecto en Opencores VHDL
basado en la arquitectura del conjunto de instrucciones MicroBlaze
AEMB Shawn Tan Espoleta Compatible con MicroBlaze EDK 3.2 AEMB Verilog
MicroBlaze Xilinx No PLB, OPB, FSL, LMB, AXI4 Xilinx MicroBlaze
Abran fuego Laboratorio de CCM de Virginia Tech OPB, FSL Binario compatible con MicroBlaze [8] Verilog
SecretBlaze LIRMM, Universidad de Montpellier / CNRS Espoleta MicroBlaze ISA, VHDL SecretBlaze VHDL
basado en la arquitectura del conjunto de instrucciones MCS-51
MCL51 Laboratorios MicroCore Núcleo 8051 basado en microsecuenciador de tamaño ultra pequeño 312 LUT Artix-7. La versión de cuatro núcleos 8051 es de 1227 LUT. Núcleo MCL51
TSK51 / 52 Altium Reino libre Espoleta / Intel 8051 Compatible con conjunto de instrucciones Intel 8051 de 8 bits , alternativa de ciclo de reloj inferior Diseño integrado en Altium Wiki
basado en la arquitectura del conjunto de instrucciones MIPS
BERI Universidad de Cambridge BSD MIPS Página del proyecto Bluespec
Dossmatik René Doss CC BY-NC 3.0, excepto que los solicitantes comerciales deben pagar una tarifa de licencia . Bus canalizado Etapas de canalización del conjunto de instrucciones MIPS I Dossmatik VHDL
TSK3000A Altium Reino libre Espoleta CPU de arquitectura Harvard modificada con RISC estilo R3000 de 32 bits Diseño integrado en Altium Wiki
basado en la arquitectura del conjunto de instrucciones PicoBlaze
PacoBlaze Pablo Bleyer Compatible con los procesadores PicoBlaze PacoBlaze Verilog
PicoBlaze Xilinx No Xilinx PicoBlaze VHDL, Verilog
basado en la arquitectura del conjunto de instrucciones RISC-V
f32c Universidad de Zagreb BSD AXI, SDRAM, SRAM Subconjuntos ISA RISC-V / MIPS de 32 bits (reorientable), cadena de herramientas GCC f32c VHDL
NEORV32 Stephan Nolting BSD Espoleta b4, AXI4 rv32 [i / e] [m] [a] [c] [b] [u] [Zfinx] [Zicsr] [Zifencei], compatible con RISC-V, CPU y SoC disponibles, altamente personalizable, cadena de herramientas GCC OpenCores de GitHub VHDL
VexRiscv SpinalHDL AXI4 / Avalon 32 bits, RISC-V, hasta 340  MHz en Artix 7. Hasta 1,44  DMIPS / MHz. https://github.com/SpinalHDL/VexRiscv VHDLVerilog (SpinalHDL)
basado en la arquitectura del conjunto de instrucciones SPARC
LEON2 (-FT) ESA AMBA2 SPARC V8 ESA VHDL
LEON3 / 4 Aeroflex Gaisler AMBA2 SPARC V8 Aeroflex Gaisler VHDL
OpenPiton Grupo paralelo de Princeton Manycore SPARC V9 OpenPiton Verilog
OpenSPARC T1 sol 64 bits OpenSPARC.net Verilog
Tacus / PIPE5 TemLib Bus canalizado SPARC V8 TEMLIB VHDL
basado en la arquitectura del conjunto de instrucciones x86
CPU86 HT-Lab CPU compatible con 8088 en VHDL cpu86 VHDL
MCL86 Laboratorios MicroCore Se proporciona 8088 BIU. Otros fáciles de crear. Ciclo preciso 8088/8086 implementado con un microsecuenciador. Utilización inferior al 2% de Kintex-7. Núcleo MCL86
s80x86 Jamie Iles GPLv3 Personalizado Núcleo GPLv3 compatible con 80186 s80x86 SystemVerilog
Zet Zeus Gómez Marmolejo Espoleta clon de PC x86 Zet Verilog
ao486 Aleksander Osman BSD de 3 cláusulas Avalon Núcleo compatible con i486 SX ao486 Verilog
basado en la arquitectura del conjunto de instrucciones PowerPC / Power
PowerPC 405S IBM No CoreConnect PowerPC de 32 bits v.2.03 Libro E IBM Verilog
PowerPC 440S IBM No CoreConnect PowerPC de 32 bits v.2.03 Libro E IBM Verilog
PowerPC 470S IBM No CoreConnect PowerPC de 32 bits v.2.05 Libro E IBM Verilog
Microwatt IBM / OpenPOWER CC-BY 4.0 Espoleta Prueba de concepto PowerISA 3.0 de 64 bits Microwatt @ Github VHDL
Chiselwatt IBM / OpenPOWER CC-BY 4.0 Espoleta PowerISA 3.0 de 64 bits Chiselwatt @ Github Cincel
Libre-SOC Libre-SoC.org BSD / LGPLv2 + Espoleta PowerISA 3.0 de 64 bits. Implementación de CPU / GPU / VPU e instrucciones vectoriales personalizadas Libre-SoC.org python / nMigen
A2I IBM / OpenPOWER CC-BY 4.0 PBus personalizado PowerPC 2.6 de 64 bits Libro E. En orden núcleo A2I @ Github VHDL
A2O IBM / OpenPOWER CC-BY 4.0 PBus personalizado PowerPC 2.7 de 64 bits Libro E. Núcleo fuera de servicio A2O @ Github Verilog
Otras arquitecturas
ARCO ARC International , Sinopsis No ISA RISC de 16/32/64 bits DesignWare ARC Verilog
ERIC5 Entner Electronics No RISC de 9 bits, tamaño muy pequeño, programable en C ERIC5 VHDL
CPU H2 Richard James Howe MIT Personalizado Stack Machine de 16 bits, diseñada para ejecutar Forth directamente, pequeña CPU H2 VHDL
SoC instantáneo Núcleos FPGA No Personalizado Extensión RISC-V M de 32 bits, SoC definido por C ++ SoC instantáneo VHDL
JOP Martín Schoeberl SimpCon / Wishbone (extensión) Soporte duro en tiempo real orientado a pilas, ejecutando código de bytes Java directamente Jop VHDL
LatticeMico8 Enrejado Espoleta LatticeMico8 Verilog
LatticeMico32 Enrejado Espoleta LatticeMico32 Verilog
LXP32 Alex Kuznetsov MIT Espoleta Canalización de 32 bits, 3 etapas, archivo de registro basado en RAM de bloque lxp32 VHDL
MCL65 Laboratorios MicroCore Núcleo 6502 basado en microsecuenciador de tamaño ultra pequeño 252 LUT Spartan-7. Ciclo de reloj exacto. Núcleo MCL65
MRISC32-A1 Marcus Geelnard Espoleta , B4 / canalizada CPU vectorial / RISC de 32 bits con ISA personalizado MRISC32 VHDL
NEO430 Stephan Nolting Wishbone (Avalon, AXI4-Lite) MSP430 de 16 bits compatible con ISA, tamaño muy pequeño, muchos periféricos, altamente personalizable NEO430 VHDL
Nios , Nios II Altera No Avalon Altera Nios II Verilog
OpenRISC OpenCores Espoleta 32 bits; hecho en ASIC, Actel, Altera, Xilinx FPGA. [9] Verilog
SpartanMC TU Darmstadt / TU Dresde Personalizado ( soporte AXI en desarrollo) ISA de 18 bits (soporte GNU Binutils / GCC en desarrollo) SpartanMC Verilog
SYNPIC12 Miguel Angel Ajo Pelayo MIT Compatible con PIC12F, programa sintetizado en puertas nbee.es VHDL
xr16 Jan Gray No Bus abstracto XSOC CPU y SoC RISC de 16 bits presentados en Circuit Cellar Magazine # 116-118 XSOC / xr16 Esquemático
YASEP Yann Guidon AGPLv3 SRAM directo 16 o 32 bits, RTL en VHDL y asm en JS , subconjunto de microcontroladores: listo yasep.org (se requiere Firefox ) VHDL
ZipCPU Tecnología Gisselquist GPLv3 Espoleta, B4 / canalizada CPU de 32 bits destinada a un uso mínimo de recursos FPGA zipcpu.com Verilog
ZPU Zylin AS Espoleta CPU basada en pila, ruta de datos configurable de 16/32 bits, compatibilidad con eCos CPU Zylin VHDL
RISC5 Niklaus Wirth Personalizado Ejecución de un completo sistema gráfico Oberon que incluye un editor y un compilador. El software se puede desarrollar y ejecutar en la misma placa FPGA. www.projectoberon.com/ Verilog

Ver también

Referencias

enlaces externos