1 / 31

Les FPGA « Field Programmable Gate Array »

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

edythe
Download Presentation

Les FPGA « Field Programmable Gate Array »

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

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

  3. Description simplifiée d ’un FPGA Entrée/Sortie (IOB) Bloc logique (CLB) Zone d ’interconnexions

  4. Description simplifiée d ’un FPGASpartan III Buffers Gestion d ’horloge (DCM) Bloc logique (CLB) Ram Entrée/Sortie (IOB) Multiplieurs Zone d ’interconnexions

  5. spartan3 XC3S200 Blocs d ’interconnexions programmables(PSM)

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

  7. Entrée « directe »

  8. Entrée mémorisée dans une bascule

  9. Sortie « directe »

  10. Sortie mémorisée dans une bascule

  11. Autorisation de la sortie Driver de sortie à 3 états Adaptation électrique des entrées par résistance Bloc d ’entrée/sortie (IOB)

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

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

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

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

  16. spartan3 XC3S200 Bloc logique configurable (CLB)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

More Related