Les circuits FPGA

Eduardo Sanchez Laboratoire de Systèmes Logiques Ecole Polytechnique Fédérale de Lausanne

Field Programmable Gate Arrays
♦ Matrice de cellules logiques ♦ Chaque cellule est capable de réaliser une fonction, choisie parmi plusieurs possibles: le choix se fait par programmation ♦ Les interconnexions entre les cellules sont programmables également ♦ Deux types, selon la complexité de la cellule:
• granularité fine • granularité grossière

♦ Deux types, selon le mode de programmation:
• RAM • anti-fusibles

Page 2

Eduardo Sanchez Ecole Polytechnique Fédérale de Lausanne

interconnexions programmables fonctions programmables configuration cellule logique cellule I/O Eduardo Sanchez Ecole Polytechnique Fédérale de Lausanne Page 3 .

Méthodologie de synthèse éditeur graphique schéma logique partitionnement placement routage bits de configuration VHDL Page 4 Eduardo Sanchez Ecole Polytechnique Fédérale de Lausanne .

temps pendant lequel le circuit est inutilisable ♦ Plusieurs familles sont disponibles. est programmée à l’aide d’une look-up table (LUT) ♦ Le chargement de la configuration peut prendre plusiers millisecondes. appelée Configurable Logic Block (CLB). XC5200. Spartan. divisées en deux grands groupes: • les familles à grain grossier (XC3000. XC4000.Circuits Xilinx ♦ Chaque cellule logique. Virtex): il est impossible de configurer une partie isolée du circuit • la famille à gran fin XC6200: il est possible d’accéder directement à chaque cellule logique Page 5 Eduardo Sanchez Ecole Polytechnique Fédérale de Lausanne .

♦ CLB de la famille X4000: C1 H1 G4 G3 G2 G1 Logic function EC RD C2 DIN C3 S/R C4 EC S/R control Logic function G' DIN F' G' H' D SD Q2 H' F4 F3 F2 F1 1 G S/R control DIN F' G' H' SD D Logic function F' Q1 EC RD 1 CK F Page 6 Eduardo Sanchez Ecole Polytechnique Fédérale de Lausanne .

une RAM 32x1. on peut obtenir les configurations suivantes: une RAM 16x2. une fonction quelconque à 5 variables ou certaines fonctions à 9 variables ♦ Les look-up tables peuvent également être utilisées comme des RAM. combinatoires ou séquentielles ♦ Il est possible de générer 2 fonctions quelconques à 4 variables.♦ On peut générer deux sorties par CLB. Dans ce cas. deux RAM 16x1 ou une RAM 16x1 et une fonction combinatoire à 4 variables ♦ Les bascules possèdent des signaux set/reset programmables et peuvent être utilisées indépendamment des fonctions logiques de la cellule Page 7 Eduardo Sanchez Ecole Polytechnique Fédérale de Lausanne .

♦ Cellule I/O (IOB) de la famille X4000: SLEW RATE CONTROL PASSIVE PULL-UP/ PULL-DOWN VCC OE D OUT Q FLIPFLOP PAD OUTPUT CLOCK I1 I2 Q D FLIPFLOP/ LATCH INPUT CLOCK DELAY Gnd Page 8 Eduardo Sanchez Ecole Polytechnique Fédérale de Lausanne .

♦ Modes de programmation: • master: ∗ série ∗ parallèle avec adresses croissantes ∗ parallèle avec adresses décroissantes • peripheral: ∗ parallèle asynchrone ∗ parallèle synchrone • slave: série Page 9 Eduardo Sanchez Ecole Polytechnique Fédérale de Lausanne .

La famille Virtex System Gates XCV50 XCV100 XCV150 XCV200 XCV300 XCV400 XCV600 XCV800 XCV1000 57’906 108’904 164’674 236’666 322’970 468’252 661’111 888’439 1’124’022 CLB Array 16x24 20x30 24x36 28x42 32x48 40x60 48x72 56x84 64x96 Logic Cells 1’728 2’700 3’888 5’292 6’912 10’800 15’552 21’168 27’648 Maximum BlockRAM Available I/O Bits 180 180 260 284 316 404 512 512 512 32’768 40’960 49’152 57’344 65’536 81’920 98’304 114’688 131’072 Configuration Bits 559’232 781’248 1’041’128 1’335’872 1’751’840 2’546’080 3’608’000 4’715’684 6’127’772 Page 10 Eduardo Sanchez Ecole Polytechnique Fédérale de Lausanne .

2 ns 6. 5 couches de métal Page 11 Eduardo Sanchez Ecole Polytechnique Fédérale de Lausanne .4 ns 5.22µ CMOS.0 ns 6.Caractéristiques de base ♦ ♦ ♦ ♦ ♦ Cellules logiques et interconnexions hiérarchiques Mémoire interne double port Densités de 50K à 1M de portes Fréquence maximale: 200 MHz Exemples de performance: • • • • additionneur 64 bits: multiplicateur 16x16: décodeur d’adresse 64 bits: multiplexeur 16:1 7.4 ns ♦ Technologie: 0.

Architecture DLL VersaRing B R A M B R A M CLBs IOBs Page 12 Eduardo Sanchez Ecole Polytechnique Fédérale de Lausanne .

mais chacun possède son propre enable clock (EC). Le signal set/reset peut être configuré comme set ou reset. configurables comme bascules ou latches. Ces trois éléments partagent le signal d’horloge et de set/reset.♦ Input/Output Block (IOB) Chaque IOB possède 3 éléments de mémoire. Page 13 Eduardo Sanchez Ecole Polytechnique Fédérale de Lausanne . synchrone ou asynchrone.

PS T TCE D EC L SR Q Weak Keeper PS O OCE D EC L SR Q PAD PAD I PS IQ Q D EC L Vref SR SR CLK ICE Page 14 Eduardo Sanchez Ecole Polytechnique Fédérale de Lausanne Programmable Programmable Delay Delay .

set et reset (synchrone ou asynchrone) Page 15 Eduardo Sanchez Ecole Polytechnique Fédérale de Lausanne . ce qui permet l’implémentation d’un full adder par LC. on peut implémenter une fonction quelconque à 5 entrées ou certaines fonctions jusqu’à 9 variables. On peut également utiliser ces chaînes pour réaliser des fonctions logiques plus larges • L’élément de mémoire du LC peut être configuré comme une bascule ou comme un latch. une logique de carry et un élément de mémoire • Deux LC formennt un slice et deux slices forment un CLB • En combinant les deux LCs d’un slice.♦ Configurable Logic Block (CLB) • L’unité logique de base est la Logic Cell (LC): un générateur de fonctions logiques à 4 variables. on peut implémenter une fonction quelconque à 6 entrées ou certaines jusqu’à 19 variables. avec CLK et EC. • Chaque slice contient une chaîne à carry. En combinant les 4 LCs d’un CLB.

Cout Cout slice LC LC LC LC LC LC LC LC CLB Cin Cin Cout YB Y SP G3 G2 G1 RC BY Cin Page 16 Eduardo Sanchez Ecole Polytechnique Fédérale de Lausanne G4 LUT Carry & Carry & Control Control D EC Q YQ .

Une colonne est formée de plusieurs blocs. Les deux LUTs d’un slice peuvent se combiner pour obtenir une RAM synchrone de dimension: ∗ 16x2 ∗ 32x1 ∗ 16x1 double port • En plus. un par 4 CLB de hauteur (un FPGA avec 64 CLB de hauteur possède donc 16 blocs de mémoire par colonne. 4. il y a deux colonnes de mémoire RAM. appelée BlockSelectRAM. 2. 8 ou 16 bits Page 17 Eduardo Sanchez Ecole Polytechnique Fédérale de Lausanne . pour un total de 32 pour le circuit). avec des signaux de contrôle indépendants par port. Chacun des blocs est une mémoire double port de 4096 bits. La largeur de la mémoire peut être configurée a 1. une LUT peut être utilisée comme registre à décalage • Par circuit.• Chaque LUT (Look-Up Table) peut être utilisée comme une RAM 16x1 synchrone.

tout au long du circuit • Il y a 4 lignes par rangée de CLB. pour transmettre les tri-states (deux par CLB) • Le VersaRing est un réseau additionnel de lignes d’interconnexion entre les IOB et les CLB: cela permet de changer facilement la configuration interne du circuit tout en gardant le même brochage • Il y a 4 signaux globaux d’horloge.♦ Interconnexions • A côté de chaque CLB il y a un GRM (General Routing Matrix): c’est un switch d’interconnexion avec les 4 CLBs adjacents ∗ 24 lignes avec chacun des GRM adjacents ∗ 96 lignes avec les GRM situés 6 CLB plus loin ∗ 12 lignes horizontales et verticales. capable d’arriver sur toutes les entrées d’horloge internes avec un skew minimal. Associé à chaque signal d’horloge global il y a un DLL (Delay-Locked Loop) Page 18 Eduardo Sanchez Ecole Polytechnique Fédérale de Lausanne .

ainsi que l’état de toutes les bascules. les LUTs et les BRAM • boundary-scan Page 19 Eduardo Sanchez Ecole Polytechnique Fédérale de Lausanne . il est possible de lire tout le contenu de la configuration.♦ Modes de configuration • slave-serial • master-serial • selectMAP Dans ce mode.

La famille Virtex-E System Gates XCV50E XCV100E XCV200E XCV300E XCV400E XCV600E XCV1000E XCV1600E XCV2000E XCV2600E XCV3200E CLB Array Logic Cells 1’728 2’700 5’292 6’912 10’800 15’552 27’648 34’992 43’200 57’132 73’008 Maximum Available I/O 176 176 284 316 404 512 660 724 804 804 804 BlockRAM Bits 65’536 81’920 114’688 131’072 163’840 294’912 393’216 589’824 655’360 753’664 851’968 Configuration Bits 630’048 836’840 1’442’106 1’875’648 2’693’440 3’961’632 6’587’520 8’308’992 10’159’648 - 57’906 16x24 95’468 20x30 214’640 28x42 411’955 32x48 569’952 48x60 985’882 48x72 1’569’178 64x96 2’188’742 72x108 2’541’952 80x120 3’263’755 92x138 4’074’387 104x156 Page 20 Eduardo Sanchez Ecole Polytechnique Fédérale de Lausanne .

1.5 ns 4.1 ns 5.3 ns 5.6 ns ♦ Mémoire interne double port plus rapide ♦ Densités de 58K à 4M de portes Page 21 Eduardo Sanchez Ecole Polytechnique Fédérale de Lausanne .Caractéristiques de base ♦ Technologie: 0. 6 couches de métal.18µ CMOS.8 V ♦ 30% plus rapide que la famille Virtex ♦ Exemples de performance: • • • • additionneur 64 bits: multiplicateur 16x16: décodeur d’adresse 64 bits: multiplexeur 16:1 6.

à l’exception du milieu du circuit Eduardo Sanchez Ecole Polytechnique Fédérale de Lausanne Page 22 . mais il y plus de colonnes de mémoire: une chaque 12 colonnes de CLBs.Architecture DLL DLL DLL DLL VersaRing I O B B B B B C C C C R R R R L L L L A A A A B B B B M M M M I O B DLL DLL DLL DLL ♦ Les blocs de mémoire interne sont toujours de 4096 bits. organisés en colonnes.

18µ Virtex 0.13 µ 1998 1999 2000 2001 2002 2003 2004 Page 23 Eduardo Sanchez Ecole Polytechnique Fédérale de Lausanne .50M gates 50M Density (system gates) 10M 4M 2M 1M 500K Virtex V1000 Virtex 0.15 µ Virtex 0.

Les circuits intégrés sur mesure Full-custom Semi-custom Masked gate array (MGA) Programmable PLD CPLD FPGA Cell-based (CBIC) (standard cells) Page 24 Eduardo Sanchez Ecole Polytechnique Fédérale de Lausanne .

1 10 CBIC 6 1.08 8 inches K$ Kgates Kgates/cm2 % cm2 defects/cm2 % $ cents $ Page 25 Eduardo Sanchez Ecole Polytechnique Fédérale de Lausanne .4 10 10 60 1.1 65 25 0.wafer size wafer cost design density utilization die size die/wafer defect density yield die cost price/gate part cost FPGA 6 1.3 10 20 85 0.4 365 1 80 5 0.9 72 7 0.39 39 MGA 6 1.5 10 25 100 0.59 248 0.67 88 1.

000 10 100 2000 1000 10.000 100.000 $10.000 20.000 number of parts or volume 4000 Page 26 Eduardo Sanchez Ecole Polytechnique Fédérale de Lausanne .000 FPGA MGA CBIC $100.cost of parts $1’000.

Page 27 Eduardo Sanchez Ecole Polytechnique Fédérale de Lausanne .

Field Programmable Interconnection Circuits transistor de passage cellule de SRAM connexion permanente buffers programmables pins I/O Eduardo Sanchez Ecole Polytechnique Fédérale de Lausanne Page 28 .

Sign up to vote on this title
UsefulNot useful