Processeur softcore

Restez toujours informé : suivez-nous sur Google (☆)

Introduction

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).

Présentation

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).

Liste de processeurs softcore

Propriétaires

  • MicroBlaze (Xilinx)
  • PicoBlaze (Xilinx)
  • NIOS (Altera)
  • NIOS II (Altera)

Open Source

  • Mico8 (Lattice)
  • Mico32 (Lattice)
  • LEON (Gaisler Research)
  • OpenRISC (OpenCores.org)

Liste de Clones (open-source)

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

  • aeMB (OpenCores.org) (clone du MicroBlaze)
  • OpenFire (clone du MicroBlaze)

Tableau récapitulatif

ProcesseurDeveloppeurOpen SourceBus SupportéNotesPage Web
OpenSPARC T1SunYes check.svg Oui64-bitOpenSPARC.net
MicroBlazeXilinx NonOPB, FSL, LMBXilinx MicroBlaze
PicoBlazeXilinx NonXilinx PicoBlaze
Nios, Nios IIAltera NonAltera Nios II
Cortex-M1Arm Non[1]
Mico32LatticeYes check.svg OuiLatticeMico32
LEON 3ESAYes check.svg OuiAMBA25k portes, compatible SPARC V8Gaisler
OpenRISCOpenCoresYes check.svg Oui32-bit; validé sur cible ASIC, Altera, XilinxOR1K
AEMBShawn TanYes check.svg OuiWishboneCore écrit en verilog compatible avec le MicroBlaze EDK 3.2AEMB
OpenFireVirginia Tech CCM LabYes check.svg OuiOPB, FSLCompatibilité binaire avec le MicroBlazeVT OpenFire
PacoBlazePablo BleyerYes check.svg OuiCompatible avec le processeur PicoBlazePacoBlaze