Académique Documents
Professionnel Documents
Culture Documents
Cours VHDL 10 Partie1 Introduction PDF
Cours VHDL 10 Partie1 Introduction PDF
Partie 1 - Introduction
Denis Giacona
ENSISA
cole Nationale Suprieure d'Ingnieur Sud Alsace
12, rue des frres Lumire
68 093 MULHOUSE CEDEX
FRANCE
Tl.
33 (0)3 89 33 69 00
D.Giacona
2/57
Partie 1 - Introduction
D.Giacona
3/57
Partie 1 - Introduction
D.Giacona
4/57
Partie 1 - Introduction
D.Giacona
1.2.
5/57
Partie 1 - Introduction
Domaines dapplication
Mdical
Electronique grand public
Militaire/arospatial
Contrle industriel
Automobile
Tlcommunications
Communications de donnes (rseaux)
Stockage de donnes
Tlphones mobiles
Combins multimdias
Botiers dcodeurs pour tlvision
Microprocesseurs
Processeurs graphiques
D.Giacona
6/57
1.3.
Partie 1 - Introduction
1.3.1.
PAL / PLA
Deux rseaux, AND et OR, pour fabriquer des somme de produits logiques laide de
points de connexion programmables.
X = A * B + C
Y = A * B + /C
Terme produit
disponible
Source : Xilinx
PAL
PLA
D.Giacona
1.3.2.
7/57
Partie 1 - Introduction
Architecture FPGA
D.Giacona
1.4.
8/57
Partie 1 - Introduction
Exemples de circuits
1.4.1.
D.Giacona
9/57
1.4.2.
Partie 1 - Introduction
D.Giacona
1.4.3.
10/57
Partie 1 - Introduction
Une macro-cellule
Rseau de type PLA
AIM : Advanced Interconnect Matrix
D.Giacona
11/57
Partie 1 - Introduction
D.Giacona
1.4.4.
12/57
Partie 1 - Introduction
D.Giacona
13/57
Partie 1 - Introduction
D.Giacona
1.5.
14/57
Partie 1 - Introduction
CPLD / FPGA
1.5.1.
Architecture CPLD
Flip-flop
Utilisation des ressources non optimale : tout terme non utilis dans une macrocellule
entrane une perte de portes logiques
Temps de propagation prdictible : on connat lavance la longueur des chemins de
connexion
D.Giacona
15/57
Partie 1 - Introduction
Rseau AND
Rseau OR
Signaux intermdiaires
Rseau AND
Flip-flops
Rseau OR
Entres
Clk
D.Giacona
1.5.2.
16/57
Partie 1 - Introduction
Architecture FPGA
Interconnexions entre les cellules logiques dans mmoire de configuration : type SRAM
Il faut une mmoire externe (par ex. PROM) pour la sauvegarde de la configuration (hors
tension)
D.Giacona
17/57
Partie 1 - Introduction
D.Giacona
18/57
Partie 1 - Introduction
A(3:0)
Adresse
Inscription de la table de
vrit de la fonction dans la
mmoire
donne
LUT
LUT
0
1
LUT
LUT
1
0
1
A4
A5
1.6.
19/57
Partie 1 - Introduction
Source : Xilinx
D.Giacona
20/57
1.7.
Partie 1 - Introduction
1.7.1.
Matrice de commutation
Source : Xilinx
D.Giacona
1.7.2.
21/57
Partie 1 - Introduction
Le routage
Cellule logique
Commutateur :
Point de connexion
ralis par un Passtransistor ou
uneTransmission gate ou
un Multiplexer
Gnre un temps de
propagation
D.Giacona
22/57
1.7.3.
Partie 1 - Introduction
Flash PROM
Bouton
configuration
restart
D.Giacona
23/57
Partie 1 - Introduction
FPGA
Configuration semi-dynamique
o Plusieurs configurations possibles, pour des applications diffrentes
FPGA
Flash
PROM1
Flash
PROM2
D.Giacona
24/57
Partie 1 - Introduction
SystemC,
HDL,
FBD,
FSM
2.1.
25/57
Partie 1 - Introduction
Les transitions internes sont asynchrones (on ne mentionne ni horloge systme ni dlais)
Les processus communiquent entre eux et se synchronisent avec les vnements dentressorties
2.1.1.
D.Giacona
2.2.
26
Partie 1 - Introduction
2.2.1.
Principes
Le concepteur choisit
le modle de description le mieux adapt ou simplement celui quil prfre
o textuel (HDL : Hardware Description Language)
o diagramme de blocs fonctionnels (schematic, FBD : Function Block Diagram)
o graphe dtat (FSM : Finite State Machine)
le niveau dabstraction
la mthode de traitement
D.Giacona
2.2.2.
27
Partie 1 - Introduction
Outils de dveloppement
ISE (Xilinx)
version WebPack, licence gratuite dure illimite
synthse des circuits du fondeur Xilinx (CoolRunner CPLD, Virtex FPGA, Spartan FPGA)
HDL Author + ModelSim PE (Mentor Graphics) ou ModelSim Designer (Mentor Graphics)
passerelle vers les fondeurs Xilinx, Altera, Actel et Lattice
ModelSim existe en version student gratuite
D.Giacona
2.2.3.
28
Partie 1 - Introduction
Objectifs
Conception
o Si possible, construction dentits partir dautres entits dj cres et testes
(composants logiques rutilisables archivs dans des bibliothques)
o Curs (noyaux) de proprit intellectuelle (IP cores)
lments de circuits (blocs fonctionnels) prts lemploi
fonctions standard (le concepteur ne part plus de zro ; il dveloppe les parties
spcifiques) conception plus rapide
code crit en HDL niveau RTL
disponibles dans les outils de dveloppement, ou achets sparment
exemples : MPEG4 Video Codec, FFT pour DSP, interfaces de bus PCI, interface
de rseau Ethernet,
o Curs libres (Open cores)
gratuits (agence spatiale europenne ESA)
exemples : curs de processeurs RISC 32 bits, ALU, Multiplication
Tests
o Simulation fonctionnelle (indpendante du circuit cible)
o Simulation temporelle (post routage)
Implmentation (phase finale de la ralisation)
o Configuration dun composant matriel qui ralise les fonctions dsires
placement et routage des ressources (LUT, MUX pour les FPGA)
D.Giacona
29
Partie 1 - Introduction
3.1.1.
3.1.2.
VHDL-AMS
30
3.1.3.
Partie 1 - Introduction
Dclaration de la liste de
sensibilit du processus
};
D.Giacona
31
3.1.4.
Partie 1 - Introduction
D.Giacona
32
3.1.5.
Partie 1 - Introduction
D.Giacona
3.1.6.
33
Partie 1 - Introduction
D.Giacona
3.1.7.
34
Partie 1 - Introduction
Les bornes des variables de boucle sont statiques, fixes la compilation (donc
indpendantes des valeurs des signaux dentre)
for i in 1 to 5 loop
if product_reg(0)='1' then
product_reg(9 downto 5) := product_reg(9 downto 5)
+ num1_reg(4 downto 0);
end if;
product_reg(9 downto 0) := '0' & product_reg(9 downto 1);
end loop;
D.Giacona
3.2.
35
Partie 1 - Introduction
D.Giacona
3.3.
36
Partie 1 - Introduction
D.Giacona
37
3.4.
Partie 1 - Introduction
Les conversions sont prises en charge par la plupart des outils de dveloppement.
FSM
FBD
HDL
D.Giacona
38
Partie 1 - Introduction
Exemple 1 : un additionneur
x_in(7..0)
Additionneur 2 mots de 8
bits
sum(7..0)
y_in(7..0)
carry_out
carry_in
4.1.1.
39
Partie 1 - Introduction
(carry_out,sum)
<= ("00000000" & carry_in) + ('0' & x_in) + ('0' & y_in);
Aprs optimisation automatique par le compilateur pour un circuit intgr particulier; par exemple le
cy37256p160 (Cypress)
o temps de propagation tPD = 59.0 ns pour co
o taux dutilisation des ressources 8%
Avantage : concision de la description
D.Giacona
40
Partie 1 - Introduction
a(7..6)
b(7..6)
a(3..2) b(3..2)
a(1..0)
a(5..4) b(5..4)
b(1..0)
ci
add2wc
c2
c6
add2nc
co
s(7..6)
add2nc
add2nc
s(5..4)
s(3..2)
s(1..0)
D.Giacona
41
i0
i1
i2
i3
:
:
:
:
c_add2wc
c_add2nc
c_add2nc
c_add2nc
port
port
port
port
map(a(1),
map(a(3),
map(a(5),
map(a(7),
a(0),b(1),
a(2),b(3),
a(4),b(5),
a(6),b(7),
b(0),
b(2),
b(4),
b(6),
Partie 1 - Introduction
ci,
c2,
c4,
c6,
sum(1),
sum(3),
sum(5),
sum(7),
sum(0), c2);
sum(2));
sum(4));
sum(6));
e1 <= (a(3) and b(3)) or ((a(3) or b(3)) and (a(2) and b(2)));
r1 <= (a(3) or b(3)) and (a(2) or b(2));
c4 <= e1 or (c2 and r1);
e2 <= (a(5) and b(5)) or ((a(5) or b(5)) and (a(4) and b(4)));
r2 <= (a(5) or b(5)) and (a(4) or b(4));
c6 <= e2 or ((e1 or (c2 and r1)) and r2);
e3 <= (a(7) and b(7)) or ((a(7) or b(7)) and (a(6) and b(6)));
r3 <= (a(7) or b(7)) and (a(6) or b(6));
co <= e3 or ((e2 or ((e1 or (c2 and r1)) and r2)) and r3);
Pour le mme circuit intgr cy37256p160 (Cypress) :
o temps de propagation tPD = 37.0 ns pour sum(7)
o taux dutilisation des ressources 7%
Avantage : performance
D.Giacona
42
Partie 1 - Introduction
Principe mathmatique (la retenue est calcule en mme temps que la somme) :
Somme et retenue de ltage n dun additionneur :
sumn
carryn+1
carryn+1
carryn
D.Giacona
43
Partie 1 - Introduction
D.Giacona
44
Partie 1 - Introduction
Processus standard
Traducteur
FSM HDL
Traducteur
FBD HDL
-- code VHDL (comportement)
process (clk, ar)
begin
if ar = '1' then
q <= (others => '0');
elsif (clk'event and clk= '1') then
q <= d;
end if;
end process;
D.Giacona
45
Options de synthse
Partie 1 - Introduction
Simulateur
comportemental
(fonctionnel)
Outil de synthse
(Logic synthesizer)
Editeur de
contraintes
Netlist
Fichier de configuration
du circuit
(User Constraints file)
Outil d'implmentation
(Fitting : CPLD
Place and Route : FPGA)
DESIGN NETLIST
Blocs fonctionnels + matrice de routage (CPLD)
Blocs logiques configurables + routage (FPGA)
D.Giacona
46
DESIGN NETLIST
Partie 1 - Introduction
Back annotation
Simulateur
post fit
(temporel)
Outil de configuration
(Bitgen)
Bitstream
10010101000110010010111010
10110001010001001001001100
Outil de chargement
in situ
(Download/Program)
D.Giacona
5.2.
47
Partie 1 - Introduction
Lexique
Synthesis
Transformation dune description HDL en netlist, c.--d. en un fichier accept par un outil dimplmentation
Netlist
Description standard des portes logiques, des flips-flops, des interconnexions et des noms des entressorties.
Le standard industriel est le format EDIF : Electronic Design Interchange Format
User constraints
Numros de broche (pin-out), niveaux de tension, slew rate (pente des signaux de sortie),
D.Giacona
48
Partie 1 - Introduction
Fitting (CPLD)
Implmentation dans un circuit CPLD particulier : slection des ressources logiques du circuit et des
chemins dinterconnexion en tenant compte des broches dentres-sorties choisies par le concepteur
Behavioral simulation
Simulation fonctionnelle par interprtation directe du code HDL (sans dlais de propagation de signaux)
Back-annotation
Procd post-implmentation permettant de connatre avec exactitude les dlais de propagation des
signaux dans le circuit choisi (dlais induits par les LUTs, les flip-flops et le routage).
D.Giacona
49
Partie 1 - Introduction
Bitstream
Fichier (par ex. ASCII) contenant des '1' et des '0' pour la configuration du circuit cible
Programming
Programmation des antifusibles des circuits OTP (CPLD ou FPGA).
Chargement de la configuration dans un circuit non volatile avec conservation de linformation la mise
hors tension du circuit (circuit CPLD reprogrammable, ou mmoire annexe PROM dun circuit FPGA
SRAM)
Downloading
Chargement de la configuration dans un circuit volatile (directement dans la SRAM dun circuit FPGA)
D.Giacona
5.3.
50
Partie 1 - Introduction
La simulation
D.Giacona
51
5.3.1.
Partie 1 - Introduction
5.3.2.
Les dlais de propagation sont ceux du circuit FPGA Spartan 3A XC3S700A (Xilinx).
D.Giacona
5.4.
52
Partie 1 - Introduction
La configuration
5.4.1.
Options de synthse
Mode doptimisation
o espace / vitesse
Codage des machines dtats
o Compact, sequential, one-hot, Gray, Johnson, user-encoded,
o Pour les FPGA : one-hot => un flip-flop par tat => logique tat futur rduite => gain
de temps
D.Giacona
5.4.2.
53
Partie 1 - Introduction
D.Giacona
54
Partie 1 - Introduction
Permet de configurer la
connexion de la
rsistance de
pulldown
D.Giacona
5.5.
55
Partie 1 - Introduction
Le code compil d'un programme crit en langage HDL (tel VHDL ou Verilog) est
destin configurer les interconnexions des ressources physiques des circuits
programmables (CPLD, FPGA)
A titre de comparaison :
Le code compil d'un programme crit dans un langage de programmation
procdural (tel que C) est destin tre excut sur une machine programme
(ordinateur, microprocesseur, microcontrleur)
D.Giacona
56
Outil : Compilateur
Fichier : bitstream
Outil : chargement
configuration des
connexions physiques
Partie 1 - Introduction
Outil : Compilateur
Outil : chargement
inscription dans la
mmoire
D.Giacona
57
Partie 1 - Introduction
Circuit intgr :
CPLD
Circuit intgr :
Microcontrleur
RAM
C'est le
programme qui sera
excut par l'unit
centrale
EPROM
Dcodage
d'instruction
Clk
D.Giacona