Sie sind auf Seite 1von 8

Circuits Programmables FPGA S.

Haroun

Solution de la Série de TD n° 2 Circuits Programmables FPGA


Exercice 1 : additionneur de 2 nombres de 1 bit
1.1. Passons rapidement tous les cas de figure en revue : 0 + 0 = 0 ; 0 + 1 = 1+0 = 1 ; 1 + 1 = 10 (2 en base 10).
Le plus grand résultat est codé sur 2 bits. Le résultat doit donc être codé sur 2 bits.
Le bit de poids fort est R, le bit de poids faible est S.
1.2. Le schéma fonctionnel est le suivant :
A R

Addition de
B deux nombres S
de 1 bit

1.3. La table de vérité est la suivante : A B R S


0 0 0 0
0 1 0 1
1 0 0 1
1 1 1 0

L’analyse de la table de vérité conduit aux équations de S et R en fonction de A et B :


S=AB (A ou exclusif B)
R=A.B (A et B) A
1.4. Le schéma structurel est le suivant : R
B &

1.5. Exemple de description VHDL S


=1

Exercice 2 : Exemples de descriptions VHDL en logique séquentielle


2.1. On trouvera ci-après les différentes parties de la description.

Page 1|8
Circuits Programmables FPGA S. Haroun

2.2. La variable Q est du type buffer std_logic_vector (3 downto 0) : c’est un mot de bits (poids fort Q(3) poids faible
Q(0)) de type buffer.

2.3. Schéma fonctionnel Q(3)


H
Q(2)

COMPT_4 Q(1)
R
Q(0)

Exercice 3
3.1. La liste de sensibilité est H et R. Si H ou R change d’état, la sortie Q pourra être modifiée.
3.2. Si R = ‘1’, la variable Q prend la valeur « 0000 » quelque soit l’état de l’horloge H (Reset du compteur), si R =
‘0’ le compteur peut compter.
3.3. If H’event and H=’1’ peut se traduire par « Si évènement sur H et H=’1’ ». Comme H est un signal binaire, un
évènement sur H est forcement soit un passage de ‘0’ à ‘1’, soit un passage de ‘1’ à ‘0’.
H’event and H=’1’ correspond donc à un évènement sur H suivi de H = ‘1’. Il s’agit donc d’un front montant de
H.
H H

t t

H’event and H =’1’ H’event and H =’0’

3.4. Tant que R =’1’, Q prend la valeur « 0000 ». Si R = ‘0’, à chaque front d’horloge, le compteur est incrémenté de
1. On aura donc Q = « 0000 », « 0001 », Q = « 0010 », « 0011 », etc.. jusqu’à Q = « 1111 », puis « 0000 » etc..

Page 2|8
Circuits Programmables FPGA S. Haroun

3.5. On rappelle : une entrée synchrone est une entrée qui est prise en compte sur un front d’horloge, une entrée
asynchrone est une entrée qui est prise en compte indépendamment de l’horloge.
Ici, l’entrée R entraîne le passage de Q à « 0000 », indépendamment du signal d’horloge. C’est donc une entrée
asynchrone.

Exercice 4
4.1. Compteur 5 bits.
Pour réaliser un compteur 5 bits, il suffit de modifier la taille de Q dans la déclaration, sans oublier de modifier la
valeur de Q dans la remise à ‘0’ (Q<= « 00000 »).
Pour des raisons de cohérence, le nom de l’entité et de l’architecture a été modifié, mais cela n’est pas nécessaire pour
le fonctionnement du compteur.
Voir description modifiée ci-après.

4.2. Pour réaliser un décompteur 4 bits, il suffit de charger Q à « 1111 » sur le signal R puis de décrémenter au lieu
d’incrémenter. Les modifications sont en gras.

4.3. Pour réaliser un compteur avec Reset synchrone, il est nécessaire de traiter prioritairement l’horloge. Voici un
exemple de modification. Il y a plusieurs variantes possibles.

Page 3|8
Circuits Programmables FPGA S. Haroun

4.4. Pour réaliser un compteur décimal, il est nécessaire de remettre le compteur à 0 après l’état 9.

Exercice 5
5.1. Schémas fonctionnels : Q(3)
Schéma fonctionnel du compteur H
Q(2)

COMPT_4 Q(1)
R
Q(0)

Schéma fonctionnel du décodeur BCD-7 segments

Page 4|8
Circuits Programmables FPGA S. Haroun

SEG(0)
DEC(3)
SEG(1)
DEC(2) SEG(2)
SEG(3)
DEC(1)
DEC7SEG4 SEG(4)
DEC(0)
SEG(5)
SEG(6)

5.2. Schéma fonctionnel de l’ensemble :


SEG(0)
Q(3) DEC(3)
SEG(1)
H
Q(2) DEC(2) SEG(2)
SEG(3)
Q(1) DEC(1)
COMPT_4 DEC7SEG4 SEG(4)
R
Q(0) DEC(0)
SEG(5)
SEG(6)

5.3. Description VHDL de l’association :

La description est organisée comme suit :


- Déclaration des composants utilisés : l’instruction package permet de définir le « catalogue des composants
que l’on va utiliser ».
- Description des composants sous la forme d’entité : les composants sont décrits en reprenant intégralement
les descriptions des modules précédemment étudiées (déclaration de bibliothèques comprises) : le compteur 4
bits et le décodeur BCD-7 segments. Chaque composant n’est décrit qu’une fois, et peut être utilisé plusieurs
fois.
- La dernière partie décrit comment relier entre elles les différents modules. On défini un nom à chaque
composant utilisé et on définit les signaux d’entrée et de sortie en respectant l’ordre où ils ont été définis
précédemment. C’est l’équivalent d’un passage de paramètres pour les langages informatiques.

Page 5|8
Circuits Programmables FPGA S. Haroun

Page 6|8
Circuits Programmables FPGA S. Haroun

Page 7|8
Circuits Programmables FPGA S. Haroun

Exercice 6
Représenter la description VHDL du fichier fourni sous forme de schéma fonctionnel. On fera figurer le nom de
chacune des variables et de chacun des modules.

COMPT_7SEG

DEC7SEG4

COMPT_4 SEG(0) S7SEG(0)


N(3)
HORLOGE
Q(3) DEC(3) SEG(1) S7SEG(1)
H
Q(2)
N(2)
DEC(2) SEG(2) S7SEG(2)
SEG(3) S7SEG(3)
N(1)
Q(1) DEC(1)
RESET
R SEG(4) S7SEG(4)
N(0)
Q(0) DEC(0) SEG(5) S7SEG(5)
SEG(6) S7SEG(6)
COMPTEUR
DECODEUR

Page 8|8

Das könnte Ihnen auch gefallen