Oscar Ignacio Botero Henao.
MÁQUINAS DE ESTADO FINITO CON FLIP–FLOP TIPO T
Diseñe una Máquina de Estado Finito (MEF) basado en Flip Flop tipo T, con una
entrada de datos llamada EN y que cumpla el siguiente Diagrama de Estados. El
sistema secuencial debe tener un RESET que se activa con ‘0’ y cada vez que
llegue al estado S2 se activará una salida llamada Z.
1
S0
0
0 1
S1 0 S2
0
0 1
1
SOLUCIÓN CIRCUITAL CON FLIP–FLOP TIPO T
Entradas a los Flip-Flop tipo T = T0, T1
Salidas de los Flip-Flop tipo T = Q0, Q1
Salida que visualiza el cumplimiento de la secuencia = Z
Dato de entrada = EN
ESTADO ESTADO SIGUIENTE ENTRADA A LOS F/F TIPO T
SAL
ACTUAL EN = 0 EN = 1 EN = 0 EN = 1
Q1 Q0 Q1 Q0 Q1 Q0 T1 T0 T1 T0 Z
S0 0 0 0 1 0 0 0 1 0 0 0
S1 0 1 0 1 1 0 0 0 1 1 0
S2 1 0 0 1 0 0 1 1 1 0 1
Q1EN Q1EN
Q0 00 01 11 10 Q0 00 01 11 10
0 1 1 0 1 1
1 1 X X 1 1 X X
T1 T0
Q1
Q0 0 1
0 1
1 X
Z
1 Σ 1 0
0 Σ 0 0 0 Σ 0
Σ 1
Ecuación del F/F tipo T: Q T Q
Oscar Ignacio Botero Henao.
DISEÑO EN PROTEUS
MIXTO: FLIP FLOP TIPO T – SECUENCIAL Y ECUACIONES BOOLEANAS
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
entity Moore1_MIXT is ‐‐ Entidad
Port ( RESET : in STD_LOGIC; ‐‐ Reset del sistema
EN : in STD_LOGIC; ‐‐ Entrada del dato, 1 bit
CLK : in STD_LOGIC; ‐‐ Reloj manual
Z : out STD_LOGIC; ‐‐ Salida de cumplimiento de secuencia
Q0 : inout STD_LOGIC; ‐‐ Salida/Entrada Q0 del F/F 0
Q1 : inout STD_LOGIC); ‐‐ Salida/Entrada Q1 del F/F 1
end Moore1_MIXT; ‐‐ Fin de la entidad
architecture Comportamiento of Moore1_MIXT is ‐‐ Arquitectura
SIGNAL T0,T1: STD_LOGIC:='0'; ‐‐ Señales internas de las entradas a los F/F
SIGNAL Qt0,Qt1: STD_LOGIC:='0'; ‐‐ Señales internas temporales de salidas de F/F
begin ‐‐ Comienza
‐‐ ECUACIONES COMBINACIONALES (Mapas K)
T0 <= Q0 XNOR EN; ‐‐ Entrada T0 del F/F 0
T1 <= Q1 OR (Q0 AND EN); ‐‐ Entrada T1 del F/F 1
‐‐ PROCESO SECUENCIAL
2
Oscar Ignacio Botero Henao.
SEQ:PROCESS (CLK,RESET,EN) ‐‐ Proceso secuencial SEQ
BEGIN ‐‐ Comienza
IF RESET='0' THEN ‐‐ Si hay RESET, entonces
Qt0 <= '0'; ‐‐ Lleve '0' a la salida Q0
Qt1 <= '0'; ‐‐ Lleve '0' a la salida Q1
ELSE ‐‐ Si no
IF CLK'EVENT AND CLK='1' THEN ‐‐ Si hay evento y flanco UP, entonces
IF EN='0' THEN ‐‐ Si EN está en '0', entonces
Qt0 <= T0 XOR Q0; ‐‐ Ec. del F/F tipo T
Qt1 <= T1 XOR Q1; ‐‐ Ec. del F/F tipo T
ELSE ‐‐ Si no
Qt0 <= T0 XOR Q0; ‐‐ Ec. del F/F tipo T
Qt1 <= T1 XOR Q1; ‐‐ Ec. del F/F tipo T
END IF; ‐‐ Fin si
END IF; ‐‐ Fin si
END IF; ‐‐ Fin si
END PROCESS SEQ; ‐‐ Fin del proceso secuencial SEQ
Q0 <= Qt0; ‐‐ Lleve lo que tenga Qt0 a la salida Q0 del F/F 0
Q1 <= Qt1; ‐‐ Lleve lo que tenga Qt1 a la salida Q1 del F/F 1
Z <= Q1 AFTER 10ns; ‐‐ Lleve lo que tenga Q1 después de 10ns a la salida Z
end Comportamiento; ‐‐ Fin de la arquitectura
MODELADO ESQUEMÁTICO EN XILINX CON F/F TIPO T
3