secuencia 5 – 3 – 7 – 2 – 1 – 6 – 0 – 4 · secuencia 5 – 3 – 7 – 2 – 1 – 6...
TRANSCRIPT
Oscar Ignacio Botero Henao.
SECUENCIA 5 – 3 – 7 – 2 – 1 – 6 – 0 – 4
Diseñe un circuito Secuencial que realice la Secuencia de los números: 5–3–7–2–1–6–0–4. Tiene una salida “Z” que se activa cuando cumple la secuencia completa (en el número 4), tiene un RESET que se activa con “0” la salida es el número 0 y una entrada de reloj llamada CLK. Utilice Flip-Flop tipo D, JK y T. SOLUCIONES:
• Procedimiento Circuital con F/F tipo D, JK y T.
• Simulación con Proteus con F/F tipo D, JK y T.
• Modelación Comportamental con F/F tipo D, JK y T.
• Modelación Esquemática con F/F tipo D, JK y T.
FLIP FLOP TIPO D SOLUCIÓN CIRCUITAL Entradas a los Flip-Flop tipo D = Da, Db, Dc Salidas de los Flip-Flop tipo D = Qa, Qb, Qc Salida que visualiza el cumplimiento de la secuencia = Z
ESTADO ACTUAL
ESTADO SIGUIENTE
ENTRADAS A LOS F/F TIPO D SAL
Qc Qb Qa Qc Qb Qa Dc Db Da Z S0 0 0 0 1 0 0 1 0 0 0 S1 0 0 1 1 1 0 1 1 0 0 S2 0 1 0 0 0 1 0 0 1 0 S3 0 1 1 1 1 1 1 1 1 0 S4 1 0 0 1 0 1 1 0 1 1 S5 1 0 1 0 1 1 0 1 1 0 S6 1 1 0 0 0 0 0 0 0 0 S7 1 1 1 0 1 0 0 1 0 0
S0
S7
S6
S5
S1
S2
S3
S4Z=1
S4
RESET
Oscar Ignacio Botero Henao.
2
Observe que los valores de las entradas D de los F/F son iguales a los de los estados siguientes.
Qa QbQc
Qa QbQc
00 01 11 10 00 01 11 10 0 1 1 0 0 0 0 0 0 0 1 1 0 0 1 1 1 1 1 1 DC DB
Qa QbQc
Qa QbQc
00 01 11 10 00 01 11 10 0 0 1 0 1 0 1 1 0 1 0 1 1 DA Z
Σ
Σ Σ Qb Qc
Σ ó :
MODELACIÓN ESQUEMÁTICA
Se crea un nuevo proyecto, recuerde que se crea como ESQUEMÁTICO.
Oscar Ignacio Botero Henao.
3
Observe los diferentes tipos de Flip-Flop que se encuentran en la Librería: Continuando con los requerimientos del ejercicio, se necesita un Flip-Flop tipo D con Reset activo en “0” y con CLK con flanco de bajada, en la librería no lo hay… los más parecidos son los llamados “FDR_1” o el “FDC_1”, pero su RESET o CLEAR se activa con “1”, habrá que colocarle una compuerta INV.
Oscar Ignacio Botero Henao.
4
El sistema se resetea con “0”, es por ello que al RESET del Flip-Flop se le coloca una compuerta Inversora ya que en las librerías del Xilinx no hay con RESET negado.
Oscar Ignacio Botero Henao.
5
SIMULACIÓN EN PROTEUS
MODELACIÓN COMPORTAMENTAL ---------------------------------------------------------------------------------- -- SECUENCIA 53721604 CON F/F D ---------------------------------------------------------------------------------- library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity Secuencia_53721604_FFD is Port ( RESET : in STD_LOGIC; CLK : in STD_LOGIC; Z : out STD_LOGIC; Qa : inout STD_LOGIC; Qb : inout STD_LOGIC; Qc : inout STD_LOGIC); end Secuencia_53721604_FFD; architecture Comportamiento of Secuencia_53721604_FFD is SIGNAL Da,Db,Dc: STD_LOGIC:='0'; SIGNAL Qta,Qtb,Qtc,Zt: STD_LOGIC:='0'; begin
Oscar Ignacio Botero Henao.
6
-- FUNCIONES SIMPLIFICADAS POR MAPAS K Dc <= (NOT Qa AND NOT Qb) OR (Qa AND NOT Qc); Db <= Qa; Da <= Qb XOR Qc; Zt <= (NOT Qa AND NOT Qb AND Qc); -- PROCESO SECUENCIAL SEQ: PROCESS (CLK,RESET) BEGIN IF RESET ='0' THEN Qta <= '0'; Qtb <= '0'; Qtc <= '0'; ELSE IF CLK'EVENT AND CLK='1' THEN Qta <= Da; Qtb <= Db; Qtc <= Dc; ELSE NULL; END IF; END IF; END PROCESS SEQ; Qa <= Qta; Qb <= Qtb; Qc <= Qtc; Z <= Zt; end Comportamiento;
FLIP FLOP TIPO JK SOLUCIÓN CIRCUITAL Entradas a los Flip-Flop tipo JK = Ja, Ka, Jb, Kb, Jc, Kc Salidas de los Flip-Flop tipo JK = Qa, Qb, Qc Salida que visualiza el cumplimiento de la secuencia = Z
ESTADO ACTUAL
ESTADO SIGUIENTE
ENTRADAS A LOS F/F TIPO JK Sal
Qc Qb Qa Qc Qb Qa Jc Kc Jb Kb Ja Ka Z S0 0 0 0 1 0 0 1 X 0 X 0 X 0 S1 0 0 1 1 1 0 1 X 1 X X 1 0 S2 0 1 0 0 0 1 0 X X 1 1 X 0 S3 0 1 1 1 1 1 1 X X 0 X 0 0 S4 1 0 0 1 0 1 X 0 0 X 1 X 1 S5 1 0 1 0 1 1 X 1 1 X X 0 0 S6 1 1 0 0 0 0 X 1 X 1 0 X 0 S7 1 1 1 0 1 0 X 1 X 0 X 1 0
Oscar Ignacio Botero Henao.
7
Qa QbQc
Qa QbQc
00 01 11 10 00 01 11 10 0 1 X X 0 0 X 0 1 X 1 X X X 1 1 X 1 1 X JC KC
Qa QbQc
Qa QbQc
00 01 11 10 00 01 11 10 0 0 0 X X 0 X X 1 1 1 1 1 X X 1 X X 0 0 JB KB
Qa QbQc
Qa QbQc
00 01 11 10 00 01 11 10 0 0 1 0 1 0 X X X X 1 X X X X 1 1 0 1 0 JA KA
Σ Σ Σ Σ
Σ Σ Σ Σ
Σ Ecuación: Qn 1 J Q K Q
MODELACIÓN ESQUEMÁTICA
Oscar Ignacio Botero Henao.
8
SIMULACIÓN EN PROTEUS
MODELACIÓN COMPORTAMENTAL ---------------------------------------------------------------------------------- -- SECUENCIA 53721604 CON F/F JK ---------------------------------------------------------------------------------- library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity Secuencia_53721604_FFJK is Port ( RESET : in STD_LOGIC; CLK : in STD_LOGIC; Z : out STD_LOGIC; Qa : inout STD_LOGIC; Qb : inout STD_LOGIC; Qc : inout STD_LOGIC); end Secuencia_53721604_FFJK; architecture Comportamiento of Secuencia_53721604_FFJK is SIGNAL Ja,Jb,Jc,Ka,Kb,Kc: STD_LOGIC:='0'; SIGNAL Qta,Qtb,Qtc,Zt: STD_LOGIC:='0'; begin
Oscar Ignacio Botero Henao.
9
-- FUNCIONES SIMPLIFICADAS POR MAPAS K Ja <= Qb XOR Qc; Ka <= QB XNOR Qc; Jb <= Qa; Kb <= NOT Qa; Jc <= Qa OR NOT Qb; Kc <= Qa OR Qb; Zt <= NOT Qa AND NOT Qb AND Qc; -- PROCESO SECUENCIAL SEQ:PROCESS (RESET,CLK) BEGIN IF RESET='0' THEN Qta <= '0'; Qtb <= '0'; Qtc <= '0'; ELSE IF CLK'EVENT AND CLK='1' THEN Qta <= (Ja AND NOT Qa) OR (NOT Ka AND Qa); Qtb <= (Jb AND NOT Qb) OR (NOT Kb AND Qb); Qtc <= (Jc AND NOT Qc) OR (NOT Kc AND Qc); ELSE NULL; END IF; END IF; END PROCESS SEQ; Qa <= Qta; Qb <= Qtb; Qc <= Qtc; Z <= Zt; end Comportamiento;
FLIP FLOP TIPO T SOLUCIÓN CIRCUITAL Entradas a los Flip-Flop tipo T = Ta, Tb, Tc Salidas de los Flip-Flop tipo T = Qa, Qb, Qc Salida que visualiza el cumplimiento de la secuencia = Z
Oscar Ignacio Botero Henao.
10
ESTADO ACTUAL
ESTADO SIGUIENTE
ENTRADAS A LOS F/F TIPO D SAL
Qc Qb Qa Qc Qb Qa Tc Tb Ta Z S0 0 0 0 1 0 0 1 0 0 0 S1 0 0 1 1 1 0 1 1 1 0 S2 0 1 0 0 0 1 0 1 1 0 S3 0 1 1 1 1 1 1 0 0 0 S4 1 0 0 1 0 1 0 0 1 1 S5 1 0 1 0 1 1 1 1 0 0 S6 1 1 0 0 0 0 1 1 0 0 S7 1 1 1 0 1 0 1 0 1 0
Qa QbQc
Qa QbQc
00 01 11 10 00 01 11 10 0 1 0 1 0 0 0 0 1 1 1 1 1 1 1 1 1 1 0 0 TC TB
Qa QbQc
Qa QbQc
00 01 11 10 00 01 11 10 0 0 1 0 1 0 0 1 0 0 1 1 0 1 0 1 0 0 0 0 TA Z
Σ Σ
Σ Σ Σ
Σ Σ X Σ Σ
Σ Σ
ó : Q
Oscar Ignacio Botero Henao.
11
MODELACIÓN ESQUEMÁTICA
SIMULACIÓN EN PROTEUS
Oscar Ignacio Botero Henao.
12
MODELACIÓN COMPORTAMENTAL ---------------------------------------------------------------------------------- -- SECUENCIA 53721604 CON F/F T ---------------------------------------------------------------------------------- library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity Secuencia_53721604_FFT is Port ( RESET : in STD_LOGIC; CLK : in STD_LOGIC; Z : out STD_LOGIC; Qa : inout STD_LOGIC; Qb : inout STD_LOGIC; Qc : inout STD_LOGIC); end Secuencia_53721604_FFT; architecture Comportamiento of Secuencia_53721604_FFT is SIGNAL Ta,Tb,Tc: STD_LOGIC:='0'; SIGNAL Qta,Qtb,Qtc,Zt: STD_LOGIC:='0'; begin -- FUNCIONES SIMPLIFICADAS POR MAPAS K Ta <= Qa XOR (Qb XOR Qc); Tb <= Qa XOR Qb; Tc <= Qa OR (Qb XNOR Qc); Zt <= NOT Qa AND NOT Qb AND Qc; -- PROCESO SECUENCIAL SEQ:PROCESS (CLK,RESET) BEGIN IF RESET='0' THEN Qta <= '0'; Qtb <= '0'; Qtc <= '0'; ELSE IF CLK'EVENT AND CLK='1' THEN Qta <= Ta XOR Qa; Qtb <= Tb XOR Qb; Qtc <= Tc XOR Qc; ELSE NULL; END IF; END IF; END PROCESS SEQ; Qa <=Qta; Qb <=Qtb; Qc <=Qtc; Z <= Zt; end Comportamiento;
Oscar Ignacio Botero Henao.
13
USANDO LA SENTENCIA CASE ---------------------------------------------------------------------------------- -- SECUENCIA 53721604 - Sentencia CASE ---------------------------------------------------------------------------------- library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity Secuencia_53721604 is Port ( CLK : in STD_LOGIC; -- Reloj manual RESET : in STD_LOGIC; -- Reset del sistema Z : out STD_LOGIC); -- Visualiza cuando se cumple la secuencia end Secuencia_53721604; architecture Comportamiento of Secuencia_53721604 is -- DECLARACIÓN DE LOS ESTADOS TYPE ESTADOS IS (S0,S1,S2,S3,S4,S5,S6,S7); -- DECLARACIÓN DE LAS SEÑALES DE LOS ESTADOS SIGNAL ACTUAL,SIGUE:ESTADOS; -- SECUENCIA DE LOS ESTADOS - PROCESO SECUENCIAL begin SEQ:PROCESS(CLK,RESET) -- Entradas a los F/F BEGIN IF RESET='0' THEN -- Si RESET=0 entonces ACTUAL <= S0; -- Lleve S0 a ACTUAL ELSE -- Si no IF CLK'EVENT AND CLK='1' THEN -- Si hay evento de reloj y flanco positivo ACTUAL <= SIGUE; -- Lleve SIGUE a ACTUAL END IF; -- Fin si END IF; -- Fin si END PROCESS SEQ; -- PROCESO COMBINACIONAL COMB:PROCESS(ACTUAL) -- Entradas Combinacionales BEGIN -- Comienza CASE ACTUAL IS -- Sentencia CASE a ACTUAL WHEN S5 => Z <= '0'; -- Cuando esté en S5 lleve '0' a Z SIGUE <= S3; -- Lleve S3 a SIGUE WHEN S3 => Z <='0'; -- Cuando esté en S3 lleve '0' a Z SIGUE <= S7; -- Lleve S7 a SIGUE WHEN S7 => Z <='0'; -- Cuando esté en S7 lleve '0' a Z SIGUE <= S2; -- Lleve S2 a SIGUE WHEN S2 => Z <='0'; -- Cuando esté en S2 lleve '0' a Z SIGUE <= S1; -- Lleve S1 a SIGUE
Oscar Ignacio Botero Henao.
14
WHEN S1 => Z <='0'; -- Cuando esté en S1 lleve '0' a Z SIGUE <= S6; -- Lleve S6 a SIGUE WHEN S6 => Z <='0'; -- Cuando esté en S6 lleve '0' a Z SIGUE <= S0; -- Lleve S0 a SIGUE WHEN S0 => Z <='0'; -- Cuando esté en S0 lleve '0' a Z SIGUE <= S4; -- Lleve S4 a SIGUE WHEN S4 => Z <='1'; -- Cuando esté en S4 lleve '1' a Z SIGUE <= S5; -- Lleve S5 a SIGUE END CASE; -- Fin de sentencia CASE END PROCESS COMB; -- Fin de Proceso COMB end Comportamiento; -- Fin de la Arquitectura Simulación del programa USANDO LA SENTENCIA CASE Y DISPLAY ---------------------------------------------------------------------------------- -- SECUENCIA 53721604 - Sentencia CASE y DISPLAY ---------------------------------------------------------------------------------- library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity Secuencia_53721604_caseDIS is Port ( RESET : in STD_LOGIC; -- Reset del sistema CLK : in STD_LOGIC; -- Reloj manual Z : out STD_LOGIC; -- Visualiza cuando se cumple la secuencia Qa : inout STD_LOGIC; -- Salida del F/F A Qb : inout STD_LOGIC; -- Salida del F/F B Qc : inout STD_LOGIC; -- Salida del F/F C ANODOS : out STD_LOGIC_VECTOR (3 downto 0); --Ánodos de los Display SEG : out STD_LOGIC_VECTOR (6 downto 0)); -- Segmentos de los Display end Secuencia_53721604_caseDIS;
Oscar Ignacio Botero Henao.
15
architecture Comportamiento of Secuencia_53721604_caseDIS is -- DECLARACIÓN DE LOS ESTADOS TYPE ESTADOS IS (S0,S1,S2,S3,S4,S5,S6,S7); -- DECLARACIÓN DE LAS SEÑALES DE LOS ESTADOS SIGNAL ACTUAL,SIGUE:ESTADOS; -- SECUENCIA DE LOS ESTADOS - PROCESO SECUENCIAL begin SEQ:PROCESS(CLK,RESET) -- Entradas a los F/F BEGIN -- Comienza IF RESET='0' THEN -- Si RESET = 0, entonces ACTUAL <= S0; -- Lleve S0 a ACTUAL ELSE -- Si no IF CLK'EVENT AND CLK='1' THEN -- Si hay evento de reloj y flanco ACTUAL <= SIGUE; -- Lleve SIGUE a ACTUAL END IF; -- Fin si END IF; -- Fin si END PROCESS SEQ; -- Fin del proceso SEQ -- PROCESO COMBINACIONAL COMB:PROCESS(ACTUAL) -- Entradas Combinacionales BEGIN -- Comienza CASE ACTUAL IS -- Sentencia CASE a ACTUAL WHEN S5 => Z <= '0'; -- Cuando esté en S5 lleve '0' a Z SIGUE <= S3; -- Lleve S3 a SIGUE SEG <= "0010010"; -- Número 5, activo en bajo WHEN S3 => Z <='0'; -- Cuando esté en S3 lleve '0' a Z SIGUE <= S7; -- Lleve S7 a SIGUE SEG <= "0110000"; -- Número 3, activo en bajo WHEN S7 => Z <='0'; -- Cuando esté en S7 lleve '0' a Z SIGUE <= S2; -- Lleve S2 a SIGUE SEG <= "1111000"; -- Número 7, activo en bajo WHEN S2 => Z <='0'; -- Cuando esté en S2 lleve '0' a Z SIGUE <= S1; -- Lleve S1 a SIGUE SEG <= "0100100"; -- Número 2, activo en bajo WHEN S1 => Z <='0'; -- Cuando esté en S1 lleve '0' a Z SIGUE <= S6; -- Lleve S6 a SIGUE SEG <= "1111001"; -- Número 1, activo en bajo WHEN S6 => Z <='0'; -- Cuando esté en S6 lleve '0' a Z SIGUE <= S0; -- Lleve S0 a SIGUE SEG <= "0000011"; -- Número 6, activo en bajo WHEN S0 => Z <='0'; -- Cuando esté en S0 lleve '0' a Z SIGUE <= S4; -- Lleve S4 a SIGUE
Oscar Ignacio Botero Henao.
16
SEG <= "1000000"; -- Número 0, activo en bajo WHEN S4 => Z <='1'; -- Cuando esté en S4 lleve '1' a Z SIGUE <= S5; -- Lleve S5 a SIGUE SEG <= "0011001"; -- Número 4, activo en bajo END CASE; -- Fin de sentencia CASE END PROCESS COMB; -- Fin de Proceso COMB end Comportamiento; -- Fin de la Arquitectura