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


Cours

: 10.5 h en 7 sances

Chapitre 1 : Caractristiques des circuits logiques Chapitre 2 : Les systmes logiques Chapitre 3 : Synthse de systmes logiques combinatoires Chapitre 4 : Synthse de systmes logiques squentiels Chapitre 5 : Les composants logiques programmables Chapitre 6 : Description en VHDL

Universit de Savoie

Prsentation TD
TD

: 10.5 h en 7 sances

TD1 : Synthse logique combinatoire, caractristiques lectriques des portes logiques TD2 : Synthses de circuits logiques squentiels laide de graphe dtat TD3 : Composant logique programmable TD4 : Description de fonctions logiques laide du langage VHDL TD5 : Synthse dun systme de communication srie en VHDL

Universit de Savoie

Prsentation TP
TP

: 12h en 3 sances de 4h

TP1 : Synthse dun systme logique combinatoire dans lenvironnement ALTERA. TP2 : Synthse dun systme logique squentielle TP3 : Synthse dun mini projet squentiel

Universit de Savoie

Examen
Un

contrle continu : 1h Un contrle final : 1h


Une

75%

note de travaux pratiques

25%

Universit de Savoie

Chapitre 1 : Caractristiques des circuits logiques


1.1 Niveaux logiques et gabarits 1.2 Caractristiques des composants logiques 1.3 Exemple dune datasheet

Universit de Savoie

Niveaux logiques et gabarits


Niveaux logiques
Les niveaux logiques sont dcrits par des tensions

vI Niveau H L

vO Logique Positive 1 0

Potentiel de sortie Potentiel dentre VOH VIH VOL VIL

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

Exemple : caractristique dun inverseur


Fonction de transfert de linverseur : (courbe idalise) VO

VOH VOH min VOL max VOL VILmax VIH min VI

VOHmin : Tension minimale fournie par la sortie ltat HAUT VOLmax: Tension maximale fournie par la sortie ltat BAS VILmax : Tension maximale reconnue comme un niveau BAS en entre. VIHmin : Tension minimale reconnue comme un niveau HAUT par lentre

Universit de Savoie

Niveaux logiques et gabarits


Notion de gabarit
Le gabarit est valable pour TOUTE la FAMILLE logique VO VOH min VOL max VI
Universit de Savoie 10

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


IH min

< VI < V max alors VO < VOLmax

Si VILmax < VI < VIH min Pas de fonctionnement garanti

VILmax VIH min

Niveaux logiques et gabarits


Immunit au bruit (1) 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) Le

respect des gabarits lors de la mise en cascade implique :


VOH min > VIH min et VOL max < VIL max

On

dfini donc la marge de bruit :

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

Universit de Savoie

13

Niveaux logiques et gabarits


Niveaux logiques CMOS et TTL
5V 3,5 V 1,5V 0V

VIH

5V 4,4 V

VOH
5V

5V

0 Entre

VIL

0,33 V 0V

VOL

VIH
2V 0,8V 2,4 V

VOH

CMOS 5V Sortie
VIH
3,3 V 2,4 V

3,3 V 2V 0,8 V 0V

VOH

0V

VIL 0,4 V
0V

VOL Sortie

Entre 0 VIL
0,4 V 0V

TTL

VOL
14

Entre CMOS 3.3V Sortie

Chapitre 1 : Caractristiques des circuits logiques


1.1 Niveaux logiques et gabarits 1.2 Caractristiques des composants logiques 1.3 Exemple dune datasheet

Universit de Savoie

15

Caractristiques des composants logiques


Sortance

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. Exemple :
IOHmax = 400 A IOLmax = -20 mA IIHmax = 40 A IILmax = -1,6mA

Sortance :
au niveau haut : 10 au niveau bas : 12,5

Cette sortie peut piloter correctement 10 entres unitaires cbles en parallle.

16

Caractristiques des composants logiques


Temps de commutation

De 10% 90% du niveau haut tabli


Tr : Rising Time Tf : Falling Time

90% 10%

90% 10%

Tr

tf

Universit de Savoie

17

Caractristiques des composants logiques


Temps de propagation

Cest le temps de rponse de la sortie logique sur une modification dune des entres.
vI(t) t vO(t) vO(t) t tpLH

1 vI(t)

tpHL

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

Universit de Savoie

18

Chapitre 1 : Caractristiques des circuits logiques


1.1 Niveaux logiques et gabarits 1.2 Caractristiques des composants logiques 1.3 Exemple dune datasheet

Universit de Savoie

19

Exemple sur datasheet 74F153

20

Exemple sur datasheet 74F153

Universit de Savoie

21

Retrouver les gabarits dentre et de sortie Calculer la marge de bruit de ce composant logique Calculer la sortance Retrouver le temps de propagation Retrouver le temps de commutation

Chapitre 2 : Les systmes logiques

2.1 quation et reprsentation graphique 2.2 Systme logique combinatoire 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 a+b = b+a a.b = b.a Associativit a+(b+c) = (a+b)+c a.(b.c) = (a.b).c Distributivit a.(b+c) = a.b+a.c a+(b.c) = (a+b).(a+c) Idempotence a+a = a a.a = a Absorption a+a.b = a a.(a+b) = a Involution a=a
On garde la hirarchie classique (. est prioritaire sur +) a + (b.c) = a + b.c != (a + b). c
27

Universit de Savoie

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 b a b

& ET >1 OU

a b a b

& NAND

a NON

>1 NOR

a b

=1 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 b ET a b OU s a b NOR a s b NAND a s a a b XOR NON s s

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

2.1 quation et reprsentation graphique 2.2 Systme logique combinatoire 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

Exemple de systme combinatoire :


Quelles sont les entres et les sorties de ce systme?

Universit de Savoie

33

Systme logique combinatoire


Les composants combinatoires

Au catalogue des fournisseurs


Portes intgrs et inverseurs (Gates) Multiplexeur / dmultiplexeur Codeurs / Dcodeurs Transcodeurs Comparateurs / Dtections derreurs Circuits arithmtiques (add, ALU, mult)

Universit de Savoie

34

Chapitre 2 : Les systmes logiques

2.1 quation et reprsentation graphique 2.2 Systme logique combinatoire 2.3 Systme logique squentiel

Universit de Savoie

35

Systme logique squentiel


Dfinition Les sorties dpendent :

De ltat prsent du systme (machine de Moore) De ltat prsent et des entres du systme (machine de Meally) Des entres et de ltat prsent du systme

Ltat futur dpend


Universit de Savoie

36

Systme logique squentiel


Exemple

Exemple de systme squentiel :


Quelles sont les entres et les sorties de ce systme? Dfinir les diffrents tats possibles du systme.

Universit de Savoie

37

Systme logique squentiel


Logique asynchrone

Asynchrone signifie que les tats du systmes voluent tout moment ds quune entre est modifie. Exemple : la bascule RS

R 0 0 1

S 0 1 0

Qt Q Q Q

Qt+ Q 1 0

Fonction

Mmoire Mise 1 Mise 0 Interdit

Effet mmoire : spcificit des systmes squentiels

Universit de Savoie

38

Systme logique squentiel


Logique synchrone

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. Exemple : La bascule D
Horloge Q

Universit de Savoie

39

Chapitre 3 : Synthse de systmes logiques combinatoires

3.1 Synthse dun additionneur et dun multiplexeur 3.2 Les alas dans les systmes combinatoires

Universit de Savoie

40

Synthse de systmes logiques combinatoires


1. 2. 3. 4.

Dtermination des entres et des sorties du systme. Dtermination de la table de vrit Dtermination de lquation logique (tableau de Karnaugh, simplification avec lAlgbre de Boole) 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 b Ri

ADD

S Ro

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

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 I1 I2 I3
Q = S1.S 0 .I O

Q
Mux 4 vers 1

Si (S1S0)2 =01 alors Q = I1 Q = S1.S0 .I1


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 & I3 S1 S0 &
Universit de Savoie 44

&

Q >1

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

3.1 Synthse dun additionneur et dun multiplexeur 3.2 Les alas dans les systmes combinatoires

Universit de Savoie

47

Les alas dans les circuits combinatoires


Les alas ou glitch sont des tats instables dun signal juste aprs que les signaux dont il dpend est t modifi.

A priori, toute fonction logique combinatoire synthtise est susceptible de provoquer des alas puisque :

Toutes les entres ne changent pas dtat exactement au mme moment. La cascade de cellules logiques peut induire des tats intermdiaires instables.
Universit de Savoie

48

Synthse sans alas


M
BA 00 01 11 10 DC 00 01 11 10 0 0 1 1 1 1 1 1 1 1 0 0 0 0 0 0

M
M 1 = D.B + D. A

3 portes 4 termes 7 signaux

BA 00 01 11 10

DC 00 01 11 10 0 0 1 1 1 1 1 1 1 1 0 0 0 0 0 0

M 2 = D.B + D. A + B. A

4 portes 6 termes 10 signaux

Cas ou B et A = 1

Universit de Savoie

49

Chapitre 4 : Synthse de systmes logiques squentiels

4.1 Schma gnral dun systme squentiel 4.2 Description par graphe dtat 4.2 Mthodologie de synthse : Exemple dun distributeur de boisson

Universit de Savoie

50

Schma gnral dun systme squentiel


Les sorties dpendent :

De ltat prsent du systme (machine de Moore) De ltat prsent et des entres du systme (machine de Meally) Des entres et de ltat prsent du systme

Ltat futur dpend


Universit de Savoie

51

Schma gnral dun systme squentiel


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. On reprsente lvolution du systme squentiel par un graphe dtat.

Universit de Savoie

52

Chapitre 4 : Synthse de systmes logiques squentiels

4.1 Schma gnral dun systme squentiel 4.2 Description par graphe dtat 4.2 Mthodologie de synthse : Exemple dun distributeur de boisson

Universit de Savoie

53

Description par graphe dtat


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

Transition

Etat

2
Universit de Savoie 54

s=1 s=0 Valeur de la ou des sorties dans l'tat

Description par graphe dtat


Dfinition (2)

Les tats sont identifis par des cercles, avec leur nom et/ou leur code binaire associ crit dans le cercle. Les transitions entre les tats sont identifies par des flches entre les cercles. 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 D=0 Q

1
Q=0 D=0

2
Q=1

D=1

Universit de Savoie

55

Chapitre 4 : Synthse de systmes logiques squentiels

4.1

Schma gnral dun systme squentiel 4.2 Description par graphe dtat 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. Graphe : Reprsenter le fonctionnement par un graphe dtats Tableau : Reprsenter le tableau de transition des tats Codage des tats : Dterminer le nombre de bascules ncessaires et associer les tats aux combinaisons de sortie des bascules Equation : Choisir une architecture et le type de bascules. Dterminer les quations de sorties du systme et les quations des tats.

2. 3. 4.

5.

Universit de Savoie

57

Mthodologie de synthse
Exemple : Distributeur de boissons

Cahier des charges


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

Universit de Savoie

58

Mthodologie de synthse
1- Interprtation

Dfinition des Entres sorties


2 entres :

u : Pice de 0,2 c : Pice de 0,1 O : Commande douverture de la gche

1 sortie

Cas ambiges : Cas ou la somme est suprieure 0,3 ?


Ce distributeur ne rend pas la monnaie u Monnayeur c Distributeur o

Gche

raz

H
59

Universit de Savoie

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 : en entre


de ltat actuel du registre dtat des entres de la machine tats de ltat futur du registre dtat des sorties de la machine tats

en sortie

Universit de Savoie

61

Mthodologie de synthse
3- Tableau de transition des tats
Table des transitions non code Entre Etat courant Entre (uc) E0 00 01 10 11 E1 00 01 10 11 E2 00 01 10 11 E3 XX Sorties Etat futur Sortie (o) E0 0 E1 0 E2 0 X X E1 0 E2 0 E3 0 X X E2 0 E3 0 E3 0 X X E0 1
62

Mthodologie de synthse
4- Codage des tats
Nombre de bascules en fonction du nombre dtats Choix de la combinaison des sorties des bascules qui codera chaque tat laboration de la table de transitions des tats cods
Table des transitions code 4 tats 2 bascules
Etat E0 E1 E2 E3 Code (Q1Q0) 00 01 10 11

Etat courant (Q1Q0) 00

01

10

11

Entre (uc) Etat futur (D1D0) 00 00 01 01 10 10 11 XX 00 01 01 10 10 11 11 XX 00 10 01 11 10 11 11 XX XX 00

Sortie (o) 0 0 0 X 0 0 0 X 0 0 0 X 1
63

Mthodologie de synthse
5- Implmentation

Choix dun type de bascules Dterminations des quations logiques des entres des bascules
D1
uc 00 0 1 0 0 01 1 0 0 1 11 X X X X 10 0 1 0 1

D0
Q1Q0 00 01 11 10

Q1Q0 00 01 11 10

uc 00 0 0 0 1

01 0 1 0 1

11 X X X X

10 1 1 0 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

Dterminations des quations logiques des sorties

o
Q1 0 1

Q0 0 0 0

1 0 1

o = Q1.Q0

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

Universit de Savoie

65

Chapitre 5 : Les composants logiques programmables


5.1 Structure des PLD 5.2 Structure des CPLD 5.3 Structure des FPGA & ASICs

Universit de Savoie

66

Structure des PLD


La structure de base de ces composants programmables sont des rseaux ET et OU permettant de raliser nimporte quelle fonctions logiques.

a b c

Matrice ET Matrice OU Sorties


s1 s2 s3 s4

Universit de Savoie

67

Structure des PLD


Structure interne
a b c d Matrice OU programmable

Matrice ET programmable

s1

s2

s3

s4

68

Structure des PLD


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


5.1 Structure des PLD 5.2 Structure des CPLD 5.3 Structure des FPGA & ASICs

Universit de Savoie

74

Structure des CPLD


E/S

PIM Programmable Interconect Matrix

PLD

Les CPLDs sont les prmisses des premiers FPGAs. Ces circuits tendent tre remplacs par les FPGAs.

PLD

E/S
Universit de Savoie 75

PLD

PLD

Les CPLDs regroupent plusieurs PLD interconnects par un rseau de connexions programmables.

Structure des CPLD


Chaque bloc logique reprsente un PLD. 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


5.1 Structure des PLD 5.2 Structure des CPLD 5.3 Structure des FPGA & ASICs

Universit de Savoie

80

Structure des FPGA & ASICs


Field

Programmable Gate Array

Universit de Savoie

81

Structure des FPGA & ASICs


AVANTAGES

Possibilit de prototypage Time-to-market faible Adaptabilit aux futurs volutions grce la reconfiguration

INCONVENIENTS

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

Universit de Savoie

82

Universit de Savoie

83

Les ASIC

Application-Specific Integrated Circuits. Les ASIC fournissent prcisment la fonctionnalit ncessaire pour une tche spcifique. Cela leur permet d'tre :

plus petits, moins chers, plus rapide, De consommer moins de puissance qu'un processeur programmable (tel un Intel Pentium IV).

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

Temps de mise sur le march et dure de vie courte Trs petit nombre de circuits >>> FPGA Optimisation des performances Grande srie >>> ASIC

Universit de Savoie

85

Chapitre 6 : Description en VHDL

6.1 6.2 6.3 6.4

Prsentation du langage VHDL La partie ENTITY La partie ARCHITECTURE La description en VHDL

Universit de Savoie

86

Prsentation du langage VHDL


La description matriel

Le langage VHDL (Very High level Description Language) est, comme son nom lindique, un langage de description matriel. 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

La diffrence essentielle avec un langage informatique est la simultanit des actions dcrites. Pour cela il faudra se familiariser avec la notion :

dinstruction concurrente (simultane) dinstruction squentielle.

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
Dcrire un systme combinatoire ou squentiel en VHDL 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

La description VHDL consiste en une dfinition dun bloc ENTITY et dune dfinition dun bloc ARCHITECTURE.

ENTITY est la description physique des entres/sorties du systme ARCHITECTURE est la description du comportement du bloc ENTITY ENTITY and2 IS PORT ( std_logic; a,b : IN 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

Vue externe (entity)


A B Cin
Additionneur (Boite noir)

S Cout

Vue interne (architecture)


A B Cin
Universit de Savoie 92

S Cout

Chapitre 6 : Description en VHDL

6.1 6.2 6.3 6.4

Prsentation du langage VHDL La partie ENTITY La partie ARCHITECTURE La description en VHDL

Universit de Savoie

93

La partie ENTITY
Exemple

La partie ENTITY dcrit les Entres / Sorties


rst d[7:0] clk co q[7:0]

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:

IN OUT INOUT

Entre de du systme Sortie du systme 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 b ci
4 4 4

Add4

somme co

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

6.1 6.2 6.3 6.4

Prsentation du langage VHDL La partie ENTITY La partie ARCHITECTURE La description en VHDL

Universit de Savoie

98

La partie ARCHITECTURE
Organisation

Toute architecture est associe une entit 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

Dans une architecture il est ncessaire de dclarer les objets utiliss et leur type avant la zone dcrivant l'architecture (avant le begin ... end ). Parmi les objets trs utiliss, figurent :

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

Universit de Savoie

100

La partie ARCHITECTURE
Objet VHDL : Signal

Un signal reprsente une quipotentielle Il doit tre dclar avant utilisation

Laffectation se fait avec loprateur <= Initialisation rapide

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

Universit de Savoie

101

La partie ARCHITECTURE
Objet VHDL : Variable

Une variable doit tre dclare avant utilisation Elle ne peut tre dclare que dans un process Laffectation se fait avec loprateur :=

Universit de Savoie

102

La partie ARCHITECTURE
Les diffrentes descriptions

L'architecture est la description interne du circuit. Elle est toujours associe une entit. Une mme entit peut avoir plusieurs architectures . Ces descriptions peuvent tre :

Par flot de donne Comportementale Structurelle

Universit de Savoie

103

La partie ARCHITECTURE
Exemple de ladditionneur

A B Cin

ADD

Cout S

Universit de Savoie

104

La partie ARCHITECTURE
Description par flot de donne

En flot de donne les fonctions du systme logique sont dcrites par des quations boolennes. Le calcul des quations t ralis au pralable.

Universit de Savoie

105

A B

S2 Cout S1 S3 S

Cin

architecture flot of Additionneur is signal S1, S2, S3 : bit ; begin S1 <= A xor B; S2 <= A and B; architecture flot1 of Additionneur is S3 <= S1 and Cin; signal S1, S2, S3 : bit ; S <= S1 xor Cin; begin Cout <= S2 or S3; S <= S1 xor Cin; end flot ; 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

La description comportementale permet de faire une description du systme sans faire rfrence aux quation, ni la structure.

Universit de Savoie

107

A B 0 0 0 0 0 1 0 1 1 0 1 0 1 1 1 1

Cin 0 1 0 1 0 1 0 1

S 0 1 1 0 1 0 0 1

Cout 0 0 0 1 0 1 1 1

A B Cin

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 ; end if; if (A = '0' AND B = '0' AND Cin = '1') then S <= '1 ; Cout <= '0 ; end if; if (A = '0' AND B = '1' AND Cin = '0') then S <= '1 ; Cout <= '0 ; end if; etc end process; end comportementale;

S Count

La partie ARCHITECTURE
Description structurelle (1) La

description structurelle dcrit la fonction partir de composant prexistant. Il suffit de dfinir :


La liste des composant utiliss La liste des interconnexions

Universit de Savoie

109

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

bit; bit; bit );

Universit de Savoie

110

La partie ARCHITECTURE
Hirarchisation
demi_add

Additionneur
demi_add

A B Cin

S2 u0 u0 S1 S3

u2

Cout

u1 u1

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 e2 s1 s2 end DemiAdd; architecture structurelle of DemiAdd is : : : : in bit; in bit; out bit ; out bit);

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)

La description structurelle d'un circuit complexe en vhdl prsente de nombreux avantages :


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

6.1 6.2 6.3 6.4

Prsentation du langage VHDL La partie ENTITY La partie ARCHITECTURE La description en VHDL

Universit de Savoie

117

Description en VHDL
Conventions lexicales (1)

En gnral, les instructions se terminent par ;

Rgles de dnomination :

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

Universit de Savoie

118

Description en VHDL
Conventions lexicales (2)

Majuscule / Minuscule

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.

Identificateurs

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

Universit de Savoie

119

Description en VHDL
Conventions lexicales (3)

Expressions

Elles se terminent par un point virgule ;

Littraux : Ce sont des valeurs explicites :


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

Universit de Savoie

120

Description en VHDL
Conventions lexicales (4)

Commentaires

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

Les entiers (integer) Les types numrs Les types tableaux

Universit de Savoie

123

Description en VHDL
Les types : entiers

Entier (integer)

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)

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 ;

Dans le paquetage STANDARD de la bibliothque STD, plusieurs types numrs sont dfinis :

125

Description en VHDL
Les types : numrs (2)

Dans le paquetage STD_LOGIC_1164 de la bibliothque IEEE, le type STD_ULOGIC est dfini par :

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

Description en VHDL
Les tableaux

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

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)

Oprateurs logiques (sur boolens, bits et drivs)

Oprateurs relationnels (sur types scalaires ou drivs (signed, unsigned))

Universit de Savoie

129

Description en VHDL
Oprateurs (2)

Oprateurs bits (sur vecteurs de bits et types numriques)

Oprateurs arithmtiques (sur types numriques : entiers, signs, non signs, flottant)

Oprateurs de dcalage (sur tableaux de bits ou tendus) : sll, srl, sla, sra, rol, ror
Universit de Savoie 130

Description en VHDL
Instructions VHDL

Le VHDL le matriel laide :


d'instructions concurrentes dont l'ordre d'criture n'a aucune importance 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

Toutes les dclarations sont excutes simultanment et en permanence Lordre des dclarations dans le code source na pas dinfluence Les dclarations possibles sont :

Assignation continue : <= Instantiation dun composant : port map Assignation conditionnelle : when else Assignation slective : with select when when Appel dun process

Universit de Savoie

132

Description en VHDL
Assignations squentielles

Les process manipulent les variable et signal Au sein de ces descriptions, les dclarations sont excutes de manire squentielle, lune aprs lautre Lordre des dclarations est donc important Les dclarations possibles sont :

Assignation continue : <= (signal) et := (variable) Assignation conditionnelle : if then elsif then else end if; Assignation slective : case is when => when => end case; Boucles : for in loop end loop; Boucles : while ... loop end loop; Instructions next et exit
Universit de Savoie 133

Description en VHDL
Quest ce quun VHDL Process ?

Cest une suite dinstructions squentielles Les processus peuvent tre actifs ou inactifs Il possde une liste de sensibilit qui sont les signaux pouvant rendre le processus actif lorsque quun signal de cette liste change de valeur.

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.

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

Mise en uvre de process synchronis sur lhorloge


If clkevent and clk=1 then ou If clkevent and clk=0 then ou

if rising_edge(clk) if falling_edge(clk)

Universit de Savoie

135

Description en VHDL
SIGNAUX vs variables (1)

Les signaux sont visibles dans toute larchitecture. Ce sont des quipotentielles. 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.

=> 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)

Ces affectations sont des instructions concurrentes au mme titre que les processus entres eux.

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

Architecture avec affectations concurrentes

architecture arc of adder is begin S <= A xor B xor Cin; end arc;

Universit de Savoie

139

Description en VHDL
Exemple VHDL (2)
Architecture avec processus architecture arc of adder is begin process(A,B,Cin) begin if A = '0' then S <= B xor Cin; elsif B = '0' then S <= not(Cin); else S <= Cin; end if; end process; end arc; Architecture avec affectations concurrentes

architecture arc of adder is begin S <= B xor Cin when A = '0' else not Cin when B = '0' else Cin; end arc;

Universit de Savoie

140

Description en VHDL
Exemple VHDL (3)
Architecture avec processus architecture arc of MUX is begin process(SEL) begin case SEL is when 0 => sortie <= A; when 1 => sortie <= B; when others => sortie <= D; end case; end process; end arc; Architecture avec affectations concurrentes

architecture arc of MUX is begin with SEL select sortie <= A when 0, B when 1, C when 2, D when others; end arc;

Universit de Savoie

141