DesignSpark Electrical Logolinkedin
Ask a Question

Le monde des FPGA et des ASIC : partie 1

                                                                                                                                                  Crédit : Microsoft Research

Dans la première partie de cet article en deux parties, je vais examiner les origines du matériel programmable qui a réduit le nombre de puces de nombreuses conceptions de circuits imprimés. La deuxième partie montrera comment les FPGA et les ASIC remplacent désormais le microprocesseur et le traitement numérique des signaux (DSP) dans les applications haute vitesse et haute fiabilité.

Premièrement la logique numérique

Le premier ordinateur à base de semi-conducteurs ayant exécuté un programme a été créé en 1953 à l'Université de Manchester. Il contenait 92 transistors et 550 diodes, mais il ne pouvait gérer qu'une moyenne d'environ 33 instructions/s. C'était tout de même une grande amélioration par rapport à ses prédécesseurs basés sur le tube thermoïonique, car il consommait moins d'énergie et était physiquement plus petit. J'en parle, car il représente un premier point de départ de la course à la fabrication de machines toujours plus puissantes et toujours plus petites. Tous les ordinateurs, y compris ceux d'aujourd'hui, sont constitués de portes logiques interconnectées, ces dernières fournissant les fonctions de base AND, OR et NOT. Vous pouvez construire à peu près tout avec seulement ces trois types de portes. En fait, il est probable que vous les utilisez sous leur forme logique négative avec des sorties inversées : NAND et NOR. En effet, ce format requiert le nombre minimum d'étapes de transistor ; un transistor inverseur supplémentaire est nécessaire pour produire AND et OR avec une augmentation correspondante du temps de propagation et de la consommation électrique. Ces fonctions logiques étaient aussi pratiques que les blocs de construction et se classaient parmi les premières conceptions de circuits intégrés commerciales. La série 74 TTL (logique transistor-transistor) est encore disponible de nos jours, y compris 7400 (quadruples portes NAND à 2 entrées) et 7402 (quadruples portes NOR à 2 entrées), avec cependant une technologie du silicium considérablement améliorée.

À la fin des années 60 et au début des années 70, les ordinateurs contenaient de nombreuses cartes, pleines de portes logiques TLL ou CMOS. À mesure que la technologie CI s'améliorait, de nouvelles puces dotées de "fonctions spéciales", par exemple, compteurs et registres à décalage, sont apparues, réduisant le nombre de cartes et permettant de réduire la taille des ordinateurs. Les puces LSI (intégration à grande échelle) ont produit les premières puces RAM et ensuite, des microprocesseurs. Même avec un processeur à puce unique et des puces mémoire, il était toujours difficile de construire un véritable ordinateur monocarte. Beaucoup de logique de liaison propre à une conception particulière devait encore être acquise à partir des portes logiques de base.

Réseau de portes

Très vite, les fabricants ont commencé à produire des appareils personnalisables, appelés PAL (réseaux logiques programmables) et ULA (tableaux de logique non engagés). Un réseau PAL contient des groupes fixes de portes AND/OR appelés termes de produit : dans chaque groupe, les portes sont connectées ensemble par des liens fusibles. Les liens sont traités par un programmateur externe comme mémoire en lecture seule programmable. Pour créer le circuit souhaité, les fusibles sont grillés par le programmateur lorsque nécessaire pour déconnecter les liens indésirables. Par conséquent, ces premiers appareils étaient programmables une seule fois (OTP), et il était impossible de corriger les erreurs. Ils étaient relativement peu chers, et le gaspillage de quelques puces valait bien la réduction du nombre de puces global. Les appareils ultérieurs utilisaient une mémoire de lien effaçable par UV, pouvant être reconfigurée avant l'arrivée des puces EEPROM reprogrammables in situ. Les appareils plus récents contiennent des bascules, des multiplicateurs et même des blocs de RAM pour augmenter leur polyvalence. Avec l'arrivée de l'intégration à très grande échelle (VLSI), ces appareils programmables sont devenus très complexes, avec la SRAM constituant la mémoire de configuration interne chargée au démarrage à la mise sous tension à partir d'une mémoire EPROM externe ou Flash. Bienvenue au FPGA (réseau de portes programmables in situ).

L'approche adoptée par le réseau ULA était différente de celle adoptée par le réseau PAL. L'utilisateur commençait désormais avec une toile vide. Le fabricant fournissait un jeu d'outils logiciels permettant au développeur de concevoir son circuit au niveau transistor/diode individuel. Cela signifie que vous pouvez créer ce qui équivaut à une conception personnalisée sans éléments redondants ou non utilisés, optimisée pour la vitesse et la puissance. La difficulté est que le concepteur doit générer la disposition des pistes de l'appareil : un peu semblable à une configuration de circuit imprimé couvrant les liens inter-éléments comprenant les connexions d'horloge commune, d'alimentation et de masse. L'utilisateur fournissait au fabricant un diagramme indiquant les positions exactes de chaque élément sur le silicium et un masque pour la couche métallique contenant toutes les interconnexions. Les ULA n'étaient pas capables de contenir une haute densité d'éléments, de sorte que l'ensemble de l'exercice ressemblait plutôt à une conception de circuit imprimé. ULA était, en fait, une première forme de ce que nous appelons maintenant un circuit intégré pour application spécifique ou ASIC entièrement personnalisable. L'ASIC est fabriqué d'après votre conception, et toute erreur s'avère coûteuse. Si votre conception n'est pas totalement prouvée, à l'aide d'un FPGA probablement, ne passez pas à la fabrication. Une erreur de conception des premiers microprocesseurs Pentium, connue sous le nom d'erreur FDIV a coûté de centaines de millions de dollars à Intel.

Exemple de gain d'espace avec la logique programmable

Des cartes de deux ordinateurs monocartes des années 1980 sont illustrées ci-dessous, l'une contenant de nombreuses puces logiques de liaison (Fig. 1), l'autre contenant un appareil ULA unique (Fig. 2). La plupart des personnes ont entendu au moins parler du ZX81 révolutionnaire de Clive Sinclair ; le Jupiter Ace qui utilisait le langage de programmation Forth est peut-être moins connu. Même sans la base pour le clavier à membrane, il est évident que le Jupiter Ace requiert beaucoup plus d'espace pour ses nombreuses puces. Le circuit du ZX81 est très similaire, mais tous ces circuits imprimés à petite et moyenne échelle d'intégration (SSI/MSI) ont été combinés dans une puce ULA unique. Fait intéressant, le ZX81 précède l'Ace d'un an. Cela montre où les ventes probables jouent un rôle dans toute conception : les ventes prévues de l'Ace n'étaient pas suffisantes pour justifier le coût d'un ULA.

Le FPGA a parcouru un long chemin depuis l'époque des PAL et ULA. Les modules de fonctions intégrés sont devenus bien plus complexes avec de plus en plus d'éléments réunis dans une puce unique. Vous les programmez à l'aide de langages de haut niveau, tels que VHDL et Verilog. Jusqu'à récemment, le coût très élevé était hors portée des fabricants. Tout cela a changé, et dans la partie 2, nous allons découvrir leur utilisation pour remplacer les microprocesseurs et les DSP dans les applications, telles que l'intelligence artificielle.

Mais qu'en est-il du remplacement de la logique de liaison ? Si un petit appareil peu coûteux vous suffit pour fournir quelques fonctions logiques de base, pas de souci, le PAL est toujours là, sous sa forme nouvelle de circuit à logique programmable simple ou SPLD. Les FPGA et les ASIC sont désormais appelés, sans grande surprise, circuits à logique programmable complexe ou CPLD. Pourquoi les ordinateurs monocartes (SBC) modernes, tels que Raspberry Pi, ne semblent plus avoir besoin de logique de liaison ? Découvrez la réponse dans la deuxième partie.

Si vous avez des questions sur des aspects pratiques, suivez mes messages sur Twitter. Je mets des liens vers des articles intéressants sur l'électronique et les nouvelles technologies, je retweete des publications que j'ai repérées sur les robots, l'exploration spatiale et d'autres sujets.

 

Engineer, PhD, lecturer, freelance technical writer, blogger & tweeter interested in robots, AI, planetary explorers and all things electronic. STEM ambassador. Designed, built and programmed my first microcomputer in 1976. Still learning, still building, still coding today.

14 Oct 2019, 13:00

Commentaires