TD Fpga Cs 2015
TD Fpga Cs 2015
TD Fpga Cs 2015
EXERECICE 1 :
1. Dessiner la « boîte noire » correspondante à l’entité suivante.
LIBRARY IEEE ;
USE IEEE.STD_LOGIC_1164.ALL; -- Pour le type std_logic
USE IEEE.NUMERIC_STD.ALL ; --Pour le type unsigned
ENTITY COUNTER IS
PORT ( clock : IN STD_LOGIC ;
RAZ : IN STD_LOGIC ;
Q : OUT UNSIGNED (7 DOWNTO 0 )
);
END COUNTER ;
2. Écrire les entités correspondant aux boîtes noires des figures 1, 2 et 3.
EXERECICE 2 :
EXERECICE 3 :
EXERECICE 4 :
On veut modéliser un circuit permettant de comparer 2 bus de données de 8 bits, A et B, et
de générer 3 signaux de sortie :
EQUA si les données sur les deux bus sont égales,
SUPE si la donnée du bus A est supérieure à la donnée du bus B,
INFE si la donnée du bus A est inférieure à la donnée du bus B,
A et B sont des entrées du type std_logic_vecteur;
EQUA, SUPE, INFE sont des sorties de type std_logic ;
1. Dessiner la « boîte noire » correspondant à ce comparateur 8 bits.
2. Ecrire l’entité de ce comparateur 8 bits
3. En utilisant la structure when, écrire le code de l’architecture de ce
modèle.
EXERECICE 5 :
Soit la description VHDL suivante:
entity exercice2 port (
x1, x2, x3, sel: in std_logic;
y: out std_logic);
end exercice2;
architecture archi of exercice2 is
signal a, b, c, d, e, f: std_logic;
begin
a <= x1 or x3;
b <= x1 and x3;
c <= x2 and a;
d <= b or c;
e <= x1 xor x2;
f <= x3 xor e;
P1: process (d, f, sel)
begin
if sel=’0’ then
y <= d;
else
y <= f;
end if;
end process P1;
end architecture archi;
1. Tracez à partir d’éléments de base le schéma correspondant.
2. Le processus P1 est-il combinatoire ou séquentiel? Justifiez.
3. Quel est selon vous la fonction de ce circuit?
Exercice 6 :
Le circuit d’un registre à décalage synchrone (front montant) est donné sur la figure
suivante :
Exercice 7 :
On considère le programme VHDL suivant qui décrit le fonctionnement d’une bascule :
entity basc is
Port ( T, clk, init : in bit;
S: out bit);
end basc;
begin
S <= etat;
process (clk)
begin
if (clk'event and clk='1') then
if ( init ='0') then
LOGIQUE PROGRAMMABLE Page 4/5 TD2
LOGIQUE PROGRAMMABLE TD2 ISET GABES AU:2014/2015 Sem2
4. Modifier le programme précédent pour qu’il rajoute à la bascule une commande raz, de
remise à zèro, asynchrone.
5.Transformer le programme pour qu’il utilise le type std_logic. Rajouter une commande oe de
contrôle qui fasse passer la sortie en haute impédance si oe=’0’.
Exercice 8 :
Il s’agit de réaliser un signal d’horloge (CLOCK) à un fréquence de 1Hz à partir d’un quartz
(OSC) qui génère un signal d’horloge à 10 MHz, qu’il va donc falloir diviser par 10.106 afin
d’obtenir la fréquence voulue. Cette opération peut se faire en 2 étapes tout d’abord avec un
diviseur par 5.106 puis un diviseur par 2.
1. Donner la description en langage VHDL (Entity et Architecture) d’un diviseur par 5.106 à partir
de 3 compteurs 8 bits. Utiliser pour cela 3 variables (COUNT_0, COUNT_1, COUNT_2) de type
integer, représentant chacune la valeur d’un compteur.
2. Donner la description d’un diviseur par 2 en utilisant la bascule D avec remise à zèro asynchrone
(RST).