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èreASICFPGASoC
DéfinitionUne puce conçue et fabriquée pour une application spécifiqueUne puce dotée de blocs logiques et d'interconnexions programmables que l'on configure après fabricationUne 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 terrainLe matériel est figé, mais les processeurs exécutent un logiciel qui peut être mis à jour
Performances et efficacité énergétiqueLes meilleures : la logique est adaptée à la tâcheIntermé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 initialTrès élevé : conception, vérification et masques peuvent coûter de plusieurs millions à plusieurs centaines de millions de dollars aux nœuds avancésFaible : 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 volumeLe plus basPlus élevé par unitéFaible
Délai de mise sur le marchéLong : conception, vérification et fabrication prennent de nombreux mois, voire des annéesCourt : un design peut fonctionner en quelques jours ou semainesLong
Correction d'un bug de conceptionCoûteuse : nécessite généralement un nouveau jeu de masques (respin)Facile : il suffit de reprogrammer le composantCoûteuse, bien que certains problèmes puissent être contournés par logiciel
Usages typiquesMineurs de cryptomonnaies, contrôleurs réseau et de stockage, codecs dédiésPrototypage, produits en petite série, équipements télécoms et de test, accélération matérielleSmartphones, 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.

Quand choisir l'un ou l'autre ?

ASIC
Lorsque le volume est élevé, que la fonction est stable et qu'il faut les meilleures performances et la meilleure efficacité énergétique par unité de coût.
FPGA
Lorsque le volume est faible, que les exigences peuvent évoluer ou qu'il faut démarrer rapidement : prototypes, premiers produits, équipements spécialisés.
SoC
Lorsqu'on veut un produit complet sur une seule puce, comme un téléphone. En pratique, un SoC est conçu comme un ASIC, et les FPGA servent souvent à le prototyper avant la fabrication.

Questions fréquentes

Un SoC est-il un ASIC ?

En pratique, généralement oui. SoC décrit ce qui est intégré sur la puce (un système complet), tandis qu'ASIC décrit la manière dont elle est conçue (sur mesure pour une application). Un SoC de smartphone est normalement réalisé comme un ASIC.

Pourquoi utilise-t-on des FPGA pour prototyper des ASIC ?

Un FPGA peut être reprogrammé en quelques heures, les concepteurs peuvent donc tester et corriger leur logique avant de payer des masques coûteux. Un bug découvert dans un ASIC après fabrication nécessite généralement un respin.

Quand un ASIC est-il moins cher qu'un FPGA ?

En grand volume. Un ASIC a un coût initial très élevé mais le coût unitaire le plus bas, tandis qu'un FPGA a un faible coût initial mais un prix unitaire plus élevé.

Les FPGA sont-ils plus lents que les ASIC ?

En général, oui. La matrice programmable coûte en surface, en vitesse et en consommation, si bien qu'un ASIC sur mesure effectuant la même tâche est plus rapide et plus économe en énergie.

Vérifier vos connaissances

Quelle caractéristique du FPGA est correcte ?

  1. ALe circuit est figé à la fabrication et ne peut être modifié
  2. BC'est un composant dédié aux circuits analogiques
  3. CL'utilisateur peut reprogrammer la configuration du circuit logique après fabrication
Afficher la réponse et l'explication

Réponse : C. L'utilisateur peut reprogrammer la configuration du circuit logique après fabrication

Le FPGA est un composant dont les blocs logiques, dotés de petites tables de vérité (LUT), et les connexions entre eux peuvent être reprogrammés après fabrication par des données de configuration. Sans le délai de fabrication ni le coût des masques d'un ASIC, il sert aux prototypes, aux petites séries et aux équipements nécessitant des mises à jour fonctionnelles. En revanche, les circuits de reprogrammation supplémentaires font qu'à circuit égal, l'ASIC est plus rapide, moins gourmand et plus compact. Ce n'est pas un composant dédié à l'analogique.

Comment appelle-t-on un LSI qui intègre sur une seule puce les fonctions nécessaires à un système, telles que CPU, GPU, contrôleur mémoire et fonctions de communication ?

  1. ASiP (système en boîtier)
  2. BDRAM standard
  3. CSoC (système sur puce)
Afficher la réponse et l'explication

Réponse : C. SoC (système sur puce)

Un SoC est un LSI qui intègre sur une seule puce de nombreuses fonctions nécessaires à un système ; les processeurs pour smartphones en sont l'exemple type. La suppression des interconnexions entre puces réduit le nombre de composants et permet de gagner en compacité, en vitesse et en consommation. En revanche, la puce devient grande, ce qui dégrade le rendement, et il est difficile d'y combiner des circuits issus de procédés différents. Il se distingue du SiP, qui regroupe plusieurs puces dans un même boîtier. La DRAM standard est un produit mémoire autonome.

Comment appelle-t-on un LSI conçu spécifiquement pour une application ou un client particulier ?

  1. AMémoire standard
  2. BASIC (circuit intégré spécifique à une application)
  3. CFPGA
Afficher la réponse et l'explication

Réponse : B. ASIC (circuit intégré spécifique à une application)

Un ASIC (Application Specific Integrated Circuit) est un LSI conçu spécifiquement pour un produit ou une application donnés. L'optimisation limitée aux fonctions nécessaires est avantageuse en performances et en consommation, mais le coût de développement, masques compris, est élevé et le développement prend plusieurs mois ou plus ; il est donc utilisé pour des produits dont le volume de production est suffisant. Le FPGA, reprogrammable après fabrication, convient aux petites séries et aux prototypes, et la mémoire standard est un produit commun à de nombreuses applications.

  1. Dans la vérification des grands SoC, quelle méthode exécute le circuit conçu sur du matériel dédié ou un FPGA et le vérifie rapidement en association avec le logiciel ?
  2. Quel circuit dédié, intégré notamment aux SoC de smartphones, réalise l'inférence d'IA rapidement et avec une faible consommation ?

Questions d'entraînement sur Flot de conception de circuits intégrés et EDA

Termes clés expliqués

ASIC (circuit intégré spécifique)
LSI conçu spécifiquement pour une application ou un client donné. Plus avantageux en performance et en consommation qu'un produit générique, mais coûteux à développer ; adapté aux gros volumes.
FPGA
LSI dont l'utilisateur peut reconfigurer la logique après fabrication. Utilisé pour le prototypage, les produits en petite série, la vérification des ASIC, etc.
SoC (système sur puce)
LSI qui intègre sur une seule puce les fonctions nécessaires à un système : CPU, GPU, contrôleur mémoire, communications, etc. Le cœur des smartphones en est un exemple typique.

Comparatifs associés