Vous êtes sur la page 1sur 5

LOGIQUE PROGRAMMABLE TD2 ISET GABES AU:2014/2015 Sem2

ISET DE GABES AU 2014/2015 sem 2


AII N5
TD 2
LOGIQUE PROGRAMMABLE
VHDL

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 :

1. Dessinez la boîte noire correspondante au composant décrit ci-dessous.


LIBRARY IEEE ;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.NUMERIC_STD.ALL ;
ENTITY MUX2TO1 IS
PORT ( Y0 : IN STD_LOGIC ;
Y1 : IN STD_LOGIC ;
SEL : IN STD_LOGIC ;
Q : OUT STD_LOGIC
);
END MUX2TO1;

LOGIQUE PROGRAMMABLE Page 1/5 TD2


LOGIQUE PROGRAMMABLE TD2 ISET GABES AU:2014/2015 Sem2

ARCHITECTURE ARCHI1 OF MUX2TO1 IS


SIGNAL A : STD_LOGIC ;
SIGNAL B : STD_LOGIC ;
BEGIN
Q <= A OR B ;
A <= NOT SEL AND Y0 ;
B <= SEL AND Y1 ;
END ARCHI1 ;

2. A l’intérieur de la boîte noire, dessinez, aussi clairement que possible, le


schéma électronique en portes logiques.
3. Quelle est la fonction de ce circuit ?

EXERECICE 3 :

On considère le programme ci-dessous :


entity transitm is
port ( hor, e : in bit ;
s : out bit );
end transitm ;

architecture quasi_struct of transitm is


signal qa, qb : bit ;
begin
s <= qa xor qb ;
schem : process
begin
wait until hor = '1' ;
qa <= e ;
qb <= qa ;
end process schem ;
end quasi_struct ;

1. Déduire de ce programme un schéma (bascules et portes logiques).

2. Compléter le chronogramme ci-dessous.

LOGIQUE PROGRAMMABLE Page 2/5 TD2


LOGIQUE PROGRAMMABLE TD2 ISET GABES AU:2014/2015 Sem2

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?

LOGIQUE PROGRAMMABLE Page 3/5 TD2


LOGIQUE PROGRAMMABLE TD2 ISET GABES AU:2014/2015 Sem2

Exercice 6 :
Le circuit d’un registre à décalage synchrone (front montant) est donné sur la figure
suivante :

1) Ecrire l’entité qui décrit la vue externe de ce registre.


2) Donner une architecture comportementale (tableau ci-dessus) en utilisant un
process. Dans le process, vous pouvez utiliser l’instruction if…. Then…..elsif et
l’instruction for…..loop.

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;

architecture primitive of basc is


signal etat : bit;

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

etat <= '1';


elsif (T='0') then
etat <= not etat;
end if;
end if;
end process;
end primitive;

1. A quoi reconnaît-on qu’il s’agit d’un circuit synchrone ?


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 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).

LOGIQUE PROGRAMMABLE Page 5/5 TD2

Vous aimerez peut-être aussi