Detecter de secuencias que busca la secuencia 1101y al encontrarla activa la salida Z
library ieee ;
use ieee.std_logic_1164.all ;
entity det_sec is
port ( CLK, RESET, x : in std_logic ;
z : out std_logic );
end det_sec ;
architecture detector_1 of det_sec is
type tipo_estado is ( A, B, C, D ) ;
signal estado, siguiente_estado : tipo_estado ;
begin
process ( CLK, RESET )
begin
if ( RESET = '1' ) then
estado <= A ;
elsif ( CLK'event and CLK = '1' ) then
estado <= siguiente_estado ;
end if;
end process ;
process ( x, estado )
begin
case estado is
when A =>
if x = '1' then
siguiente_estado <= B ;
else
siguiente_estado <= A ;
end if ;
when B =>
if x = '1' then
siguiente_estado <= C ;
else
siguiente_estado <= A ;
end if ;
when C =>
if x = '1' then
siguiente_estado <= C ;
else
siguiente_estado <= D ;
end if;
when D =>
if x = '1' then
siguiente_estado <= B ;
else
siguiente_estado <= A ;
end if ;
end case ;
end process ;
process ( x, estado )
begin
case estado is
when A =>
z <= '0' ;
when B =>
z <= '0' ;
when C =>
z <= '0' ;
when D =>
if x = '1' then
z <= '1' ;
else
z <= '0' ;
end if ;
end case ;
end process ;
end detector_1 ;
Mostrando entradas con la etiqueta logica combinacional. electronica digital. Mostrar todas las entradas
Mostrando entradas con la etiqueta logica combinacional. electronica digital. Mostrar todas las entradas
sábado, 9 de julio de 2011
domingo, 19 de junio de 2011
banco de pruebas decodificador 3 a 8 VHDL
Aqui les dejo el codigo que corresponde al banco de pruebas del decodificador 3 a 8 que les deje antes, exito. Les recomiendo Geany para escribir el codigo y ModelSim para compilarlo y probarlo. exito
library ieee;
use IEEE.STD_LOGIC_1164.all;
entity banco_prueba is
end entity banco_prueba ;
architecture prueba_decodificador_3_a_8 of banco_prueba is
signal bp_H : std_logic;
signal bp_D : std_logic_vector(7 downto 0);
signal bp_S : std_logic_vector(2 downto 0);
begin
uut: entity work.decodificador_3_a_8(estructural_1)
port map ( H=>bp_H, S=>bp_S, D=>bp_D);
process
begin
bp_H <= '0';
bp_S <= "000";
wait for 20 ns;
bp_H <= '0';
bp_S <= "001";
wait for 20 ns;
bp_H <= '0';
bp_S <= "010";
wait for 20 ns;
bp_H <= '0';
bp_S <= "011";
wait for 20 ns;
bp_H <= '0';
bp_S <= "100";
wait for 20 ns;
bp_H <= '0';
bp_S <= "101";
wait for 20 ns;
bp_H <= '0';
bp_S <= "110";
wait for 20 ns;
bp_H <= '0';
bp_S <= "111";
wait for 20 ns;
bp_H <= '1';
bp_S <= "000";
wait for 20 ns;
bp_H <= '1';
bp_S <= "001";
wait for 20 ns;
bp_H <= '1';
bp_S <= "010";
wait for 20 ns;
bp_H <= '1';
bp_S <= "011";
wait for 20 ns;
bp_H <= '0';
bp_S <= "100";
wait for 20 ns;
bp_H <= '1';
bp_S <= "101";
wait for 20 ns;
bp_H <= '1';
bp_S <= "110";
wait for 20 ns;
bp_H <= '1';
bp_S <= "111";
wait for 20 ns;
end process;
end architecture prueba_decodificador_3_a_8;
library ieee;
use IEEE.STD_LOGIC_1164.all;
entity banco_prueba is
end entity banco_prueba ;
architecture prueba_decodificador_3_a_8 of banco_prueba is
signal bp_H : std_logic;
signal bp_D : std_logic_vector(7 downto 0);
signal bp_S : std_logic_vector(2 downto 0);
begin
uut: entity work.decodificador_3_a_8(estructural_1)
port map ( H=>bp_H, S=>bp_S, D=>bp_D);
process
begin
bp_H <= '0';
bp_S <= "000";
wait for 20 ns;
bp_H <= '0';
bp_S <= "001";
wait for 20 ns;
bp_H <= '0';
bp_S <= "010";
wait for 20 ns;
bp_H <= '0';
bp_S <= "011";
wait for 20 ns;
bp_H <= '0';
bp_S <= "100";
wait for 20 ns;
bp_H <= '0';
bp_S <= "101";
wait for 20 ns;
bp_H <= '0';
bp_S <= "110";
wait for 20 ns;
bp_H <= '0';
bp_S <= "111";
wait for 20 ns;
bp_H <= '1';
bp_S <= "000";
wait for 20 ns;
bp_H <= '1';
bp_S <= "001";
wait for 20 ns;
bp_H <= '1';
bp_S <= "010";
wait for 20 ns;
bp_H <= '1';
bp_S <= "011";
wait for 20 ns;
bp_H <= '0';
bp_S <= "100";
wait for 20 ns;
bp_H <= '1';
bp_S <= "101";
wait for 20 ns;
bp_H <= '1';
bp_S <= "110";
wait for 20 ns;
bp_H <= '1';
bp_S <= "111";
wait for 20 ns;
end process;
end architecture prueba_decodificador_3_a_8;
Suscribirse a:
Entradas (Atom)