Explorer les Livres électroniques
Catégories
Explorer les Livres audio
Catégories
Explorer les Magazines
Catégories
Explorer les Documents
Catégories
industrielle (AII)
FPGA et
programmation VHDL
Crédits:4, Coefficient: 2
Sami HEBIB
sami.hebib@univ-blida.dz
Déroulement
3H/Semaine : Cours + TD
Dimanche 11H10->14h15
1
Pourquoi ce cours « FPGA et
programmation VHDL »?
• FPGA présents dans de plus en plus
d applications:
d’applications:
Industriel (Contrôle, systèmes embarqués, ….)
Médical (Imagerie, ….)
Télécommunications (filaires et sans fils)
Aérospatial et défense(radar, missile, GPS,..)
….
• Besoin croissant des entreprises d’avoir
du personnel qualifié
3
Présentation du cours
Objectifs:
- Connaître l’architecture
l architecture et le principe de fonctionnement
d’un circuit logique programmable et plus particulièrement
un FPGA
- Maitriser les bases du langage VHDL
Pré-requis:
q
Cours d’électronique et de logique (logique booléenne,
portes logiques, fonctions combinatoires et séquentielles,
représentation des nombres en binaire, table de Karnaugh)
2
Plan sommaire du cours
• Quelques rappels
• VHDL
Rappels (1/3)
• Circuits logiques combinatoires
Leur sortie est déterminée uniquement par la
valeur
l courante
t dde l'l'entrée
té
Portes logiques, multiplexeurs, demultiplexeurs,
décodeurs, circuits arithmétiques
Exemple:
( A B ).( A C )
3
Rappels (2/3)
• Circuits logiques séquentielles
Leur sortie est partiellement déterminée par
l'évolution de l'entrée. La réponse du circuit dépend
de l'histoire plus ou moins récente du fonctionnement
du circuit. Fonction MEMOIRE interne.
Bascule D, registres, mémoires RAM, compteurs
Exemple:
compteur 4bits
Rappels (3/3)
• Compteur 4 bits asynchrone (bascule D)
4
Circuits logiques programmables et
FPGA
• GAL
GAL: PAL effaçables électriquement (programmables
plusieurs fois), marque déposée de Lattice
Semiconductor
Complex PL
• CPLD
CPLD: capacité en nombre de portes et de configuration
(CPLD)
câblés)
• FPGA
FPGA: les plus récents, capacité et flexibilité supérieures
(FPLD)
5
Techniques de programmation des
PLD
11
Pourquoi un PLD?
• De plus en plus de la logique programmée (μP,
mémoires, μC, ...)
• Besoin d’interfaces à base de fonctions logiq
logiques
es
élémentaires (compteurs, registres, ..)
• Nombre de fonctions nécessaires élevé
6
PAL (Programmable Array Logic)
combinatoires (simples) à registres(séquenceur)
Logique combinatoire
L i
Logique combinatoire
bi t i
Logique séquentielle (registre)
Réseau logique constitué d’une matrice de conducteurs
connectés en lignes et colonnes avec des portes « ET ».
Programmation par destruction de fusible
(OTP: One Time Programmable )
I 1 I 2 I 1.I 2 I 1.I 2
Schéma simplifié
7
Exercices
Soit le PAL suivant:
15
Exercice
Soit le PAL suivant:
Réaliser sur ce PAL le
convertisseur suivant:
8
PAL (Programmable Array Logic)
Référence (MMI seulement)
17
Sortie combinatoire
utilisable également
en entrée (I/O)
Sortie séquentielle
simple (O)
Sortie séquentielle
utilisable également en PAL Polyvalent
entrée (I/O) (ex. PAL22V10)
18
9
PAL16R6CN
Schéma logique
A registres
16 entrées max
6 sorties
19
10
GAL (Generic Array Logic)
Référence:
11
CPLD (Complex Programmable
Logic Device )
• CPLD sont principalement constitués de plusieurs Logic Array
Blocks (LABs
(LABs=réseaux
réseaux SPLDs) interconnectés avec un réseaux
d’interconnexion programmable (PIA)
24
12
Exemple d’un CPLD(2/3)
Altera MAX 7000-series (Architecture)
I/O pins I/O pins
I/O Logic array block PIA Logic array block I/O (8-16)
(8-16) control (LAB A) (LAB B) control
block block
Macrocell 1 Macrocell 1
16 16
Macrocell 16 Macrocell 16
8-16 8-16
Densités, taille, vitesse, éléments internes (macrocells, ..) peuvent varier d’un
constructeur à l’autre 25
Parallel expanders
from other
macrocells
Product-term To I/O
Associated
selection control
logic
matrix block
Expander example
Shared A
expander B
C ABC(E + F)=ABCE + ABCF
13
FPGA (Field-Programmable Gate Array)
• Lancé sur le marché en 1985 par Xilinx Inc
• Capacité et flexibilité supérieures à celles des CPLD
• Architecture différente qu’un CPLD
Besoin d’une mémoire
•Deux types de FPGA: externe (PROM)
• A base de mémoire (SRAM ou flash EEPROM)
• A base d’anti-fusible (OTP FPGA)
Source: http://www.fpgadeveloper.com/2011/07/list-and-comparison-of-fpga-companies.html
28
14
FPGA (Field-Programmable Gate Array)
FPGA est constitué principalement de plusieurs:
Program
Bloc logique configurable (Configurable Logic Block (CLB))
Bloc d’entrées/sorties
d entrées/sorties (Input/Output Block (IOB))
mmables
Interconnexions
CLBs
disposés en
matrice
Global column
interconnect
29
Global row interconnect
30
15
Configurable Logic Block (CLB)
Exemple d’un module logique simplifié d’un FPGA XILINX
Multiplexeur
LUT
Bascule
Table de vérité
31
Utilisation de :
4 LUT 16x1
3 multiplexeurs
Gain de vitesse significatif : Rechercher une valeur en mémoire est souvent plus
rapide qu'effectuer un calcul important
Peu efficace pour les fonctions simples (une fonction à 2 variables utilise une 32
LUT entière)
16
Input/Output Block (IOB)
• IOB: portes vers l’extérieur du FPGA
• Chaque bloc IOB contrôle une broche du
composantt ett il peutt être
êt défini
défi i en entrée,
t é en
sortie, en signaux bidirectionnels ou être inutilisé
(haute impédance).
• Plusieurs spécifications d’interface (e.g.
TTL,CMOS, ECL...) peuvent être programmés
avec ces blocs
blocs.
• Entrées/sorties directes ou mémorisées
• Inverseur programmable
• …..
33
34
17
Interconnexions programmables
Exemple simplifié d’une connexion entre 3 CLB:
35
FPGA modernes
• En plus des blocs de base précédents, les
FPGA modernes peuvent inclure:
– Mémoires intégrés(RAM, ..) >>Facilité d’accès
– Blocs logiques pour les calculs arithmétiques
(addition, multiplication ,…) >> Rapidité
– Blocs logiques DSP >>Implémentation aisée de
fonctions DSP sur FPGA
– Microprocesseurs intégrés >> Facilité de
communication avec d’autres μp)
Conception d’applications plus facile et efficace
36
Gain de temps et de mémoire
18
Quelques FPGAs de Xilinx
37
Spartan II
Blocs de
mémoire RAM
intégres
19
Spartan II
IOB d’un Spartan II
39
Spartan II
Slice de Spartan II:
40
20
Programmation CPLD/FPGA
Les constructeurs de circuits logiques programmables fournissent
généralement les logiciels pour la programmation de leurs produits.
Design entry
Schematic
HDL
Synthesis
Timing
Functional simulation
simulation
Implementation
Programmation CPLD/FPGA
Design entry
Schematic
HDL
42
21
Programmation CPLD/FPGA
Design entry
Schematic
HDL
Programmation CPLD/FPGA
Design entry
Schematic
HDL
S Q
A Q
Q QNot
B R
44
22
Programmation CPLD/FPGA
Design entry
Schematic
HDL
Programmation CPLD/FPGA
Functional
simulation
46
23
Programmation CPLD/FPGA
Synthesis
Synthèse:
Après simulation,
simulation le logiciel de programmation optimise la conception
logique en éliminant les termes redondants et générant ensuite une
netlist (une liste de connections) qui décrit complètement le circuit.
Exemple: net2
net1
net3 and1
net5
Netlist (Logic3)
net4 net<name>: instance<name>, <from>; <to>;
net6 instances: and1, and2, and3, and4, and5, or1, inv2,
net7 and2 net10 inv3, inv4;
Input/outputs: I1, I2, I3, I4, O1;
net9 net8 net1: and1, inport1; I1;
net11 net2: and1,, inport2;
p ; I2;;
i 1
inv1 O1
I1 net12 and3 net15 or1 Z net3: and1, inport3; I3;
net14 net26 net4: and1, inport4; I4;
A0
net13 net5: and1, outport1; or1, inport1;
inv2 net6: and2, inport1; I1;
I2 net16
net17 net20 net7: and2, inport2; I3;
A1 net18 and4 net8: and2, inport3; inv2,outport1
inv3 net19 net9: and2, inport4; inv4,outport1
I3 net10: and2, outport1; or1,inport2;
net23
A2 net11: and3, inport1; inv2,outport1
net21 net12: and3, inport2; inv3,outport1
inv4 net22 and5 net25
I4 net13: and3, inport3; I4;
A3 net14: and3, inport4; I1;
net24
5: and3 47
Programmation CPLD/FPGA
Implementation
Implémentation:
La conception
p contenue dans la « netlist » est adaptée
p afin de
correspondre au circuit logique à programmer. Les données
correspondants aux circuits logiques programmables sont contenues
dans les librairies du logiciel de programmation.
48
24
Programmation CPLD/FPGA
Timing
simulation
Simulation temporelle (Post routage)
Après implémentation, une simulation temporelle est réalisée.
C tt simulation
Cette i l ti prendd en compte t les
l différents
diffé t retards
t d du
d circuit
i it
logique à programmer et permet ainsi de vérifier l’absence de
problème avec le timing.
Waveform Editor
Name: 1 s 4 s 8 s 12 s 16 s
A0 0
Si un problème a été détecté, il
A1 0
n’est pas trop tard pour le
corriger avant de télécharger la A2 0
49
Programmation CPLD/FPGA
Device
Téléchargement du programme programming
(downloading)
25
Annexes
51
52
26
Propriétés opérateurs logiques (2/2)
53
54
27
Mémoires (Rappel)
55
56
28
57
58
58
29
Carte développement SPARTAN-3E
59
De la conception à la
programmation du circuit (1/3)
60
30
De la conception à la
programmation du circuit (2/3)
61
De la conception à la
programmation du circuit (3/3)
62
31
Lexique (1/3)
63
Lexique (2/3)
64
64
32
Lexique (3/3)
65
Quelques références
• John W. Carter, « Digital Designing with Programmable
Logic Devices », Prentice Hall, 1997
• http://www.xilinx.com/
66
33