Está en la página 1de 6

“Año del Fortalecimiento de la Soberanía

” Nacional

UNIVERSIDAD NACIONAL SAN


LUIS GONZAGA DE
ICA

ASIGNATURA:ELECTRONICA DIGITAL II

N° PRACTICA
- NOMBRE: ED12 y 13 SISTEMAS

ESTUDIANTE:ANTON SOLAR JULIO CESAR

CICLO:V SECCION:B

FECHA DE ENTREGA:

IC - PERÚ
A 202 3
EVIDENCIA DE DESEMPEÑO 13

1. Diseñar la máquina de estado finita tipo mealy detectar la secuencia de 8 bits: 01101110
10PTO

Diagrama de estados:

Estado Estado futuro Salida


presente a=0 a=1 a=0 a=1
E0 E1 E0 0 0
E1 E1 E2 0 0
E2 E1 E3 0 0
E3 E2 E4 0 0
E4 E3 E1 0 0
E5 E4 E6 0 0
E6 E5 E7 0 0
E7 E0 E6 1 0
Implementación en VHDL:
library ieee; when e4 =>
use ieee.std_logic_1164.all; if a = ‘1’ then
entity diagrama is edo_futuro <= e1;
port(clk, a: in std_logic; s <= ‘0’;
s: out std_logic); else
end diagrama; edo_futuro <= e3;
s <= ‘0’;
architecture arq_diagrama of diagrama is end if;
type estados is (e0, e1, e2, e3, e4, e5, e6, e7, e8); when e5 =>
signa edo_presente, edo_futuro: estados; if a = ‘1’ then
edo_futuro <= e6;
begin s <= ‘0’;
proceso1: process (edo_presente, a) begin else
case edo_presente is edo_futuro <= e4;
when e0 => s <= ‘0’;
if a = ‘1’ then end if;
edo_futuro <= e0; when e6 =>
s <= ‘0’; if a = ‘1’ then
else edo_futuro <= e7;
edo_futuro <= e1; s <= ‘0’;
s <= ‘0’; else
end if; edo_futuro <= e5;
when e1 => s <= ‘0’;
if a = ‘1’ then end if;
edo_futuro <= e2; when e7 =>
s <= ‘0’; if a = ‘1’ then
else edo_futuro <= e6;
edo_futuro <= e1; s <= ‘0’;
s <= ‘0’; else
end if; edo_futuro <= e0;
when e2 => s <= ‘1’;
if a = ‘1’ then end if;
edo_futuro <= e3; end case
s <= ‘0’; end process proceso1;
else proceso2: process (clk) begin
edo_futuro <= e1; if (clk event and clk = ‘1’) then
s <= ‘0’; edo_presente <= edo_futuro;
end if; end if;
when e3 => end process proceso 2;
if a = ‘1’ then end arq_diagrama;
edo_futuro <= e4;
s <= ‘0’;
else
edo_futuro <= e2;
2. Diseñar la máquina de estado finita tipo mealy dado el diagrama de transición de estados 10PTS

Diagrama de estados:

Estado futuro Salida


Estado presente
a=0 a=1 a=0 a=1
S0 S0 S2 0 1
S1 S0 S2 0 1
S2 S2 S3 1 0
S3 S3 S1 0 1

Implementación en VHDL:
when s1 =>
if a = ‘1’ then
edo_futuro <= s2;
s <= ‘1’;
else
edo_futuro <= s0;
s <= ‘0’;
end if;
when s2 =>
if a = ‘1’ then
edo_futuro <= s3;
s <= ‘0’;
else
edo_futuro <= s2;
s <= ‘1’;
end if;
when s3 =>
if a = ‘1’ then
edo_futuro <= s1;
s <= ‘1’;
else
edo_futuro <= s3;
s <= ‘0’;
end if;
end case
end process proceso1;
proceso2: process (clk) begin
if (clk event and clk = ‘1’) then
edo_presente <= edo_futuro;
end if;
end process proceso 2;

También podría gustarte