(pld).
Transcription
(pld).
Chapitre II-2 : Les FPGAs Plan du chapitre 1. 2. 3. 4. 5. 6. Réflexion sur la propriété de programmation d’un circuit électronique Les PLDs Les CPLDs Les FPGAs Chez Xilinx Chez Altera I. Propriété de programmation d’un circuit électronique Configuration / programmation Un circuit est dit configurable (ou programmable) lorsque sa fonctionnalité n’est pas prédéfini lors de sa fabrication mais peut être spécifié plus tard par une configuration (un programme). La programmation comme mesure de flexibilité d’un circuit. Les circuits programmables Programmable Logic Devices (PLD) PLD : PROM PLA PAL CPLD FPGA ASIC programmables Microprocesseurs, DSP, Micro-contrôleurs Quelle catégorie est la plus flexible ? II. SPLD Principe Toute fonction peut s’exprimer sous la forme d’une somme de produit Le circuit est donc composé d’une matrice de portes AND et d’une matrice de portes OR prédiffusées Seule l’interconnexion est programmable ! Trois sortes de PLD : PROM PAL PLA PROM Seule l’interconnexion de la matrice (array) OR est programmable, Utilisé normalement pour mémoriser des données readonly, la fonction de mémorisation est remplacée par une fonction booléenne dont le paramètre d’entrée est l’adresse et la sortie la donnée. •Fusibles •Anti-fusibles •EPROM (erasable) •EEPROM (electrically) •Flash PAL Programmable Array of Logic Seule l’interconnexion de la matrice (array) AND est programmable, PLA Programmable Logic Array Les 2 matrices AND/OR sont programmables Compromis Flexibilité Performance PROM + ++ PLA ++ - PAL + ++ SPLD Simple Programmable Logic Device or sequential PAL III. CPLD Limtitations du PLD Impossibilité d’implémenter des fonctions multiniveaux, Impossibilité de partager des produits entre fonctions. Avec les CPLDs on peut maintenant non-seulement programmer la fonctionnalité mais aussi l’interconnexion entre 2 cellules ! Contrairement aux FPGAs, il n’y a qu’un seul chemin entre 2 points. Les CPLD perdent en flexibilité mais gagnent en prédictibilité ! CPLD Complex Programmable Logic Device Altera Dans les années 80, Altera sont les premiers à fournir une solution utilisable de CPLD, utilisé pour le prototypage rapide, un problème restait pourtant au niveau de la scalabilité quadratique de la matrice d’interconnexion entre les SPLD, limitant la taille des design à prototyper IV. FPGA Plan de la section 1. 2. 3. 4. Principe général du FPGA L’architecture d’un FPGA L’architecture Xilinx L’architecture Altera 1. Principe général CPLD => FPGA En 1984 Xilinx, lance le premier Field Programmable Gate Array (FPGA), le XC2064. La principale différence est sa scalabilité sans perte de performances. Son inconvénient est le manque de prédictibilité des temps d’interconnexion. Programmable logic devices familly Différences Les cellules logiques sont placées dans une topologie donnée, et reliées par une infrastructure d’interconnexion. Leur fonction est programmable, Les chemins entre 2 cellules sont multiples et les temps ne sont connues qu’après le routage ! Les cellules externes (IO cells) ne sont pas programmable fonctionnellement mais en Direction, Voltage, Bufferisation … Avantage principal : Le temps de conception Architecture générale d’un FPGA Le marché du FPGA Xilinx Altera Actel Lattice Atmel, QuickLogic • QuickLogic • Actel • Mathstar = lowpower = Techno Flash = Techno 1GHz Les premiers circuits programmables… Xilinx Virtex II Comparaison avec le Pentium IV Pourquoi les FPGAs ? 1) L’utilisation transistor 2) Le coût de fabrication Pourquoi les FPGA ? Time-to-Market Time-To-Market Potential Sales Achieved First-To-Market 100% 3 Months Late 73% 6 Months Late 53% 9 Months Late 32% 12 Months Late 9% Principe simplifié Technologie de programmation Fusibles, metal Antifusibles, capacité MOS Transistor MOS à grille flottante, EPLD (E)EPROM, Nb de configurations limité, Non volatile RAM statique, FPGA FPGA-SRAM Configuration à chaque mise sous tension Plus rapide Configurable une fois Reconfigurable Bit-stream Le bitstream représente la configuration de l’ensemble des éléments configurables du circuit Un transfert de bitstream est nécessaire à la mise sous tension (CPLD, SRAM) et à chaque reconfiguration (EPROM) Flot de programmation d’un FPGA Blocs de base Description de la fonctionnalité ( HDL ) Placement Routage Simulation fonctionnelle Back-annotation Simulation Timé Bitstream - Programmation Configuration Reconfiguration statique Reconfiguration partielle statique Seule une portion du bitstream est chargé sur le FPGA, L’exécution est interrompue pendant une durée plus petite, Reconfiguration partielle dynamique (DPR) Tout le design est reloadé dans le FPGA, L’exécution est interrompue Une portion (1D) du FPGA est reconfiguré pendant que le reste continu de s’exécuté (=> SRAM), Auto-reconfiguration (hors-sujet) Contrairement aux 3 autres, ce n’est pas une propriété technologique, Elle s’appuie sur la DPR : le FPGA lance en dynamique des configurations préconçues 2. L’architecture d’un FPGA FPGA Field Programmable Gate Array Architecture d’une cellule de base Les architectures reconfigurables sont classées selon deux grandes familles qui correspondent à la complexité de la cellule élémentaire : Grain-fin : la cellule correspond à une fonction booléenne (de 4 à 9 variables) implémentée par une LUT et qqs éléments de mémorisation, Grain-épais : la cellule correspond à un chemin de données configurable Un circuit à grain fin implique un plus grand nombre de cellule et donc un problème de routage plus complexe, A l’inverse du grain épais mais qui exploite moins bien sa structure (utilisation des cellules). Réalisation d’une fonction booléenne A partir de l’équation booléenne Custom Réseau prédiffusé Placement des portes custom Configuration Configuration mémoire (non logiciel) Look Up Table : LUT Exemple de configuration de LUT Elément de base d’un FPGA : le CLB CLB : Combinatorial Logic Block Constitué de : Un ensemble configurable d’entrée Plusieurs LUT à 2,3,4,5 entrées Un système de connections internes Un élément séquentiel : registre, latch… L’interconnexion Le réseau d’interconnexion est prédiffusé, Il existe plusieurs chemin entre deux ports, Chaque point de programmation est contrôlé par un bit de SRAM (5 transistors). Vue générale Vue générale Synthèse : Granularité des architectures reconfigurables 3. Exemple : FPGA Xilinx Famille Xilinx En 1984 Xinlinx est le premier constructeur de FPGA appelés alors LCA (Logic Cell Array). Aujourd’hui, il reste le premier fournisseur. Deux séries de circuits : Virtex Spartan - low-cost XC6200 Depuis la famille XC6200, il est possible de reconfigurer une partie du circuit sans interrompre le fonctionnement du reste. Le format de la chaîne de configuration est dans le domaine publique et toute configuration amène toujours à une configuration valide. Architecture d’un CLB CLB du Xilinx 4000 Exemple : • Le XC4000 contient plusieurs milliers de cellules et nécessite 650 bits de configuration pour chaque cellule et ses interconnexions, • Le chargement de la configuration prend plusieurs millisecond, • Il est impossible de configurer une partie isolé Architecture du Virtex-II pro Dimensionnement du circuit Architecture générale Reconfiguration dynamique partielle hors-ligne Les circuits Virtex permettent de réaliser des deisgn partielles. 2 modes de conception : Module based design, Difference based design. Chacun génère un bitstream pour chaque nouveau module. La communnication entre modules est possible grâce aux Bus Macro placés entre les modules. Reconfiguration partielle dynamique en-ligne Grâce au port ICAP (Internal Configuration Access Port), il est possible de lire la configuration actuelle d’une partie FPGA, de la modifier puis de la recharger. Cela nécessite de connaître le format du biststream !! bitstream du Virtex [XAPP151] Bitstream du Virtex-II non-diffusé Structure générale du bitstream virtexII Header Configuration Block 0 = configuration des IOBs, clocks, et CLBs Block 1 = configuration des RAMs, Block 2 = configuration des interconnexions Chaque bloc est décomposé en colonnes Comme indiqué chaque Colonne est découpé en frames de différentes taillles. Le frame est l’unité minimale de configuration Hiérarchie de reconfiguration Bit stream Cut in frames (384 bits for XCV50) A CLB needs 3 frames A column of 16 CLBs needs 48 frames A column of SelectRAM blocks (4) needs 27 frames A module in the device needs to configure CLBs RAMs IOBs Interconnect Taille de bitstream Temps de reconfiguration du Virtex-II pro Architecture interne d’un CLB Un CLB est structuré en 2 colonnes de 2 slices chacune, Chaque slice est connecté par un buffer tri-state à une matrice d’interconnexion permettant de communiquer avec n’importe quel autre CLB du FPGA, Ils sont également relié à un média de communication local plus rapide, Architecture du CLB VIIpro Architecture d’un slice VII pro Fonctionnalité possibles : RAM, ROM double ou simple port, registre à décalage, fonction combinatoire à 4 entrées 4 input LUT Bascule D 4. Chez Altera… Séries de circuits Stratix, Stratix-II Cyclone MaxII - low-cost - structured ASIC Relative Cost Altera’s Product Portfolio Relative Density & Features Altera FPGA Roadmap HardCopy IV Stratix IV GX Performance & Density Stratix IV HardCopy III Stratix III GX Stratix III HardCopy II HardCopy Stratix II GX Cyclone III Stratix GX Stratix Cyclone IV Stratix II Cyclone II Cyclone 130 nm 90 nm 65 nm 2002-04 2004-05 2006-07 Planning 45 nm 2008-10 CPLD Market Leadership MAX The CPLD Market Leader 45% 2000: MAX 3000A 40% High Performance 35% Market Share Low Cost 30% 1998: MAX 7000A 25% JTAG ISP 20% 1996: MAX 7000S 15% 10% 5% 0% Altera Source: Altera Estimate 2005 Xilinx Lattice Cypress Atmel Other $995 Carte Stratix I Carte DE2 Structure du Stratix 4-Input Look-Up Table LUT REG Structure du Stratix Logic Array M4K Memory Blocks Top & Bottom I/O Elements with Support for Memory Interfaces Embedded Multipliers Side I/O Elements with Support for PCI/PCI-X & Memory Interfaces Phase-Locked Loops Caractéristiques Stratix 1s10 Dimensionnement des circuits Cellule de base : LAB Logic Array Block Est composé de 10 LE (Logic Elements) Chaque LE contient : Un registre Une LUT à 4 entrées Multiplexage Carry-logic Stratix II Device Family Device ALMs (1) Equivalent Logic Elements M512 RAM M4K RAM MRAM Total Memory Bits 18-Bit x 18-Bit Multipliers(2) PLLs(3) EP2S15 6,240 15,600 104 78 0 419,328 48 6 EP2S30 13,552 33,880 202 144 1 1,369,728 64 6 EP2S60 24,176 60,440 329 255 2 2,544,192 144 12 EP2S90 36,384 90,960 488 408 4 4,520,448 192 12 EP2S130 53,016 132,540 699 609 6 6,747,840 252 12 EP2S180 71,760 179,400 930 768 9 9,383,040 384 12 (1) Adaptive Logic Modules (2) Does Not Include Soft Multipliers Implemented in Memory Blocks (3) Includes Enhanced & Fast PLLs Logic Elements (=CLB) Comparaison 2 modes de configurations Mode arithmétique Les interconnections Connexions en ligne Connections en colonnes Les éléments mémoire Système TriMatrix More Data Bits for Larger Memory Buffering M512 Blocks M4K Blocks M-RAM Block More Data Ports for Greater Memory Bandwidth Memory Block Summary Feature Performance True Dual-Port Parity Shift Register Mixed-Clock Byte Enable Initialization Read-Only Address Enable M512 576 Bits M4K 4,608 Bits M-RAM 589,824 Bits 380 MHz 400 MHz 400 MHz 3 types de mémoire Stratix 1s10 Interface d’une mémoire double port Mémoires M512 Mémoires M4K Mémoires M-RAM Interface M-RAM Bloques DSP Répartition des bloques DSP Schéma d’un bloque DSP PLL, distribution de l’horloge Distribution de l’horloge Programmable I/O I/O Conclusion FPGA Reconfiguration statique Chargement séquentiel Une architecture par application Evolution du FPGA Reconfiguration dynamique Les fonctions peuvent changer en cours de fonctionnement Conclusion Le FPGA a tué l’ASIC Moins performant Mais plus flexible La contrainte actuelle du reconfigurable : Le temps de reconfiguration La conception sur reconfigurable nécessite de nouveaux outils Elle permet également la conception de SoC Flexibilité Vs performances Flexibilité Coût de conception Proc. généraliste µ. Contrôleur DSP ASIP Performances-1 Conclusion Conclusion Bibliographie New 2-Dimensional Partial Dynamic Reconfiguration Techniques for Realtime Adaptive Microelectronic Circuits, M. Hubner et al, IEEE Computer Society Annual Symposium on Emerging VLSI Technologies and Architectures (ISVLSI'06) pp. 97-102 Pourquoi les FPGAs ? Configuration en fonctions à 4 entrées (Virtex I) Fonction à 5 entrées