Les composants programmables

Slides:



Advertisements
Présentations similaires
Semaine 5 Couche Liaison de données Cours préparé par Marc Aubé
Advertisements

Le micro-ordinateur.
Électronique de base du processeur
LES MEMOIRES INTRODUCTION UN PEU D ’HISTOIRE LES DIFFERENTES MEMOIRES
La mémoire morte(ROM) Il existe un type de mémoire permettant de stocker des données en l'absence de courant électrique, il s'agit de la ROM (Read Only.
Auto Apprentissage Le DSP
2.Les différentes architectures (Louis)
Flow de conception (4h)-demo
Les microprocesseurs A. Objectifs de la séquence:
Les composants logiques programmables
TRANSMISSION DES DONNEES INFORMATIQUES
Architecture de machines Principes généraux
Cours d’initiation en Informatique
Présentation d’un design de carte vidéo
Cours Systèmes logiques
Circuits Logiques Programmables
Les systèmes à microprocesseur
SECURITE DU SYSTEME D’INFORMATION (SSI)
Les Systèmes d’Exploitation
La commande numérique des actionneurs électrique
ADR Active and Dynamic Routing. Plan Introduction au routage Les réseaux actifs Les agents Mise à jour des matrices de routage Architecture du routage.
Cours #8 Flot de conception d’un circuit numérique
TRANSMISSION DES DONNEES.
Architecture des Ordinateurs
LES MEMOIRES.
Architecture d ’un système à MICROPROCESSEUR
LES SYSTEMES AUTOMATISES
Présentation du mémoire
Réalisé par Mr CALVO du Lycée Bon Secours à PERPIGNAN
Informatique 1. Les applications de l’informatique
Lycée ELKHAWARIZMI De SAFI
INF3500 : Conception et implémentation de systèmes numériques Pierre Langlois Options d’implémentation.
INF3500 : Conception et implémentation de systèmes numériques Pierre Langlois Implémentation d’un.
Advanced Boolean Equation Language
Composants logiques programmables
MICROLOR Le savoir partagé
Méthodologie de conception Outils de conception
INF8505: processeurs embarqués configurables
Les systèmes mono-puce
Journées d'études Faible Tension Faible Consommation 14, 15, 16 mai Gwenolé CORRE, Nathalie JULIEN, Eric SENN, Eric MARTIN LESTER, Université de.
Application à la Radio Logicielle Restreinte
Implantation de processeurs dans les FPGA et ASIC
Structure de Base d’un ordinateur Matière : Informatique
Introduction au VHDL - R.WEBER - Polytech'Orleans
Réseaux pré-diffusés programmables par l’utilisateur: FPGA
Construction d'une hiérarchie mémoire faible consommation
CIRCUITS LOGIQUES PROGRAMMABLES
Système slow-control au LAPP
1 Université Henri Poincaré, Nancy 1 La préemption appliquée aux FPGAs Soutenance de rapport bibliographique de DEA Faculté des Sciences Vandoeuvre-lès-Nancy.
Les FPGA « Field Programmable Gate Array »
INTRODUCTION.
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
Chapitre 4 La représentation des nombres.
Comment choisir son MCU (ou autre DSP, FPGA …) ?
Encadrer par Mr Chelly Nizar
Memoire.
L3 Instrumentation Pétrolière S6
Raison d'être de la structure de fichiers : Les premiers travaux : Début des années 1960 : En 1963 : Près de 10 ans plus tard... (à peu près 1973) : Durant.
LES MEMOIRES et le décodage d’adresses
Les bascules et registres
Les mémoires la préparation de: chaimaa hamdou.
CEA DSM Irfu 29 / 12 / Christophe Cara - Développement d’un SoC LEON Séminaire ‘instrumentation’ FPGA intégrant un microprocesseur Développement.
ARCHITECTURE MATERIELLE D’UN SYSTEME A MICROPROCESSEUR
Architecture d'un automate programmable
Intervention sur un système technique Afficheur industriel « AIW »
Systèmes à microprocesseur Les mémoires
Technologies SoPC (System On Programmable Chip)
Transcription de la présentation:

Les composants programmables

PLAN I. Introduction II. Les mémoires vives III. Les mémoires mortes Évolution des composants programmables Les FPGA

I INTRODUCTION Il existe deux grandes familles de circuits logiques programmables : Les mémoires mortes programmables appelées PROM Les PLD (programmable logic device)

Quelques rappels : Les mémoires Une mémoire est un élément de stockage d’information Les bits stockés sont organisés sous forme de matrice: la dimension de la mémoire est donnée par le nombre de lignes fois la largeur de la ligne Chaque ligne de la mémoire est appelée un mot. Elle est identifiée par une adresse (numéro de la ligne) Le nombre de lignes est toujours une puissance de deux Deux opérations sont possibles, sur un mot complet: La lecture (read) et l’écriture (write)

Classification des mémoires

II Les Mémoires Vives : RAM Random Acces Memory, mémoires vives Des mémoires contenant des programmes et des données Information disponible tant que le courant est présent 2 types de RAM: StaticRAM ET DynamicRAM Statique Ram: Un bit = une bascule D (4 transistors) Dynamique Ram : Un bit = une capacité (1 transistor)

RAM Statique

RAM Statique : simulation

Addition horizontale de CI pour augmenter le nombre de bits d ’un mot un CI Ram de 4 mots de 4 bits NB: Les signaux cs et wr sont actifs à 0 (niveau bas) Addition horizontale de CI pour augmenter le nombre de bits d ’un mot Une mémoire de 4 mots de 8 bits chacun

Addition verticale de CI pour augmenter le nombre de mots SRAM de 8 mots de 4 bits

LES RAM DYNAMIQUE (DRAM) Info stockée dans un condensateur sous forme de charge électrique Plus grande intégration mais nécessite des opérations de rafraîchissement. Rafraîchissement= lire le bit et le réécrire environ toutes les 10nsec Avec rafraîchissement Tension en volts 5 ‘ 1 ’ 3 2 ‘ 0 ’ temps

RAM dynamique Un seul transistor : gain de place Cycle complexe de lecture Lecture puis ré-écriture Cycle de rafraîchissement

Présentation des DRAM SIMM Single In line Memory Module

III Les Mémoires mortes: Read Only Mémory Les données ne peuvent être que lues L’écriture se fait soit lors de la fabrication ou nécessite un matériel spécialisé. La donnée est retenue même en absence du courant (donnée non volatile)

1 Les différentes familles de PROM

2) PROM: Programmable ROM ROM programmable par l'utilisateur une seule fois: 1 point mémoire = fusible EPROM: PROM effaçable plusieurs fois Effacement = soumettre l ’Eprom à un rayonnement ultraviolet (UVPROM) ou un courant électrique EEPROM env 15 min L’écriture nécessite env un temps 1000 + grand que dans une Ram

a) PRINCIPE DES PROM A FUSIBLE Structure à : ET fixes (les circuits de décodage d'adresse) OU programmables (les données placées dans la mémoire). A D R E S 00 01 10 11 Zone mémoire

ROM (suite)

ROM (suite) Bit Word Fusible - métallique (obsolète) - polysilicium Le transistor fait fusible

PRINCIPE DES PROM A FUSIBLE Lorsque la mémoire est livrée tous les fusibles sont intacts. Elle ne contient alors que des l. La programmation va consister à faire sauter les fusibles aux emplacements où on souhaite mémoriser des 0 en utilisant une haute tension (généralement 12 volts), pour faire sauter le ou les fusibles. Les PROM à fusibles sont en voie de disparition

Fusibles métalliques ou Si Lignes métalliques : interconnexions Intact «Programmé» Même structure en ligne polysilicium Ou Transistor «grillable» joue le rôle de fusible

Rem : Antifusibles

UV-PROM

b) PRINCIPE DES UVPROM Grille isolée Grille de contrôle Isolant chaque cellule mémoire élémentaire est constituée d'un transistor MOS dont la grille de commande est totalement isolée dans une couche d'oxyde. Par application d'une tension suffisamment élevée, qui est appelée tension de programmation, on créé des électrons chauds ou électrons ayant une énergie suffisante pour passer au travers de cet isolant. Ces charges s'accumulent alors sur cette grille isolée où elles se trouvent piégées. La cellule mémoire est programmée. Grille isolée Grille de contrôle Isolant

UV-EPROM / EEPROM Non-volatile SAMOS : Stacked MOS

Durée de rétention Effacement La qualité de l'isolant étant excellente, la durée de rétention des charges atteint au minimum 10 ans à 70 °C, c'est-à-dire jusqu'à 100 fois plus à 25 °C Effacement On expose la puce à un rayonnement ultraviolet. Les photons, communiquent leur énergie aux électrons et leur font franchir la barrière en sens inverse

c) Principe des EEPROM Ce sont des PROM effaçables électriquement octet par octet si nécessaire. Les EPROM FLASH sont effaçables globalement et sont plus rapides et plus simples (1 CMOS par bit) que les EEPROM. Toutes deux sont programmables en circuit.

d) Les Mémoires FLASH Mémoires Non volatiles, réécriture possible (100 000), capacité 100 Mbytes. Même structure qu ’une Ram équipé d ’une alim. de faible consommation Contrairement au Ram, effacement par bloc de donnée et non par octet Grande tolérance au chocs, extrêmes températures, envi avec beaucoup de perturbation Utilisation: Caméras digitaux, téléphones mobiles, Imprimantes, Pc portables, Applications militaires…

Comparaison

IV Évolution du marché des composants programmables De plus en plus présent dans le quotidien Ordinateurs, PDA GSM,GPRS,UMTS, GPS TV numérique Electronique embarquée dans l’automobile Baladeurs CD/MP3 DVD Traitement du signal

Standard Les standards facilitent cette évolution vers l’intégration de services : PDA + GSM GSM + MP3 UMTS + MPEG4 + MP3 + Hiperlan2 + ...

Plus de performance GSM =>GPRS =>EDGE =>UMTS Bluetooth 11 Mbits/s =>Hiperlan2 à 54 Mbits/s

Réduire le « time to market » Les produits ont une durée de vie de plus en plus faible Réduire le «time to market» Réutilisation pour concevoir d’autres produits (rentabiliser)

REUTILISATION Approche retenue pour limiter les coûts Conception d’un SOC à partir de blocs prédéfinis : Intellectual Properties

Notion d’IP (Intellectual Property) Blocs fonctionnels complexes réutilisables Hard: déjà implanté, dépendant de la technologies, fortement optimisé Soft: dans un langage de haut niveau (VHDL, Verilog, C++…), paramétrables Normalisation des interfaces Environnement de développement (co-design, co-specif, co-verif) Performances moyennes (peu optimisé)

Utilisation d’IP Bloc réutilisable (IP) connaître les fonctionnalités estimer les performances dans un système être sûr du bon fonctionnement de l’IP intégrer cet IP dans le système valider le système

MERCI ...

ARCHITECTURES CONCEPTION UTILISATION FPGA DES

PLAN I. Introduction, historique II. FPGA vs ASIC III. Architecture et conception des FPGA IV. La configuration des FPGA V. Famille de FPGA Altera VI. Famille de FPGA Xilinx VII. Autres Exemples de FPGA VIII. Utilisation des FPGA, CAO IX. CoDesign, SORC et nouvelles X. Architectures reconfigurables gros grains Conclusion

I. INTRODUCTION

FPGA : Field Programmable Gate Array Définition FPGA : Field Programmable Gate Array En français : Composant, constitué d’un ensemble de ressources logiques élémentaires configurables pouvant être mises en relation par un réseau d’interconnexions aussi configurable

Historique IXème av JC Les chinois comptent avec un boulier ! 1640 Blaise Pascal, invente une machine mécanique à additionner et soustraire 1875 Sir J.W. Swan, tube à incandescence 1940 Utilisation des premières PLL (principe étudié en 1932 par Bellescize) 1946 ENIAC 1er calculateur électronique (18 000 tubes, tient dans un hall de 10*17m) Von Neumann présente le concept de programme enregistré 1948 Bardeen, Brattain et Shockley (Bells Labs) inventent le transistor bipolaire 1er ordinateur le SSEC d’IBM 1950 1er circuit reconfigurable « the fuse configurable diode matrix » Harris Semiconductor 1958 Jack Kibly invente le circuit intégrée, brevet Texas Fairchild dépose un brevet sur la fabrication des CI par procédé Planar 1962 Famille TTL

Historique 1968 Famille MOS Robert Noyce et Gordon Moore créer une startup : intel 1er PLA « read only associative memory ROAM » IBM 1969 Neil Amstrong marche sur la Lune 1970 Introduction du terme PAL Texas Instrument 1ère ROM, Harris Semiconductor 1971 intel, 1er UV-PROM (effaçable par UV) 1972 Intel, 1er processeur : 4004 1973 André Truong et Francis Grenelle mettent au point et commercialisent le 1er micro-ordinateur du monde, le Micral, made in France ! 1975 Un certain Bill Gates fonde une petite société d’informatique : Microsoft 1978 1ère famille PAL commerciale, MMI 1980 Premiers microprocesseurs 32 bits chez intel et Motorola 1981 IBM lance le PC

Historique 1983 1er GAL effaçable électriquement, Lattice 1984 Apple lance le Macintosh 1984 Introduction du FPGA par XILINX : le XC2000 (de 600 à 1500 portes) création de la société ALTERA Technologie CMOS UV-EPROM 1985 mise sur le marché du 1er FPGA XILINX 1992 1er FPGA Altera : le Flex 8000 (15 000 portes max) 1993 Technologie EEPROM 2001 Lancement du Virtex II Xilinx (jusqu’à 10 millions de portes) 2005 FPGA avec des capacités supérieures à 50 millions de portes fonctionnant à des fréquences surpassant les 500 MHz

Marché des FPGA

Marché des FPGA

Marché des FPGA

Évolution de la technologie 1994 0.6 µ trois couches de métal 100% 1995 0.5 µ trois couches de métal 78% 1996 0.35 µ quatre couches de métal 32% 1998 0.25 µ cinq couches de métal 19% 1999 0.18 µ six couches de métal 12% Technologie : Taille relative : Année : 2002 : techno cuivre 0.13 µm à 8 couches de métal 2004 : techno cuivre 0.09 µm à 12 couches de métal (200 000 portes/mm²)

Évolution de la technologie La technologie cuivre (aujourd’hui maîtrisée) permet d’augmenter la rapidité des circuits donc d’augmenter les fréquences de fonctionnement

Coûts de production 300 mm 200 mm L’augmentation de la taille des wafers de 200mm à 300mm permet des économies d’échelles => Pour un coût égal à 1.9 fois celui d’un wafers 200 mm Intégration de 2.3 à 2.5 fois plus => diminution des prix de reviens

Problèmes techniques Pourcentage de perte à la fabrication du à l’augmentation de la taille des wafers (de 200 à 300 mm) => Ressources surnuméraires déconnectables permettent de prévoir le % de perte à la fabrication 300 mm 200 mm

Le prix par élément logique diminue de 40 % par an Évolution des prix 1,2 1 Le prix par élément logique diminue de 40 % par an 0,8 INDICE PRIX PAR ELEMENT LOGIQUE 0,6 (Source : Altera) 0,4 0,2 1995 1996 1997 1998 1999 2000

Évolutions Prix (de l’élément logique) - 46% par an Densité (logique) + 55% par an Vitesse (fréquence système) + 35% par an

Évolutions D’après Xilinx, en 2005 les plus gros FPGA auront des capacités de 50 millions de portes des complexités de 2 billions de transistors utilisant des technologies à 70 nm avec 12 couches de métallisations (cuivre) avec des cœurs de microprocesseurs câblés cadencés à 1GHz

FPGA ? ASIC

Taxonomie des CI (HARD) PLD ASIC Circuits sur mesure précaractérisés prédiffusés configurables SEMI-CUSTOM CUSTOM FPGA CPLD PAL Sea of gate Gate array Standard cell Full Custom ASIC : Application Specific Integrated Circuit FPGA : Field Programmable Gate Array CPLD : Complex Programmable Logic Device PAL : Programmable Array Logic GAL : Generic Array Logic = PAL SRAM : Static Random Access Memory Antifuse SRAM

ASIC : Application Specific Integrated Circuit ASIC Full Custom ASIC CUSTOM SEMI-CUSTOM Circuits sur mesure Circuits précaractérisés Circuits prédiffusés Circuits configurables Full Custom Standard cell Sea of gate Gate array FPGA CPLD PAL Antifuse SRAM ASIC : Application Specific Integrated Circuit

ASIC Full Custom Au départ Au final SPECIFICATIONS +

ASIC : Application Specific Integrated Circuit ASIC Standard Cell ASIC CUSTOM SEMI-CUSTOM Circuits sur mesure Circuits précaractérisés Circuits prédiffusés Circuits configurables Full Custom Standard cell Sea of gate Gate array FPGA CPLD PAL Antifuse SRAM ASIC : Application Specific Integrated Circuit

ASIC Standard Cell + + Au départ Au final BIBLIHOTEQUE D’ELEMENTS PRE-CARACTERISES Au final SPECIFICATIONS + +

ASIC : Application Specific Integrated Circuit ASIC Gate Array ASIC CUSTOM SEMI-CUSTOM Circuits sur mesure Circuits précaractérisés Circuits prédiffusés Circuits configurables Full Custom Standart cell Sea of gate Gate array FPGA CPLD PAL Antifuse SRAM ASIC : Application Specific Integrated Circuit

ASIC Gate Array + Au départ Au final SPECIFICATIONS + Au final Il est possible aussi d’utiliser des bibliothèques de composants pré-caractérisés

PAL : Programmable Array Logic ASIC CUSTOM SEMI-CUSTOM Circuits sur mesure Circuits précaractérisés Circuits prédiffusés Circuits configurables Full Custom Standart cell Sea of gate Gate array FPGA CPLD PAL Antifuse SRAM PAL : Programmable Array Logic

PAL Matrice de ET réalisant tous les produits possibles (maxtermes) connectée aux sorties par des  OU  Grande surface de Si utilisée. Ces circuits ne sont plus utilisés aujourd’hui

CPLD : Complex Programmable Logic Device ASIC CUSTOM SEMI-CUSTOM Circuits sur mesure Circuits précaractérisés Circuits prédiffusés Circuits configurables Full Custom Standart cell Sea of gate Gate array FPGA CPLD PAL Antifuse SRAM CPLD : Complex Programmable Logic Device

MATRICE D’INTERCONNECTIONS CPLD Les CPLDs regroupent plusieurs PALs interconnectés par un réseau de connexions programmables. Les CPLDs sont les prémisses des premiers FPGAs. Ces circuits ne sont plus utilisés aujourd’hui car remplacés par les FPGAs. PAL MATRICE D’INTERCONNECTIONS E/S

FPGA : Field Programmable Gate Array ASIC CUSTOM SEMI-CUSTOM Circuits sur mesure Circuits précaractérisés Circuits prédiffusés Circuits configurables Full Custom Standart cell Sea of gate Gate array FPGA CPLD PAL Antifuse SRAM FPGA : Field Programmable Gate Array A SUIVRE !!!

Marché des composants CMOS

Marché des composants CMOS

Comparaison

Capacités comparées Capacité max ASIC Nombre de portes (log) 100k 10k 1k Capacité max ASIC Nombre de portes (log) Moyenne d’utilisation 80% des design fonctionnent aujourd’hui à moins de 200MHZ Capacité max FPGA 1989 année 1997 2001

Les FPGA sont au cœurs des systèmes

Temps de mise en œuvre

Point de "cross-over" des FPGA et des ASIC Cross-over de 200 000 de pièces environ en 2000 Cross-over de 1 000 000 de pièces environ en 2004 Un jeu de masques correspond à 1M$ à amortir en techno 0,13µm Nick Tredennick, Brion Shimamoto. The Rise of Reconfigurable Systems. In proceeding of Engineering of Reconfigurable Systems and Algorithms, ERSA’2003. June 23-26,Las Vegas, Nevada, USA.

Contextes d’utilisations en grandes séries ASIC FPGA Volume À-coup de production Temps Conception prototypage Pré-série Production Fin de vie

Solution intermédiaire FPGA HARD COPY 2000 piéces Prix de ventes moyen ASIC Volume À partir de qq piéces 1 000 000 piéces

Les solutions Hard-Copy Réduction de la taille jusqu’à 70% Temps de réalisation de 1 à 2 mois (6 à 9 pour les ASIC) Conversion à partir du fichier binaire de configuration Possibilité d’estimer les performances à partir des outils constructeurs Possibilité de garder le même package (pin-to-pin compatible) HARD-COPY est la dénomination ALTERA. Dans ce cas tous les bits de configuration SRAM sont remplacés par 5 masques de métal.

Les ASIC AVANTAGES hautes intégrations INCONVENIENTS hautes performances (vitesse, low-power) coûts faibles pour de gros volumes de production personnalisation sécurité industrielle INCONVENIENTS prix du 1er exemplaire pas d’erreur possible non-flexible time-to-market élevé fabrication réservée aux spécialistes (fondeur)

Les FPGA AVANTAGES possibilité de prototypage flexibilité time-to-market faible adaptabilité aux futurs évolutions grâce à la reconfiguration flexibilité INCONVENIENTS intégration limité par les ressources de routage performances prix à l’unité élevé pour de grosses productions

Conclusion Le choix entre FPGA ou ASIC, se fait en fonction du cahier des charges de l’application : temps de mise sur le marché et durée de vie courte FPGA très petit nombre de circuits FPGA optimisation des performances ASIC grande série ASIC

FPGA et conjoncture économique mondiale D’après une interview du directeur de Xilinx dans la revue électronique internationale Les FPGA sont les rares produits d’électronique qui profite de la crise économique actuelle dans le domaine des technologies de pointes ceci pour plusieurs raisons : diminution des volumes de production diminution de la durée de vies des produits possibilités techniques des FPGAs largement suffisantes pour la plus part des applications « en 2006, il y aura un circuit logique programmable dans chaque appareil numérique …. »

FPGA et conjoncture économique mondiale

III. ARCHITECTURE & CONCEPTION

Les différentes familles de circuits logiques programmables 1) Quelques définitions EEPROM ou E2PROM (Electrical Erasable Programmable Read-Only Memory) :Mémoire programmable à lecture seule, effaçable électriquement. EPLD (Erasable Programmable Logic Device):Circuits logiques reprogrammables. FPGA (Field Programmable Gate Array):Réseau de portes programmables GAL (Generic Array Logic):Circuits logiques PAL reprogrammables à technologie CMOS. ISP (In System Programmable):Circuit que l’on peut programmer (et donc effacer)même lorsqu’il est en place sur l’application. PAL (Programmable Array Logic):Circuits logiques programmables dans lesquels seules les fonctions ET sont programmables, les fonctions OU ne le sont pas. PLD (Programmable Logic Device):Famille des circuits programmables qui comprend les PAL,GAL,EPLD et FPGA.

2)Les différentes familles de PLD ASIC Circuits sur mesure précaractérisés prédiffusés configurables SEMI-CUSTOM CUSTOM FPGA CPLD PAL Sea of gate Gate array Standard cell Full Custom ASIC : Application Specific Integrated Circuit FPGA : Field Programmable Gate Array CPLD : Complex Programmable Logic Device PAL : Programmable Array Logic GAL : Generic Array Logic = PAL SRAM : Static Random Access Memory Antifuse SRAM

Nombre de portes intégrées Les différentes familles de PLD (suite)   TYPE Nombre de portes intégrées Matrice ET Matrice OU Effaçable PROM 2 000 à 500 000 Fixe Programmable Non PAL 10 à 100 GAL Electriquement EPLD 100 à 3000 Aux U-V FPGA 3000 à 6.000.000

a) Les PAL L’invention des PAL date d’une vingtaine d’année, ce sont les ingénieurs de la société MMI rachetée par AMD qui ont eut l’idée d’utiliser la technologie des fusibles. Ce sont des composants programmables une seule fois.

Structure de base d’un PLD Ils possèdent des matrices « ET » programmables et des matrices « OU » fixes. La fusion des fusibles est obtenue en appliquant à leurs bornes une tension de 11,5 V pendant 10 à 50 µS (leur tension de fonctionnement est environ de 5V). Cette opération est bien sûr effectuée en utilisant un programmateur adapté.

Structure de base avec les normes des constructeurs . PLD ayant ses fusibles intacts PLD programmé

Configuration des entrées/sorties Certaines broches de ces circuits peuvent être utilisées aussi bien en entrée qu’en sortie grâce à un système de logique 3 états. La commande de cette dernière est configurée au moment de la programmation. La structure de sortie permet aussi de réinjecter les sorties en entrée (Feed-back). P o r t e t r o i s é t a t s p e r m e t t a n t d e d é c o n n e c t er l a b r o c h e d e l a m a t r i c e " E T " I / O

REFERENCE DES PAL Les diverses possibilités de ces circuits et leur standardisation ont conduit les constructeurs à définir une nomenclature permettant de décoder assez facilement la référence des PALs. PAL : PAL (CE) : CE pour version CMOS XX : Nombre d’entrées AB : Structure de sortie YY : Nombre de sorties C : Consommation ZZ : Vitesse DEF : Type de boîtier Lettre(s) Code(s) Structure de sortie L Combinatoire active bas H Combinatoire active haut C Combinatoire complémentaire R Registre synchrone (D) RA Registre asynchrone X Registre OU exclusif V Versatile

PAL : PAL : Nombre d’entrées : / tructure de sortie : Remarques : ·      Le nombre d’entrées varie entre 10 et 22. ·      Le nombre de sorties varie entre 1 et 10. ·      La puissance est indiquée par une lettre code. ·      La vitesse indique le temps de propagation en nS. ·      Les versions versatiles ont une cellule de sortie programmable permettant d’obtenir n’importe quel autre type de structure de sortie (L, H, R ...). ·      Les versions CMOS (CE) sont effaçables électriquement. Les fusibles sont remplacés par des transistors de type MOS FET. Ce ne sont ni plus ni moins que des « GALs ». Exemple : PAL 16 L 8 H 15 PC PAL : PAL : Nombre d’entrées : / tructure de sortie : : Nombre de sorties : : Consommation : : Vitesse : : Type de boîtier :

Structures de base des PAL Brochage du PAL 16R6 - Brochage du PAL 16L6 -

PAL22V10 : Sortie (VERSATILE)

PAL22V10 ZOOM Complet

b) Les GAL Les GAL sont des PAL à technologie CMOS, c’est à dire programmables et surtout effaçables électriquement. On retrouve les mêmes références qu’en PAL. Protection contre la duplication. Les GAL sont dotés d’un bit de sécurité qui peut être activé lors de la programmation empêchant ainsi toute lecture du contenu du circuit. Ce bit est remis à zéro seulement en effaçant complètement le GAL. Il est constitué d’un ensemble de huit octets, appelé signature électronique, pouvant contenir des informations diverses sur le produit.

c) Les EPLD Généralités L’introduction des EPLD telle que l’a voulue ALTERA visait deux buts : Densité d’intégration supérieure aux PAL Fonctionner à une vitesse au moins égale aux PAL bipolaires

EPLD : Description Fonctionnelle Les EPLD de la famille MAX possèdent une architecture comportant les éléments suivants : Logic array blocks (LABs) Macrocellules Expanseur Réseau d’interconnections Programmables (PIA) I/O control blocks Les séries MAX incluent des entrées dédiées telles que des (horloges,clear,..) pour chaque macrocellule.

Exemple de EPLD : le MACH 4 Le MACH 4 est un EPLD programmable in situ (ISP) par l'intermédiaire d'un bus J-TAG.  Il dispose de 32 entrées / sortie, de matrices « ET » programmables, de matrices "OU" fixes, d'une matrice centrale d'interconnexion, d'une circuiterie d'horloge et de 32 ou 64 macrocellules. L'architecture interne du MACH 4-32/32 est équivalente à 4 PALCE 22V10 interconnectés.

d) LES FPGA (field programmable gate arrays) L'architecture, retenue par Xilinx, se présente sous forme de deux couches : une couche appelée circuit configurable, une couche réseau mémoire SRAM.

LES FPGA La couche dite 'circuit configurable' est constituée d'une matrice de blocs logiques configurables CLB permettant de réaliser des fonctions combinatoires et des fonctions séquentielles. Tout autour de ces blocs logiques configurables, nous trouvons des blocs entrées/sorties IOB dont le rôle est de gérer les entrées-sorties réalisant l'interface avec les modules extérieurs . La programmation du circuit FPGA appelé aussi LCA (logic cells arrays) consistera par le biais de l'application d'un potentiel adéquat sur la grille de certains transistors à effet de champ à interconnecter les éléments des CLB et des IOB afin de réaliser les fonctions souhaitées et d'assurer la propagation des signaux. Ces potentiels sont mémorisés dans le réseau mémoire SRAM.

La SRAM La configuration du circuit est mémorisée sur la couche réseau SRAM et stockée dans une ROM externe. Un dispositif interne permet à chaque mise sous tension de charger la SRAM interne à partir de la ROM. Ainsi, un même circuit peut être exploité successivement avec des ROM différentes puisque sa programmation interne n'est jamais définitive. On voit tout le parti que l'on peut tirer de cette souplesse en particulier lors d'une phase de mise au point. La mise au point d'une configuration s'effectue en deux temps: une première étape purement logicielle va consister à dessiner puis simuler logiquement le circuit fini, puis lorsque cette étape sera terminée on effectuera une simulation matérielle en configurant un circuit réel et l'on pourra alors vérifier si le fonctionnement réel correspond bien à l'attente du concepteur, et si besoin est identifier les anomalies liées généralement à des temps de transit réels légèrement différents de ceux supposés lors de la simulation logicielle ce qui peut conduire à des états instables voire même erronés..

Architecture interne du FPGA

Les architectures L’architecture reflète la topologie du réseau de routage Trois grands styles architecturaux s’affrontent îlots de calcul, majoritaire chez Xilinx hiérarchique, majoritaire chez Altera logarithmique, un peu exotique...

Architecture îlots de calculs Les éléments fonctionnels (logique, mémoire, IO) sont regroupés sous forme de matrice Ce type d’architecture est très répandu, en particulier chez Xilinx, mais aussi chez ATMEL

Les composants logiques programmables : Architectures globales Figure 1 : Structure of a CPLD Les MACROCELL = P-TERM (PAL-Like)

Architecture îlots de calculs Matrice de connexions MC Bloc de connexions BC Élément configurable : élément logique élément de mémorisation élément arithmétique entrée/sortie EC Réseau de routage : lignes horizontales lignes verticales

Les blocs de connexions BC EC

Architecture hiérarchique Les réseaux de routage d’une architecture hiérarchique dépendent du niveau de hiérarchie dans lequel on se trouve. Ceci permet une optimisation du routage par niveau Très répandu chez Altera et Lattice

Architecture hiérarchique

Architecture hiérarchique Élément Hiérarchique de niveau 1 Élément Hiérarchique de niveau 2 Réseau de routage de niveau 2 Réseau de routage de niveau 1 Élément Hiérarchique de niveau 3 éléments logiques éléments de mémorisation ... Réseau de routage de niveau 3

Architecture logarithmique Architecture hiérarchique dans laquelle chaque niveau i correspond à une matrice de 42i cellules de bases. Chacun de ces niveaux possède des ressources de longueur 42i-1. Exemple typique: le circuit Xc6200 de Xilinx

Architecture logarithmique Cellule logique de base Matrice de 16 cellules Cell Lignes de longueur 4 cellules Cell Lignes de longueur 16 cellules Lignes de longueur 64 cellules 4*4 16*16

Les éléments logiques Les éléments logiques configurables sont les briques de bases de tous les FPGA, ils sont majoritairement réalisés autour de LUT, Look Up Table, de chaîne de propagation rapide de la retenue et de bascule D. On rencontre toutefois des cellules logiques rudimentaires à base de multiplexeurs

LUT = Table de scrutation LUT 4 entrées = RAM 2octets Les Look Up Tables Ce sont de petits éléments de mémorisation, qui reflètent la table de vérité d’une fonction logique. SRAM In 0 In 1 In 2 In 3 Out LUT 4 LUT = Table de scrutation LUT 4 entrées = RAM 2octets

Les Look Up Tables In 0 In 1 In 2 In 3 1 1 1 1 1 1 1 0 1 1 0 1 1 1 0 0 1 1 1 1 0 1 1 0 1 1 1 1 0 0 1 0 1 1 1 1 0 1 0 Out

Les Look Up Tables In 0 = 0 In 1 In 2 In 3 1 1 1 1 1 1 1 0 1 1 0 1 1 1 1 1 0 1 1 0 1 1 1 1 0 0 1 0 1 1 1 1 0 1 0 Out

Les Look Up Tables In 0 =0 In 1 In 2 In 3 1 1 1 1 1 1 1 0 1 1 0 1 1 1 1 0 1 1 1 0 1 1 1 1 0 0 1 0 1 1 1 0 1 0 1 Out

Les Look Up Tables In 0 =0 In 1 = 1 In 2 In 3 1 1 1 1 1 1 1 0 1 1 0 1 1 1 1 0 1 1 1 0 1 1 1 1 0 0 1 0 1 1 1 0 1 0 1 Out

Les Look Up Tables In 0 =0 In 1 = 1 In 2 In 3 1 1 1 1 1 1 1 0 1 1 0 1 1 1 1 0 1 1 1 0 1 1 1 1 0 0 1 0 1 1 1 0 1 0 1 Out

Les Look Up Tables In 0 =0 In 1 = 1 In 2 =1 In 3 = 1 1 1 1 1 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 0 0 1 0 1 1 1 0 1 0 1 Out= 1 = In3 • In2 • In1 • Ino

Les Look Up Tables Généralement le nombre d’entrées des LUT est de quatre car c’est un bon compromis entre vitesse et surface Le nombre de LUT dans les éléments logiques varie de 2 à 4 généralement Résultats d’une étude de l’Université de Toronto :

Élément logique de base avec LUT Les Look Up Tables Élément logique de base avec LUT Carry-In ENTREES LUT SORTIES D Q FAST CARRY CHAIN HORLOGE Carry-Out

Les éléments logiques Élément logique de base avec multiplexeur Multiplexeur = aiguillage Cellule très simple Cas du circuit Xilinx XC6000 1 D Q CLK X3 X2 C S SORTIE X1

Les éléments de mémorisation Toutes les nouvelles générations de FPGA, chez tous les fabricants disposent d’éléments de mémorisation, car dans les systèmes d’électronique numérique les accès mémoires restent des points faibles En disposant de larges zones mémoires (configurables) à l’intérieur du circuit on limite ainsi le nombre d’accès externes. Très intéressants pour réaliser des machines d’états

Les éléments de mémorisation Exemple des blocks SelectRAM dans les circuits Spartan II, Virtex et Virtex II de Xilinx Elements de mémorisation configurables en double port ou simple port Taille max 2*18-Koctets

Les opérateurs câblés Dans les ressources logiques à dispositions, on peut trouver des opérateurs câblés optimisés. Exemple : Multiplieurs configurables Virtex II Xilinx Embedded Multiplieur 18*18

Utilisation Les outils de synthèses (voir VII) ne savent pas synthétiser des blocs de mémoires ou des opérateurs (type multiplieurs) dans des blocs spécialisés… Il faut donc spécifier en VHDL que l’on utilise telle ou telle ressource du composant

Utilisation des BlockRAMs Utilisation d’un Xilinx BlockRAM 512x36 DP entity …. component RAMB4_S8 is // composant de la librairie Xilinx Virtex port (WE, EN, RST, CLK : in std_logic; ADDR : in std_logic_vector(8 down to 0); DI : in std_logic_vector(7 down to 0); DO : out std_logic_vector(7 down to 0)); end component Architecture Section ….. U_RAM : RAMB4_S8 port map (WE=>#, EN=>#, RST=>#, CLK=>#, ADDR=>#, DI=>#, DO=>#); ….

Utilisation des multiplieurs Utilisation d’un multiplieur signé 18x18 entity …. component MUL18X18 is // composant de la librairie Xilinx Virtex port (A : in std_logic_vector(17 down to 0); B : in std_logic_vector(17 down to 0); P : out std_logic_vector(35 down to 0)); end component Architecture Section ….. U_MUL : MUL18X18 port map (A=>#, B=>#, P=>#); ….

Conséquence Une conséquence importante est que par le biais de l’utilisation de composants de librairies spécifiques aux constructeurs (Xilinx, Altera, …) pour pouvoir utiliser les blocs spécialisés (RAM, opérateurs) => le code VHDL ainsi produit est de moins en moins portable !!!

Les réseaux d’horloges Les circuits sont de plus en plus grands => augmentation de la longueur des connexions => les chemins d’horloges sont plus longs => plus de retard => ASYNCHRONISME MALSAINT !!!

Les réseaux d’horloges Le problème 1 : JITTER : bruit de phase Le problème 2 : CLOCK SKEW : Décalage entre les transitions de la même horloge à différents points d’un circuit. Le problème 3 : on peut avoir besoin de plusieurs horloges dans un même circuit

Solutions d’asservissement des horloges Les PLL (analogique) Phase-Locked Loop ( ALTERA ) Les DLL (numérique) Delay-Locked Loop ( XILINX )

Caractéristiques des PLL et DLL

Comparaison PLL vs DLL Comparaison "objective" faite par ALTERA Bien que plus performantes les PLL sont aussi beaucoup plus complexes à intégrer (mixage analogique et numérique) Avons nous besoin d’une telle précision ???

Les cœurs de processeurs Aujourd’hui les systèmes numériques font de plus en plus appel conjointement à des ressources logicielles micro-programmées (µP, µC, DSP) et des ressources matérielles re-configurables (FPGA) D’où l’idée de mettre sur un même puce un cœur de microprocesseur et un cœur de logique configurable, les deux étant optimisés technologiquement Le cœur de processeur peut prendre environ 10% de la surface totale de la puce

Les cœurs de processeurs Matrice FPGA Cœur ARM 922T RAM simple port RAM double port Altera propose le circuit Excalibur contenant : une partie configurable : type APEX 20K1000 un cœur de processeur : ARM9 (32 Bits) à 200MHz 8 K octets de cache Instructions 8 K octets de cache Données

Les cœurs de processeurs Processor & Interfaces PLL UART External Trace Memory Module SRAM SRAM SRAM Interfaces Coeur de processeur JTAG Timer I-CACHE D-CACHE ARM 8K Bytes 8K Byte Interrupt ARM922T DPRAM DPRAM Watchdog Controller DPRAM Timer XA1 LEs 4160 ESB Bytes 6.5K 32 Kbytes SRAM 16 Kbytes DPRAM FPGA XA4 LEs 16400 ESB Bytes 26K 128 Kbytes SRAM 64 Kbytes DPRAM LEs 38400 ESB Bytes 40K XA10 256 Kbytes SRAM 128 Kbytes DPRAM

Les cœurs de processeurs Xilinx propose aussi une version de son circuit Virtex II avec un cœur de processeur le Virtex II-Pro comprenant : de 1 à 4 cœurs Power-PC (RISC 32 bits) 125MHz matrice VIRTEX avec capacité de 900 mille portes

Les alimentations en énergie Le cœur est alimenté généralement en 1.8 V (voir 1.5 V) car avec la technologie à 0.18 µm les oxydes ne sont pas assez épais pour supporter plus de tension Les entrées sorties sont alimentées sous 3.3V, 2.5V, 1.8V ou 1.5 V suivant le standard choisi Dans la plupart des cas il faut deux alimentations Attention à la consommation des E/S => minimiser leur nombre !!!

Les alimentations en énergie Technologiquement pour permettre aux entrées sorties de supporter des tensions d’alimentations jusqu’à 3.3V on effectue plusieurs oxydations avec des masques spéciaux De cette façon la technologie utilisée pour les entrées-sorties n’est pas la même que pour le cœur

Répartition de la consommation de puissance RESEAU D’HORLOGE 21% ENTREES SORTIES 9% RESSOURCES DE ROUTAGE 65% RESSOURCES LOGIQUES 5%

Modélisation de la consommation de puissance La consommation globale du circuit peut être donnée par le modèle suivant : P = Pstat + α*[Cwire + Cswitches]*Vdd²*f De ce fait la répartition vue précédemment est vraie dans certaines conditions: Technologie (Pstat , C, Vdd) Fréquence (action linéaire) Taux d’activité (action linéaire) Taux d’occupation (C) Algorithmes de placement routage (fmax, C) Nombre d’entrées sorties utilisées => du fait de ces nombreux paramètres il est très compliqué de trouver un moyen d’estimer la consommation de puissance du circuit pour une application

Les architectures de FPGA sont donc très variées, tant aux niveau du routage que du grain des ressources qui les composent. Savoir quels types d’architecture et de ressources sont les plus en adéquation avec l’application que l’on développe reste un challenge aujourd’hui.

IV. LA CONFIGURATION DES FPGA

Types de configuration On peut trouver 4 types de configuration : La configuration simple contexte (la plus utilisée) La configuration partielle simple contexte La configuration partielle multi-contextes (la plus prometteuse)

Configuration simple contexte 1 matrice de configuration SRAM (méthode de scan-path) FPGA Le FPGA est reconfiguré entièrement C’est le type de configuration la plus utilisée

Configuration partielle Décodeur ligne Décodeur colonne 1 matrice de configuration SRAM FPGA Le FPGA est reconfiguré partiellement, on peut ne modifier qu’une partie de la configuration

Configuration multi-contextes Décodeur ligne Décodeur colonne Décodeur contexte 4 matrices de configuration SRAM Le FPGA est reconfiguré partiellement, on peut rapidement passer d’un contexte à un autre

Configuration dynamique Ce type de configuration est le plus prometteur puisqu’il ouvre la voie au domaine des architectures dynamiquement reconfigurables et des techniques « RUN TIME RECONFIGURABLE »

Techniques de configuration des FPGA On rencontre couramment 6 techniques de configuration : Master mode série ou parallèle Slave mode série ou parallèle Peripheral mode série ou parallèle La sélection de la technique de configuration se fait grâce à des bits de configuration du FPGA Dans tous les cas la configuration se fait via un fichier de configuration binaire : le Bitstream Les entrées sorties utilisées pendant la configuration sont aussi des I/O du circuits utilisables en fonctionnement L’envois des données peut se faire en série ou en parallèle

Dans ce cas le FPGA est maître de sa configuration Master Mode Dans ce cas le FPGA est maître de sa configuration FPGA EPROM Data CLK OE Data-in CTRL MODE SERIE

Dans ce cas le FPGA est maître de sa configuration Master Mode Dans ce cas le FPGA est maître de sa configuration 8 bits EPROM Data(7:0) Data-in(7:0) ADD (11:0) ADD (11:0) FPGA OE CTRL MODE PARALLELE

Slave Mode Dans ce cas le FPGA est esclave, il subit sa configuration EPROM Data Data-in FPGA CLK CLK OE Autre FPGA circuit logique de contrôle ou câble de configuration

Peripheral Mode Le FPGA est vue comme un périphérique du microprocesseur 8 bits µP Data(7:0) Data-in(7:0) ADD (11:0) Chip_Selec FPGA CTRL CTRL Le microprocesseur peut être un cœur de processeur embarqué dans le circuit

Configuration et cœurs de processeurs Configuration centrée sur le FPGA ARM-Based Processor Processor SRAM Configuration Unit Hard Logic JTAG Link FPGA Config- uration Port Serial / Parallel FPGA Configurator FPGA Array FPGA Le FPGA est esclave pour sa configuration mais il est maître de la configuration du processeur

Configuration et cœurs de processeurs Configuration centrée sur le Processeur JTAG Link ARM--Based Processor 16 or 8-Bit Flash Memory Processor SRAM EBI Hard Logic Configuration Unit FPGA Le processeur est maître de la configuration du FPGA

Techniques de configuration des FPGA On peut trouver d’autres techniques propre à chacun des fabricants. En particulier pour mettre en œuvre des configurations partielles. Ou des algorithmes de test du circuit (norme Boundary Scan)

Nouveauté : l‘auto-reconfiguration partielle Memory Configuration Manager Circuit 1 Others circuits circuit 1 Use of embedded FPGA RAM to store the decrypted configuration: Requires path between configuration and data RAMs circuit1 circuit 2 circuit 2 Others circuits

V. LA FAMILLE ALTERA

La famille ALTERA 1984 Débuts d’Altera qui vend des EPLD 1988 Lancement des CPLD MAX (Multiple Array matriX) qui sont des fétus de FPGA 1992 1er FPGA Altera : le FLEX 8000 (15 000 portes) (Flexible Logic Element matriX) technologie 0.5 µm 1995 Lancement de la famille FLEX 10K (250 000 portes) 1997 Famille FLEX 6K bas coûts (24 000 portes) 1999 Famille APEX 20K (1 500 000 portes) 2000 Famille APEX 20K C utilisant la technologie cuivre 2000 Famille APEX 20K E avec plus de ressources mémoires technologie 0.18 µm 2001 Circuit Excalibur couplant une matrice FPGA APEX 20K 1000 et un cœur de processeur ARM 9 2001 Famille APEX II (dont le but est de concurrencer le Virtex de Xilinx) (3 000 000 de portes) technologie 0.15 µm Février 2002 : Lancement du STRATIX concurrent direct du Virtex II Xilinx, technologie cuivre 0.13 µm Septembre 2002 : Lancement du Cyclone un petit FPGA (architecture STRATIX) pour application grand public bas-coûts

La famille ALTERA STRATIX

APEX II - Caractéristiques Le plus gros composant disponible est l’APEX II EP2A70 Caractéristiques MAX: 3 000 000 de portes utilisables 1 146 880 bits de mémoires RAM soit 140 Kilo octets 4 PLL cœur alimenté en 1.5 V 1 060 entrées sorties (tension 1.5 V, 1.8 V, 2.5 V ou 3.3 V) 380 Mbps de débit en entrées sorties technologie cuivre 0.15 µm 8 niveaux de métallisation taille de la puce 40*40 mm soit 1600 mm²

APEX II - Architecture L’architecture est de type hiérarchique, au premier niveau de hiérarchie apparaisse les MegaLAB : Mega Logic Array Block 4 rangées de MegaLAB soit au total 280 MegaLAB 70 colonnes de MegaLAB

APEX II - MegaLAB Un MegaLAB contient de 16 à 24 LAB (Logic Array Block) et 1 ESB (Embedded System Block)

Les LAB sont constitués de 10 LE : Logic Element APEX II - LAB Les LAB sont constitués de 10 LE : Logic Element

Le nombre max de LE pour un APEX II est de 67 200 APEX II - LE Le nombre max de LE pour un APEX II est de 67 200

APEX II - Carry Chain

APEX II - ESB Bloc de mémoire de 4096 bits configurable en simple ou double port Peut être utilisé en CAM (Content Access Memory) et en matrice PAL

APEX II - Entrées Sorties

APEX II - PLL

Stratix Toujours plus gros, toujours plus performant, Stratix, le dernier née d’Altera !

Stratix - Architecture

Stratix - Architecture

Stratix - Blocs mémoires

Stratix - DSP élémentaires Des blocs multiplieurs sont insérés

Stratix - Réseau d’horloges

Évolutions futures Progression de la famille STRATIX: Version Excalibur avec un cœur ARM10 Version bas coûts, plus petite, pour les grandes séries (=> CYCLONE)

VI. FAMILLE XILINX

La Famille XILINX 1985 Lancement de la 1er famille de FPGA Xilinx le XC2000 (1500 portes - obsolète) 1987 Famille XC3000 (6000 portes - obsolète) 1991 Famille XC 4000 (500 000 portes) 1995 Famille XC 5200 spéciale petit design (18 000 portes) 0.6 µm 6 couches 1996 Innovations avec la famille XC 6200 (100 000) visant le coprocessing et le reconfigurable dynamiquement, echec commercial 1998 Famille SPARTRAN vise la souplesse d’utilisation et les petits design 1999 Famille VIRTEX vise les fortes capacités ( 4 millions de portes) techno 0,22 µm 5 niveaux de métallisation 1999 VIRTEX-E amélioration du VIRTEX avec plus de mémoires, techno 0.18 µm 6 niveaux de métallisation 2000 Famille SPARTRAN II, FPGA moyennes capacités (100 000 portes) bas coûts, ce sont de petits VIRTEX, techno 0.18 µm 6 niveaux de métallisation 2001 Famille VIRTEX II, toujours plus fort (10 millions de portes) techno 0.15 µm 8 niveaux de métallisation, avec des transistors rapide 0.12 µm 2002 Famille VIRTEX II-Pro qui contient 4 cœurs de µP RISC Power-PC Xilinx propose aussi une gamme complète de CPLD

La Famille XILINX

Virtex II - Caractéristiques Le plus gros composant disponible est le VIRTEX II XC2V 10000 Caractéristiques MAX: 10 millions de portes utilisables (122 880 LUT et 10 *+ de bascule D) 5 376 K bits de mémoires RAM soit 656 Kilo octets 192 Multiplieurs (18*18 bits à 200MHz) 12 DLL cœur alimenté en 1.5 V 1 108 entrées sorties (tension 1.5 V, 1.8 V, 2.5 V ou 3.3 V) Fréquence interne 420 MHz 840 Mbps de débit en entrées sorties technologie allu 0.15µm 8 niveaux de métallisation taille de la puce 40*40 mm soit 1600 mm²

Virtex II - Architecture CLB : Configurable Logic Block CLB Slice

Virtex II - Réseau de routage

Virtex II - Réseau d’horloges DCM : Digital Clock Manager

Virtex II - DCM Digital Clock Manager

Virtex II - Entrées sorties

Virtex II - Configuration

Virtex II - Évolution

Virtex II Pro- Architecture

VII. AUTRES EXEMPLES DE FPGA

Autres exemples de FPGA Il n’est pas nécessaire de détailler d’autres architectures de FPGA, elles n’apportent rien de plus que ce que l’on a vue chez Xilinx ou Altera Mais il est toutefois intéressant de connaître l’offre d’autres fabricants

Autres exemples de FPGA ACTEL ProASIC technologie flash, ASIC reprogrammable, non volatile et à granularité fine, ISP. Utilise les outils ASIC ou FPGA AXELERATOR technologie antifusibles => OTP (One Time Programmable), FPGA les plus rapide à 500MHz interne et 300MHz de fonctionnement système HiRel, RT, RH, technologie antifusibles série militaire, tolérance aux radiations

Autres exemples de FPGA ATMEL AT40K, technologie SRAM, architecture îlots de calcul, faible densité (5K à 50K portes), reconfigurable dynamiquement, des cœurs FPGA dérivés de cette famille peuvent s’intégrer dans les circuits prédiffusés ATMEL. Lattice ispXPGA, technologie SRAM, archi îlots de calcul, densité de 125K à 1,2M portes. EEPROM de configuration intégré => configuration à la mise sous tension en moins de 200 µs

Autres exemples de FPGA Quick Logic pASIC (1,2 et 3), série Quick (Ram, PCI), technologie antifusible (One Time Programmable), faible densité de 1K à 90K portes Cypress CY39K, architecture mixte CPLD-FPGA

VIII. UTILISATIONS & CAO

Diagramme en Y - Gajski 1 Synthèse Système 2 Synthèse Architecturale Domaine comportemental Domaine structurel Synthèse système Système Algorithme Processeur, ASIC, ASIP, FPGA, etc. Transfert de registres UAL, RAM, etc. Logique Portes, bascules, etc. Fonction de transfert Transistor Partitions pysiques Plan de masse Dessin des modules Dessin des cellules Dessin des transistors 1 Synthèse Système 2 Synthèse Architecturale 3 Synthèse RTL Domaine physique 4 Synthèse Logique

Programmation des PLDs. Saisie des équations logiques, de la table de vérité, du logigramme ou de l’algorithme avec le logiciel Cahier des charges Mise en « équation » du problème Résolution du problème sous forme d’équation logique, de logigramme ou d’algorithme Simplification logique Génération d’un fichier au format JEDEC Simulation Choix du PLD en fonction du nombre d’entrées et de sorties Ces étapes sont effectuées par le logiciel Programmation du PLD à l’aide du fichier JEDEC et du programmateur PLD programmé La programmation des PLDs nécessite un logiciel adapté pour le développement du programme et un programmateur permettant de « griller » le circuit. Le fichier JEDEC est un ensemble de données binaires indiquant au programmateur les fusibles à « griller ».

Flot de conception ENTREE (schéma et/ou fichier VHDL) SIMULATION FONCTIONNELLE SYNTHESE LOGIQUE PLACEMENT ROUTAGE SIMULATION TEMPORELLE CONFIGURATION ET TESTS OPERATIONNELS

Outils de CAO Les outils de CAO sont les points faibles de ces circuits. Si un circuit est très performant il ne se vendra pas si les outils qui lui sont associés ne sont pas performants ! Chez Xilinx 50% des ingénieurs de R&D se consacrent à ces outils !

Outils de CAO Tous les fabricants de FPGA proposent des outils de CAO, passage obligé pour configurer leurs circuits pour Xilinx c’est ISE - Foundation pour Altera c’est Quartus ou MAX + II Avec ces outils on peut réaliser tout le flot de conception de la synthèse à la configuration. Pour certaines phases du flot ces outils font en fait appel à d’autres outils

Autres outils de CAO Flot FPGA Synthèse Simulation

IP : Intellectual Property Communications Bus Interface Digital Signal Processing Processor, Peripheral ADPCM (u-law, a-law) ATM Controller CRC Ethernet MAC (10/100/Gigabit) HDLC Protocol Core IMA Controller SONET/SDH Framer T3/E3 Framer Packet Over SONET Processor Telephony Tone Generator Utopia Master & Slave POS-PHY Interface PCI Target PCI Master-Target PCI-X CAN Bus IIC Master & Slave IEEE 1394 PowerPC Bus Arbiter PowerPC Bus Master PowerPC Bus Slave USB Function Controller USB Host Controller Color Space Converter Correlator Digital Modulator Discrete Cosine Transform Fast Fourier Transform FIR Compiler IIR Filter Image Processing Library NCO Reed Solomon Encoder/Decoder Interleaver/Deinterleaver Viterbi Decoder Turbo Decoder NiosTM Processor Tensilica X-tensa Processor PalmChip Bus SDRAM Controller DDR-SDRAM Controller QDR-SDRAM Controller 8237 DMA Controller 8255 Peripheral Interface 8259 Interrupt Controller 8254 Timer/Counter 8051, 6502, Z80 Et plus encore !

Exemple d’IP : NIOS NIOS : cœur de processeur RISC générique optimisé SRAM NIOS : cœur de processeur RISC générique optimisé Caractéristiques : données sur 16 ou 32 bits 128, 256 ou 512 registres registres à décalage rapide ( 1, 3, 7, 15 ou 31 bits/clock) possibilités de lui adjoindre des périphériques (UART, RAM, ROM) PBM CPU IRQ FLASH Timer Serial Port UART Ici le reste de votre système 12% d’un EP20K200E APEX EP20K200E

Exemple d’IP : NIOS IP ALTERA Soft Core Hard Cores Other Cores ARM (Future) IP ALTERA 200 ARM Core 100 Performance (MIPs) PERFORMANT Core 50 FLEXIBLE 20 Soft Core Hard Cores

Conclusion Même si l’utilisation des FPGA paraît simple (en autre grâce au langage comme VHDL) et même si les FPGA reconfigurables donnent droit à l’erreur il faut adopter des méthodologies de conception des systèmes numériques (en autre ; les méthodologies synchrones). Elles sont obligatoires pour développer un ASIC, mais restent un peu de côté pour les petits systèmes à base de FPGA. Aujourd’hui avec des FPGA de plus en plus complexes elles deviennent aussi indispensables que pour les ASIC.

IX. EVOLUTIONS CODESIGN, SORC

Les nouvelles utilisations des FPGA Longtemps réduit au prototypage, aujourd’hui les FPGA sont utilisés, pour leur capacité de reconfiguration, dans des systèmes électroniques complexes, même pour de la grande série. le CoDesign pour le Run Time Reconfigurable les SORC : System-On-a-Reconfigurable-Chip

Le CoDesign Définition : Les méthodes de CoDesign sont des méthodes de développement simultané (de manière concurrente) des parties HW et SW (spécification, design, vérification) SW = microprocesseur HW = FPGA ou ASIC Buts : Gérer au mieux l’hétérogénéité de la nature des fonctions qui composent le système (du logiciel à l’architecture reconfigurable) Comparer les différents choix de partitionnement Définir les interfaces entre le SW et le HW Valider le système complet (co-vérification et co-simulation)

Flot de CoDesign SPECIFICATION HAUT NIVEAU DE L’APPLICATION ordonnancement de l’application proposition de candidats HW et SW ESTIMATION SYSTEME ESTIMATION LOGICIELLE ESTIMATION MATERIELLE PARTITIONNEMENT Choix des réalisation HW ou SW SYNTHESE LOGICIELLE SYNTHESE INTERFACE SYNTHESE MATERIELLE COSIMULATION Retour d’expérience IMPLEMENTATION HW et SW TESTS

Les SORC Technique héritière direct des SOC : System On Chip Différentes notations : SORC (Xilinx) : System On a Reconfigurable Chip SOPC (Altera) : System On a Programmable Chip CSOC : Configurable System On Chip L’utilisation des techniques de CoDesign est inévitable ! L’engouement pour les SORC est certain vue le nombre de cœur de processeurs (IP ou câblés) présents sur le marché

Evolution des architectures de FPGA

Evolution : Architecture "Domaine Specific" Concept Xilinx : Application Specific Modular BLock (ASMBL) Architecture

ARCHITECTURES RECONFIGURABLES GROS GRAINS IX. EVOLUTIONS ARCHITECTURES RECONFIGURABLES GROS GRAINS

Field Programmable ALU Array Université de Kaiserslautern The KressArray : a FPAA Field Programmable ALU Array Laboratoire Xputer Université de Kaiserslautern Allemagne

Field Programmable Function Array The FPFA Field Programmable Function Array Dept Computer Science & Electrical Engineering, Université de Twente, Pays-Bas

Adaptatif System on Chip aSoC Architecture tuile (Tiled-Base) multi-granularités VLSI Signal Processing Group Université du Massachusetts USA

Une Architecture commerciale : Chameleon Chameleon System San Jose, Californie USA

Conclusion Le domaine des architectures reconfigurables (de grain fin, moyen, gros …) est un domaine en extension il est nécessaire de faire des travaux de recherches sur : architectures basse consommation de puissance (low power) architectures hétérogènes (hard + soft) co-conception (Co-Design) outils de d’estimation de performances haut niveau outils d’exploration de l’espace de conception sécurité de conception domaine d’applications ; software radio, 3G, cryptographie, TI ...

CONCLUSIONS

REFERENCES BIBLIOGRAPHIQUES

Références bibliographiques Livres : Laurent Dutrieux, Didier Demigny, LOGIQUE PROGRAMMABLE, Architecture des FPGA et CPLD, Méthodes de conception, Le langage VHDL. Eyrolles, 1997 Vaughn Betz, Jonathan Rose, Alexander Marquardt, Architecture and CAD for Deep-Submicron FPGAs. Kluwer Academic Publisher, 1999 Revues : Électronique - Le mensuel des ingénieurs de conception Électronique International Hebdo Xcell Journal (Xilinx press) Revues IEEE

Références bibliographiques Sites Internet : LES SITES DES CONSTRUCTEURS (Xilinx, Altera, Atmel, Actel, QuickLogic …) AUTRES : http://www.mrc.uidaho.edu/fpga/fpga.html page de liens vers FPGA http://optimagic.com/ the Programmable Logic Jump Station http://eet.com/embedsub site de l’embedded developers journal http://www.mvd-fpga.com/fr/default.htm site d’une entreprise française de service spécialisée dans les FPGA http://www.design-reuse.com/ site sur les IP http://www.supelec-rennes.fr/ren/perso/jweiss/fpga/poly/fam99-fin.htm cours de SUPELEC J. Weiss http://www.enseirb.fr/~kadionik/formation/altera/index.htm cours de l’ENSEIRB L. Dulau http://micdigital.web.cern.ch/micdigital/VLSI_Trieste/design_styles/index.htm autre cours en PPT

conférences Conférences spécialisées : FPGA ACM International Symposium on Field-Programmable Gate Arrays FPL International Workshop on Field-Programmable Logic and Applications FCCM IEEE Symposium on Field-Programmable Custom Computing Machines FTP IEEE International Conference on Field-Programmable Technology RSP IEEE International Workshop on Rapid System Prototyping ERSA Engineering of Reconfiguraable Systems and Algorithms RAW Reconfigure Architectures Workshop (part of IPDPS) FPGA/PLD Design Conference (part of ASP-DAC) Conférences généralistes DAC : Design Automation Conference ASP-DAC Asian and South Pacific Design Automation Conference DATE Design Automation & Test Exhibition ISCAS IEEE International Symposium on Circuits and Systems

MERCI ...