les fpga « field programmable gate array »
DESCRIPTION
Les FPGA « Field Programmable Gate Array ». - Circuit intégré contenant un très grand nombre de portes logiques organisées en blocs logiques configurables et interconnectables « Programmer » un fpga = Configurer et interconnecter des blocs logiques - PowerPoint PPT PresentationTRANSCRIPT
Les FPGA« Field Programmable Gate Array »
- Circuit intégré contenant un très grand nombre de portes logiques organisées en blocs logiques configurables et interconnectables
« Programmer » un fpga = Configurer et interconnecter
des blocs logiques
= « Câblage » sur silicium
Architecture des FPGA
– Blocs d ’entrées/sorties « IOB » configurables • Entrée, sortie ou les deux, mémorisation dans une bascule D
• niveaux logiques LVTTL, LVCMOS, … 3.3V, 2.5V,…
• pull-up ou pull-down interne sur les entrées
– Blocs logiques « CLB » configurables• Blocs combinatoires 4 entrées une sortie (en général)
• Bascules D pour la mémorisation
– Lignes d ’interconnexions « PSM » configurables• lignes courtes
• lignes longues
– Options : multiplicateurs , sram, etc…
Description simplifiée d ’un FPGA
Entrée/Sortie (IOB)
Bloc logique (CLB)
Zone d ’interconnexions
Description simplifiée d ’un FPGASpartan III
Entrée/Sortie (IOB)
Bloc logique (CLB)
Zone d ’interconnexions
Multiplieurs
Ram
Gestion d ’horloge (DCM)Buffers
Blocs d ’interconnexions programmables(PSM)
spartan3 XC3S200
Bloc d ’entrée/sortie (IOB)
Multiplexeurs positionnés lors de la configuration
spartan3 XC3S200
Mémorisation de l ’entrée
Mémorisation de la sortie
Entrée « directe »
Entrée mémorisée dans une bascule
Sortie « directe »
Sortie mémorisée dans une bascule
Bloc d ’entrée/sortie (IOB)
Autorisation de la sortie Driver de sortie à 3 états
Adaptation électrique des entrées par résistance
Principe de fonctionnement d ’une cellule logique de base
LUT
Bascule
Mux
4 entrées
SRAM de 16 bits (Look Up Table)
Mémorisation du résultat
Positionné lors de la configuration
CE
Ck
D Q
Principe de fonctionnement d ’une cellule logique de base
LUT
Bascule
4 entrées
SRAM de 16 bits (Look Up Table)
Choix
CE
Ck
D Q
Fonctionnement purement combinatoire
Principe de fonctionnement d ’une cellule logique de base
LUT
Bascule
4 entrées
SRAM de 16 bits (Look Up Table)
Mémorisation du résultat
Choix
CE
Ck
D Q
Mémorisation du résultat
Look up table (LUT)
- Les 4 entrées permettent d ’adresser 16 cellules mémoires de 1 bit chacune (24)
- Le contenu de la table permet d ’obtenir n ’importe quelle fonction logique de 4 entrées binaires.
LUT 4 entrées
SRAM 16*1 bits (Look Up Table)
1 sortie
4 entrées
Sortie
010
1
24 bits
Bloc logique configurable (CLB)
spartan3 XC3S200
Horloges
• Des entrées spécialisées sont prévues pour recevoir les signaux d'horloge et les distribuer à l'intérieur du circuit
• les DCM (Digital Clock Managers) sont des blocs internes pour la gestion du signal d'horloge:
• Ils génèrent d'autres fréquences d'horloge et des déphasages à partir du signal d ’horloge externe, en éliminant le « jitter »
•Les DCM sont basés sur des PLL (phase-locked loops)
4 blocs de gestion d ’horloge (DCM Spartan 3)
f avec déphasage
2.f
f /(1,5 2 2,5...16)
( 2…32)/(1..32) . f
f
Programmation des FPGA Xilinx
• La chaîne de bits de configuration est envoyée en série dans la mémoire vive interne de configuration par :
• Connexion JTAG (Joint Test Action Group)• Mémoire externe flash à accès série
Le transfert est rythmé par une Horloge
Outils logiciels génériques
• Synario, Synopsis, Mentor, ViewLogic, ASYL, CADENCE,,…
Avantages:– un seul apprentissage pour tous les composants– permet une conception détachée du composant cible…
Inconvénients :– toujours un peu en retard sur les derniers composants sortis– plus chers– Le P/R constructeur est nécessaire
Outils logiciels spécifiques
• Ne permettent que le développement des composants du constructeurs
• Ex : Actel Logiciel Designer, Altera Max.PlusII, AMD Mach XL,Lattice IspDesignEXPERT, Xilinx ISE…
• Avantages :– ils optimisent au mieux la synthèse pour le composant ciblé– toujours à jour sur le dernier composant
• Inconvénients :– ils nécessitent un apprentissage à refaire si on souhaite changer de constructeur
Projet FPGA
• Décomposer le circuit principal en blocs fonctionnels simples interconnectés. Un bloc fonctionnel complexe peut, à son tour, être décomposé en éléments plus simples…etc...
Réalisation « Bottom-up »
• Mettre au point chacun des blocs fonctionnels séparément
• Regrouper les blocs et tester le fonctionnement global
Conception « Top-Down »
Les interfaces de saisie
• Schéma électronique:On place et on relie des composants Le fichier HDL est créé automatiquement
• Saisie en mode texte en VHDL ( Verilog, Abel…)Description structurelle Description comportementaleGénération du composant pour la saisie schématique
• Autre : Saisie graphique de diagramme d ’états
La synthèse logique
• Traduit en «blocs logiques élémentaires interconnectés » les fichiers du projet.
• L ’utilisateur peut agir sur la façon dont la synthèse s ’effectue. Par exemple :
Codage « one-hot » ou binaire pour les machines séquentielles...
• Le résultat de la synthèse peut être affiché sous forme :- classique ne tenant pas compte de l ’architecture du FPGA- ou de schémas adapté à l ’architecture du FPGA
La simulation fonctionnelle
• Simule le fonctionnement du circuit avant son implantation
• Utile pour détecter des erreurs de conception
• Ne tient pas compte des contraintes et aléa de fonctionnement liées au composant ciblé:
• fréquences maximales d ’horloge• possibilités de routage • ressources insuffisantes• temps de transfert réel dans les circuits logiques•…etc...
Le placement - routage
• Implante le circuit dans le composant cible
• Affecte les pattes d ’entrées/sorties
• Mode d ’optimisation (en surface ou en vitesse)
• Génère le fichier de configuration à télécharger dans la cible • Produit un rapport avec les ressources utilisées et les temps de propagation de broche à broche.
La simulation « post-routage »
• La simulation tient compte de l ’implantation dans le composant.
• Elle permet de vérifier si le circuit répond au cahier des charges
Chargement dans la cible
• Directement par l ’interface JTAG dans la mémoire SRAM de configuration
• Indirectement :• Le fichier est tout d ’abord stocké dans une mémoire flash à accès série externe (ou interne). • A la mise sous tension du FPGA il y a recopie de la mémoire flash vers la SRAM de configuration
Tests sur la cible
• On effectue des tests avec des signaux réels sur la cible pour valider le circuit créé.
• L ’interface JTAG est utile pour sonder l ’état logique des broches du circuit en fonctionnement
Les TP sur FPGA Spartan3 xc3s200
• Prise en main de outils Xilinx : • en VHDL (TP1)• en mode schéma (TP2)
• Utilisation de « cœurs configurables » (core IP) et des bibliothèques de symboles (TP3)• Mise en évidence des performances d ’une architecture distribuée (parallèle) avec la réalisation d ’un filtre passe-bande numérique (TP4)• Mise en place d’un cœur microprocesseur (TP5)
Les documents utiles
• Description de la carte de développement UG130.pdf
• Manuel de référence VHDL (synopsys) VHDLman.pdf
• Tutorial rapide (Xilinx) qst.pdf
• Tutorial complet (Xilinx) ise8.2tut.pdf
• Datasheet du spartan3 (Xilinx) ds099.pdf
• Documentation des librairies (Xilinx) s3esc.pdf et s3ehl.pdf