Les FPGA « Field Programmable Gate Array »

31
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

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 »

Page 1: 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

Page 2: Les  FPGA « Field Programmable Gate Array »

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…

Page 3: Les  FPGA « Field Programmable Gate Array »

Description simplifiée d ’un FPGA

Entrée/Sortie (IOB)

Bloc logique (CLB)

Zone d ’interconnexions

Page 4: Les  FPGA « Field Programmable Gate Array »

Description simplifiée d ’un FPGASpartan III

Entrée/Sortie (IOB)

Bloc logique (CLB)

Zone d ’interconnexions

Multiplieurs

Ram

Gestion d ’horloge (DCM)Buffers

Page 5: Les  FPGA « Field Programmable Gate Array »

Blocs d ’interconnexions programmables(PSM)

spartan3 XC3S200

Page 6: Les  FPGA « Field Programmable Gate Array »

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

Page 7: Les  FPGA « Field Programmable Gate Array »

Entrée « directe »

Page 8: Les  FPGA « Field Programmable Gate Array »

Entrée mémorisée dans une bascule

Page 9: Les  FPGA « Field Programmable Gate Array »

Sortie « directe »

Page 10: Les  FPGA « Field Programmable Gate Array »

Sortie mémorisée dans une bascule

Page 11: Les  FPGA « Field Programmable Gate Array »

Bloc d ’entrée/sortie (IOB)

Autorisation de la sortie Driver de sortie à 3 états

Adaptation électrique des entrées par résistance

Page 12: Les  FPGA « Field Programmable Gate Array »

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

Page 13: Les  FPGA « Field Programmable Gate Array »

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

Page 14: Les  FPGA « Field Programmable Gate Array »

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

Page 15: Les  FPGA « Field Programmable Gate Array »

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

Page 16: Les  FPGA « Field Programmable Gate Array »

Bloc logique configurable (CLB)

spartan3 XC3S200

Page 17: Les  FPGA « Field Programmable Gate Array »

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)

Page 18: Les  FPGA « Field Programmable Gate Array »

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

Page 19: Les  FPGA « Field Programmable Gate Array »

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

Page 20: Les  FPGA « Field Programmable Gate Array »

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

Page 21: Les  FPGA « Field Programmable Gate Array »

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

Page 22: Les  FPGA « Field Programmable Gate Array »

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 »

Page 23: Les  FPGA « Field Programmable Gate Array »

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

Page 24: Les  FPGA « Field Programmable Gate Array »

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

Page 25: Les  FPGA « Field Programmable Gate Array »

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

Page 26: Les  FPGA « Field Programmable Gate Array »

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.

Page 27: Les  FPGA « Field Programmable Gate Array »

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

Page 28: Les  FPGA « Field Programmable Gate Array »

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

Page 29: Les  FPGA « Field Programmable Gate Array »

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

Page 30: Les  FPGA « Field Programmable Gate Array »

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)

Page 31: Les  FPGA « Field Programmable Gate Array »

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