Vous êtes sur la page 1sur 3

Université Privée de Fès

2022/2023

GSE4 & GSE3


Série N°1 : TD FPGA/VHDL

Exercice N°1 :
Addition de deux nombres de 8 bits.
Ecrire un code VHDL qui permet d’additionner deux nombres de 8 bits et le résultat sera stocké sur 8 bits.
Exercice N°2 :
Décodeur binaire 4 bits vers afficheur 7 segments
Objectif : Afficher les chiffres 0 à 9 et lettres allant de A à F pour représenter en hexadécimal la grandeur
d'entrée du décodeur.
Le système est totalement combinatoire. Le signal entre au système sous une forme vectorielle composée
de 4 bits. Il en résulte en sortie 7 signaux scalaires représentant les différents segments d'un afficheur 7
segments : signaux a, b, c, d, e, f, g.
1) Dresser la table de vérité du décodeur.
2) Décrire en VHDL le bloc fonctionnel correspondant en utilisant deux manières différentes.
Exercice N°3 :
Université Privée de Fès
2022/2023

Exercice N°4 :
1) Soit le circuit suivant :

2) Ecrire le code VHDL pour réaliser le circuit ci-dessus.


Exercice N°5 :
Ecrire un programme en VHDL qui permet de clignoter une led.
Exercice N°6 :
Une carte de FPGA contient un quartz de fréquence 40 MHz, donc pour bien visualiser le chenillard de 4
leds, il faut utiliser un diviseur de fréquence. Ecrire le programme VHDL qui permet de réaliser ce
chenillard.
Exercice N°7 :
Ecrire un programme qui permet d’afficher sur l’afficheur 7 segment un comptage de 0 à 9 ou décomptage
de 9 à 0 sur une carte FPGA de fréquence 50 MHz. Le choix entre comptage et décomptage est réalisé par
l’entrée SEL
Exercice N°8 :
On considère le programme VHDL suivant qui décrit le fonctionnement d’une bascule :

entity basc is
Port ( T, clk, init : in std_logic;
S: out std_logic);
end basc;

architecture primitive of basc is


signal etat : std_logic;

begin
S <= etat;
process (clk)
begin
if (clk'event and clk='1') then
if ( init ='0') then
etat <= '1';
elsif (T='0') then
etat <= not etat;
end if;
end if;
end process;
end primitive;
Université Privée de Fès
2022/2023

1. Est-ce que ce circuit est synchrone ou asynchrone ? (justifier)


2. La commande « init » est-elle synchrone ou asynchrone ? (justifier)
3. Compléter le chronogramme ci-dessous.

4. Modifier le programme précédent pour qu’il rajoute à la bascule une commande RES, de remise à zèro,
asynchrone.
5. Rajouter une commande OE de contrôle qui fasse passer la sortie en haute impédance si OE=’0’.

Exercice N°9 :

Pour le circuit ci-dessus, écrire le programme VHDL.

Vous aimerez peut-être aussi