Vous êtes sur la page 1sur 8

Université de Tunis

ENSIT

Examen Principal Date : janvier 2018

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

Electronique des Systèmes Numériques

EXERCICE I :

On donne les spécifications de haut niveau d’un détecteur de la séquence 1101

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),coder les états en binaire naturel.

EXERCICE II :

La figure1 ci-dessous représente l’algorithme (ASM) d’une machines à états fini (FSM) . Les sorties de la
machine FSM commandent les entrées ld, en et sclr d’un compteur synchrone de 8bit.

1/ Compléter le chronogramme (voir document réponse) pour les états et les sorties : ld, en et Q .Sachant
que les bascules se déclenchent sur le front montant.

Figure 1
1/4
EXERCICE III :

On considère le code VHDL ci-dessous .

1/ Compléter le schéma logique correspondant (voir document réponse).

2/ Indiquer si les listes des signaux sensibles des processus this et that contiennent des signaux en trop.
Si c’est le cas, donner la liste minimale.

2/4
Document réponse

(Ne rien écrire sur cette page)

EXERCICE I :

3/ Ecrire le code VHDL en s’appuyant sur le modèle ci-dessous ( on utilise le codage binaire naturel pour
coder les états)l’initialisation se fait à l’état « Sinit » à l’aide de l’entrée reset active haut.
entity detecteur is port(

x,c1k,reset: in std logic;

state: out std_logic_vector(… downto …);

z: out std logic

);

end detecteur;

architecture behavior 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

state<=………………;

dffs:process (…………)

begin

-- dff logic here

end process dffs;

clogic:process(……………………)

begin

--initialisez les sorties

Case ……………. Is

When……

When……

When……

When……

When……

When others………

End case;

end process clogic;

end behavior  ;

3/4
EXERCICE II :

1/ Chronogramme :

EXERCICE III :

1/ Schéma logique

4/4
Solution

EXERCICE I

1/ identification des états :

2/ Algorithme

3/Code VHDL
LIBRARY IEEE;

USE IEEE.std_logic_1164.ALL;

USE IEEE.std_logic_unsigned.ALL;

Entity seq_1101 is

port(clk,X,reset: in std_logic;

state: out std_logic_vector(2 downto 0);

Z: out std_logic) ;

end seq_1101 ;

ARCHITECTURE behavior of seq_1101 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";

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

5/4
begin

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 ='1' then

nstate <= S1;

else

nstate <= Sinit;

end if;

when S1 => if X ='1' then

nstate <= S11;

else

nstate <= Sinit;

end if;

when S11=> if X = '0' then

nstate <= S110;

else

nstate <= S11;

end if;

when S110 => if X ='1' then

nstate <= S1101;

else

nstate <= Sinit;

end if;

when S1101=> z<=’1’;if X='1' then

6/4
nstate<=S11;

else

nstate<=Sinit;

end if;

WHEN others => nstate<= Sinit;

end case;

end process c_logic;

end behavior;

EXERCICE II

EXERCICE III :

1/ schéma logique

2/ Liste minimale des signaux sensibles

Les listes de sensibilité minimales :


7/4
• this: process (b)
- that: process (a, b ,d )

8/4

Vous aimerez peut-être aussi