Vous êtes sur la page 1sur 141

Composants logiques

programmables et VHDL
Sylvain MONTAGNY
sylvain.montagny@univ-savoie.fr
Btiment chablais, bureau 13
04 79 75 86 86
Retrouver tous les documents de Cours/TD/TP sur le site
www.master-electronique.com
Universit de Savoie
Prsentation cours : Sommaire
z Cours : 10.5 h en 7 sances
z Chapitre 1 : Caractristiques des circuits logiques

z Chapitre 2 : Les systmes logiques

z Chapitre 3 : Synthse de systmes logiques combinatoires

z Chapitre 4 : Synthse de systmes logiques squentiels

z Chapitre 5 : Les composants logiques programmables

z Chapitre 6 : Description en VHDL

Universit de Savoie 2
Prsentation TD
z TD : 10.5 h en 7 sances
z TD1 : Synthse logique combinatoire, caractristiques lectriques
des portes logiques

z TD2 : Synthses de circuits logiques squentiels laide de


graphe dtat

z TD3 : Composant logique programmable

z TD4 : Description de fonctions logiques laide du langage VHDL

z TD5 : Synthse dun systme de communication srie en VHDL

Universit de Savoie 3
Prsentation TP
z TP : 12h en 3 sances de 4h
z TP1 : Synthse dun systme logique combinatoire dans
lenvironnement ALTERA.

z TP2 : Synthse dun systme logique squentielle

z TP3 : Synthse dun mini projet squentiel

Universit de Savoie 4
Examen

z Un contrle continu : 1h
75%
z Un contrle final : 1h

z Une note de travaux pratiques 25%

Universit de Savoie 5
Chapitre 1 : Caractristiques des circuits
logiques

z 1.1 Niveaux logiques et gabarits


z 1.2 Caractristiques des composants logiques
z 1.3 Exemple dune datasheet

Universit de Savoie 6
Niveaux logiques et gabarits
Niveaux logiques

Les niveaux logiques sont dcrits par des tensions

vI vO

Niveau Potentiel de sortie Potentiel dentre Logique Positive


H VOH VIH 1
L VOL VIL 0

On exprime une fonction de transfert en tension (caractristique


de transfert) donnant une relation entre VI et VO.

Universit de Savoie 7
Exemple : caractristique dun inverseur

Universit de Savoie 8
Exemple : caractristique dun inverseur

Fonction de transfert de linverseur : (courbe idalise)


VO
z VOHmin : Tension minimale fournie par
la sortie ltat HAUT
VOH
z VOLmax: Tension maximale fournie par
VOH min la sortie ltat BAS

z VILmax : Tension maximale reconnue


VOL max comme un niveau BAS en entre.
z VIHmin : Tension minimale reconnue
VOL comme un niveau HAUT par lentre
VI
VILmax VIH min

Universit de Savoie 9
Niveaux logiques et gabarits
Notion de gabarit

Le gabarit est valable pour TOUTE la FAMILLE logique

VO
z Si 0 < VI < VIL max
alors VO > V OH min

VOH min z Si V < VI < V max


IH min
alors VO < VOLmax
VOL max z Si VILmax < VI < VIH min
Pas de fonctionnement garanti

VI
VILmax VIH min
Universit de Savoie 10
Niveaux logiques et gabarits
Immunit au bruit (1)

z Immunit :
Tension parasite (bruit) que lon peut ajouter au signal
tout en conservant un fonctionnement normal

VI = VO+VB
+

VO VB VI
VB reprsente le bruit

Universit de Savoie 11
Sortie du 1er circuit Entre du 2me circuit

Marge de bruit
Niveaux logiques et gabarits
Immunit au bruit (2)

z Le respect des gabarits lors de la mise en


cascade implique :
z VOH min > VIH min et VOL max < VIL max

z On dfini donc la marge de bruit :


z MB =Min( VOH min - VIH min ; VIL max - VOL max )

Universit de Savoie 13
Niveaux logiques et gabarits
Niveaux logiques CMOS et TTL

5V 5V
1 VIH 4,4 V VOH
3,5 V

5V 5V
1,5V
VIL VIH VOH
0 0,33 V VOL
0V 0V 2V 2,4 V
Entre CMOS 5V Sortie
0,8V
3,3 V 3,3 V VIL 0,4 V VOL
1 VIH VOH 0V 0V
2,4 V
2V
Entre TTL Sortie

0,8 V
VIL 0,4 V
0 VOL
0V 0V
Entre CMOS 3.3V Sortie
14
Chapitre 1 : Caractristiques des circuits
logiques

z 1.1 Niveaux logiques et gabarits


z 1.2 Caractristiques des composants logiques
z 1.3 Exemple dune datasheet

Universit de Savoie 15
Caractristiques des composants logiques
Sortance

z Cest le nombre maximum dentres de porte logique


que la sortie dune porte peut piloter. Ceci sentend
pour des portes dune famille attaquant des portes de
la mme famille. La sortance doit sexprimer dans
chacun des deux tats HAUT et BAS.
z Exemple :
IOHmax = 400 A IIHmax = 40 A
IOLmax = -20 mA IILmax = -1,6mA
Sortance :
au niveau haut : 10
au niveau bas : 12,5
z Cette sortie peut piloter correctement 10 entres
unitaires cbles en parallle.
16
Caractristiques des composants logiques
Temps de commutation

z De 10% 90% du niveau haut tabli


z Tr : Rising Time
z Tf : Falling Time

90% 90%
10% 10%

Tr tf

Universit de Savoie 17
Caractristiques des composants logiques
Temps de propagation
z Cest le temps de rponse de la sortie logique sur une
modification dune des entres.
vI(t)
1 t

vI(t) vO(t) vO(t)


t

tpLH tpHL

z tpLH : temps de propagation de ltat bas ltat haut.


z tpHL : temps de propagation de ltat haut ltat bas.

Universit de Savoie 18
Chapitre 1 : Caractristiques des circuits
logiques

z 1.1 Niveaux logiques et gabarits


z 1.2 Caractristiques des composants logiques
z 1.3 Exemple dune datasheet

Universit de Savoie 19
Exemple sur datasheet 74F153

20
Exemple sur datasheet 74F153

Universit de Savoie 21
z Retrouver les gabarits dentre et de sortie
z Calculer la marge de bruit de ce composant logique
z Calculer la sortance
z Retrouver le temps de propagation
z Retrouver le temps de commutation
Chapitre 2 : Les systmes logiques

z 2.1 quation et reprsentation graphique


z 2.2 Systme logique combinatoire
z 2.3 Systme logique squentiel

Universit de Savoie 25
quation et reprsentation graphique
Equation logique

Un systme logique est dcrit par des quations logiques


dfinissant la valeur des sorties. Les quations logiques
sont formalises par lalgbre binaire (algbre de Boole)

Universit de Savoie 26
Proprits (1) de ET,OU,NON
Commutativit Idempotence
a+b = b+a a+a = a
a.b = b.a a.a = a
Associativit Absorption
a+(b+c) = (a+b)+c a+a.b = a
a.(b.c) = (a.b).c a.(a+b) = a
Distributivit Involution
a.(b+c) = a.b+a.c a=a
On garde la hirarchie classique (. est
a+(b.c) = (a+b).(a+c) prioritaire sur +)
a + (b.c) = a + b.c != (a + b). c
Universit de Savoie 27
Proprits (2) de ET,OU,NON
Elment neutre Thorme de DE Morgan
a+0 = a a+b = a . b
a.1 = a a.b = a + b
Elment absorbant
a+1 =1 Thorme du Consensus
a.0 = 0 a.x+b.x+a.b = a.x+b.x
Inverse (a+x)(b+x)(a+b)=(a+x)(b+x)
a+a = 1
a.a = 0

Universit de Savoie 28
quation et reprsentation graphique
Norme franaise

a a
& s & s a s
b b
ET NAND NON
a a a
>1 s >1 s =1 s
b b b
OU NOR XOR
Nb : La reprsentation franaise est utilise en symboles logiques
Norme ANSI/IEEE Std: 91-1984 : Standard Graphic Symbols for Logic Functions

Universit de Savoie 29
quation et reprsentation graphique
Norme amricaine

a s
a a
s s
b b
NON
ET NAND a s

a a a
s s
b b s
b
OU NOR XOR
Nb : La norme amricaine est la norme utilise dans les datasheets pour
dessiner les graphes (schmas) logiques.

Universit de Savoie 30
Chapitre 2 : Les systmes logiques

z 2.1 quation et reprsentation graphique


z 2.2 Systme logique combinatoire
z 2.3 Systme logique squentiel

Universit de Savoie 31
Systme logique combinatoire
Dfinition

Dans un systme logique combinatoire les sorties


ne dpendent que des entres

Combinatoire : S = fboolenne (a,b,c,..,n)

Tous changements dans les signaux appliqus aux entres


se propage immdiatement travers les portes jusqu ce
que leurs effets apparaissent aux sorties.

Universit de Savoie 32
Systme logique combinatoire
Exemple

Sj= fboolenne(Ii)
Ii Logique
combinatoire

z Exemple de systme combinatoire :


z Quelles sont les entres et les sorties
de ce systme?

Universit de Savoie 33
Systme logique combinatoire
Les composants combinatoires

z Au catalogue des fournisseurs


z Portes intgrs et inverseurs (Gates)
z Multiplexeur / dmultiplexeur

z Codeurs / Dcodeurs

z Transcodeurs

z Comparateurs / Dtections derreurs

z Circuits arithmtiques (add, ALU, mult)

Universit de Savoie 34
Chapitre 2 : Les systmes logiques

z 2.1 quation et reprsentation graphique


z 2.2 Systme logique combinatoire
z 2.3 Systme logique squentiel

Universit de Savoie 35
Systme logique squentiel
Dfinition

z Les sorties dpendent :


z De ltat prsent du systme (machine de Moore)
z De ltat prsent et des entres du systme (machine de Meally)
z Ltat futur dpend
z Des entres et de ltat prsent du systme

Universit de Savoie 36
Systme logique squentiel
Exemple
z Exemple de systme squentiel :
z Quelles sont les entres et les sorties de ce systme?
z Dfinir les diffrents tats possibles du systme.

Universit de Savoie 37
Systme logique squentiel
Logique asynchrone
z Asynchrone signifie que les tats du systmes voluent
tout moment ds quune entre est modifie.
z Exemple : la bascule RS

R S Qt Qt+ Fonction
0 0 Q Q Mmoire Effet mmoire :
spcificit des
0 1 Q 1 Mise 1
systmes squentiels
1 0 Q 0 Mise 0
Interdit
Universit de Savoie 38
Systme logique squentiel
Logique synchrone
z Synchrone signifie que les tats du systme sont
rvalus seulement lors dun front dhorloge. Il y a
donc un effet mmoire pendant une priode dhorloge.

z Exemple : La bascule D

Horloge
Q

Q
D

Universit de Savoie 39
Chapitre 3 : Synthse de systmes
logiques combinatoires

z 3.1 Synthse dun additionneur et dun


multiplexeur
z 3.2 Les alas dans les systmes combinatoires

Universit de Savoie 40
Synthse de systmes logiques
combinatoires

1. Dtermination des entres et des sorties du systme.


2. Dtermination de la table de vrit
3. Dtermination de lquation logique (tableau de
Karnaugh, simplification avec lAlgbre de Boole)
4. Ralisation laide de circuits logiques

Universit de Savoie 41
Exemple (1)
Synthse dun additionneur 1 bit

Addition de deux oprandes 1 bits avec une retenue

a S
b ADD
Ri Ro

z Raliser la synthse logique de ladditionneur 1 bit et


retrouver les quations logiques suivantes

S = a b Ri Ro = a.b + a.Ri + b.Ri


z Nombre de portes? Temps de propagation?

Universit de Savoie 42
Exemple (2)
Synthse dun multiplexeur

Slection dune voie parmi 2N grce N bits de commande

Si (S1S0)2 =00 alors Q = I0


I0 Q = S1.S 0 .I O
I1
Q Si (S1S0)2 =01 alors Q = I1
I2
Q = S1.S0 .I1
I3
Mux 4 vers 1 etc

S1 S0
Raliser la synthse logique du multiplexeur 4 vers 1

Universit de Savoie 43
Multiplexeur (constitution)

Q = S1. S0 . I0 + S1. S0 . I1 + S1. S0 . I 2 + S1. S0 . I 3

I0
&
I1
&
I2 Q
& >1
I3
S1 &
S0
Universit de Savoie 44
Exemple sur datasheet du
multiplexeur 74F153
Vrifier la cohrence de votre table de vrit avec celle de la
datasheet

Universit de Savoie 45
Chapitre 3 : Synthse de systmes
logiques combinatoires

z 3.1 Synthse dun additionneur et dun


multiplexeur
z 3.2 Les alas dans les systmes combinatoires

Universit de Savoie 47
Les alas dans les circuits
combinatoires
z Les alas ou glitch sont des tats instables
dun signal juste aprs que les signaux dont il
dpend est t modifi.

z A priori, toute fonction logique combinatoire


synthtise est susceptible de provoquer des
alas puisque :
z Toutes les entres ne changent pas dtat exactement au
mme moment.
z La cascade de cellules logiques peut induire des tats
intermdiaires instables.
Universit de Savoie 48
Synthse sans alas

M DC M DC
00 01 11 10 00 01 11 10
BA 00 0 0 1 1 M 1 = D.B + D. A BA 00 0 0 1 1 M 2 = D.B + D. A + B. A
01 1 1 1 1 01 1 1 1 1
11 1 1 0 0
3 portes 11 1 1 0 0 4 portes
10 0 0 0 0 4 termes 10 0 0 0 0 6 termes
7 signaux 10 signaux

Cas ou B et A = 1

Universit de Savoie 49
Chapitre 4 : Synthse de systmes
logiques squentiels

z 4.1 Schma gnral dun systme squentiel


z 4.2 Description par graphe dtat
z 4.2 Mthodologie de synthse : Exemple dun
distributeur de boisson

Universit de Savoie 50
Schma gnral dun systme
squentiel
z Les sorties dpendent :
z De ltat prsent du systme (machine de Moore)
z De ltat prsent et des entres du systme (machine de Meally)
z Ltat futur dpend
z Des entres et de ltat prsent du systme

Universit de Savoie 51
Schma gnral dun systme
squentiel
z La prsence de registre nous donne une
fonction mmoire de ltat actuel. Cet tat
actuel est dterminant pour le calcul de ltat
suivant du systme.

z On reprsente lvolution du systme


squentiel par un graphe dtat.

Universit de Savoie 52
Chapitre 4 : Synthse de systmes
logiques squentiels

z 4.1 Schma gnral dun systme squentiel


z 4.2 Description par graphe dtat
z 4.2 Mthodologie de synthse : Exemple dun
distributeur de boisson

Universit de Savoie 53
Description par graphe dtat
Dfinition (1)
Dfinition :
z Un diagramme ou graphe dtats permet davoir une reprsentation
graphique dun systme squentiel.
z Il est constitu par lnumration de tous les tats possible du systme.
z Un seul de ces tats peut tre actif la fois.
z A chaque tat est associ la valeur de la (ou des) grandeur(s) de sortie.

Transition Etat
1 2
s=1 s=0
Valeur de la ou des sorties dans l'tat
Universit de Savoie 54
Description par graphe dtat
Dfinition (2)
z Les tats sont identifis par des cercles, avec leur nom et/ou leur code
binaire associ crit dans le cercle.

z Les transitions entre les tats sont identifies par des flches entre les
cercles.

z Les conditions pour toutes transitions (les valeurs ncessaires de variables


dentre) sont places ct des flches de transition.

Exemple : Graphe dtat synchrone dune Bascule D

D=1

H Q
D=0 1 2 D=1 D
Q=0 Q=1

D=0

Universit de Savoie 55
Chapitre 4 : Synthse de systmes
logiques squentiels

z 4.1 Schma gnral dun systme


squentiel
z 4.2 Description par graphe dtat
z 4.2 Mthodologie de synthse : Exemple
dun distributeur de boisson

Universit de Savoie 56
Mthodologie de synthse
Systme squentiel

1. Interprtation : Dfinir les entres et les sorties du systme,


interprter les descriptions ambigus.

2. Graphe : Reprsenter le fonctionnement par un graphe dtats

3. Tableau : Reprsenter le tableau de transition des tats

4. Codage des tats : Dterminer le nombre de bascules ncessaires


et associer les tats aux combinaisons de sortie des bascules

5. Equation : Choisir une architecture et le type de bascules.


Dterminer les quations de sorties du systme et les quations
des tats.

Universit de Savoie 57
Mthodologie de synthse
Exemple : Distributeur de boissons

z Cahier des charges


z Le distributeur dlivre une boisson aprs que l on
ait insr 0,3 dans le monnayeur.
z On ne peut insrer que des pices de 0,2 et de
0,1 . Deux capteurs identifient le type de pices
insres.
z Une fois le montant acquitt, une commande
actionne une gche lectrique qui libre une
boisson.

Universit de Savoie 58
Mthodologie de synthse
1- Interprtation
z Dfinition des Entres sorties
z 2 entres :
z u : Pice de 0,2
z c : Pice de 0,1
z 1 sortie
z O : Commande douverture de la gche
z Cas ambiges : Cas ou la somme est suprieure 0,3 ?
z Ce distributeur ne rend pas la monnaie

u
Distributeur o
Monnayeur c Gche

raz H

Universit de Savoie 59
Mthodologie de synthse
2- Graphe dtat

Universit de Savoie 60
Mthodologie de synthse
3- Tableau de transition des tats

Cest une table de vrit constitu :


z en entre
z de ltat actuel du registre dtat
z des entres de la machine tats
z en sortie
z de ltat futur du registre dtat
z des sorties de la machine tats

Universit de Savoie 61
Mthodologie de synthse
3- Tableau de transition des tats

Table des transitions non code


Entre Sorties
Etat courant Entre (uc) Etat futur Sortie (o)
E0 00 E0 0
01 E1 0
10 E2 0
11 X X
E1 00 E1 0
01 E2 0
10 E3 0
11 X X
E2 00 E2 0
01 E3 0
10 E3 0
11 X X
E3 XX E0 1
62
Mthodologie de synthse
4- Codage des tats

z Nombre de bascules en fonction du nombre dtats


z Choix de la combinaison des sorties des bascules qui codera chaque tat
z laboration de la table de transitions des tats cods

Table des transitions code


4 tats 2 bascules Etat courant (Q1Q0) Entre (uc) Etat futur (D1D0) Sortie (o)
00 00 0
01 01 0
Etat Code (Q1Q0) 00
10 10 0
E0 00
E1 01 11 XX X
E2 10
E3 11
00 01 0
01 10 0
01
10 11 0
11 XX X
00 10 0
01 11 0
10
10 11 0
11 XX X
11 XX 00 1
63
Mthodologie de synthse
5- Implmentation

z Choix dun type de bascules


z Dterminations des quations logiques des entres des
bascules
D0 D1
uc uc
Q1Q0 00 01 11 10 Q1Q0 00 01 11 10
00 0 1 X 0 00 0 0 X 1
01 1 0 X 1 01 0 1 X 1
11 0 0 X 0 11 0 0 X 0
10 0 1 X 1 10 1 1 X 1

D0 = Q0 .c + Q1.Q0 .c + Q1.Q0 .u
D1 = Q1.u + Q1.Q0 + Q1.Q0 .c
Universit de Savoie 64
Mthodologie de synthse
5- Implmentation

z Dterminations des quations logiques des sorties

o
Q0
Q1 0 1

o = Q1.Q0
0 0 0
1 0 1

z >>Dessiner le schma complet (bascules et portes logiques) de notre systme

Universit de Savoie 65
Chapitre 5 : Les composants logiques
programmables

z 5.1 Structure des PLD


z 5.2 Structure des CPLD
z 5.3 Structure des FPGA & ASICs

Universit de Savoie 66
Structure des PLD
z La structure de base de ces composants programmables
sont des rseaux ET et OU permettant de raliser
nimporte quelle fonctions logiques.

a
b Matrice
c ET

s1
Matrice Sorties s2
s3
OU s4

Universit de Savoie 67
Structure des PLD
Structure interne
Matrice OU
a b c d programmable

Matrice ET
programmable s1 s2 s3 s4 68
Structure des PLD
z Cette structure interne nous permet pour linstant de
traiter que les quations logiques combinatoires. Pour
les quations squentielles, il faut insrer une bascule
et un rebouclage de la sortie vers les entres.

Universit de Savoie 69
Structure des PLD
DEUX MODES DE SORTIE : COMBINATOIRE ET SQUENTIEL
OU : Sommes

ET : Produits Sortie

Universit de Savoie 70
Structure des PLD
Macrocellule de sortie (1)
MODE COMBINATOIRE
On multiplexe la sortie directe ou complmente du ET-OU

ET OU

Universit de Savoie 71
Structure des PLD
Macrocellule de sortie (2)
MODE SQUENTIEL
On multiplexe la sortie inverse ou non inverse de la bascule D

Universit de Savoie 72
PAL22V10
Chapitre 5 : Les composants logique
programmables

z 5.1 Structure des PLD


z 5.2 Structure des CPLD
z 5.3 Structure des FPGA & ASICs

Universit de Savoie 74
Structure des CPLD
E/S
z Les CPLDs regroupent
plusieurs PLD interconnects
par un rseau de connexions

Programmable Interconect Matrix


programmables.

PLD

PLD
z Les CPLDs sont les prmisses
des premiers FPGAs.

PIM
z Ces circuits tendent tre
remplacs par les FPGAs.

PLD

PLD
E/S
Universit de Savoie 75
Structure des CPLD
z Chaque bloc logique reprsente un PLD.
z Chaque PLD est compos dun certain nombre
de macrocellules

quivaut

Universit de Savoie 77
Un bloc logique et ses macrocellules

Universit de Savoie 78
Structure des CPLD
Une macrocellule

Universit de Savoie 79
Chapitre 5 : Les composants logiques
programmables

z 5.1 Structure des PLD


z 5.2 Structure des CPLD
z 5.3 Structure des FPGA & ASICs

Universit de Savoie 80
Structure des FPGA & ASICs
z Field Programmable Gate Array

Universit de Savoie 81
Structure des FPGA & ASICs
z AVANTAGES
z Possibilit de prototypage
z Time-to-market faible
z Adaptabilit aux futurs volutions grce la reconfiguration

z INCONVENIENTS
z intgration limit par les ressources de routage
z prix lunit lev pour de grosses productions

Universit de Savoie 82
Universit de Savoie 83
Les ASIC
z Application-Specific Integrated Circuits. Les ASIC
fournissent prcisment la fonctionnalit ncessaire
pour une tche spcifique. Cela leur permet d'tre :
z plus petits,
z moins chers,
z plus rapide,
z De consommer moins de puissance qu'un processeur
programmable (tel un Intel Pentium IV).

z Exemple :
Une puce graphique faite sur mesure pour un PC peut
tracer des images 10 100 fois plus rapidement qu'un
processeur central usage gnrique.

Universit de Savoie 84
Structure des FPGA & ASICs
Conclusion

Le choix entre FPGA ou ASIC, se fait en fonction du


cahier des charges de lapplication

z Temps de mise sur le march et dure de vie courte


z Trs petit nombre de circuits >>> FPGA

z Optimisation des performances


z Grande srie >>> ASIC

Universit de Savoie 85
Chapitre 6 : Description en VHDL

z 6.1 Prsentation du langage VHDL


z 6.2 La partie ENTITY
z 6.3 La partie ARCHITECTURE
z 6.4 La description en VHDL

Universit de Savoie 86
Prsentation du langage VHDL
La description matriel

z Le langage VHDL (Very High level Description


Language) est, comme son nom lindique, un
langage de description matriel.

z Il ressemble fortement un langage


informatique (PASCAL, C). Il faut toutefois
garder lesprit que lobjectif de la description
est la synthse de fonctions numrique laide
de circuit PLD, FPGA ou ASIC. Pour cela il est
important de connatre le circuit cible si on
veut mener bien cette synthse.

Universit de Savoie 87
Prsentation du langage VHDL
Particularits

z La diffrence essentielle avec un langage informatique


est la simultanit des actions dcrites. Pour cela il
faudra se familiariser avec la notion :
z dinstruction concurrente (simultane)
z dinstruction squentielle.

z Par dfaut toutes les instructions sont concurrentes, pour quelles


soient squentielles il faut quelles apparaissent dans un zone
particulire appele : process .

Universit de Savoie 88
Prsentation du langage VHDL
Objectifs

z Dcrire un systme combinatoire ou squentiel en VHDL

z Comprendre comment le VHDL va synthtiser le systme


et lintgrer dans un composant programmable PLD,
CPLD ou FPGA.

Universit de Savoie 89
Prsentation du langage VHDL
Structure dun fichier VHDL

Universit de Savoie 90
Prsentation du langage VHDL
La description
z La description VHDL consiste en une dfinition dun bloc
ENTITY et dune dfinition dun bloc ARCHITECTURE.
z ENTITY est la description physique des entres/sorties du systme
z ARCHITECTURE est la description du comportement du bloc ENTITY

ENTITY and2 IS PORT (


a,b : IN std_logic;
f: OUT std_logic);
END and2;

ARCHITECTURE behavioral OF and2 IS


BEGIN
f <= a AND b;
END behavioral;

=>Dessiner larchitecture reprsente par la description VHDL ci-contre


Universit de Savoie 91
Prsentation du langage VHDL
Description VHDL
z Vue externe (entity)

A
S
Additionneur
B
(Boite noir) Cout
Cin
z Vue interne (architecture)
A
S
B
Cout
Cin
Universit de Savoie 92
Chapitre 6 : Description en VHDL

z 6.1 Prsentation du langage VHDL


z 6.2 La partie ENTITY
z 6.3 La partie ARCHITECTURE
z 6.4 La description en VHDL

Universit de Savoie 93
La partie ENTITY
Exemple
z La partie ENTITY dcrit les Entres / Sorties
rst
q[7:0]
d[7:0]
co
clk

ENTITY black_box IS PORT (


clk, rst: IN std_logic;
d: IN std_logic_vector(7 DOWNTO 0);
q: OUT std_logic_vector(7 DOWNTO 0);
co: OUT std_logic);
END black_box;

Universit de Savoie 94
La partie ENTITY
Port Modes

La direction du port est indique de la faon suivante:

z IN Entre de du systme

z OUT Sortie du systme

z INOUT Entre et sortie du systme (bidirectionnel)

Universit de Savoie 95
La partie ENTITY
Exercice (1)

Ecrire lentit dun additionneur Add4 de deux mots, a et


b, de 4 bits en entre, avec une retenue entrante ci, et
une sortie somme sur 4 bits avec une retenue sortante
co.

a 4
4
4 somme
b Add4
co
ci

Universit de Savoie 96
La partie ENTITY
Exercice (2)

Ecrire lentit correspondante au schma de ce multiplexeur :

Universit de Savoie 97
Chapitre 6 : Description en VHDL

z 6.1 Prsentation du langage VHDL


z 6.2 La partie ENTITY
z 6.3 La partie ARCHITECTURE
z 6.4 La description en VHDL

Universit de Savoie 98
La partie ARCHITECTURE
Organisation

z Toute architecture est associe une entit


z Dfinition : Larchitecture dfinit les fonctionnalits et les relations
temporelles. Elle dcrit le comportement du composant.

Zone de dclaration

Zone de dfinition

Universit de Savoie 99
La partie ARCHITECTURE
Objet VHDL : La dclaration

z Dans une architecture il est ncessaire de dclarer les


objets utiliss et leur type avant la zone dcrivant
l'architecture (avant le begin ... end ).

z Parmi les objets trs utiliss, figurent :


z Les composants : COMPONENT
z Les signaux : SIGNAL
z Les variables : VARIABLE

Universit de Savoie 100


La partie ARCHITECTURE
Objet VHDL : Signal

z Un signal reprsente une quipotentielle


z Il doit tre dclar avant utilisation

z Laffectation se fait avec loprateur <=

z Initialisation rapide

Toto <=(others => 0); est quivalent Toto <= "0000000 ";

Universit de Savoie 101


La partie ARCHITECTURE
Objet VHDL : Variable

z Une variable doit tre dclare avant utilisation


z Elle ne peut tre dclare que dans un process
z Laffectation se fait avec loprateur :=

Universit de Savoie 102


La partie ARCHITECTURE
Les diffrentes descriptions

z L'architecture est la description interne du circuit.


Elle est toujours associe une entit. Une mme
entit peut avoir plusieurs architectures .

z Ces descriptions peuvent tre :


z Par flot de donne
z Comportementale
z Structurelle

Universit de Savoie 103


La partie ARCHITECTURE
Exemple de ladditionneur

A Cout
B ADD
S
Cin

Universit de Savoie 104


La partie ARCHITECTURE
Description par flot de donne

z En flot de donne les fonctions du systme


logique sont dcrites par des quations
boolennes.

z Le calcul des quations t ralis au


pralable.

Universit de Savoie 105


A S2
B Cout
S1
S3
Cin
S

architecture flot of Additionneur is


signal S1, S2, S3 : bit ;
begin
S1 <= A xor B;
S2 <= A and B;
S3 <= S1 and Cin; architecture flot1 of Additionneur is
S <= S1 xor Cin; signal S1, S2, S3 : bit ;
Cout <= S2 or S3; begin
end flot ; S <= S1 xor Cin;
Cout <= S2 or S3;
S1 <= A xor B;
S2 <= A and B;
S3 <= S1 and Cin;
end flot ;

Lordre des instructions na pas dimportance !!!


La partie ARCHITECTURE
Description comportementale

z La description comportementale permet de


faire une description du systme sans faire
rfrence aux quation, ni la structure.

Universit de Savoie 107


A B Cin S Cout
0 0 0 0 0
0 0 1 1 0
0 1 0 1 0
0 1 1 0 1
1 0 0 1 0
1 0 1 0 1
1 1 0 0 1
1 1 1 1 1
architecture comportementale of Additionneur is
begin
process (A,B,Cin)
begin
if (A = '0' AND B = '0' AND Cin = '0') then
S <= '0 ; Cout <= '0 ;
A end if;
if (A = '0' AND B = '0' AND Cin = '1') then
B S <= '1 ; Cout <= '0 ;
S
end if;
Cin
if (A = '0' AND B = '1' AND Cin = '0') then Count
S <= '1 ; Cout <= '0 ;
end if;
etc
end process;
end comportementale;
La partie ARCHITECTURE
Description structurelle (1)

z La description structurelle dcrit la fonction


partir de composant prexistant. Il suffit
de dfinir :
z La liste des composant utiliss
z La liste des interconnexions

Universit de Savoie 109


La partie ARCHITECTURE
Description structurelle (2)

architecture structurelle1
of Additionneur is
begin
component porteOU u0 : porteET
port ( e1 : in bit; port map ( A, B, S2);
e2 : in bit;
s : out bit ); u1 : porteXOR
end component; port map ( A, B, S1);
component porteET
port ( e1 : in bit; u2 : porteET
e2 : in bit; port map ( S1, Cin, S3);
s : out bit );
end component; u3 : porteXOR
component porteXOR port map ( S1, Cin, S);
port ( e1 : in bit;
e2 : in bit; u4 : porteOU
s : out bit ); port map ( S2, S3, Cout);
end component;
end structurelle1;
signal S1, S2, S3 : bit;

Universit de Savoie 110


La partie ARCHITECTURE
Hirarchisation demi_add

Additionneur
demi_add
A S2 Cout
u2
B u0
u0
S1 S3

Cin
u1
u1
S
demi_add

Universit de Savoie 111


3) Units de conception
architecture structurelle2 of Additionneur is

component porteOU
port ( e1 : in bit;
e2 : in bit;
s : out bit );
end component;
component DemiADD
port ( e1 : in bit;
e2 : in bit;
s1 : out bit ;
s2 : out bit);
end component;

signal S1, S2, S3 : bit;

begin
u0 : DemiADD
port map ( A, B, S2, S1);

u1 : DemiADD
port map ( S1, Cin, S3, S);

u2 : porteOU
port map ( S2, S3, Cout);

end structurelle2;
Entity DemiAdd is
port (
e1 : in bit;
e2 : in bit;
s1 : out bit ;
s2 : out bit);
end DemiAdd;

architecture structurelle of DemiAdd is

component porteET
port ( e1 : in bit;
e2 : in bit;
s : out bit );
end component;

component porteXOR
port ( e1 : in bit;
e2 : in bit;
s : out bit );
end component;

begin
u0 : PorteET
port map ( e1, e2, s1);

u1 : porteXOR
port map ( e1, e2, s2);

end structurelle;
La partie ARCHITECTURE
Description structurelle (3)
z La description structurelle d'un circuit complexe en
vhdl prsente de nombreux avantages :
z Une architecture hirarchique comprhensible : il est plus
simple de sparer un circuit en un ensemble de blocs plus
petits, ayant des fonctions bien identifies. Ces blocs pourront
alors tre dcrits sous forme comportementale, ou bien leur
tour tre spars en blocs encore plus simples.

z Une synthse logique efficace : la synthse est un processus


lent (en terme de temps de calcul). Plus un bloc est gros et
complexe, plus sa synthse prendra du temps. Il vaut donc
mieux travailler sur des blocs plus petits, plus simples
synthtiser, et rassembler le tout la fin.

Universit de Savoie 114


Exercice (1)
Ecrire lensemble dun fichier VHDL (Library, Entity,
Architecture) qui dcrit une porte OU 2 entres a et b
de 1 bit (sortie s)

Universit de Savoie 115


Exercice (2)
Ecrire lensemble dun fichier VHDL (Library, Entity,
Architecture) qui dcrit un additionneur ADD4 2 entres
de 4 bits A et B signes et une sortie S de 4 bits

Universit de Savoie 116


Chapitre 6 : Description en VHDL

z 6.1 Prsentation du langage VHDL


z 6.2 La partie ENTITY
z 6.3 La partie ARCHITECTURE
z 6.4 La description en VHDL

Universit de Savoie 117


Description en VHDL
Conventions lexicales (1)

z En gnral, les instructions se terminent par ;

z Rgles de dnomination :
z 26 lettres de lalphabet, les 10 chiffres et _
z Le premier caractre est une lettre
z Il ne peut y avoir 2 _ de suite
z Lidentifieur ne peut se terminer par _

Universit de Savoie 118


Description en VHDL
Conventions lexicales (2)
z Majuscule / Minuscule
z Un mot en majuscule est identique un mot en minuscule. Il
est cependant conseill d'avoir des rgles d'criture
cohrentes. Par exemple, les mots rservs du langage
peuvent tre en majuscule et les autres mots en minuscule.

z Identificateurs
z Ce sont les noms de variables, de signaux, de fonctions, ...
z Ils ne peuvent contenir que des lettres, des chiffres et le
"underscore" _ .
z Ils doivent commencer par une lettre.
z Ils ne peuvent pas contenir d'espace.
z Les mots-clefs du langage ne peuvent pas tre utiliss comme
identificateurs.

Universit de Savoie 119


Description en VHDL
Conventions lexicales (3)
z Expressions
z Elles se terminent par un point virgule ;

z Littraux : Ce sont des valeurs explicites :


z 67 est un littral pour le type entier
z '0' est un littral pour un bit
z "001" O"562" X"FF1" sont des littraux pour les vecteurs
de bits
z "chaine" est un littral de type chaine de caractres

Universit de Savoie 120


Description en VHDL
Conventions lexicales (4)

z Commentaires
z Les commentaires doivent tre inclus dans le code, pour
augmenter la lisibilit et la documentation. Ils commencent
par 2 tirets (--) en se terminent en fin de ligne

Il est impratif de documenter vos codes.

Universit de Savoie 121


Description en VHDL
Mots rservs

http://amouf.chez.com/syntaxe.htm
Universit de Savoie 122
Description en VHDL
Les types dobjet

z Les entiers (integer)

z Les types numrs

z Les types tableaux

Universit de Savoie 123


Description en VHDL
Les types : entiers

z Entier (integer)
z Le type entier integer prdfini dans le paquetage
standard STD permet de dfinir des nombres signs
sur 32 bits entre -231 et (231 1).

Exemple de dclaration dun signal (objet) de type integer pouvant


prendre les valeurs de 0 99 :

signal compteur : integer range 0 to 99 := 0;

Universit de Savoie 124


Description en VHDL
Les types : numrs (1)
z Un type numr est un type dfini par une numration
exhaustive que le programmeur peut dfinir :

Exemple de dclaration dun signal (objet) de type COULEURS :


signal palette_couleur: COULEURS ;

z Dans le paquetage STANDARD de la bibliothque STD, plusieurs


types numrs sont dfinis :

125
Description en VHDL
Les types : numrs (2)
z Dans le paquetage STD_LOGIC_1164 de la bibliothque
IEEE, le type STD_ULOGIC est dfini par :

z Au dmarrage les signaux sont dans un tat inconnu 'U'.


z 'X' indique un conflit, le signal est affect d'un ct '1' et d'un autre
'0'.
z '0' et '1' correspondant aux valeurs boolennes du signal.
z 'Z' correspond l'tat haute 'impdance".
z 'W' est la valeur d'un signal reli 2 rsistances de tirage, une tirant
0 et l'autre 1.
z 'H' et 'L' sont des valeurs d'un signal reli respectivement une
rsistance de tirage 1 et 0.
z '-' est un tat indiffrent. Utile pour dcrire les tables de vrit.

Universit de Savoie 126


Description en VHDL
Les tableaux
z Les types TABLEAU ou array sont des collections
d'objets de mme type, indxs par des entiers ou des
numrs.
z Par exemple le type BIT_VECTOR de la bibliothque
STD est un tableau de dimension 1 (vecteur) de taille
quelconque

z Et le type STD_ULOGIC_VECTOR de la bibliothque


IEEE :
type std_ulogic_vector is array (natural range <>) of std_ulogic
127
Objet VHDL
Exercice Type

Dfinir un type numr etat compos des valeurs OK, HS,


ERROR

Universit de Savoie 128


Description en VHDL
Oprateurs (1)
z Oprateurs logiques (sur boolens, bits et drivs)

z Oprateurs relationnels (sur types scalaires ou drivs


(signed, unsigned))

Universit de Savoie 129


Description en VHDL
Oprateurs (2)
z Oprateurs bits (sur vecteurs de bits et types numriques)

z Oprateurs arithmtiques (sur types numriques : entiers,


signs, non signs, flottant)

z Oprateurs de dcalage (sur tableaux de bits ou tendus) :


sll, srl, sla, sra, rol, ror
Universit de Savoie 130
Description en VHDL
Instructions VHDL

z Le VHDL le matriel laide :

z d'instructions concurrentes dont l'ordre d'criture n'a aucune


importance

z dinstructions squentielles qui sont excutes les unes aprs les


autres, comme c'est la cas du C. Ces instructions doivent tre
crites dans un process .

Universit de Savoie 131


Description en VHDL
Assignations concurrentes
z Toutes les dclarations sont excutes simultanment et
en permanence
z Lordre des dclarations dans le code source na pas
dinfluence
z Les dclarations possibles sont :
z Assignation continue : <=
z Instantiation dun composant : port map
z Assignation conditionnelle : when else
z Assignation slective : with select when when
z Appel dun process

Universit de Savoie 132


Description en VHDL
Assignations squentielles

z Les process manipulent les variable et signal


z Au sein de ces descriptions, les dclarations sont excutes de
manire squentielle, lune aprs lautre
z Lordre des dclarations est donc important
z Les dclarations possibles sont :
z Assignation continue : <= (signal) et := (variable)
z Assignation conditionnelle : if then elsif then else end if;
z Assignation slective : case is when => when => end case;
z Boucles : for in loop end loop;
z Boucles : while ... loop end loop;
z Instructions next et exit

Universit de Savoie 133


Description en VHDL
Quest ce quun VHDL Process ?

z Cest une suite dinstructions squentielles


z Les processus peuvent tre actifs ou inactifs
z Il possde une liste de sensibilit qui sont les
signaux pouvant rendre le processus actif lorsque
quun signal de cette liste change de valeur.
z Par exemple, un processus avec un signal dhorloge dans
sa liste de sensibilit deviendra actif chaque front
dhorloge, et toutes les instructions squentielles seront
alors excutes.
z A la fin du processus (et seulement la fin),
toutes les sorties (signaux) sont affectes et le
processus redevient inactif.

Universit de Savoie 134


Description en VHDL
Process synchrone

z Mise en uvre de process synchronis sur lhorloge


z If clkevent and clk=1 then ou if rising_edge(clk)
z If clkevent and clk=0 then ou if falling_edge(clk)

Universit de Savoie 135


Description en VHDL
SIGNAUX vs variables (1)

z Les signaux sont visibles dans toute larchitecture. Ce


sont des quipotentielles.

z Les variables sont locales chaque processus et sont


mises jour immdiatement. Elles sont trs utiles
pour effectuer un codage squentiel classique comme
avec le langage C. Les variables sont dclares juste
avant le corps du processus et sont affectes avec
l'instruction d'affectation immdiate := . Ceci afin de
ne pas confondre avec l'instruction <= "reoit" pour
les signaux.

Universit de Savoie 136


Description en VHDL
SIGNAUX vs variables (2)
Exemple : Pour le processus suivant, a,b et c
sont des signaux, x est une variable.

z => Prciser quelles moments les affectations


vont tre ralise.
process (a)
variable x : std_logic;
begin
x := a+1;
a <= a+1;
b <= x;
c <= a;
end process;
137
Exercice
Ecrire lensemble dun fichier VHDL (Library, Entity,
Architecture) qui dcrit un compteur COMPT qui compte sur
3 bits sur front montant du signal dhorloge clk

Universit de Savoie 138


Description en VHDL
Exemple VHDL (1)

z Ces affectations sont des instructions concurrentes au


mme titre que les processus entres eux.

Architecture avec processus Architecture avec affectations concurrentes


architecture arc of adder is
begin
architecture arc of adder is
process(A,B,Cin)
begin
begin
S <= A xor B xor Cin;
S <= A xor B xor Cin;
end arc;
end process;
end arc;

Universit de Savoie 139


Description en VHDL
Exemple VHDL (2)

Architecture avec processus Architecture avec affectations concurrentes


architecture arc of adder is
begin
process(A,B,Cin)
begin
architecture arc of adder is
if A = '0' then
begin
S <= B xor Cin;
S <= B xor Cin when A = '0' else
elsif B = '0' then
not Cin when B = '0' else
S <= not(Cin);
Cin;
else
end arc;
S <= Cin;
end if;
end process;
end arc;

Universit de Savoie 140


Description en VHDL
Exemple VHDL (3)

Architecture avec processus Architecture avec affectations concurrentes


architecture arc of MUX is
begin
process(SEL)
begin architecture arc of MUX is
case SEL is begin
when 0 => with SEL select
sortie <= A; sortie <= A when 0,
when 1 => B when 1,
sortie <= B; C when 2,
when others => D when others;
sortie <= D; end arc;
end case;
end process;
end arc;
Universit de Savoie 141

Vous aimerez peut-être aussi