La plupart des puces ne peuvent faire que la seule chose pour laquelle elles ont été construites — le câblage est gravé dans le silicium à l'usine et ne peut jamais changer. Un FPGA brise cette règle. C'est une puce « programmable in situ » : une mer vierge de petits blocs logiques et de fils identiques que vous configurez après sa fabrication, en y chargeant un design. Chargez un design et c'est une calculatrice ; chargez-en un autre et la même puce est un contrôleur de feux tricolores. Cette exposition vous permet de suivre tout le parcours de quelques lignes de code à une puce fonctionnelle — et puis d'observer chaque détail de ce qui se passe à l'intérieur.
Vous commencez avec du vrai Verilog — le langage que les concepteurs de puces écrivent vraiment — et vous le regardez passer par la vraie chaîne d'outils : la synthèse évalue chaque équation pour chaque entrée et écrit les réponses dans une Table de Correspondance (LUT, une « table de réponses » de seize bits), le placement et le routage déposent ces LUT dans des blocs logiques et règlent les boîtiers d'interconnexion, et un flux de bits est généré — la chaîne exacte et ordonnée de bits. Ce flux de bits est sauvegardé dans une mémoire Flash ; au démarrage, il se charge, bit par bit, dans les cellules de SRAM de configuration du FPGA, et le silicium prend vie. Coupez l'alimentation et la SRAM oublie tout — un FPGA recharge son design à chaque démarrage. (Deux notes honnêtes : le placement et le routage ici sont pré-choisis pour la clarté, et il s'agit d'une vue au niveau logique — les signaux réels prennent aussi du temps et peuvent provoquer des glitches.) Zoomez maintenant. Ouvrez un bloc logique et sa LUT est révélée pour ce qu'elle est physiquement — un multiplexeur 16 vers 1 lisant seize cellules mémoire, les entrées sélectionnant un bit à la fois, seize vers huit vers quatre vers deux vers un, avec le chemin gagnant en direct illuminé. Allez plus loin et un bit de réponse unique est une cellule SRAM à six transistors ; ouvrez un boîtier d'interconnexion et le routage est une grille de transistors passants, chacun maintenu actif ou bloqué par un bit de configuration. Actionnez les interrupteurs, pilotez l'horloge, et le signal en direct illumine chaque fil à chaque niveau.
Le premier FPGA, le XC2064 de Xilinx, a été inventé par Ross Freeman en 1985 avec seulement 64 blocs logiques ; ceux d'aujourd'hui en ont des millions, et ils font tourner tout, des réseaux téléphoniques et des engins spatiaux aux machines qui testent les nouvelles puces informatiques — prisés parce que le même matériel peut être recâblé par logiciel au gré des besoins. C'est le plus proche parent de DigiSim lui-même : un FPGA est de la logique programmable, précisément ce que vous construisez porte par porte dans le Logic Lab de DigiSim, transformé en une puce que vous pouvez tenir.
Caractéristiques
- Depuis le code
- Verilog réel → synthèse → placement & routage → flux de bits → gravure → exécution
- Gravé dans
- Les bits de configuration se chargent dans les cellules SRAM de la puce — regardez le die se remplir
- Zoom jusqu'aux atomes
- Bloc logique → LUT comme multiplexeur 16:1 en direct → une cellule SRAM à 6 transistors
- Designs
- Porte logique, demi-additionneur, clignotant, compteur → afficheur 7 segments, FSM feux tricolores
Plus dans Informatique