Exam 2017

Télécharger au format docx, pdf ou txt
Télécharger au format docx, pdf ou txt
Vous êtes sur la page 1sur 8

Université de Tunis

ENSIT

Examen Principal Date : 7 janvier 2017

2ième année Ing_GE Durée : 2 H

Electronique des Systèmes Numériques

EXERCICE I :

1/ Identifier les différent états de ce détecteur (on appellera l’état initial S init)

2/Tracer l’algorithme de détection (ASM) de cette machine à état fini.

3/ Ecrire le code VHDL en 2 process qui décrit le fonctionnement de cette machine (voir le modèle document
réponse).

EXERCICE II :

Soit le circuit logique donné sur la figure 1.

Figure 1

1/4
1/Calculer les délais des plus longs chemins suivants :

a/Clock to out

b/Register to Register

c/ Pin to Pin (délai combinatoire)

2/ Calculer la fréquence Maximale de ce circuit.

3/ Calculer le Setup Time Maximal externe

4/Calculer le Hold Time minimal externe

5/ Remplir le DATA SHEET de ce circuit ( voir Tableau document réponse)

EXERCICE III :

La figure2 ci-dessous représente 2 algorithmes (ASM#1, ASM#2) de 2 machines à états fini communicantes
( FSM#1,FSM#2) . La sortie st_b de la machine FSM#1 commande la machine FSM#2 de même La sortie
Fin_b de la machine FSM#2 commande la machine FSM#1. StateFSM#1 et stateFSM#2 sont
respectivement les états des machines FSM#1 et FSM#2.

1/ Complétez le chronogramme (voir document réponse) pour les états et les sorties.

Figure 2

2/4
Document réponse

(Ne rien écrire sur cette page)

EXERCICE I :

3/ Ecrire le code VHDL en s’inspirant du modèle ci-dessous ( on utilise le codage binaire naturel pour coder
les états).
entity detecteur is port(

x,c1k: in std logic;

z: out std logic

);

end detecteur;

architecture behavjor of detecteur is

- -put constants here


-- example of syntax: constant Sinit: std logic vector(.. downto ..) := B"……………";
signal pstate,nstate: std logic vector(… downto… ); --present and next state

begin

dffs:process (..)

begin

- dff logic here end process


dffs;
clogic:process(……) begin

end process clogic;

end behavior  ;

3/4
EXERCICE II :

5/ DATASHEET

EXERCICE III :

1/ Chronogramme :

4/4
Solution

EXERCICE I

LIBRARY IEEE;

USE IEEE.std_logic_1164.ALL;

USE IEEE.std_logic_unsigned.ALL;

Entity seq_0101011 is

port(clk,X,reset: in std_logic;

state: out std_logic_vector(2 downto 0);

Z: out std_logic) ;

end seq_0101011 ;

ARCHITECTURE behavior of seq_0101011 is

constant Sinit: std_logic_vector(2 downto 0) := B"000";

constant S0: std_logic_vector(2 downto 0) := B"001";

constant S01: std_logic_vector(2 downto 0) := B"010";

constant S010: std_logic_vector(2 downto 0) := B"011";

constant S0101: std_logic_vector(2 downto 0) := B"100";

constant S01010: std_logic_vector(2 downto 0) := B"101";

constant S010101: std_logic_vector(2 downto 0) := B"110";

constant S0101011: std_logic_vector(2 downto 0) := B"111";

signal pstate,nstate: std_logic_vector(2 downto 0);

begin
5/4
state <= pstate;

dffs:process (clk )

begin

if reset ='0' then

pstate <= Sinit;

elsif clk'event and clk='1'then

pstate <= nstate;

end if;

end process;

c_logic:process(pstate,X)

begin

nstate <= pstate;

Z<= '0';

case pstate is

when Sinit=> if X ='0' then

nstate <= S0;

else

nstate <= Sinit;

end if;

when S0 => if X ='1' then

nstate <= S01;

else

nstate <= S0;

end if;

when S01=> if X = '0' then

nstate <= S010;

else

nstate <= Sinit;

end if;

when S010 => if X ='1' then

nstate <= S0101;

else

nstate <= S0;

end if;

when S0101=> if X='0' then

6/4
nstate<=S01010;

else

nstate<=Sinit;

end if;

when S01010=> if X='1' then

nstate<=S010101;

else

nstate<=S0;

end if;

when S010101=> if X='1' then

nstate<=S0101011;

else

nstate<=S01010;

end if;

when S0101011=> Z<='1'; if X='0' then

nstate<=S0;

else

nstate<=Sinit;

end if;

WHEN others => nstate<= Sinit;

end case;

end process c_logic;

end behavior;

EXERCICE III :
7/4
1/ Chronogramme :

EXERCICE II :

a/clock 2out : 5+3+3+4+3+3+5=26 ns

b/reg2reg : 3+3+4+3+2= 15ns

c/pin 2 pin : de U à W : 5+3+4+ 3+3+5=23 ns

2/ Fmax= 1/26 ns = 38,46 Mhz

3/setup time externe : de U à la bascule supérieur : 5+3+4+3 +2 – 5=12ns

4/ hold time externe : de X à l’entrée D de l’entrée D de la bascule supérieur :1+ 5 - (5+3)=-2ns

5/

8/4

Vous aimerez peut-être aussi