Les FPGAs Emmanuel Boutillon Cours réalisé à partir de : Nathalie Julien, cours IUP EEA 1999. Jean-Luc Danger, ENST Paris Cours de l’ISEP disponible sur le WEB Pierre Bomel -1- Emmanuel Boutillon PLAN å Comment et pourquoi faire de la logique programmable ? Les technologies de personnalisation ê PAL, EPLD et FPGA Spécificité du développement des CLPs Situation présente et évolution. -2- -1- Emmanuel Boutillon Position du problème Logiciel Matériel circuits personnalisés ASICs circuits existants microprocesseurs processeurs DSPs mémoires périphériques circuits logiques programmables FPGA EPLD -3- Emmanuel Boutillon Position du problème L’intérêt des CLP se justifie (depuis 30 ans) par : Le coûts très important des ASICs Le temps de développement d ’un ASIC Les performances faibles du logiciel La non flexibilité des solutions ASIC « Démocratisation » des FPGA -4- -2- Emmanuel Boutillon Coût CLP/ASIC NRE Coût à la pièce le seuil augmente si le nombre de portes baisse seuil mini = 1000 pièces ASIC CLP seuil Nombre de pièces -5- Emmanuel Boutillon Temps de conception ASIC spec Code+synth Placement Routage fab spec Code+synth P R Time to market spec Code FPGA µP + temps logiciel -6- -3- Emmanuel Boutillon Les performances f fréquence de traitement circuit personnalisé : traitement parallèle 80 70 60 F clock 50 40 processeur : traitement séquentiel 30 20 fclock nb op/cycle f= 10 1 2 3 4 8 12 16 20 24 28 32 36 40 44 48 52 Nb opérations/cycle -7- Emmanuel Boutillon Démocratisation de la conception T0 Tfin Temps Produit SIC 3 4 Val ida tio pem elop Dé v Porte Val ida tio Spécifications nA nC LP Idée RTL log10(complexité) 5 7 ent Affaire de Spécialistes avec un équipement lourd Transistor Masque 8 10 Fonderie -8- -4- Emmanuel Boutillon Intérêts propres aux CLPs ● prototypage ➯ ➯ ● conception rapide de démonstrateurs autonomie (pas de fondeur) Reprogrammation ➯ maintenance in situ -9- Emmanuel Boutillon Comment faire des CLP ? Un circuit classique contient : - des portes logiques ; - des connections entre les portes logiques ; - des éléments de mémorisation (registre et/ou mémoire) ; - des entrées-sorties. - une (ou des) horloges - une structure hiérarchique Le CLP doit donc avoir les mêmes fonctionnalités, avec la notion de « programmabilité ». -10- -5- Emmanuel Boutillon Fonction logique simple : Réseau logique Toute fonction logique booléenne peut s'exprimer sous forme canonique exemple : S = A2A1A0 + A2A1A0 + A2A1A0 + A2A1A0 minterme ou terme produit Matrice ET produits des entrées Ai Matrice OU somme des produits Sj = Réseau logique programmable -11- Emmanuel Boutillon Mémoire fonction logique 2 entrées : mémoire 4 mots de 1 bit : f(A1,A0 ) = f(0,0)A1A0 + f(0,1)A1A0 + f(1,0)A1A0 +f(1,1)A1A0 d= d0A1A0 + d1A1A0 + d2A1A0 + d3A1A0 A0 A1 adresse=entrées F(A1,A0)=d= A1A0 + A1A0 d0=0 d2=1 d1=1 d3=0 liaison non programmable liaison programmable -12- -6- Emmanuel Boutillon Mémoire mémoire 16 mots de 2 bits => 2 fonctions logiques de 4 entrées A0 A1 A2 A3 matrice ET figée adresse=entrées matrice S0 OU S1 programmable liaison non programmable liaison programmable -13- Emmanuel Boutillon LOOK UP TABLE (LUT) Une mémoire contient la table de vérité d ’une fonction logique : Ex : Fonction F(a,b,c) = a xor b xor c 000 001 010 011 100 101 110 111 0 1 0 1 0 1 0 1 F(a,b,c) Adresse (a,b,c) SRAM => Mode de lecture différent du résultat -14- -7- Emmanuel Boutillon PAL Programmable Array Logic A B C D matrice ET programmable S0 S1 S2 S3 matrice OU figée liaison non programmable liaison programmable somme de produits = Macrocellule PLD : 4 fonctions de 12 mintermes (max) de 3 variables Au déparet #70-85 : programmation « à la main » (fichier de fusibles) -15- Emmanuel Boutillon cellule logique à MUX l utilisée pour la technologie ANTIFUSIBLE équivaut à une LUT cablée e0 mux e1 sortie e2 e3 a b sortie = abe0 ou abe1 ou abe2 ou abe3 intérêt : surface réduite cellule grain fin -16- -8- Emmanuel Boutillon comparatif des réseaux programmables type structure avantage inconvénient ET MEMOIRE OU ET PAL •Mémoire conséquente si nombreuses entrées toutes les fonctions => 22n possibles • grand nombre d'entrées • économique Nombre de mintermes limité OU Limité à peu d ’entrées Taille très faible MUX -17- Emmanuel Boutillon Programmation des interconnections Par connexion ou non de deux fils F1 F1 F2 F2 Par l’utilisation de multiplexeur F1’ ! F1 Le nombre de connexions réalisables est limité à ce qui existe... F2 -18- -9- Emmanuel Boutillon Programmation des registres et E/S D Registre Q clk rst Possibilité de programmer le PAD en mode entrée ou sortie. Possibilité d ’utiliser ou non le registre -19- Emmanuel Boutillon Système d’entrée sortie complet OE OUT IN DFF broche DFF la broche peut être : entrée simple sortie simple bidir entrée avec DFF (structure FPGA) sortie avec DFF (structure FPGA) inutilisée pour faciliter le routage (structure PAL) avec logique JTAG -20- - 10- Emmanuel Boutillon Gestion des horloges Mise en place d ’un arbre de d ’horloge pour effectuer de la logique synchrone. Principe : système asservi en phase CLK PLL CLK_OUT Õ compensation le "skew" d’horloge Õ multiplication de la fréquence si diviseur dans la boucle de réaction -21- Emmanuel Boutillon Gestion de la complexité Pour les CLP complexes, il est possible de définir des niveaux de hiérarchie du matériel. => Au niveau des interconnections => Au niveau du regroupement de fonctions logiques Il est aussi possible de diviser le circuit en fonctionnalités différentes : => Zone de mémoire RAM => Zone de CLP => Zone spécialisée -22- - 11- Emmanuel Boutillon Principes du CLP programmation ou configuration Entrées / Sorties Plan de programmation : interconnexion Entrées / Sorties Entrées / Sorties Plan actif : cellules logiques Entrées/Sorties technologies de programmation : - EEPROM - SRAM - antifusible -23- architectures du plan actif : - PAL hiérarchique (EPLD) - gate-array (FPGA) - mixtes (CPLD ALTERAs) Emmanuel Boutillon PLAN å Comment et pourquoi faire de la logique programmable ? Les technologies de personnalisation ê PAL, EPLD et FPGA Spécificité du développement des CLPs Situation présente et évolution. -24- - 12- Emmanuel Boutillon Les composants logiques programmables : Les technologies de personnalisation Le circuit est personnalisé par création/destruction de connections sur la structure prédéfinie. ➯ Fusibles ➯ Anti-fusibles ➯ UV PROM (obsolète) EEPROM ➯ SRAM ➯ Métalisation ➯ Comparaison des différents techniques. -25- Emmanuel Boutillon Les composants logiques programmables : Technologie de personnalisation : Fusibles métalliques ou Si Lignes métalliques : interconnexions Intact «Programmé» Problème de l’électro-migration Même structure en ligne polysilicium Ou Transistor «grillable» joue le rôle de fusible -26- - 13- Emmanuel Boutillon Les composants logiques programmables : Technologie de personnalisation : Antifusibles -27- Emmanuel Boutillon Les composants logiques programmables : Technologie de personnalisation : UV-EPROM / EEPROM Non-volatile SAMOS : -28Stacked MOS - 14- Emmanuel Boutillon Les composants logiques programmables : Technologie de personnalisation : SRAM Besoin d’une mémoire externe d’initialisation : Processeur associé ou EEPROM série -29- Emmanuel Boutillon Prédiffusés (Gate Array) ● Circuits génériques au «catalogue» (ressources sans les interconnexions finales) ● ● Développement / production rapides Pas d ’utilisation optimale du Si Les ressources peuvent être uniques (par exemple des NAND) ou plus diversifiées Le routage se fait «dessus» : sea of gate ou «à coté» : row-based Les outils de CAO vont permettre de dériver le dessin du ou des masques de connexions en tenant compte du schéma et du circuit choisi Exemple de métalisation pour obtenir un registre. -30- - 15- Emmanuel Boutillon Comparaison Critères pour les interconnexions : rapidité de propagation à travers l ’interrupteur (produit résistance - capacité parasite) densité possible des interconnexions (surface de la cellule) facilité d ’utilisation (ISP, support, PROM de configuration) maintien de la configuration (volatile) reprogrammablilité (OTP) Type d’interconnexion EPROM Antifusible SRAM Rapidité - + - Densité - + -- Facilité + - + Reprogrammabilité + non ++ -31- Emmanuel Boutillon PLAN å Comment et pourquoi faire de la logique programmable ? Les technologies de personnalisation ê PAL, EPLD et FPGA Spécificité du développement des CLPs Situation présente et évolution. -32- - 16- Emmanuel Boutillon Taxinomie des CLPs (PLD) Circuits logiques programmable (Programmable Logic Device) PLD PAL EPLD-CPLD FPGA GAL SRAM UVPROM ! EECMOS antifuse isp Les noms peuvent changer selon l‘auteur, le fondeur ... -33- Emmanuel Boutillon Vocabulaire (1) a. PAL, GAL ( Programmable Array Logic, Généric Array Logic). b. EPLD-CPLD (Erasable PLD ou Complex PLD) Les EPLD sont programmables électriquement et effaçables aux UV ; Les EEPLD sont effaçables électriquement Principe similaire aux PAL mais avec interconnexions réalisées en techno UVPROM On trouve également les pLSI et ispLSI (in situ programmable) c. FPGA (Field Programmable Gate Array) C ’est un ensemble de blocs logiques élémentaires que l ’utilisateur peut interconnecter pour réaliser les fonctions logiques de son choix La densité des portes est importante et sans cesse en évolution FPGA à SRAM ou LCA Logic Cell Array (1985 par Xilinx) FPGA à antifusibles (1990 Actel) non effaçables -34- - 17- Emmanuel Boutillon Vocabulaire (2) ASIC Application Specific Integrated Circuit - Circuit intégré conçu à la demande CPLD Complex Programmable Logic Device - Réseau logique programmable complexe DRAM Dynamic Random Access Memory - Mémoire dynamique à accès aléatoire DSP Digital Signal Processor - Processeur orienté vers le traitement du signal EDIF Electronic Design Interchange Format EEPLD Electrically Erasable Programmable Logic Device - PLD effaçable électriquement FPGA Field Programmable Gate Array - Réseau de portes programmables GAL Generic Array Logic - PAL générique ISP In-System (In Situ) Programmable - Composant programmable sur carte JEDEC Joint Electronic Device Engineering Council - Organisme de normalisation JTAG Joint Test Action Group - Bus de test des composants LCA Logic Cell Array (Xilinx) - Réseau de cellules logiques LUT Look-Up Table MAX Multiple Array Matrix - Megapals d'Altera NOVRAM ou NVRAM Non Volatile Random Access Memory - RAM non volatile OTP One Time Programmable - Programmable une seule fois PAL Programmable Array Logic - Réseau logique programmable PGA Programmable Gate Array - Réseau de portes programmable PLA Programmable Logic Array - Réseau logique programmable PLD Programmable Logic Device - Dispositif logique programmable, EPLD : Erasable PLD : PLD Effacable ROM Read Only Memory, Mémoire à lecture seule, PROM : Programmable ROM,. EPROM: Erasable : Effacable, EEPROM : Electricaly EPROM : Mémoire à lecture seule, électriquement effaçable. RAM Random Access Memory - Mémoire à accès aléatoire SDF Standard Delay File SOG Sea-of-Gates - Mer de portes : réseau actif logique prédiffusé SRAM Static Random Access Memory - Mémoire statique à accès aléatoire TTL Transistor Transistor Logic - Logique transistor-transistor VHDL VHSIC Hardware Description Language -35-- Langage de description matérielle VHSIC Emmanuel Boutillon Nomenclature des PALs ● Convention de dénomination PAL II AB 00 (CE) C ZZ DEF ➯ ● PAL (nbr d ’entrées) (structure de sortie) (nbr sorties) (CMOS Eraseble) (conso.) (vitesse) (boitier) Types de sorties Type Structure de sortie H combinatoire à logique positive L combinatoire à logique négative P combinatoire à polarité programmable C R combinatoire à logique complémentaire logique à registre RA logique asynchrone à registre RP logique à registre programmable V logique à macrocellules (versatiles) -36- - 18- Emmanuel Boutillon Principe des PALdes PALs Architecture générale Possibilité de rebouclage Vedette : PAL22V10CE -37- Programmable array logic 22 I/O - 10 Versatile Outputs CMOS ERASABLE Emmanuel Boutillon PAL22V10CE : sortie Versatile Choix de la polarité de la logique Programmation entrée sortie Rebouclage programmable. -38- - 19- Emmanuel Boutillon PAL22V10 -39- Emmanuel Boutillon Architecture PAL hiérarchique (EPLD) • Ensemble de blocs logiques LAB (Logic Array Block) composés de macrocellules • Une matrice d'interconnexion PIA (Programmable Interconnect Array) • Chaque E/S est liée à une macrocellule PIA macrocellule macrocellule macrocellule E/S LAB ... E/S E/S LAB ... LAB E/S E/S E/S E/S ... E/S LAB matrice d’interconnexion E/S LAB E/S E/S E/S - 20- E/S E/S -40- Emmanuel Boutillon Routage d’un EPLD E/S LAB LAB LAB LAB routage systématisé ➯ modèle électrique et délais prédictibles ➯ placement non critique (temps de compilation faible ➯ -41- Emmanuel Boutillon Exemple : EP610/1810 (1) -42- - 21- Emmanuel Boutillon Exemple (ALTERA) : P610/1810 (2) -43- Emmanuel Boutillon MAX9000 (1) -44- - 22- Emmanuel Boutillon PLD / CPLD / FPGA : L’offre ALTERA : MAX9000 (2) -45- Emmanuel Boutillon MAX9000 (3) -46- - 23- Emmanuel Boutillon • Ensemble de cellules logiques disposées en matrice et séparées par des canaux de routage organisés en Rangées/Colonnes. A chaque intersection se trouve un commutateur. • Le temps de propagation dépend du routage choisi pour réaliser l'interconnexion. E/S E/S E/S E/S E/S E/S E/S E/S E/S Architecture gate-array (FPGA) E/S E/S E/S E/S E/S E/S E/S E/S E/S E/S E/S E/S E/S E/S E/S canaux de routage E/S E/S E/S E/S E/S E/S E/S E/S E/S E/S E/S E/S cellule logique -47- Emmanuel Boutillon routage dans un FPGA commutateur rangée pour connexions globales = lignes longues cellule logique cellule logique rangée pour connexions locales =segments colonne pour connexions locales exemple : XC4000 XILINX -48- - 24- Emmanuel Boutillon routage dans un FPGA A A B B grande adaptabilité du routage -49- Emmanuel Boutillon routage dans un FPGA : FLEX ALTERA routage local dans le bloc A A AA B B cellules dans le même bloc cellules dans blocs différents : 1 ligne rangée et colonne occupée 1 commutation max => temps de propagation + déterministe besoin de + de lignes -50- - 25- Emmanuel Boutillon FLEX10K(1) -51- Emmanuel Boutillon FLEX10K(2) -52- - 26- Emmanuel Boutillon FLEX10K(3) -53- Emmanuel Boutillon FLEX10K(4) -54- - 27- Emmanuel Boutillon FLEX10K(5) Mode normal Mode arithmétique -55- Emmanuel Boutillon FLEX10K(6) -56- - 28- Emmanuel Boutillon Intérêts des deux architectures type FPGA type EPLD performances rapidité de compilation granularité fine flexibilité prédictibilité des temps de propagation grand nombre de registres -57- Emmanuel Boutillon Applications EPLD/FPGA EPLD FPGA • traitement en pipeline • machine à états complexe 1 2 5 4 3 • arithmétique • machine à état codée "hot line" • applications à haut niveau d'intégration • nombre registres et E/S • machine à états performante • intégration de circuits logiques et PALs • temps de calcul pin à pin prédictible. -58- - 29- Emmanuel Boutillon APEX20K(1) -59- Emmanuel Boutillon APEX20K(2) -60- - 30- Emmanuel Boutillon XILINX : Famille VIRTEX DLL Technology for High-Performance Clock & I/O 4th Generation Logic/Memory/Routing Fabric Select I/O Technology CL '// IOB IOB '// CL I O B B R A M &/% &/% B R A M I O B I O B B R A M &/% &/% B R A M I O B CL '// IOB IOB Ultra-High Performance Synchronous Dual-Port SRAM '// CL SelectMAP Advanced Configuration Technology Thermal Management -61- Emmanuel Boutillon PLAN å Comment et pourquoi faire de la logique programmable ? Les technologies de personnalisation ê PAL, EPLD et FPGA Comment choisir un FPGA Situation présente et évolution. -62- - 31- Emmanuel Boutillon Comment choisir un FPGA ? Caractéristiques techniques du FPGA - Performances (complexité, vitesse, conso.) - Nombre E/S et interface - Tension d’alimentation - Boitié Qualité des softs associés au FPGA (CAO et IP) Technique de programmation (Field/InSitu) Technique de debug et de test Critères économiques - prix, disponibilité - pérennité et flexibilité de la famille. -63- Emmanuel Boutillon CAO pour conception de CLP Très similaires à celle des circuits VLSI : ∆: Synthèse et P/R spécifique : spécifications • nombre de cellules figé par circuit • 1 cellule = entre 1 et 20 portes 2 entrées Autonomie : VERIFICATION SAISIE SYNTHESE PLACEMENT ROUTAGE réalisation= téléchargement de la liste d’équipotentielles dans le circuit PROGRAMMATION CONFIGURATION Technologie CLP PC et/ou station de travail -64- - 32- Emmanuel Boutillon placement routage Chaque vendeur de CLP fournit son outil de P/R dédié "Netlist " après synthèse partitionnement circuits multiples vers programmeur floorplanning adder placement routage control CLP glue FIFO timing + CLP Bloc cellule -65- équipotentielle Emmanuel Boutillon Importance de la qualité des softs Les FPGAs deviennent très complexes et très flexibles. => L’optimisation du P/R devient très complexe => Logiciels performants Hors les logiciels de CAO pour les CLPs manquent de maturités : => très lents (24 h pour un placement routage) => peu stables (machine à rebouter) => peu efficaces et non déterministes : a) temps de propagation trop long b) en échec (pas de solution trouvée). =>il faut alors guider « à la main » le placement -66- - 33- Emmanuel Boutillon Synthèse sur FPGA Pour optimiser la synthèse, il faut la guider : => Directive global de compilation : Effort d ’optimisation, critères de synthèse (Vitesse vs Surface, Fan out) => Directive locale de compilation dans le texte -- « mot clef » « directive compilation » => Directive hiérarchique de compilation tel bloc, telle méthode (insertion libre de registres, méthode A). => Utilisation d ’opérateurs « optimisés par le fondeur » appels de macro-blocs additionneurs, multiplieurs,... paramétrables PROBLEME : Le code VHDL devient spécifique au FPGA -67- Emmanuel Boutillon Placement sur FPGA Problème NP-complet qui conditionne : - la possibilité de trouver une solution de routage - le chemin critique Solution : - Indiquer « à la main » le placement des blocs dans le floor plan. - Placement routage incrémental Assignation manuelle ou automatique des PAD E/S sur les entrées/sorties du composant VHDL. -68- - 34- Emmanuel Boutillon Intellectual Property (IP) La qualité d ’une CLPs dépend aussi des IPs disponibles pour accélérer la conception (de même que la qualité d’un système d ’exploitation dépend des logiciels existant). ● ● ● ● Les structures matérielles deviennent du consommable Achat ou location d ’un design paramétrable Licence ou royalties Développement et échange d’IP grâce aux langages standards -69- Emmanuel Boutillon IP MegaStore: Search Engine www.altera.com/IPmegastore -70- - 35- Emmanuel Boutillon The Portfolio (XILINX, ALTERA) Communications Bus Interface Digital Signal Processing Processor, Peripheral ADPCM (u-law, a-law) CAN Bus Adaptive Filter 2910 ATM Controller IIC Slave Binary Pattern Correlator 49410 Cell Delineation IIC Master Biorthogonal Wavelet Filter 6402 UART CRC IEEE 1394 Complex Multiplier Mixer 6850 UART Ethernet MAC (10/100/Gigabit) PCI Target CSC 16450/550 UARTs PCI Master/Target Decimating Filter 8251 UART PCI-X Master/Target Digital Modulator 8237 DMA Controller PowerPC Bus Arbiter Discrete Cosine Transform 8255 Peripheral Interface PowerPC Bus Master Early/Late Gate Symbol 8259 Interrupt Controller Multi-Channel ATM TC PowerPC Bus Slave FFT 8254 Timer/Counter Packet Over SONET Controller USB Function Controller FIR Compiler 8051 USB Host Controller FIR Filter Library 8052 Rank Order Filter Floating Point Adder/Divider 6502 Speedbridge IIR Compiler Z80 Telephony Tone Generator Image Processing Library Excalibur NIOS Processor Utopia Level II/III Master and Slave Integer Divider LX-4080R NCO Xtensa 32-bit Processor Reed Solomon Compiler SDRAM Controller HDLC Protocol Core IMA Controller Intermediate Data Rate Framer/DeFramer Square Root Operator -71- Symbol Interleaver/Deinterleaver Viterbi Decoder Emmanuel Boutillon Programmation Technologie EEPROM connecteur de configuration broches JTAG EPLD programmateur programmation sur site via des broches dédiées : ISP (In system Programmation) -72- - 36- Emmanuel Boutillon Configuration Technologie SRAM mémoire de configuration microcontrôleur broches de configuration dédiées ou port JTAG FPGA CLP configuration autonome sur site : ICR (In Circuit Reconfiguration) -73- Emmanuel Boutillon Debug : Analyseur embarqué Certains constructeurs proposent des IPs « analyseur logique » ([WHUQDO %RDUGOHYHO $FWLYLW\ ,QWHUQDO &KLSOHYHO $FWLYLW\ Cela permet de sortir du FPGA des signaux internes pour le debug du système. + Simulation en temps réel (très important). - Synthèse et placement à chaque modification de l ’environnement de test. -74- - 37- Emmanuel Boutillon JTAG pour le test : boundary scan test TDI TD0 TDI puce circuit Jtag 1 TD0 puce ligne à tester circuit Jtag 2 Le boudary scan test impose : • broches dédiées : TDI,TDO,TMS,TCLK,nTRST • controleur JTAG Test Access Port avec registre d'instruction • registre à décalage sur les broches (Boundary scan register) -75- Emmanuel Boutillon Critère économique Coût du composant : évidemment... Coût du développement : dépend de la culture de l’entreprise => Savoir faire => Réutilisation de code déjà existant => Existence ou non des logiciels de CAO (conditionne aussi le temps de développement) Coût de maintenance : => extension de la famille FPGA : nouvelle génération de produit -76- - 38- Emmanuel Boutillon PLAN å Comment et pourquoi faire de la logique programmable ? Les technologies de personnalisation ê PAL, EPLD et FPGA Comment choisir un FPGA Situation présente et évolution. -77- Emmanuel Boutillon Intérêts des CLPs pour le traitement du signal ● opérateurs ➯ ➯ ➯ ● mémoire temporaires ➯ ➯ ● +,- : chaîne de retenue, cellule utilisée en "full adder" *: chaîne de retenue pour arbre d’addition + LUT ou RAM pour logique câblée non linéaires : LUT, mémoire nombreux registres pour pipeline et retards blocs mémoires Gestion de l’horloge ➯ PLL pour diminuer le "skew" et augmenter la fréquence -78- - 39- Emmanuel Boutillon complémentarité CLP processeur info au débit moins élevé données au débit élevé canal 1 canal 2 coprocesseur "front end" : canal 2 décodage canal filtrage processeur "back end" contrôle performances calcul et mémoire distribués interface asynchrone gestion système centralisation du calcul et de la mémoire fonctions multiples et algorithme complexe processeur DSP, RISC,... CLP -79- Emmanuel Boutillon Evolution (Roadmap) Circuit Année N (T ou gates) 4004 Pentium I Pentium IV ALTERA 1971 1993 2000 2000 2250 T 3100000 T 42000000 T 1à 4.106 Portes -80- - 40- Emmanuel Boutillon L’offre ALTERA (début 2001) Excali NIOS, A bur R Embedd M, MIPS Peripher ed Processor als, Mo re Mem ory APE ALTER A DeviceFLEX, ACEX Den X High D en High Pe sity, CAM, rforma nce IOs sity Memor y MAX Logic -81- Emmanuel Boutillon PLD / CPLD / FPGA : L’offre ALTERA : EXCALIBUR Processeur embarqué dans une FPGA - Primitive VHDL synthétisé : NIOS - Processeur matériel ARM ou MIPS + FPGA 200 ARM Core MIPS Core 100 Performance (MIPs) 50 TM 20 0 Core Soft Core -82- - 41- Hard Cores Emmanuel Boutillon ● ● ● ● ● ● ● Configurable Soft Core Optimized for ALTERA’s PLD Architecture 16 or 32 bits Data Path 16 bits instruction set RISC base, 4-stage pipeline 50 MIPS performance SRAM PBM ● CPU IRQ NIOS Embedded Processor FLASH Timer Serial Port UART 1100 LE for 16-bit mode 1700 LE for 32-bit mode ➯ 12% of EP20K200E Your Design Here APEX EP20K200E -83- Emmanuel Boutillon Nios RISC Processor Block Diagram ● ● Standard RISC Components FullySynchronous Interface -84- - 42- Emmanuel Boutillon Nios Compile-Time Parameters Data Path (32 or 16) ● Address Bus Width (10 to 33-bits) ● Register File Size (128, 256 or 512) ● Reset Address ● Exception Vector Table Address ● Barrel-Shifter Speed (1, 3, 7, 15 or 31 Bits/Clock) ● Hardware-Assisted Multiply (MSTEP) ● -85- Emmanuel Boutillon Nios Peripheral List & PBM Processor Core Peripheral Bus Module Address Decode Nios Core Port Interface Peripherals UART Timer Interrupt Control Wait State Generation Data In Multiplexer Bus Sizing (Optional) -86- - 43- PIO Int.& Ext. Memory User-defined Peripheral User-defined Peripheral Emmanuel Boutillon Nios Flexibility & Scalability High-Performance Embedded Processor Custom DSP ● ● After Nios ➯ 1 Nios ➯ 40 Nios ESB ESB 500K Gates Available = 44 MIPS = 1760 MIPS -87- APEX EP20K1000E Emmanuel Boutillon ARM/MIPS : Logical Structure Dual-Port RAM Interface DPRAM SRAM (Single Port) Flash Interface EBI PLLs SDRAM Controller Bridge PLD SDRAM Interface Master Port Slave Port ARM- or MIPSBased Processor -88- - 44- ESB ESB ESB ESB ESB ESB Before Nios ➯ 68XXX = 8 MIPS ➯ ARM 7 = 53 MIPS ➯ Pentium III = 500 MIPS ESB APEX EP20K200E ESB 150K Gates Available APEX EP20K100E ESB 75K Gates Available ESB Multi-Processor Micro-Coded System FFT Emmanuel Boutillon Embedded Processor PLD PLL UART Embedded Processor Stripe JTAG External Memory Interfaces Trace Module SRAM SRAM SRAM Interrupt Controller ARM922T DPRAM DPRAM DPRAM Timer Watchdog Timer EPXA1 PLD EPXA4 -89- EPXA10 Emmanuel Boutillon ARM/MIPS : Ressources -90- - 45- Emmanuel Boutillon ARM/MIPS : Design WorkFLow Notion de Co-Design -91- Emmanuel Boutillon Les acteurs du marché des PLD/FPGA (en Million$) • ALTERA • XILINX Ventes 1999 837 899 • LATTICE • ACTEL • LUCENT • ATMEL • CYPRESS • ... 410 172 Ventes 2000 1377 1558 568 226 Permet aux PME d’accéder aux circuits intégrés complexes -92- - 46- Emmanuel Boutillon Les acteurs du marché des ASIC Prédiffusés (Million$) 1999 • FUJITSU • NEC • TOSHIBA • HITACHI • LSI Logic Précaractérisés (Million$) 1999 494 370 350 300 200 • IBM micro-e • AGERE (LUCENT) • LSI Logic • NEC • FUJITSU -93- 2200 1900 1450 1050 820 Emmanuel Boutillon Evolution des marchés Répartition 99 (en $) des circuits CMOS et prévisions 99 99 00 01 02 • PLD 10 % 0,5 0,6 0,7 0,9 • Prédiffusés 12 % 0,4 0,3 0,3 0,3 • Précaractérisés 44 % 2,1 2,7 3,4 4,2 • Full Custom 4% 0,03 0,02 0,01 0,01 • Glue 9% • Autres 21 % Pour un marché de 25,8 Md$ en 99 Forte croissance des PLD/FPGA et Précaractérisés Baisse (et mort) des prédiffusés et des full custom -94- - 47- Emmanuel Boutillon 03 1 0,2 4,9 0 Le futur (1) FPGA avec Processeur … ou Processeur avec zone de FPGA ? FPGA reconfigurable dynamiquement : - de façon déterministe (filtre A puis B sur image). - de façon dynamique en fonction des données… => Problèmes de recherche qui débutent. - software radio : la configuration est télé-chargée , - partitionnement logiciel-matériel - prouver que cela marche... -95- Emmanuel Boutillon Le futur (2) Circuit programmable Analogiques et Mixtes : En cours (www.anadigm.com) -96- - 48- Emmanuel Boutillon