Les FPGAs Emmanuel Boutillon Cours réalisé à partir de :

Slides:



Advertisements
Présentations similaires
Mais vous comprenez qu’il s’agit d’une « tromperie ».
Advertisements

ORTHOGRAM PM 3 ou 4 Ecrire: « a » ou « à » Référentiel page 6
Reporting de la Cellule Nationale Droit dOption Situation au 31 décembre 2011.
Additions soustractions
Distance inter-locuteur
Architecture de machines Les entrées sorties Cours
1 Plus loin dans lutilisation de Windows Vista ©Yves Roger Cornil - 2 août
Architecture des processeurs généralistes haute performance
Les numéros 70 –
Les numéros
Cours MIAGE « Architectures Orientées Services » Henry Boccon-Gibod 1 Architectures Orientées Services Composants de Service Exemple pratique de développement.
A abstraction b assembleur c nombre binaire d bit e cache f UC g puce h compilateur i famille dordinateurs j contrôle k chemin de données l défaut m dé
Introduction à la logique
Algorithme et structure de données
LES TRIANGLES 1. Définitions 2. Constructions 3. Propriétés.
Données statistiques sur le droit doption au 31/01 8 février 2012.
Flow de conception (4h)-demo
Technologies et pédagogie actives en FGA. Plan de latelier 1.Introduction 2.Les technologies en éducation 3.iPads 4.TNI 5.Ordinateurs portables 6.Téléphones.
Révision (p. 130, texte) Nombres (1-100).
La législation formation, les aides des pouvoirs publics
1 7 Langues niveaux débutant à avancé. 2 Allemand.
1 5 octobre 2011 / paw Présentation du 7 octobre 2011.
Cours Systèmes logiques
Circuits Logiques Programmables
La méthodologie………………………………………………………….. p3 Les résultats
ARCHITECTURE GLOBALE CAPTAGE Traitement DES des données GRANDEURS
Gestion des Périphériques
Présentation générale
LES MEMOIRES.
Informatique temps réel et réseaux de terrain – ELEC365
Les nombres.
Logiciel gratuit à télécharger à cette adresse :
Les chiffres & les nombres
LES SYSTEMES AUTOMATISES
1.Un rang de données multicolores 2. Deux permutations des n premiers entiers 3. b permutations des k premiers entiers 4. Choix de n points dans [0,1]
RACINES CARREES Définition Développer avec la distributivité Produit 1
Les maths en francais 7ième année.
Année universitaire Réalisé par: Dr. Aymen Ayari Cours Réseaux étendus LATRI 3 1.
Plan Introduction Architecture des FPGA Modèles des fautes
MAGIE Réalisé par Mons. RITTER J-P Le 24 octobre 2004.
1 INETOP
Aire d’une figure par encadrement
Les fondements constitutionnels
MAGIE Réalisé par Mons. RITTER J-P Le 24 octobre 2004.
1/65 微距摄影 美丽的微距摄影 Encore une belle leçon de Macrophotographies venant du Soleil Levant Louis.
Certains droits réservés pour plus d’infos, cliquer sur l’icône.
INF3500 : Conception et implémentation de systèmes numériques Pierre Langlois Options d’implémentation.
Journée N°1 – Baccalauréat STI2D – Formation de spécialité SIN
Annexe Résultats provinciaux comparés à la moyenne canadienne
1 Mise en œuvre d'un outil d'aide au développement d'une JVM modulaire pour système embarqué Rodolphe Loué Projet SOLIDOR.
Advanced Boolean Equation Language
Composants logiques programmables
La formation des maîtres et la manifestation de la compétence professionnelle à intégrer les technologies de l'information et des communications (TIC)
MICROLOR Le savoir partagé
Méthodologie de conception Outils de conception
Power PC embarqués et accélérateurs matériels pour des cibles de type FPGA Julien Dubois.
Les systèmes mono-puce
Implantation de processeurs dans les FPGA et ASIC
Introduction au VHDL - R.WEBER - Polytech'Orleans
Réseaux pré-diffusés programmables par l’utilisateur: FPGA
CIRCUITS LOGIQUES PROGRAMMABLES
Les FPGA « Field Programmable Gate Array »
INTRODUCTION.
LES MEMOIRES.
SUNDANCE Multiprocessor Technology Ltd. Yann CLIN Stage effectué de février à juin Superviseur technique: Jocelyn SEROT Superviseur industriel: Emmanuel.
Composants à réseaux logiques programmables
LES MEMOIRES et le décodage d’adresses
Systèmes à microprocesseur Les mémoires
Technologies SoPC (System On Programmable Chip)
Transcription de la présentation:

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

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.

circuits personnalisés Position du problème Matériel Logiciel circuits personnalisés circuits existants microprocesseurs processeurs DSPs mémoires périphériques circuits logiques programmables ASICs FPGA EPLD

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

Coût CLP/ASIC Coût à la pièce ASIC CLP seuil Nombre de pièces 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

Temps de conception spec Code+synth fab spec Code+synth Time to market ASIC spec Code+synth Placement Routage fab FPGA spec Code+synth P R Time to market mP spec Code + temps logiciel

Les performances circuit personnalisé : traitement parallèle 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

Démocratisation de la conception Tfin log10(complexité) Temps Produit Idée 3 Spécifications 4 Validation CLP Validation ASIC RTL 5 Développement Porte 7 Affaire de Spécialistes avec un équipement lourd Transistor 8 Masque 10 Fonderie

Intérêts propres aux CLPs prototypage conception rapide de démonstrateurs autonomie (pas de fondeur) Reprogrammation maintenance in situ

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é ».

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

Mémoire A0 A1 F(A1,A0)=d= A1A0 + A1A0 fonction logique 2 entrées : f(A1,A0 ) = f(0,0)A1A0 + f(0,1)A1A0 + f(1,0)A1A0 +f(1,1)A1A0 mémoire 4 mots de 1 bit : 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

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 S0 S1 matrice OU programmable liaison non programmable liaison programmable

LOOK UP TABLE (LUT) F(a,b,c) SRAM Adresse (a,b,c) 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 0 001 1 010 0 011 1 100 0 101 1 110 0 111 1 SRAM F(a,b,c) Adresse (a,b,c) => Mode de lecture différent du résultat

PAL Programmable Array Logic ET OU somme de produits = Macrocellule A 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)

cellule logique à MUX utilisée pour la technologie ANTIFUSIBLE équivaut à une LUT cablée e0 mux e1 sortie e2 e3 sortie = abe0 ou abe1 ou abe2 ou abe3 a b intérêt : surface réduite cellule grain fin

comparatif des réseaux programmables type structure avantage inconvénient ET Mémoire conséquente si nombreuses entrées toutes les fonctions => 22n possibles MEMOIRE OU ET grand nombre d'entrées économique PAL Nombre de mintermes limité OU MUX Taille très faible Limité à peu d ’entrées

Programmation des interconnections Par connexion ou non de deux fils F1 F1 F2 F2 Par l’utilisation de multiplexeur F1’ Le nombre de connexions réalisables est limité à ce qui existe... ! F1 F2

Programmation des registres et E/S Q clk rst Possibilité de programmer le PAD en mode entrée ou sortie. Possibilité d ’utiliser ou non le registre

Système d’entrée sortie complet OE DFF broche OUT DFF IN 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 la broche peut être :

Gestion des horloges Mise en place d ’un arbre de d ’horloge pour effectuer de la logique synchrone. Principe : système asservi en phase PLL CLK CLK_OUT compensation le "skew" d'horloge multiplication de la fréquence si diviseur dans la boucle de réaction

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

Principes du CLP programmation ou configuration Entrées / Sorties Plan de programmation : interconnexion Entrées / Sorties Entrées / Sorties Plan actif : cellules logiques technologies de programmation : - EEPROM - SRAM - antifusible architectures du plan actif : - PAL hiérarchique (EPLD) - gate-array (FPGA) - mixtes (CPLD ALTERAs) Entrées/Sorties

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.

UV PROM (obsolète) EEPROM SRAM Métalisation 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.

Lignes métalliques : interconnexions 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

Les composants logiques programmables : Technologie de personnalisation : Antifusibles

Non-volatile SAMOS : Stacked MOS Les composants logiques programmables : Technologie de personnalisation : UV-EPROM / EEPROM Non-volatile SAMOS : Stacked MOS

Les composants logiques programmables : Technologie de personnalisation : SRAM Besoin d’une mémoire externe d’initialisation : Processeur associé ou EEPROM série

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.

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)

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.

Taxinomie des CLPs (PLD) Circuits logiques programmable (Programmable Logic Device) PLD EPLD-CPLD FPGA PAL GAL SRAM antifuse UVPROM EECMOS isp Les noms peuvent changer selon l‘auteur, le fondeur ... !

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

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 - Langage de description matérielle VHSIC

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

Architecture générale des PALs Principe des PAL Architecture générale des PALs Possibilité de rebouclage Vedette : PAL22V10CE Programmable array logic 22 I/O - 10 Versatile Outputs CMOS ERASABLE

PAL22V10CE : sortie Versatile Choix de la polarité de la logique Programmation entrée sortie Rebouclage programmable.

PAL22V10

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 LAB macrocellule E/S matrice d'interconnexion E/S macrocellule E/S E/S macrocellule . . . LAB LAB E/S E/S E/S E/S . . . . . . LAB LAB E/S E/S E/S E/S

Routage d’un EPLD routage systématisé LAB LAB LAB LAB routage systématisé modèle électrique et délais prédictibles placement non critique (temps de compilation faible

Exemple : EP610/1810 (1)

Exemple (ALTERA) : P610/1810 (2)

MAX9000 (1)

PLD / CPLD / FPGA : L’offre ALTERA : MAX9000 (2)

MAX9000 (3)

Architecture gate-array (FPGA) E/S 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 canaux de routage E/S E/S cellule logique

routage dans un FPGA exemple : XC4000 XILINX 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

routage dans un FPGA A A B B grande adaptabilité du routage

routage dans un FPGA : FLEX ALTERA routage local dans le bloc 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

FLEX10K(1)

FLEX10K(2)

FLEX10K(3)

FLEX10K(4)

FLEX10K(5) Mode normal Mode arithmétique

FLEX10K(6)

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

Applications EPLD/FPGA traitement en pipeline arithmétique machine à état codée "hot line" applications à haut niveau d'intégration nombre registres et E/S machine à états complexe machine à états performante intégration de circuits logiques et PALs temps de calcul pin à pin prédictible. 1 2 3 4 5

APEX20K(1)

APEX20K(2)

XILINX : Famille VIRTEX 4th Generation Logic/Memory/Routing Fabric DLL Technology for High-Performance Clock & I/O CLB B R A M DLL CL IOB I O Select I/O Technology Ultra-High Performance Synchronous Dual-Port SRAM Thermal Management SelectMAP Advanced Configuration Technology

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.

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.

CAO pour conception de CLP Très similaires à celle des circuits VLSI : D : Synthèse et P/R spécifique : nombre de cellules figé par circuit 1 cellule = entre 1 et 20 portes 2 entrées spécifications Autonomie : réalisation= téléchargement de la liste d’équipotentielles dans le circuit VERIFICATION SAISIE SYNTHESE PLACEMENT ROUTAGE PROGRAMMATION CONFIGURATION Technologie CLP PC et/ou station de travail

placement routage Chaque vendeur de CLP fournit son outil de P/R dédié "Netlist " après synthèse vers programmeur partitionnement circuits multiples floorplanning placement routage CLP control adder glue FIFO timing + CLP Bloc cellule équipotentielle

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

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

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.

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

IP MegaStore: Search Engine www.altera.com/IPmegastore

The Portfolio (XILINX, ALTERA) Communications ADPCM (u-law, a-law) ATM Controller Cell Delineation CRC Ethernet MAC (10/100/Gigabit) HDLC Protocol Core IMA Controller Intermediate Data Rate Framer/DeFramer Multi-Channel ATM TC Packet Over SONET Controller Rank Order Filter Speedbridge Telephony Tone Generator Utopia Level II/III Master and Slave Bus Interface CAN Bus IIC Slave IIC Master IEEE 1394 PCI Target PCI Master/Target PCI-X Master/Target PowerPC Bus Arbiter PowerPC Bus Master PowerPC Bus Slave USB Function Controller USB Host Controller Digital Signal Processing Adaptive Filter Binary Pattern Correlator Biorthogonal Wavelet Filter Complex Multiplier Mixer CSC Decimating Filter Digital Modulator Discrete Cosine Transform Early/Late Gate Symbol FFT FIR Compiler FIR Filter Library Floating Point Adder/Divider IIR Compiler Image Processing Library Integer Divider NCO Reed Solomon Compiler Square Root Operator Symbol Interleaver/Deinterleaver Viterbi Decoder Processor, Peripheral 2910 49410 6402 UART 6850 UART 16450/550 UARTs 8251 UART 8237 DMA Controller 8255 Peripheral Interface 8259 Interrupt Controller 8254 Timer/Counter 8051 8052 6502 Z80 Excalibur NIOS Processor LX-4080R Xtensa 32-bit Processor SDRAM Controller

Programmation Technologie EEPROM connecteur de configuration broches JTAG EPLD programmateur programmation sur site via des broches dédiées : ISP (In system Programmation)

Configuration Technologie SRAM mémoire de configuration microcontrôleur broches de configuration dédiées ou port JTAG CLP FPGA configuration autonome sur site : ICR (In Circuit Reconfiguration)

Debug : Analyseur embarqué Certains constructeurs proposent des IPs « analyseur logique » External Board-level Activity Internal Chip-level Activity 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.

JTAG pour le test : boundary scan test TDI TD0 TDI TD0 puce puce circuit Jtag 1 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)

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

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.

Intérêts des CLPs pour le traitement du signal opérateurs +,- : 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 mémoire temporaires nombreux registres pour pipeline et retards blocs mémoires Gestion de l'horloge PLL pour diminuer le "skew" et augmenter la fréquence

complémentarité CLP processeur info au débit moins élevé données au débit élevé coprocesseur "front end" : décodage canal filtrage canal 1 processeur "back end" interface asynchrone canal 2 gestion système canal 2 contrôle performances calcul et mémoire distribués centralisation du calcul et de la mémoire fonctions multiples et algorithme complexe processeur DSP, RISC,... CLP

Evolution (Roadmap) Circuit Année N (T ou gates) 4004 1971 2250 T Pentium I 1993 3100000 T Pentium IV 2000 42000000 T ALTERA 2000 1à 4.106 Portes

L’offre ALTERA (début 2001) Excalibur NIOS, ARM, MIPS Embedded Processor Peripherals, More Memory APEX High Density, CAM, High Performance IOs ALTERA Device FLEX, ACEX Density Memory MAX Logic

PLD / CPLD / FPGA : L’offre ALTERA : EXCALIBUR Processeur embarqué dans une FPGA - Primitive VHDL synthétisé : NIOS - Processeur matériel ARM ou MIPS + FPGA ARM Core MIPS 200 100 Performance (MIPs) Core TM 50 20 Soft Core Hard Cores

NIOS Embedded Processor 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 1100 LE for 16-bit mode 1700 LE for 32-bit mode 12% of EP20K200E SRAM PBM CPU IRQ FLASH Timer Serial Port UART Your Design Here APEX EP20K200E

Nios RISC Processor Block Diagram Standard RISC Components Fully-Synchronous Interface

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)

Nios Peripheral List & PBM Nios Core Address Decode Interrupt Control Wait State Generation Data In Multiplexer Bus Sizing (Optional) Peripherals Peripheral Bus Module UART Timer PIO Int.& Ext. Memory User-defined Peripheral Processor Core Port Interface

Nios Flexibility & Scalability High-Performance Embedded Processor Custom DSP Multi-Processor Micro-Coded System FFT 75K Gates Available ESB ESB ESB ESB APEX EP20K100E 150K Gates Available ESB ESB ESB ESB APEX EP20K200E ESB ESB ESB ESB Before Nios 68XXX = 8 MIPS ARM 7 = 53 MIPS Pentium III = 500 MIPS 500K Gates Available After Nios 1 Nios = 44 MIPS 40 Nios = 1760 MIPS APEX EP20K1000E

ARM/MIPS : Logical Structure DPRAM Dual-Port RAM Interface SRAM (Single Port) PLD SDRAM Interface SDRAM Controller Flash Interface Bridge EBI Master Port Slave Port ARM- or MIPS- Based Processor PLLs

Embedded Processor PLD JTAG Trace Module ARM922T External Memory Interfaces Interrupt Controller PLL Timer UART Watchdog Timer EPXA4 SRAM DPRAM EPXA10 SRAM DPRAM EPXA1 SRAM DPRAM Embedded Processor Stripe PLD

ARM/MIPS : Ressources

ARM/MIPS : Design WorkFLow Notion de Co-Design

Les acteurs du marché des PLD/FPGA (en Million$) Ventes 1999 Ventes 2000 ALTERA 837 1377 XILINX 899 1558 LATTICE 410 568 ACTEL 172 226 LUCENT ATMEL CYPRESS ... Permet aux PME d’accéder aux circuits intégrés complexes

Les acteurs du marché des ASIC Prédiffusés (Million$) 1999 FUJITSU 494 NEC 370 TOSHIBA 350 HITACHI 300 LSI Logic 200 Précaractérisés (Million$) 1999 IBM micro-e 2200 AGERE (LUCENT) 1900 LSI Logic 1450 NEC 1050 FUJITSU 820

Répartition 99 (en $) des circuits CMOS et prévisions Evolution des marchés Répartition 99 (en $) des circuits CMOS et prévisions 99 99 00 01 02 03 PLD 10 % 0,5 0,6 0,7 0,9 1 Prédiffusés 12 % 0,4 0,3 0,3 0,3 0,2 Précaractérisés 44 % 2,1 2,7 3,4 4,2 4,9 Full Custom 4 % 0,03 0,02 0,01 0,01 0 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

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...

Le futur (2) Circuit programmable Analogiques et Mixtes : En cours (www.anadigm.com)