Sie sind auf Seite 1von 6

ELECTRONICA DIGITAL

EDICIÓN DE TEXTO EN LÓGICA SECUENCIAL

“EDICIÓN DE TEXTO EN LÓGICA SECUENCIAL”


Edición de texto en lógica secuencial

RESULTADOS:

Procedimiento

PRIMERA PARTE: Maquina de estado tipo MOORE


Analizar el código, hacer su simulación y dibujar las máquinas de estado del funcionamiento.
entity Diagrama_estados is "0100" WHEN (pstate = "0011") ELSE
Port ( rst : in STD_LOGIC; "0101" WHEN (pstate = "0100") ELSE
clk : in STD_LOGIC; "0011" WHEN (pstate = "0101") ELSE
a : out STD_LOGIC; "0111" WHEN (pstate = "0011") ELSE
b : out STD_LOGIC; "1000" WHEN (pstate = "0111") ELSE
state : out STD_LOGIC_VECTOR(3 downto 0) "1001" WHEN (pstate = "1000") ELSE
); "0000";
end Diagrama_estados;
a <= '1' WHEN pstate = "0000" ELSE --0
architecture synth of Diagrama_estados is '0' WHEN pstate = "0001" ELSE --1
'0' WHEN pstate = "0010" ELSE --2
SIGNAL pstate: std_logic_vector(3 downto 0); '1' WHEN pstate = "0011" ELSE --3
Signal n_state : std_logic_vector(3 downto 0); '1' WHEN pstate = "0100" ELSE --4
'1' WHEN pstate = "0101" ELSE --5
BEGIN '1' WHEN pstate = "0110" ELSE --6
'1' WHEN pstate = "0111" ELSE --7
-- maquina de estados '1' WHEN pstate = "1000" ELSE --8
'1' WHEN pstate = "1001" ELSE --9
PROCESS (clk, rst) '0';
BEGIN
IF rst = '1' THEN b <= '1' WHEN pstate = "0000" ELSE --0
pstate <= "0000"; '1' WHEN pstate = "0001" ELSE --1
ELSIF clk = '1' AND clk'event THEN '1' WHEN pstate = "0010" ELSE --2
pstate <= n_state; '1' WHEN pstate = "0011" ELSE --3
END IF; '1' WHEN pstate = "0100" ELSE --4
END PROCESS; '0' WHEN pstate = "0101" ELSE --5
'0' WHEN pstate = "0110" ELSE --6
state <= pstate; '1' WHEN pstate = "0111" ELSE --7
'1' WHEN pstate = "1000" ELSE --8
n_state <= "0001" WHEN (pstate = "0000") ELSE '1' WHEN pstate = "1001" ELSE --9
"0010" WHEN (pstate = "0001") ELSE '0';
"0011" WHEN (pstate = "0010") ELSE
END synth;

DIAGRAMA DE TIEMPOS (SIMULACIÓN)

DIAGRAMA DE ESTADOS

SALIDAS => BA
11
Inicio

11 10 10 11 01 2
Edición de texto en lógica secuencial

SECUNDA PARTE: Maquina de estado tipo MOORE


Con el ejemplo anterior escribir y simular en VHDL el siguiente diagrama de estado

Una vez compilado optamos por dar los estímulos para tener luego nuestro diagrama de tiempo

3
Edición de texto en lógica secuencial

Aquí se muestra el resultado de la compilación y estímulos de nuestros circuitos

4
Edición de texto en lógica secuencial

TERCERA PARTE: Maquinas de Estado tipo Mealy.


Con el primer ejemplo, codificar, escribir y simular en VHDL el siguiente diagrama de estado

Le damos valores a las salidas (codificamos)

S0 = 00
S1 = 01
S2 = 10
S3 = 11

DIAGRAMA DE TIEMPOS (SIMULACIÓN)

5
Edición de texto en lógica secuencial

TAREA:

Realice el diseño de un contador ascendente/ descendente de 8 bits controlable mediante un bit para el
cual en cero cuente descendentemente y en 1 ascendentemente. Usando contadores o máquina de
estados.

Observaciones Generales

Se observó que para poder realizar un contador es necesario declarar de manera


precisa el número de bits y el módulo del contador para que pueda compilar de forma
correcta.

Uno puede realizar registro de desplazamiento de igual manera a la de un contador,


de forma genérica o utilizando las sentencias lógicas.

Con el lenguaje VHDL resulta mucho más fácil realizar contadores de manera más
personalizada, ya que solo se tiene que emplear el lenguaje lógico programable.

En lenguaje de programación es más fácil realizar la lógica secuencial, ya que no es


necesario realizar tabla de estado solo se tienen que indicar los estados en la tabla
de transición.

Se puede realizar máquinas de estado con tablas lógicas que nos permitan realizar
cualquier tipo de lógica secuencial que deseemos.

Para realizar el diagrama de tiempos en el estado inicial primero se debe colocar un


pulso de RESET.

Das könnte Ihnen auch gefallen