La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

FPGAs (Field Programmable Gate Array)

Présentations similaires


Présentation au sujet: "FPGAs (Field Programmable Gate Array)"— Transcription de la présentation:

1 FPGAs (Field Programmable Gate Array)
Evolution des architectures

2 Plan Les «anciens» FPGA → Famille XC4000
Virtex → Les bancs mémoires internes apparaissent. VirtexII → Les multiplieurs sont physiquement implantés dans l’architecture. VirtexII-Pro → Intégration de microprocesseurs RISC. 13/05/2019

3 1. Les «anciens» FPGA → Famille XC4000
Entrées/Sorties (IOB: Input Output Block) Blocs logiques (CLB: Configurable Logic Block) IOB: Permet l’interfaçage entre les broches du circuit et les signaux internes. CLB: Elément fonctionnel de base permettant la construction du système logique de l’utilisateur. Buffer d’horloge (fréquence d’horloge jusqu’à 80Mhz) 13/05/2019

4 Schéma d’un CLB sur FPGA XC4000
Mémoire distribuée disponible dans 1 CLB=32bits Un CLB est constitué de : 2 générateurs de fonctions logiques (F’ et G’) à 4 entrées indépendantes (F1,…,F4 pour F’ et G1,…,G4 pour G’) et une sortie chacun(F’ et G’). Ces générateurs permettent donc d’implanter n’importe quelle fonction booléenne à 4 entrées. Ces générateurs de fonctions sont implanter sous forme de LUTs. Le délai de propagation du signal (ou temps de réponse) est alors indépendant de la fonction logique implémentée. 1 3ème générateur de fonctions (H’) à 3 entrées. 2 de ses entrées peuvent être les sorties des générateurs de fonctions F’ et G’. D’une autre façon, 1 ou 2 de ses entrées peuvent provenir de l’extérieur du CLB (H0, H2). La 3eme entrée de ce générateur de fonction H’ doit obligatoirement provenir de l’extérieur du CLB (H1). Les signaux F’,G’ et H’ peuvent sortir directement du CLB. F’ ou H’ peuvent être connectés à la sortie X. De même, G’ ou H’ peuvent être connectés à la sortie Y. 2 éléments de stockages qui peuvent être utilisés pour mémoriser les résultas des générateurs de fonctions F et G. Cependant, ces éléments de stockage et les générateurs de fonctions peuvent être utilisés indépendamment. DIN peut être utilisé comme une entrée directe de l’un des deux éléments de stockage. Ces éléments de stockage peuvent être configurés en flips-flops (de type bascule D) ou en latches. Au total, un CLB possède 13 entrées et 4 sorties qui sont toutes reliées aux ressources d’interconnexion du FPGA. 13/05/2019

5 Ressources matérielles
Logic Cells = Total CLBs×2.375 13/05/2019

6 2. Virtex → bancs mémoires internes
Delay-Locked Loop Block RAM Evolution du Virtex: nouveau design du CLB. intégration de bancs mémoire (BRAMs). nouvelle gestion des signaux d’horloge (DLLs). amélioration des capacités de routage des systèmes (Versaring). Le FPGA Virtex est composé de: IOBs CLBs 2 BRAMs: Blocks RAM. ATTENTION, les BRAMs indiquent les zones ou se trouvent les bancs mémoires mais n’indiquent pas leur nombre. Versaring: ressources dédiées au routage du système logique permettant de réaliser plus efficacement l’interface entre les signaux internes et les IOBs (allocation des PINs) 4 DLLs: Delay Locked Loop. Ressources d’interconnexion 13/05/2019

7 Schéma d’un CLB sur FPGA Virtex
LC (Logic Cell) CLB Le bloc de base dans un CLB d’un Virtex est la « Logic Cell » (LC). Une LC contient 1 générateur de fonction à 4 entrées, une « carry logic »(littéralement une logique de retenue) et un élément de stockage. La sortie du générateur de fonction de chaque LC va à la fois à la sortie du CLB et à l’entrée de la flip-flop. Chaque CLB du Virtex contient 4 LCs organisées en 2 « SLICES ». En plus de ces 4 LCs, le CLB contient de la logique qui combine les générateurs de fonctions de 5 ou 6 entrées. Par conséquent, lorsque nous estimons le nombre de porte logique de base contenues dans un composant donné, nous considérons que chaque CLB équivaut à 4.5 LCs. SLICE 13/05/2019

8 Schéma détaillé d’un SLICE
Mémoire distribuée disponible dans 1 SLICE=32bits Les sorties des 2 générateurs de fonctions des 2 SLICES sont multiplexées par F5. De même, le multiplexeur F6 combine les 4 générateurs de fonctions en sélectionnant une des sorties du multiplexeur F5. De plus, de la logique dédiée est intégrée afin de réaliser des fonctions arithmétiques rapide. La porte XOR dans chaque LC permet d’implanter un additionneur 1-bit complet dans ce LC. La porte AND permet une implantation plus efficace des multiplieurs. 1 CLB=2 SLICES=64 bits de mémoire distribuée disponible!!! 13/05/2019

9 Bancs mémoire internes
1 Block RAM=banc mémoire synchrone double port de 4096 bits. Les 2 ports sont contrôlés par des signaux indépendants. La largeur des bus est configurable. Chaque Block RAM possède des ressources de routage dédiées lui permettant une interface efficace avec les CLBs et les autres Blocks RAM. 13/05/2019

10 Delay-Locked Loop 4 DLLs sur chaque Virtex.
ce composant élimine tout décalage de phase de l’horloge lié aux différents temps de propagation des signaux suivants leur chemin → tous les signaux d’horloges sont synchrones!!! (précision 10ps) fréquence de l’horloge jusqu’à 160Mhz. multiples sorties sur chaque DLL. 1. multiplieur par 2 de la fréquence d’horloge (sortie déphasée de 90° disponible). 2. diviseur de fréquence d’horloge. 3. déphaseur d’horloge intégré. 4. sortie miroir (locked). PLL (Phase-Locked Loop) lié à la DLL 13/05/2019

11 Capacité de routage améliorée
1 Versablock= interconnexion entre les LUTs, les flip-flops et les GRM (General Routing Matrix). connexion « feedback » interne à chaque CLB, ce qui permet de chaîner les LUTs de ce CLB en minimisant le temps de propagation des signaux. Les CLBs adjacents (horizontalement) peuvent être directement connectés, ce qui évite le délai de propagation lié au GRM. 13/05/2019

12 Ressources matérielles Virtex
Max. Avail. User I/O Speed Grades I/O Standards Supported Delay Locked Loops (DLLs) Max. Distributed RAM Bits Max. Block RAM Bits (1 Block=4096Bits) System Gates Logic Cells (4.5×nb.CLB) CLB Array (Row x Col.) 316 260 180 4, 5, 6 17 4 98,304 55,296 38,400 24,576 65,536 49,152 40,960 32,768 322,970 164,674 108,904 57,906 6,912 3,888 2,700 1,728 32 x 48 24 x 36 20 x 30 16 x 24 512 404 393,216 221,184 153,600 131,072 81,920 1,124,022 661,111 468,252 27,648 15,552 10,800 64 x 96 48 x 72 40 x 60 Feature/Product  XCV300 XCV150 XCV100 XCV50 XCV1000 XCV600 XCV400 13/05/2019

13 Evolution Virtex-E Virtex Virtex-E 13/05/2019
Le Virtex-E embarque plus de mémoire que la série Virtex de base. Les bancs sont alors disposés en colonnes alternativement avec des colonnes de CLBs. 13/05/2019

14 Ressources matérielles Virtex-E
Max. Avail. User I/O Speed Grades I/O Standards Supported Delay Locked Loops (DLLs) Max. Distributed RAM Bits Max. Block RAM Bits (1 Block=4096Bits) System Gates Logic Cells (4.5×nb.CLB) CLB Array (Row x Col.) Feature/Product  804 6, 7, 8  20  1,038,336 851,968  4,074,387 73,008 104x156  XCV3200E 176  24,576  65,536  71,693  1,728  16 x 24  XCV50E 284  75,264  114,688  306,393  5,292  28 x 42  XCV200E 316 98,304 131,072 411,955 6,912  32x48 XCV300E 512 221,184 294,912 985,882 15,552 48x72 XCV600E 660 393,216 1,569,178 27,648  64x96 XCV1000E 614,400  655,360 2,541,952  43,200 80x120  XCV2000E 13/05/2019

15 3. Virtex II → multiplieurs implantés dans l’architecture.
Evolution du VirtexII: nouveau design du CLB. bancs mémoire de plus grande taille. multiplieurs intégrés. nouvelle gestion des horloges(DCM: Digital Clock Manager). capacité de routage améliorée. cryptage du « bitstream » → sécurisation du système. 13/05/2019

16 Layout d’un Virtex II 13/05/2019

17 Schéma d’un CLB sur FPGA VirtexII
Contrôle de l’accès au GRM (General Routing Matrix) 1 CLB=4 SLICES 13/05/2019

18 Schéma détaillé d’un demi-SLICE
1 CLB=4 SLICES=4×32=128 bit 13/05/2019

19 Exemples de configurations
13/05/2019

20 Ram en dual port 13/05/2019

21 Utilisation en registre à décalage
13/05/2019

22 Fast Carry Logic Additions et soustractions plus rapides à l’aide d’une porte XOR et d’un multiplexeur dédiés (un additionneur 2 bits complet dans un seul slice) Une porte AND dédiée permet l’implantation de multiplieurs 13/05/2019

23 Sommes de produits Une porte OR (ORCY) dédiée permet de cascader horizontalement les CLB pour implanter des sommes de produits 13/05/2019

24 Buffers trois états Chaque CLB contient 2 buffers 3 états.
Chacun des 4 slices peut accéder aux buffers par l’intermédiaire d’une matrice d’interconnexion Utile pour concevoir des bus 13/05/2019

25 Bancs mémoire internes
Dual-Port Single-Port Dual-Port Single-Port 13/05/2019

26 Vues de différentes configurations des bancs mémoire.
13/05/2019

27 Multiplieurs 18-bit×18-bit
Association Block RAM↔multiplieur : L’utilisation du BRAM et du multiplieur associés à l’accumulateur d’une LUT permet l’implantation d’un multiplieur accumulateur (typiquement utilisé pour la réalisation de filtres digitaux FIR et IIR) 13/05/2019

28 Vues de différentes configurations des multiplieurs.
13/05/2019

29 Digital Clock Manager 13/05/2019
Nous retrouvons toutes les fonctionnalités de la DLL du Virtex (multiplieur/diviseur de fréquences, déphasages). De plus, le DCM permet la synthèse de fréquences. 13/05/2019

30 Capacité de routage améliorée
Technologies d’interconnexion Ressources de routage 13/05/2019

31 Ressources matérielles VirtexII
Max. Avail. User I/Os 18 x 18 Multipliers Digital Clock Managers Max Block RAM (Kbits) System Gates Logic Cells CLB Array (Row x col.) Feature/Product XC2V250 XC2V40 XC2V1500 XC2v500 XC2V2000 200 88 24 4 8 432 72 250k 40k 3456 576 24x16 8x8 528 264 48 32 864 1.5 M 500k 17280 6912 48x40 32x24 624 56 1008 2M 24192 56x48 XC2V4000 912 120 12 2160 4M 51840 80x72 1108 168 3024 8M 104882 112x104 XC2V8000 13/05/2019

32 Evolution du Virtex au VirtexII
13/05/2019

33 4. VirtexII Pro : architecture FPGA/CPU
Le VirtexII Pro est dessiné sur la base du VirtexII. De ce fait, les CLBs,mémoires et multiplieurs ne changent pas. Evolution du VirtexII Pro : interfaces de communication rapides (MGTs : Multi-Gigabit Transceiver). implantation de processeurs RISC IBM PowerPC405-D5. 13/05/2019

34 Interfaces standards rapides (MGT)
13/05/2019

35 Le bloc processeur intégré
Le Bloc processeur contient : le CPU de type RISC IBM PowerPC 405-D5. les contrôleurs et interfaces des bancs mémoires (OCM controller= On Chip Memory controller). la logique de contrôle. les interfaces entre le CPU et le FPGA. 13/05/2019

36 Architecture du processeur
Le processeur contient : une unité de mémoire cache. une unité de contrôle de la mémoire (MMU : Memory Management Unit). une unité FETCH/DECODE. une unité d’exécution. une unité de gestion des horloges et de gestion du débogage. 13/05/2019

37 Ressources matérielles VirtexII Pro
852 564 396 348 204 8 4 216 88 44 28 12 16 2 1 3,888 1,584 792 504 50,832 20,880 11,088 6,768 3,168 22,592 9,280 4,928 3,008 1,408 XC2VP50 XC2VP20 XC2VP7 XC2VP4 XC2VP2 Max Available User I/O Digital Clock Management Blocks 18x18 Multipliers Rocket I/O Multi-Gigabit Transceivers PowerPC Processors Block RAM (Kbits) Logic Cells CLB Slices Feature/Product 13/05/2019

38 Virtex 4 Nouvelles caractéristiques Xesium clock technology
XtremDSP Slice Support des interfaces mémoires rapides (DDR, DDR2, etc) SelectIO technology : de 1.5 à 3.3 V RocketIO de 622 Mb/s à 11.1Gb/s Ethernet Media Access Controller 13/05/2019

39 Virtex 4 13/05/2019

40 Virtex 4 13/05/2019

41 Spartan 3 : bas coût 13/05/2019

42 Futur proche : ASMBL: Revolutionary Platform FPGA Architecture
13/05/2019

43 ASMBL 13/05/2019

44 Ex :Virtex 4 13/05/2019

45 Les outils actuels ISE (environnement complet)
Mentor graphics, Leornado Sysnopsis Abel Core Generator IP center (PCI, FFT, Microprocesseur, interconnexions, etc) 13/05/2019

46 D’autres fabricants… Altera Stratix Cyclone Atmel AT40K 13/05/2019

47 Stratix – architecture générale
1 LAB = 10 LE (logic elements) 13/05/2019

48 Stratix : Logic Element
13/05/2019

49 Stratix – DSP blocks 13/05/2019

50 Atmel AT40K 13/05/2019

51 Atmel – cellule élémentaire
2 LUT à 3 entrées 13/05/2019

52 Conclusion DEMAIN…??? Plus de ressources matérielles :
Plus de ressources fonctionnelles (CLBs). Plus de mémoires intégrées. Une efficacité de routage encore améliorée. Un interfaçage avec l’extérieur toujours plus rapide. Des ressources « microprocesseur » toujours plus nombreuses (processeurs implantés plus puissants, contenant plus de mémoire interne). Poursuite de l’intégration de modules de différentes natures (par exemple des capteurs divers : imageurs, micros,…..) pour réduire au minimum le contrôle d’interfaces → spécialisation des architectures dédiées à des applications spécifiques??? 13/05/2019


Télécharger ppt "FPGAs (Field Programmable Gate Array)"

Présentations similaires


Annonces Google