Anda di halaman 1dari 7

INFORME LAB No 5

APLICACIN DE LOS CIRCUITOS SECUENCIALES I


DETECTORES DE SECUENCIA ALAMBRADOS Y PROGRAMADOS

JAIME ENRIQUE SANCHEZ TARQUINO COD: 2420102004


WILMER ANDRES TRUJILLO BECERRA COD: 2420142016

UNIVERSIDAD DE IBAGUE
2015

OBJETIVOS
-Familiarizar al estudiante con el lenguaje de programacin VHDL.
-Emplear el software de programacin Quartus II en el lenguaje VHDL.
-Familiarizar al estudiante con el diseo de circuitos secunciales empleando
lgica alambrada y programada.
MATERIALES PROPORCIONADOS POR EL ESTUDIANTE
-Protoboard
-Resistencias, Dipswitch, etc.
-LEDs
-Circuitos integrados necesarios.
-Tarjeta diseada en la primera gua.
-Fuente de 5 VDC.
MATERIALES PROPORCIONADOS POR LA UNIVERSIDAD
-PC con Quartus II
-Sistema de desarrollo con CPLD

PROBLEMA
Disear un circuito secuencial con una entrada X y una salida Z, que permita detectar la
secuencia asignada por la docente, y una vez detectada, ponga la salida Z en alto. En la
deteccin de la secuencia se permite el solapamiento. El sistema debe tener un reset.
100111100.

DESARROLLO DE LA PRCTICA
1. Diseamos el detector de secuencia teniendo en cuenta, su representacin en los
diagramas de estado.

Figura 1. Diagrama de flujos de la secuencia 100111100.

Estados

Q3

Q2

Q1

Q0

Definicin

S0

S1

S2

S3

S4

Inicial
Bit
recibido 1
Bit
recibido
10
Bit
recibido
100
Bit
recibido
1001
Bit

S5

S6

S7

S8

recibido
10011
Bit
recibido
100111
Bit
recibido
1001111
Bit
recibido
10011110

Tabla1. Estados del sistema

Nota: Cuando estamos en el ltimo estado y se recibe un 0 se realiza el


solapamiento de S8 a S3, por esta razn no es necesario tener otro estado.
ENTR
ADA
X
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
1

ESTADO
PRESENTE
ESTADO SIGUIENTE
Q Q Q Q Q3(n Q2(n Q1(n Q0(n
3 2 1 0 +1) +1) +1) +1)
0 0 0 0
0
0
0
0
0 0 0 1
0
0
1
0
0 0 1 0
0
0
1
1
0 0 1 1
0
0
0
0
0 1 0 0
0
0
1
0
0 1 0 1
0
0
1
0
0 1 1 0
0
0
1
0
0 1 1 1
1
0
0
0
1 0 0 0
0
0
1
1
1 0 0 1
X
X
X
X
1 0 1 0
X
X
X
X
1 0 1 1
X
X
X
X
1 1 0 0
X
X
X
X
1 1 0 1
X
X
X
X
1 1 1 0
X
X
X
X
1 1 1 1
X
X
X
X
0 0 0 0
0
0
0
1
0 0 0 1
0
0
0
1
0 0 1 0
0
0
0
1
0 0 1 1
0
1
0
0
0 1 0 0
0
1
0
1
0 1 0 1
0
1
1
0
0 1 1 0
0
1
1
1
0 1 1 1
0
0
0
1
1 0 0 0
0
0
0
1

J
3
0
0
0
0
0
0
0
1
X
X
X
X
X
X
X
X
0
0
0
0
0
0
0
0
X

FLIP-FLOPS
K J K J K J
3 2 2 1 1 0
X 0 X 0 X 0
X 0 X 1 X X
X 0 X X 0 1
X 0 X X 1 X
X X 1 1 X 0
X X 1 1 X X
X X 1 X 0 0
X X 1 X 1 X
1 0 X 1 X 1
X X X X X X
X X X X X X
X X X X X X
X X X X X X
X X X X X X
X X X X X X
X X X X X X
X 0 X 0 X 1
X 0 X 0 X X
X 0 X X 1 1
X 1 X X 1 X
X X 0 0 X 1
X X 0 1 X X
X X 0 X 0 1
X X 1 X 1 X
1 0 X 0 X 1

SALI
DA
K
0
X
1
X
1
X
1
X
1
X
X
X
X
X
X
X
X
X
0
X
1
X
1
X
0
X

Z
0
0
0
0
0
0
0
0
1
X
X
X
X
X
X
X
0
0
0
0
0
0
0
0
0

1
1
1
1
1
1
1

1
1
1
1
1
1
1

0
0
0
1
1
1
1

0
1
1
0
0
1
1

1
0
1
0
1
0
1

X
X
X
X
X
X
X

X
X
X
X
X
X
X

X
X
X
X
X
X
X

X
X
X
X
X
X
X

X
X
X
X
X
X
X

X
X
X
X
X
X
X

X
X
X
X
X
X
X

X
X
X
X
X
X
X

X
X
X
X
X
X
X

X
X
X
X
X
X
X

X
X
X
X
X
X
X

X
X
X
X
X
X
X

X
X
X
X
X
X
X

Tabla 2. Tabla de estados utilizando flip flop tipo JK.

Figura 2.Simulacin del diseo del detector de secuencia en Proteus.

2. implementamos el detector de secuencia mediante VHDL, realizando el siguiente


cdigo:

library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;
entity dec_sec is
port (CLK,X,RESET

:in std_logic; --entrada reloj y reset

Z
end dec_sec;

:out std_logic);

architecture compor of dec_sec is


type estad_act is (S0,S1,S2,S3,S4,S5,S6,S7,S8); --estados
signal est: estad_act;
begin
process(CLK,RESET) --CLK y RESET
begin
if RESET='1' then est <= S0; Z <='0'; -- reset 1
elsif CLK'event and CLK='0' then -reloj flanco de bajada
case est is
when S0 =>
if X ='1' then est <= S1; Z <= '0';
elsif X = '0' then est <= S0; Z <= '0';
end if;
when S1 =>
if X ='0' then est <= S2; Z <= '0';
elsif X = '1' then est <= S1; Z <= '0';
end if;
when S2 =>
if X ='0' then est <= S3; Z <= '0';
elsif X = '1' then est <= S1; Z <= '0';
end if;
when S3 =>
if X ='1' then est <= S4; Z <= '0';
elsif X = '0' then est <= S0; Z <= '0';
end if;
when S4 =>
if X ='1' then est <= S5; Z <= '0';
elsif X = '0' then est <= S2; Z <= '0';
end if;
when S5 =>
if X ='1' then est <= S6; Z <= '0';
elsif X = '0' then est <= S2; Z <= '0';
end if;
when S6 =>
if X ='1' then est <= S7; Z <= '0';
elsif X = '0' then est <= S2; Z <= '0';
end if;
when S7 =>
if X ='0' then est <= S8; Z <= '0';
elsif X = '1' then est <= S1; Z <= '0';
end if;
when S8 =>
if X ='0' then est <= S3; Z <= '1';

elsif X = '1' then est <= S1; Z <= '0';


end if;
end case; end if;
end process; end compor;

Figura 4. Diagrama de tiempos

CONCLUSIONES
Logramos disear el detector de secuencia con los conocimientos adquiridos en clase,
tanto en VHDL, como en fsico, en el que implementamos la circuitos integrados y la
tarjeta proporcionada por el lab.

Anda mungkin juga menyukai