Académique Documents
Professionnel Documents
Culture Documents
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).
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...
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 ...
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