Mostrando entradas con la etiqueta electronica digital. Mostrar todas las entradas
Mostrando entradas con la etiqueta electronica digital. Mostrar todas las entradas

jueves, 11 de agosto de 2011

fundamentos de diseño logico y de computadors Morris Mano

fundamentos de diseño logico y de computadorsautor: Morris Manohttp://www.4shared.com/document/Us-aBzem/fundamentos_de_diseo_logico_y_.html 

sábado, 9 de julio de 2011

Detector de secuencias

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 ;