Processeur softcore
Un article de Wikipédia, l'encyclopédie libre.
|
Cet article est une ébauche concernant l’électronique.
Vous pouvez partager vos connaissances en l’améliorant (comment ?) selon les recommandations des projets correspondants.
|
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).
Sommaire |
[modifier] Présentation
Un softcore est une implémentation de CPU disponible sous forme de description haut niveau (VHDL, Verilog,...). Cela s'oppose au "hard macro" disponible sous une forme de fichier très bas niveau, optimisé pour un seul processus de fabrication (par exemple le 0.18µm de TSMC).
Architecture très flexible de par sa nature, une implémentation softcore peut être reconfigurée en tout temps, contrairement à un processeur dit hardcore dont le cœur dispose de sa propre puce qui ne peut être modifiée. Un processeur softcore s'adapte donc aux besoins de ses développeurs et aux contraintes matérielles (périphériques, performances, ressources, consommation, etc...).
Toutefois, ses performances sont inférieures à celles d'un processeur hardcore. Un processeur softcore est en contrepartie plus facile à maintenir et peut être porté vers un ASIC (Application Specific Integrated Circuit). Un softcore est en général programmé dans un langage de description matérielle comme le VHDL ou le Verilog.
[modifier] Liste de processeurs softcore
Parmi les processeurs softcore les plus connus, on peut citer le NIOS de la société Altera, le Microblaze de Xilinx et le LEON de chez Gaisler Research. Vous trouverez ci-dessous une liste un peu plus complète.
[modifier] Propriétaires
[modifier] Open Source
[modifier] 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)
[modifier] Tableau récapitulatif
| 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 |

