Les FPGA « Field Programmable Gate Array »

Post on 28-Jan-2016

80 views 1 download

Tags:

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 Presentation

Transcript of 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

= « 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