flip flop vhdl
TRANSCRIPT
Flip flop tipo JK
CLK
K
J Q
J-K positive going
Flanco de subida del CLK
Una forma más compacta de
la tabla de verdad es (Q
representa el estado
siguiente de la salida en el
próximo flanco de reloj y q el
estado actual):
También podemos utilizar la
nomenclatura Qn (actual)
Qn+1 (próximo)
Flip flop tipo T (Toggle)
Puede obtenerse al unir las entradas de control de un biestable JK, unión que se corresponde a la entrada T.
T
Q
Tipo T
Modelado de flip flops en VHDL
Library IEEE;
use IEEE.Std_Logic_1164.all;
entity FLOP is
port ( D, CLK, RESET, SET : in std_logic;
Q : out std_logic);
end FLOP;
architecture A of FLOP is
begin
process (CLK, RESET, SET)
begin
if ( RESET = ‘1’) then -- No clocked
Q <= ‘0’;
elsif ( SET = ‘1’) then -- No clocked
Q <= ‘1’;
elsif ( CLK`event and CLK=`1` ) then
Q <= D; - - Q(n+1)=D
end if;
end process;
end A;
Asíncrono
(no depende del CLK)
Como se describe un FF
con reset síncrono?
Como describes un FF JK?
Practica 5: FF D y JK en VHDL
P5.1 Consiste en describir y simular con VHDL el flip flop tipo JK descrito arriba pero con preset y clear (activos cuando sean cero lógico) usando la instrucción “if falling_edge (clk) then…”. En la simulación deben diseñar una forma de onda para J y K, tal que puedan explicar el cumplimiento de todos los posibles estados de preset, clear J, K y Q.
P5.2 Consiste en describir y simular un flip flop tipo D con presety clear (activos cuando sean uno lógico) usando la instrucción “ifrising_edge (clk) then…”. En la simulación deben diseñar una forma de onda para D, tal que puedan explicar el cumplimiento de todos los posibles estados de D, preset, clear y Q.
Fechas entrega: Durante clase (sin reporte): 29 de Marzo
Por correo (reporte completo): 31 Marzo, el reporte deben incluir la tabla de verdad del flip-flop descrito, imágenes de la forma de onda claras (como se pidió en clase), código en VHDL y diagrama lógico.
Registros
Storage elements
are synthesized
for all signals that
are driven within a
clocked process
entity COUNTER isport (CLK: in std_logic;Q : out integer range 0 to 15 );
end COUNTER;
architecture RTL of COUNTER issignal COUNT : integer range 0 to 15 ;Begin
process (CLK)begin
if CLK`event and CLK = `1` thenif (COUNT >= 9) then
COUNT <= 0;else
COUNT <= COUNT +1;end if;
end if;end process;
Q <= COUNT ;end RTL;