ASIC vs FPGA vs SoC : quelle différence ?
Ces trois termes désignent des choses différentes. Un ASIC est une puce conçue sur mesure pour une application. Un FPGA est une puce dont la logique peut être reprogrammée après fabrication. Un SoC (system on chip) est une puce qui intègre tout un système, comme des cœurs de CPU, un GPU, des contrôleurs mémoire et des I/O. Les termes se recoupent : un SoC de smartphone est généralement réalisé comme un ASIC, et certains FPGA intègrent des cœurs de processeur, ce qui en fait aussi des SoC.
| Critère | ASIC | FPGA | SoC |
|---|---|---|---|
| Définition | Une puce conçue et fabriquée pour une application spécifique | Une puce dotée de blocs logiques et d'interconnexions programmables que l'on configure après fabrication | Une puce qui intègre les principaux éléments d'un système : cœurs de processeur, contrôleurs mémoire, I/O et accélérateurs |
| Flexibilité | Figé une fois fabriqué | Reconfigurable, même sur le terrain | Le matériel est figé, mais les processeurs exécutent un logiciel qui peut être mis à jour |
| Performances et efficacité énergétique | Les meilleures : la logique est adaptée à la tâche | Intermédiaires : la matrice programmable coûte en surface, en vitesse et en consommation | Élevées, grâce à des accélérateurs dédiés aux tâches courantes |
| Coût initial | Très élevé : conception, vérification et masques peuvent coûter de plusieurs millions à plusieurs centaines de millions de dollars aux nœuds avancés | Faible : on achète un composant prêt à l'emploi | Élevé, comparable à celui d'un ASIC, car il s'agit d'une puce sur mesure |
| Coût unitaire en grand volume | Le plus bas | Plus élevé par unité | Faible |
| Délai de mise sur le marché | Long : conception, vérification et fabrication prennent de nombreux mois, voire des années | Court : un design peut fonctionner en quelques jours ou semaines | Long |
| Correction d'un bug de conception | Coûteuse : nécessite généralement un nouveau jeu de masques (respin) | Facile : il suffit de reprogrammer le composant | Coûteuse, bien que certains problèmes puissent être contournés par logiciel |
| Usages typiques | Mineurs de cryptomonnaies, contrôleurs réseau et de stockage, codecs dédiés | Prototypage, produits en petite série, équipements télécoms et de test, accélération matérielle | Smartphones, tablettes, consoles de jeu et de nombreux systèmes embarqués |
Les valeurs indiquées sont des ordres de grandeur typiques et varient selon la génération de procédé et le produit.