Un processeur softcore est un processeur implémenté sur un système reprogrammable comme un FPGA. On parle alors de système sur puce programmable (System on Programmable Chip ou SoPC).
Le mot softcore est une contraction des mots anglais software (logiciel) et core (cœur d'exécution d'un microprocesseur). En effet, un softcore est une implémentation de CPU disponible sous forme de description haut niveau, dans un langage de description matérielle comme le VHDL ou le Verilog. Architecture très flexible par nature, on les utilise surtout dans des FPGA. Un softcore peut donc être reconfiguré pour s'adapter aux contraintes de chaque utilisation (périphériques, performances, ressources, consommation, fonctions etc.).
Cela s'oppose aux "hard macros" disponibles sous forme de fichier très bas niveau, optimisé pour un seul processus de fabrication (par exemple le 0.18µm de TSMC). Un tel hardcore (par exemple de la famille ARM) est habituellement standard et ne peut être modifié, mais il est vendu validé (sans bug) et optimisé en taille et en vitesse (plus rapide et moins gros qu'un softcore).
Un processeur softcore est en contrepartie plus facile à maintenir et peut être porté vers un ASIC (Application Specific Integrated Circuit).
Processeur | Developpeur | Open Source | Bus Supporté | Notes | Page Web |
---|---|---|---|---|---|
OpenSPARC T1 | Sun |
![]() | 64-bit | OpenSPARC.net | |
MicroBlaze | Xilinx |
![]() | OPB, FSL, LMB | Xilinx MicroBlaze | |
PicoBlaze | Xilinx |
![]() | Xilinx PicoBlaze | ||
Nios, Nios II | Altera |
![]() | Altera Nios II | ||
Cortex-M1 | Arm |
![]() | [1] | ||
Mico32 | Lattice |
![]() | LatticeMico32 | ||
LEON 3 | ESA |
![]() | AMBA | 25k portes, compatible SPARC V8 | Gaisler |
OpenRISC | OpenCores |
![]() | 32-bit; validé sur cible ASIC, Altera, Xilinx | OR1K | |
AEMB | Shawn Tan |
![]() | Wishbone | Core écrit en verilog compatible avec le MicroBlaze EDK 3.2 | AEMB |
OpenFire | Virginia Tech CCM Lab |
![]() | OPB, FSL | Compatibilité binaire avec le MicroBlaze | VT OpenFire |
PacoBlaze | Pablo Bleyer |
![]() | Compatible avec le processeur PicoBlaze | PacoBlaze |
Les processeurs softcore suivant sont des clones (plus ou moins complets) de processeurs propriétaires :