Les circuits FPGA Field Programmable Gate Array

publicité
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 FPGA
Spartan III
Buffers
Gestion d ’horloge (DCM)
Bloc logique (CLB)
Ram
Entrée/Sortie (IOB)
Multiplieurs
Zone d ’interconnexions
Blocs d ’interconnexions programmables(PSM)
spartan3 XC3S200
Bloc d ’entrée/sortie (IOB)
Multiplexeurs positionnés lors de la configuration
Mémorisation
de la sortie
Mémorisation
de l ’entrée
spartan3 XC3S200
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
Bascule
4 entrées
LUT
D
Mux
Q
Ck
SRAM de 16 bits
(Look Up Table)
CE
Mémorisation
du résultat
Positionné lors de
la configuration
Principe de fonctionnement
d ’une cellule logique de base
Fonctionnement purement combinatoire
Bascule
4 entrées
LUT
D
Ck
SRAM de 16 bits
(Look Up Table)
CE
Q
Choix
Principe de fonctionnement
d ’une cellule logique de base
Mémorisation du résultat
Bascule
4 entrées
LUT
D
Q
Ck
SRAM de 16 bits
(Look Up Table)
CE
Mémorisation
du résultat
Choix
Look up table (LUT)
0
1
0
4 entrées
LUT
SRAM 16*1 bits
(Look Up Table)
1 sortie
Sortie
24 bits
1
4 entrées
- 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.
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
f avec déphasage
2.f
f /(1,5 2 2,5...16)
( 2…32)/(1..32) . 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
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
Téléchargement