Vous êtes sur la page 1sur 5

ECOLE NATIONALE POLYTECHNIQUE

Département d’Electronique
Modélisation et Synthèse des Circuits Logiques

1° Année Circuits séquentiels


Série d’Exercices
Exercice 1 Bascule RS
Rappeler la table de vérité d’une bascule RS, Déduire ses équations logiques
Etablir les descriptions Flot de données et comportementale de cette bascule
entity RS is
port (R,S: in std_logic;
Q,QB:out std_logic);
end RS;
architecture DF of RS is
signal rq, rqb:std_logic;
begin
Q<=rq;
QBb<=rqb,
rq <= R nand rqb;
rqb <= S nand rq;
end DF;
Bascule RS Bascule RS description comportementale
architecture behaviour of RS is
begin
Mem:process(S,R)
begin
if S = '1' then -- Set prioritaire
Q <= '1'; QB <= '0'; -- mise à '1'
elsif R= '1' then
Q <= '0'; QB <= '1'; -- mise à '0'
réécrire ce code en utilisant l’instruction case -- else implicite : maintien par defaut
end if;
end process;
end behaviour;

Exercice2 Bascule JK Asynchrone


Etablir le code VHDL d’une bascule JK réécrire ce code en utilisant l’instruction case
asynchrone , en se basant sur l’équation logique de library IEEE;
ce circuit use IEEE.Std_Logic_1164.all;
entity as_jk is
library IEEE; port( j,k,reset: in Std_Logic ;
use IEEE.Std_Logic_1164.all; Q, QB: out Std_Logic );
entity as_jk is end as_jk;
port( j,k,reset: in Std_Logic ; architecture df of as_jk is
Q, QB: out Std_Logic ); signal rq :std_logic;
end as_jk; begin
architecture df of as_jk is Process(reset,j,k)
signal rq,rs :std_logic; Begin
begin If reset='1' then rq='0'
rq<= j and not(rs))or((not k) and rs ; Else Case j&k is
rs <=rq; When “01” => rq<='0';
Q<= '0' when reset='1' else rq; When “10” => rq<='1';
QB<= '1' when reset='1' else not ( rq); When “11” => rq<=not (rq);
end df; End case; end if;
Q<=rq; Qb<= not(rq);
end df;

ENP/ ELN/ 1 Année Modélisation et Synthèse des Circuits Logiques MSCL


Taghi Serie de TD N°4 Page 1
Exercice 3
Rappeler le principe et le fonctionnement d’un latch, donner une description comportementale de ce
dispositif
LATCH D … Latch Latch D : D :
library IEEE;
use IEEE.Std_Logic_1164.all;
entity D_Latch is port( D : in Std_Logic ; -- Entrée
D G : in Std_Logic ; -- Enable
Q : out Std_Logic -- sortie de la bascule );
end D_latch ;
architecture Comport of D_Latch is begin
Mem: process(G,D)
begin
if (G= '1') then Q <= D ;
-- else implicite => maintien par defaut
end if;
end process ;
end Comport;
Exercice 4
Rappeler le principe des bascules flip flop, donner la table de vérité d’un flip flop D avec un reset
asynchrone, établir le code VHDL . du flip f flop D (DFF)
Même questions pour un flip flop avec reset synchrone, modifier ce code afin de prévoir une
entrée de validation enable synchrone, dessiner le synoptique du circuit résultant
F Flip fflop D :
library IEEE;
use IEEE.Std_Logic_1164.all;
entity DFF is
port(
Horloge_i : in Std_Logic ; -- Entree de commande
Reset_i : in Std_Logic ; -- Mise a zero asynchrone
D_i : in Std_Logic ; -- Entree de donnee
Q_o : out Std_Logic -- sortie de la bascule );
end DFF ;
architecture Comport of DFF is
begin
Mem: process (Reset_i, Horloge_i)
begin
if (Reset_i = '1') then
-- comportement asynchrone prioritaire
Q_o <= '0' ;
elsif Rising_Edge(Horloge_i) then
-- comportement synchrone
Q_o <= D_i ;
-- else implicite => maintien par defaut
end if;
end process ;
end Comport ;

ENP/ ELN/ 1 Année Modélisation et Synthèse des Circuits Logiques MSCL


Taghi Serie de TD N°4 Page 2
Exercice 5
Donner la table de vérité de la bascule JK ci-contre,
les entrées preset (pr) et clear (clr) sont sensibles
au niveau bas. établir le code VHDL . de cette
bascule.(Description comportementale )
Une Solution
Library ieee;
use ieee.std_logic_1164.all;
entity basc_JK is
port ( pr,clr,J,K,Hl : in std_logic;
Q,Qn : out std_logic ); etat <='0' ;
end basc_JK; elsif (Hl='1' and HL'event) then
architecture basc_JK_arch of basc_JK is case entree is
signal etat : std_logic; when "00" => etat <= etat;
signal entree : std_logic_vector (1 downto 0); when "01" => etat <= '0';
begin when "10" => etat <= '1';
entree(0) <= K; when "11" => etat <= not etat;
entree(1) <= J; when others => NULL;
process ( prn,clrn, Hl )
begin end case;
if (pr='0') then end if;
etat <= '1'; end process;
elsif (clr='0') then Qn <= not etat;
Q<= etat;
end basc_JK_arch;
Exercice 6
Rappeler la table de vérité d’une bascule T, Quelle est la
caractéristique principale, Donner une description
VHDL de la bascule T ci-contre

1. Quelle est l’utilisation pratique de la bascule T ?


Proposez le montage pour réaliser la bascule T en utilisant la
bascule D.

Library ieee; process(clr,Hi);


use ieee.std_logic_1164.all; begin
entity basc_T is if (clr='0') then
port ( clr,T ,Hl : in std_logic; etat <='0' ;
Q,Qn : out std_logic ); elsif (Hl='1' and Hl'event) then
end basc_T; if (T=’1’) then etat <=not etat;
architecture basc_T_arch of basc_T is end if;
signal etat : std_logic; end if;
begin end process;
Q<= etat;
Qn<=not etat
End basc_T_arch;

Exercice 7
Réalisation d’une bascule D synchrone avec RAZ Réalisation d’une bascule JK (synchrone)
asynchrone Réaliser en langage VHDL une bascule JK
Réaliser en langage VHDL une bascule D synchrone, synchrone, sensible sur le front descendant du signal
sensible au front montant du signal d’horloge clk, d’horloge clk. Attention, aucune entrée (J ou K) ne
avec remise à zéro asynchrone raz (active à zéro). : doit être prioritaire
1. Expliquez, quel est le signal prioritaire : clk ou raz. Quelle est l’utilisation pratique de la bascule JK ?
Quelle est la structure VHDL à employer ? Proposez le montage pour réaliser la bascule T en
utilisant la bascule JK. .
ENP/ ELN/ 1 Année Modélisation et Synthèse des Circuits Logiques MSCL
Taghi Serie de TD N°4 Page 3
Exercice 8
Tracer les chronogrammes qui
correspondent à la description de ce
process

Process (clk)
Variable var : bit ;
Begin
If clk’event and clk=’1’ then
B<=a;
C<=b;
Var:=a;
D<=var;
End if; End process;

Exercice 9
Attention ! Correction
Les instructions suivantes sont interdites dans une On utilise un process synchronisé sur un front
zone concurrente process (CLK)
A <= not A; CMPT <= CMPT + 1; REG <= begin if rising_edge(CLK) then
REG (0) & REG(7 downto 1); A <= not A;
CMPT <= CMPT + 1;
REG <= REG (0) & REG(7 downto 1);
end if;
end process;

Dessiner les circuits correspondant aux


instructions du process
Exercice 10
On considère le programme ci-dessous (écrit en • Déduire de ce programme, par une construction
VHDL) : méthodique, un schéma (bascules et portes
entity transitm is logiques).
port ( hor, e : in bit ; • Compléter le chronogramme ci-dessous.
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;
Exercice 11
1. Donnez la spécification comportementale
du circuit de la figure ci-contre
(entity/architecture) en n’utilisant aucune
instruction de type port map. Tous les fils
sont des std_logic ; A et clk sont les entrées ;
S est la sortie ; Q0 et Q1 sont des signaux
intermédiaires.

ENP/ ELN/ 1 Année Modélisation et Synthèse des Circuits Logiques MSCL


Taghi Serie de TD N°4 Page 4
Exercice 12
Donnez le schéma au niveau porte correspondant
à la spécification Vhdl ci-contre, Expliquez. two :process(c,q2)
Entity ds05 is begin
Port(din,rstb,clk,a,b,c :in std_logic ; if c=’1’ then
dout,s :out std_logic) ; dout <= q2 ;
end ds05 ; end if ;
architecture super of ds05 is end process two ;
signal q1,q2 :std_logic ; three :process(q1,q2)
begin begin if q1=’1’ and q2=‘1’ then
one :process(rstb,clk) s <= ‘1’ ; else
begin s <= ‘0’ ;
if rstb=’0’ then q1 <= ‘0’ ; end if ;
elsif clk’event and clk=’1’ then end process three ;
if a=’1’ then q1 <= din ; End super ;
else q2 <= q1 and b ;
end if ;
end if ;
End process one;

Correction Exo8
Exercice 8
Tracer les chronogrammes qui correspondent
à la description de ce process

Process (clk)
Variable var : bit ;
Begin
If clk’event and clk=’1’ then
B<=a;
C<=b;
Var:=a;
D<=var;
End if; End process;

Correction Exo12

ENP/ ELN/ 1 Année Modélisation et Synthèse des Circuits Logiques MSCL


Taghi Serie de TD N°4 Page 5

Vous aimerez peut-être aussi