350 likes | 785 Views
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
E N D
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 Buffers Gestion d ’horloge (DCM) Bloc logique (CLB) Ram Entrée/Sortie (IOB) Multiplieurs Zone d ’interconnexions
spartan3 XC3S200 Blocs d ’interconnexions programmables(PSM)
Multiplexeurs positionnés lors de la configuration Mémorisation de la sortie Mémorisation de l ’entrée spartan3 XC3S200 Bloc d ’entrée/sortie (IOB)
Autorisation de la sortie Driver de sortie à 3 états Adaptation électrique des entrées par résistance Bloc d ’entrée/sortie (IOB)
Bascule Mux 4 entrées LUT D Q Ck Positionné lors de la configuration SRAM de 16 bits (Look Up Table) CE Mémorisation du résultat Principe de fonctionnement d ’une cellule logique de base
Bascule 4 entrées LUT D Q Ck Choix SRAM de 16 bits (Look Up Table) CE Principe de fonctionnement d ’une cellule logique de base Fonctionnement purement combinatoire
Mémorisation du résultat Bascule 4 entrées LUT D Q Ck Choix SRAM de 16 bits (Look Up Table) CE Mémorisation du résultat Principe de fonctionnement d ’une cellule logique de base
0 1 0 Sortie 24 bits 4 entrées LUT 1 sortie 1 4 entrées SRAM 16*1 bits (Look Up Table) 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.
spartan3 XC3S200 Bloc logique configurable (CLB)
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 f avec déphasage 2.f f /(1,5 2 2,5...16) ( 2…32)/(1..32) . f
Le transfert est rythmé par une Horloge 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
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 Conception « Top-Down » • • 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
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 comportementale • Gé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