Chapitre 3 Architecture des FPGA Présentation rapide: Les FPGA (Field Programma

Chapitre 3 Architecture des FPGA Présentation rapide: Les FPGA (Field Programmable Gate Arrays ou "réseaux logiques programmables") sont des composants VLSI entièrement reconfigurables ce qui permet de les reprogrammer à volonté afin d'accélérer notablement certaines phases de calculs. L'avantage de ce genre de circuit est sa grande souplesse qui permet de les réutiliser à volonté dans des algorithmes différents en un temps très court. Le progrès de ces technologies permet de faire des composants toujours plus rapides et à plus haute intégration, ce qui permet de programmer des applications importantes. Introduction: Les circuits FPGA sont constitués d'une matrice de blocs logiques programmables entourés de blocs d'entrée sortie programmable. L'ensemble est relié par un réseau d'interconnexions programmable. Les FPGA sont bien distincts des autres familles de circuits programmables tout en offrant le plus haut niveau d'intégration logique. Il y a 4 principales catégories disponibles commercialement: • Tableau symétrique. • En colonne. • Mers de portes. • Les PLD hiérarchique. Les différentes classes de FPGA. Voici la structure interne d'un FPGA de type matrice symétrique. Il s'agit de l'architecture que l'on retrouve dans les FPGA de la série XC4000 de chez Xilinx. Structure interne d'un FPGA L'utilisateur peut programmer la fonction réalisée par chaque cellule (appelée CLB par Xilinx: Configurable Logic Block): Schéma bloc d'une cellule On programme aussi les interconnexions entre les cellules: Les interconnexions entre les cellule d'un FPGA Ainsi que les entrées et sorties du circuit. L'avantage des FPGA est de pouvoir être configuré sur place, sans envoi du circuit chez le fabricant, ce qui permet de les utiliser quelques minutes après leur conceptions. Les FPGA les plus récents sont configurables en une centaine de millisecondes. Les FPGA sont utilisés pour un développement rapide et bon marché des ASIC. Inventés par la société Xilinx,le FPGA, dans la famille des ASICs, se situe entre les réseaux logiques programmables et les prédiffusés. C'est donc un composant standard combinant la densité et les performances d'un prédiffusé avec la souplesse due à la reprogrammation des PLD. Cette configuration évite le passage chez le fondeur et tous les inconvénients qui en découlent. Les différentes technologies utilisées pour les FPGA: Elles sont au nombre de quatre: • Static RAM: Les connexions sont réalisées en rendant les transistors passant. L'avantage de cette technologie est qu'elle permet une reconfiguration rapide au sein même du circuit. Le principal désavantage est la surface nécessaire pour la SRAM. Il nécessitent l'utilisation d'une mémoire standard chargée à l'initialisation. Ils font appel à la technologie CMOS. Résistance d'environ 1 Kohm et capacité de quelques dizaines de femtofarad. Voici quelques exemples de FPGA utilisant la technologie SRAM: o Xilinx XC3000 o Xilinx XC5200 o Xilinx XC4000 o Xilinx Spartan Les FPGA comportant le plus grand nombre de porte se trouve dans les séries Virtex- II. Leurs densités s'étendent de 40 mille à 8 million de portes sytèmes. Ce qui est énorme sachant que l'on estime qu'un FPGA de 100 mille portes système suffit amplement à émuler complètement un microcontrolleur de type 8051. Ils possèdent une fréquence d'horloge de maximum 420 MHz et utilisent un process de 0.15 microns à 8 couches de métal. • La technologie anti-Fuse: Un état anti-fuse réside en un état d'haute impédance. Il peut être programmé dans un état de faible impédance ou état "fused". Il s'agit d'une technologie moins chère que la SRAM, elle permet d'atteindre des vitesses plus élevées et occupe moins de place sur le circuit. Par contre, un tel FPGA ne peut être programmé qu'une seule fois. Performances électriques supérieures à la technologie SRAM (minimisation des effets RC due à la faible surface). Résistance de l'ordre d'une centaine d'ohm et effet capacitif de quelques femtofarads. • EPROM/EEPROM: Cette méthode est la même que celle utilisée dans les mémoires EPROM. L'EEPROM est reprogrammable. La puce fonctionne seule. La surface moyenne et les caractéristiques électriques sont semblables à la SRAM. Résumé des différentes technologies Nom: Reprogrammable: Volatile: Technologie: Fuse Non Non Bipolaire EPROM Oui, en dehors du circuit Non UVCMOS EEPROM Oui, dans le circuit Non EECMOS SRAM Oui, dans le circuit Oui CMOS Antifuse Non Non CMOS Architecture détaillée de la série XC4000 de Xilinx: Introduction: L'architecture, retenue par Xilinx, se présente sous forme de deux couches : • une couche appelée circuit configurable, • une couche réseau mémoire SRAM. La couche dite 'circuit configurable' est constituée d'une matrice de blocs logiques configurables CLB permettant de réaliser des fonctions combinatoires et des fonctions séquentielles . Tout autour de ces blocs logiques configurables, nous trouvons des blocs entrées/sorties IOB dont le rôle est de gérer les entrées-sorties réalisant l'interface avec les modules extérieurs (cf. figure). La programmation du circuit FPGA appelé aussi LCA (logic cells arrays) consistera par le biais de l'application d'un potentiel adéquat sur la grille de certains transistors à effet de champ à interconnecter les éléments des CLB et des IOB afin de réaliser les fonctions souhaitées et d'assurer la propagation des signaux. Ces potentiels sont tout simplement mémorisés dans le réseau mémoire SRAM. Architecture interne d'un FPGA. Les circuits FPGA du fabricant Xilinx utilisent deux types de cellules de base : • les cellules d'entrées/sorties appelés IOB (input output bloc), • les cellules logiques appelées CLB (configurable logic bloc). Ces différentes cellules sont reliées entre elles par un réseau d'interconnexions configurable. I. Les CLB (configurable logic bloc): Les blocs logiques configurables sont les éléments déterminants des performances du FPGA. Chaque bloc est composé d'un bloc de logique combinatoire composé de deux générateurs de fonctions à quatre entrées et d'un bloc de mémorisation synchronisation composé de deux bascules D. Quatre autres entrées permettent d'effectuer les connexions internes entre les différents éléments du CLB. La figure ci-dessous, nous montre le schéma d'un CLB. Cellule logique (CLB). Voyons d'abord le bloc logique combinatoire qui possède deux générateurs de fonctions F' et G' à quatre entrées indépendantes (F1...F4, G1...G4), lesquelles offrent aux concepteurs une flexibilité de développement importante car la majorité des fonctions aléatoires à concevoir n'excède pas quatre variables. Les deux fonctions sont générées à partir d'une table de vérité câblée inscrite dans une zone mémoire, rendant ainsi les délais de propagation pour chaque générateur de fonction indépendants de celle à réaliser. Une troisième fonction H' est réalisée à partir des sorties F' et G' et d'une troisième variable d'entrée H1 sortant d'un bloc composé de quatre signaux de contrôle H1, Din, S/R, Ec. Les signaux des générateurs de fonction peuvent sortir du CLB, soit par la sortie X, pour les fonctions F' et G', soit Y pour les fonctions G' et H'. Ainsi un CLB peut être utilisé pour réaliser: o deux fonctions indépendantes à quatre entrées indépendantes, plus une troisième fonction de trois variables indépendantes o ou toute fonction à cinq variables o ou toute fonction à quatre variables et une autre avec quelques fonctions à six variables o ou certaines fonctions jusqu'à neufs variables. L'intégration de fonctions à nombreuses variables diminue le nombre de CLB nécessaires, les délais de propagation des signaux et par conséquent augmente la densité et la vitesse du circuit. Les sorties de ces blocs logiques peuvent être appliquées à des bascules au nombre de deux ou directement à la sortie du CLB (sorties X et Y). Chaque bascule présente deux modes de fonctionnement : un mode 'flip-flop' avec comme donnée à mémoriser, soit l'une des fonctions F', G', H' soit l'entrée directe DIN et un mode latch . La donnée peut être mémorisée sur un front montant ou descendant de l'horloge (CLK). Les sorties de ces deux bascules correspondent aux sorties du CLB XQ et YQ. Un mode dit de " verrouillage " exploite une entrée S/R qui peut être programmée soit en mode SET, mise à 1 de la bascule, soit en Reset, mise à zéro de la bascule. Ces deux entrées coexistent avec une autre entrée laquelle n'est pas représentée sur la figure, appelée le global Set/Reset. Cette entrée initialise le circuit FPGA à chaque mise sous tension, à chaque configuration, en commandant toutes les bascules au même instant soit à '1', soit à '0'. Elle agit également lors d'un niveau actif sur le fil RESET lequel peut être connecté à n'importe quelle entrée du circuit FPGA. Un mode optionnel des CLB est la configuration en mémoire RAM de 16x2bits ou 32x1bit ou 16x1bit (en mode DUAL port). Les entrées F1 à F4 et G1 à G4 deviennent des lignes d'adresses sélectionnant une cellule mémoire particulière. La fonctionnalité des signaux de contrôle est modifiée dans cette configuration, les lignes H1, DIN et S/R deviennent respectivement les deux données D0, D1 (RAM 16x2bits) d'entrée et le signal de validation d'écriture WE. Le contenu de la cellule mémoire (D0 et D1) est accessible aux sorties des générateurs de fonctions F' et G'. Ces données peuvent sortir du CLB à travers ses sorties X et Y ou alors en passant par les deux bascules. II. Les IOB (input output bloc): La figure présente la structure de ce bloc. Ces blocs entrée/sortie permettent l'interface entre les broches du composant FPGA et uploads/Ingenierie_Lourd/ chapitre-3-3.pdf

  • 24
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager