Vous êtes sur la page 1sur 5

Outils informatiques 2005-2006

Exercices VHDL pour lvaluation


Alain Vachoux
EPFL/STI-IMM-LSM
alain.vachoux@epfl.ch

Organisation des exercices


Les informations sur lorganisation des exercices se trouvent sur les pages web suivantes:
http://lsm.epfl.ch/page12635-fr.html (description du cours + documents)
http://moodle.epfl.ch/course/view.php?id=118 (Site web pour le rendu des exercices pour
l'valuation)
Chaque tudiant inscrit au cours est pri de senregistrer sur le site Moodle (2me URL ci-dessus).
Il faut utiliser votre identification GASPAR (nom dutilisateur et mot de passe) ainsi que la cl
didentification "30nov05" (sans les guillemets). Ceci permettra de rendre les fichiers relatifs aux
exercices et dobtenir des commentaires et les notes de lvaluation du module VHDL.

AVx / version 3.1 / 7-12-05

Outils informatiques 2005-2006

Exercices VHDL pour lvaluation - 2

Exercice 1: Dcodeur pour affichage 7 segments


Il sagit de dvelopper un modle fonctionnel (comportemental) dun dcodeur pour un affichage
LED 7 segments.
SEG_A
a

BCD(3:0)

SEG_B
f

SEG_C

SEG_D
SEG_E

SEG_F
d

SEG_G

BCD
"0010"

abcde fg
"1 1 0 1 1 0 1"

Interface (entit):
Une entre BCD de 4 bits codant un entier de 0 9.
Sept sorties de 1 bit SEG_A, ..., SEG_G, une par segment, valant 1 si le segment correspondant doit tre allum et valant 0 sinon.
Nom dentit suggr: dec7seg.
Comportement (architecture):
Le comportement dcrire est purement combinatoire et doit raliser la table de vrit du
composant. Utiliser une instruction daffectation de signal slective concurrente ou sa forme
quivalente utilisant un processus (voir p. 59 du cours).
Nom darchitecture suggr: bhv (pour "behaviour" - comportement).
Le chiffre 9 peut tre affich avec les segments abcgf ou abcdgf 1.
Prvoir un affichage derreur si le code BCD est incorrect.
Modle de test:
Le modle de test doit tester toutes les entres possibles en squence.
Noms suggrs pour le modle de test: tb_dec7seg (entit) et bench (architecture).
Option:
Les sorties peuvent tre rassembles dans un seul bus de 7 bits. Les indices du bus peuvent
tre des entiers (p.ex. 7 downto 1) ou des caractres (p.ex. a to g).
Dfinir une table de vrit dans un tableau constant. La table de vrit peut tre utilise dans
larchitecture du composant et dans le modle de test. Il peut tre ncessaire de dclarer la
table de vrit dans un paquetage spar qui est import dans larchitecture et le modle de
test (voir p. 89 du cours). Le paquetage est alors import dans le modle au moyen dune
clause use (voir p. 19 du cours).

AVx / version 3.1 / 7-12-05

Outils informatiques 2005-2006

Exercices VHDL pour lvaluation - 3

Exercice 2: Compteur synchrone

CLK
Compteur
RST_B

COUNT(N-1:0)

Il sagit de dvelopper un modle fonctionnel (comportemental) dun compteur synchrone gnrant une squence de valeurs 0, 1, 2, ..., 2N-1, o N est le nombre de bits du signal contenant la
valeur du compteur. Une fois la valeur maximum atteinte, le compteur recommence la valeur 0.

0, 1, 2, 3, , 2N-1, 0, 1, 2, ...

Interface (entit):
Entres: Horloge CLK (1 bit), reset RST_B (1 bit) actif au niveau bas (0).
Sortie: Valeur du compteur COUNT (N bits). N peut tre une valeur fixe choix ou un paramtre gnrique. Voir ci-dessous pour le choix du type.
Nom dentit suggr: counter.
Comportement (architecture):
Pseudo-code raliser en VHDL:
si reset actif alors COUNT := 0
sinon chaque flanc dhorloge faire:
si COUNT > valeur maximum alors COUNT := 0
sinon COUNT := COUNT + 1

Encapsuler le comportement ci-dessus dans un processus sensible sur les signaux CLK et
RST_B. Le reset est asynchrone (indpendant du flanc dhorloge).
La notation "(others => 0)" permet dinitialiser un mot de taille quelconque zro.
Il est interdit de lire la valeur dun signal dinterface de mode out. Utiliser une variable locale au processus pour raliser lincrmentation.
Le type bit_vector ne supporte pas les oprations arithmtiques de manire prdfinie, le
type unsigned si (voir p. 96 du cours).
Nom darchitecture suggr: bhv.
Modle de test:
Dfinir une horloge dont la priode est dfinie par une constante (voir p. 53 du cours).
Tester le comportement de reset (une impulsion 101) et le comportement normal.
Noms suggrs pour le modle de test: tb_counter (entit) et bench (architecture).
Options:
Le modle peut compter jusqu une valeur fixe au choix ou dfinie dans un paramtre gnrique.
Le flanc dhorloge actif peut tre le flanc montant ou le flanc descendant.
Le test "COUNT > valeur maximum" nest pas forcment ncessaire...

AVx / version 3.1 / 7-12-05

Outils informatiques 2005-2006

Exercices VHDL pour lvaluation - 4

Exercice 3: Registre srie-parallle


Il sagit de dvelopper un modle structurel dun registre N bits avec une entre srie et une sortie
parallle bas sur des composants flip-flops.
DIN

SET

BIT(N-1)
CLR

SET

BIT(N-2)
CLR

SET

BIT(N-3)

CLR

SET

BIT(1)
CLR

SET

BIT(0)
CLR

CLK
RST_B

DOUT(N-1:0)
N

Interface (entit):
Entres: Horloge CLK (1 bit), reset RST_B (1 bit) actif au niveau bas (0), donnes srie DIN
(1 bit).
Sortie: Contenu du registre DOUT (N bits). N peut tre une valeur fixe choix ou un paramtre gnrique.
Nom dentit suggr: spreg.
Structure (architecture):
Larchitecture doit inclure N instances de composants flip-flops dont le modle de base est
donn en p. 54 du cours. Le modle de flip-flop doit inclure un comportement de reset synchrone du type:
wait until clk = 1;
if rst_b = 0 then ... else ...

Utiliser le mcanisme dinstanciation directe pour dcrire la structure du registre.


Nom darchitecture suggr: str (pour "structure").
Modle de test:
Dfinir une horloge dont la priode est dfinie par une constante (voir p. 53 du cours).
Tester le comportement de reset.
Remplir le registre avec un mot de N bits et le vider.
Noms suggrs pour le modle de test: tb_spreg (entit) et bench (architecture).
Options:
Le modle peut inclure un nombre fixe de flip-flops ou un nombre dfini par un paramtre
gnrique. Dans ce dernier cas, lusage dune instruction generate est requise (voir p. 78 du
cours).

AVx / version 3.1 / 7-12-05

Outils informatiques 2005-2006

Exercices VHDL pour lvaluation - 5

Exercice 4: Registre dcalage programmable


Il sagit de dvelopper un modle fonctionnel (comportemental) dun registre dcalage de N bits
pouvant subir des oprations de dcalages ou de rotations sur un nombre quelconque de bits en
un seul coup dhorloge (on parle aussi de barrel shifter).

CMD
NSR

DIN(N-1:0)
N-1

N-2

7 6 5 4 3 2 1 0

7 6 5 4 3 2 1 0

SHLL 1

'
0
7 6 5 4 3 2 1 0'
7 6 5 4 3 2 1 0

SHRL 1
'
0
7' 6 5 4 3 2 1 0
7 6 5 4 3 2 1 0

SHLA 1

SHRA 1

7 6 5 4 3 2 1 0
7 6 5 4 3 2 1 0

7 6 5 4 3 2 1 0
7 6 5 4 3 2 1 0

CLK
RST_B

DOUT(N-1:0)
N

ROTL 1
7 6 5 4 3 2 1 0

ROTR 1
7 6 5 4 3 2 1 0

Interface (entit):
Entres: Horloge CLK (1 bit), reset RST_B (1 bit) actif au niveau bas (0), commande CMD
(type numr), nombre de bits affects par la commande NSR (entier 0), donnes parallle DIN (N bits). N peut tre une valeur fixe choix ou un paramtre gnrique.
Les commandes doivent tre codes par un type numr (voir p. 33 du cours) avec les conventions suivantes:
LOAD: chargement de DIN dans le registre.
SHLL, SHRL: dcalage logique gauche, droite.
SHLA, SHRA: dcalage arithmtique gauche, droite.
ROTL, ROTR: rotation gauche, droite.
Le type numr doit tre dclar dans un paquetage spar (voir p. 89 du cours). Le paquetage est alors import dans le modle au moyen dune clause use (voir p. 19 du cours) juste
avant lentit.
Sortie: Contenu du registre DOUT (N bits).
Nom dentit suggr: barrelsr.
Comportement (architecture):
Raliser les oprations de dcalages et de rotations au moyen de loprateur de concatnation & (voir p. 36 du cours).
Le contenu du registre peut tre mmoris dans un signal ou une variable.
(Option) Dfinir chaque opration possible par une procdure (voir p. 81 du cours).
(Option) Traiter NSR < 0 comme lopration symtrique (p.ex. SHLL -2 = SHRL 2).
Nom darchitecture suggr: bhv.
Modle de test:
Vrifier les oprations modlises au moyen des oprateurs de dcalages et de rotations
prdfinis sll, srl, sla, sra, rol et ror (voir p. 36 du cours).
Utiliser des assertions (voir p. 57 du cours).
Noms suggrs pour le modle de test: tb_barrelsr (entit) et bench (architecture).
AVx / version 3.1 / 7-12-05

Vous aimerez peut-être aussi