Processeur softcore

Un article de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher

Un processeur softcore est un processeur (CPU) 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).

Présentation[modifier | modifier le code]

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 processeur disponible sous forme de description haut niveau, dans un langage de description matérielle comme le VHDL ou le Verilog, ou directement sous la forme de fichier de configuration pour éviter la diffusion des sources. 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).

Liste de processeurs softcore[modifier | modifier le code]

Propriétaires[modifier | modifier le code]

Open Source[modifier | modifier le code]

Liste de clones (open-source)[modifier | modifier le code]

Les processeurs softcore suivants sont des clones (plus ou moins complets) de processeurs propriétaires :

Tableau récapitulatif[modifier | modifier le code]

Processeur Developpeur Open Source Bus Supporté Notes Page Web
OpenSPARC T1 Sun oui Oui 64-bit OpenSPARC.net
MicroBlaze Xilinx Non Non OPB, FSL, LMB Xilinx MicroBlaze
PicoBlaze Xilinx Non Non Xilinx PicoBlaze
NIOS, Nios II Altera Non Non Altera Nios II
Cortex-M1 Arm Non Non [1]
Mico32 Lattice oui Oui LatticeMico32
LEON 3 ESA oui Oui AMBA 25k portes, compatible SPARC V8 Gaisler
LowRISC Université de Cambridge oui Oui 64-bit, compatible RISC-V lowrisc.org
OpenRISC OpenCores oui Oui 32-bit; validé sur cible ASIC, Altera, Xilinx OR1K
AEMB Shawn Tan oui Oui Wishbone Core écrit en verilog compatible avec le MicroBlaze EDK 3.2 AEMB
OpenFire Virginia Tech CCM Lab oui Oui OPB, FSL Compatibilité binaire avec le MicroBlaze VT OpenFire
SecretBlaze LIRMM, Université de Montpellier 2 / CNRS oui Oui Wishbone Compatible MicroBlaze, VHDL SecretBlaze
PacoBlaze Pablo Bleyer oui Oui Compatible avec le processeur PicoBlaze PacoBlaze
CQPIC Sumio Morioka (Japon) oui Oui Compatible avec le processeur PIC16F84 (8-bit) Embarquer un PIC 16F84
ATMega8 Dr. Juergen Sauermann (Allemagne) oui Oui Compatible avec le processeur Atmel ATMega8 (8-bit) Embarquer un ATMega8 et CPU lecture

Voir aussi[modifier | modifier le code]

Sur les autres projets Wikimedia :

Articles connexes[modifier | modifier le code]

Liens externes[modifier | modifier le code]