Processeur softcore
{{#invoke:Bandeau|ébauche}} 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 » (Modèle:Lang ou SoPC).
Présentation
Le mot softcore est une contraction des mots anglais Modèle:Lang (« logiciel ») et Modèle:Lang (« cœur d'exécution d'un microprocesseur »). En effet, un softcore est une implémentation de processeur disponible sous forme de description bas 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 bogue) 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
Propriétaires
Open Source
- Mico8 (Lattice)
- Mico32 (Lattice)
- LEON (Gaisler Research)
- LowRISC (Université de Cambridge)
- OpenRISC (OpenCores.org)
Liste de clones (open-source)
Les processeurs softcore suivants sont des clones (plus ou moins complets) de processeurs propriétaires :
- aeMB (OpenCores.org) (clone du MicroBlaze)
- OpenFire (clone du MicroBlaze)
- SecretBlaze (clone du MicroBlaze)
Tableau récapitulatif
Processeur | Developpeur | Open Source | Bus Supporté | Notes | Page Web |
---|---|---|---|---|---|
OpenSPARC T1 | Sun | Fichier:OOjs UI icon check-constructive.svg{{#if:| {{{1}}}| Oui}} | 64-bit | OpenSPARC.net | |
MicroBlaze | Xilinx | Fichier:OOjs UI icon close-ltr-destructive.svg{{#if:| {{{1}}}| Non}} | OPB, FSL, LMB | Modèle:Lien brisé | |
PicoBlaze | Xilinx | Fichier:OOjs UI icon close-ltr-destructive.svg{{#if:| {{{1}}}| Non}} | Modèle:Lien brisé | ||
NIOS, Nios II | Altera | Fichier:OOjs UI icon close-ltr-destructive.svg{{#if:| {{{1}}}| Non}} | Altera Nios II | ||
Cortex-M1 | Arm | Fichier:OOjs UI icon close-ltr-destructive.svg{{#if:| {{{1}}}| Non}} | [1] | ||
Mico32 | Lattice | Fichier:OOjs UI icon check-constructive.svg{{#if:| {{{1}}}| Oui}} | LatticeMico32 | ||
LEON 3 | ESA | Fichier:OOjs UI icon check-constructive.svg{{#if:| {{{1}}}| Oui}} | AMBA | 25k portes, compatible SPARC V8 | Gaisler |
H2 CPU | Richard James Howe | Fichier:OOjs UI icon check-constructive.svg{{#if:| {{{1}}}| Oui}} | 16-bit, Forth, VHDL | Forth CPU | |
LowRISC | Université de Cambridge | Fichier:OOjs UI icon check-constructive.svg{{#if:| {{{1}}}| Oui}} | 64-bit, compatible RISC-V | lowrisc.org | |
OpenRISC | OpenCores | Fichier:OOjs UI icon check-constructive.svg{{#if:| {{{1}}}| Oui}} | 32-bit; validé sur cible ASIC, Altera, Xilinx | OR1K | |
AEMB | Shawn Tan | Fichier:OOjs UI icon check-constructive.svg{{#if:| {{{1}}}| Oui}} | Wishbone | Core écrit en verilog compatible avec le MicroBlaze EDK 3.2 | AEMB |
OpenFire | Virginia Tech CCM Lab | Fichier:OOjs UI icon check-constructive.svg{{#if:| {{{1}}}| Oui}} | OPB, FSL | Compatibilité binaire avec le MicroBlaze | VT OpenFire |
SecretBlaze | LIRMM, Université de Montpellier 2 / CNRS | Fichier:OOjs UI icon check-constructive.svg{{#if:| {{{1}}}| Oui}} | Wishbone | Compatible MicroBlaze, VHDL | SecretBlaze |
PacoBlaze | Pablo Bleyer | Fichier:OOjs UI icon check-constructive.svg{{#if:| {{{1}}}| Oui}} | Compatible avec le processeur PicoBlaze | PacoBlaze | |
CQPIC | Sumio Morioka (Japon) | Fichier:OOjs UI icon check-constructive.svg{{#if:| {{{1}}}| Oui}} | Compatible avec le processeur PIC16F84 (8-bit) | Embarquer un PIC 16F84 | |
ATMega8 | Dr. Juergen Sauermann (Allemagne) | Fichier:OOjs UI icon check-constructive.svg{{#if:| {{{1}}}| Oui}} | Compatible avec le processeur Atmel ATMega8 (8-bit) | Embarquer un ATMega8 et CPU lecture |