Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Codigo VHDL para Flipflop
Codigo VHDL para Flipflop
Todos los flip-flops se pueden dividir en cuatro tipos básicos: SR, JK,
D y T. Ellos difieren en el número de entradas y en la respuesta
invocada por un valor diferente de señales de entrada.
3
4 library ieee;
use ieee. std_logic_1164.all;
5 use ieee. std_logic_arith.all;
6 use ieee. std_logic_unsigned.all;
7
8 entity SR_FF is
9 PORT( S,R,CLOCK: in std_logic;
10 Q, QBAR: out std_logic);
end SR_FF;
11
12 Architecture behavioral of SR_FF is
13 begin
14 PROCESS(CLOCK)
15 variable tmp: std_logic;
16 begin
if(CLOCK='1' and CLOCK'EVENT) then
17 if(S='0' and R='0')then
18 tmp:=tmp;
19 elsif(S='1' and R='1')then
20 tmp:='Z';
elsif(S='0' and R='1')then
21 tmp:='0';
22 else
23 tmp:='1';
24 end if;
25 end if;
Q <= tmp;
26 QBAR <= not tmp;
27 end PROCESS;
28 end behavioral;
D FlipFlop
El flip-flop D mostrada en la figura es una modificación de la velocidad
de reloj del flip-flop SR. La entrada D va directamente a la entrada S y
el complemento de la entrada D va a la entrada R. La entrada D se
muestrea durante la ocurrencia de un pulso de reloj. Si es 1, el flip-flop
se cambia con el estado de ajuste (a menos que ya se creó). Si es 0,
el flip-flop conmuta al estado
claro.
JK FlipFlop
Un flip-flop JK es un refinamiento del flip-flop SR en que el estado
indeterminado del tipo SR se define en el tipo JK. Las entradas J y K
se comportan como entradas S y R para ajustar y limpiar el flip-flop
(tenga en cuenta que en un flip-flop JK, la letra J es para el grupo y la
letra K es de clara).
VHDL Code for JK FlipFlop
1
2
3 library ieee;
4 use ieee. std_logic_1164.all;
5 use ieee. std_logic_arith.all;
6 use ieee. std_logic_unsigned.all;
7
entity JK_FF is
8 PORT( J,K,CLOCK: in std_logic;
9 Q, QB: out std_logic);
10 end JK_FF;
11
12 Architecture behavioral of JK_FF is
13 begin
PROCESS(CLOCK)
14 variable TMP: std_logic;
15 begin
16 if(CLOCK='1' and CLOCK'EVENT) then
17 if(J='0' and K='0')then
TMP:=TMP;
18
elsif(J='1' and K='1')then
19 TMP:= not TMP;
20 elsif(J='0' and K='1')then
21 TMP:='0';
22 else
TMP:='1';
23 end if;
24 end if;
25 Q<=TMP;
26 Q<=not TMP;
27 end PROCESS;
end behavioral;
28
29
30
T FlipFlop
El flip-flop T es una sola versión de entrada del flip-flop JK. Como se
muestra en la figura, el flip-flop T se obtiene a partir del tipo JK si
ambas entradas están unidas entre sí. La salida del flip-flop T "alterna"
con cada pulso de reloj. Código VHDL para T FlipFlop
En teoría de circuitos
lógicos se da a conocer un dispositivo electrónico llamado flip flop,
catalogado como un elemento de memoria conformado por compuertas
lógicas. Donde éstas a través de una configuración específica, pueden de
cierta manera almacenar información. Una de las características principales de
un flip flop es su sensibilidad a ciertas entradas prioritarias; es decir, si estas
entradas se activan, no importa lo que haya en las demás entradas, se
producirá un cambio en la salida dependiendo de lo que se requiera.
El flip flop JK se dice así en memoria del señor Jack Kilby el creador
de los circuitos integrados. En este caso explicaremos el
funcionamiento básico:
FPN = Flancos por Pendiente Negativa. Esto quiere decir que el flip
flop a programar trabajará siendo bajo activo.
1 entity FF is
2 Port ( clk,j,k,prn,clrn: in bit;
3 q: out bit);
4 end FF;
5
6 architecture sintaxis1 of FF is
7 SIGNAL qestado: bit;
8 begin
9 PROCESS (clk,prn,clrn) --Responde a cualquiera de estas entradas
10 BEGIN
11 IF prn = '1' THEN QESTADO <= '1';
12 ELSIF clrn = '1' THEN QESTADO <= '0';
13 ELSIF CLK = '0' AND CLK'EVENT THEN --Bajo activo
14 IF J = '1' AND K = '1' THEN QESTADO <= NOT QESTADO;
15 ELSIF J = '1' AND K = '0' THEN QESTADO <= '1';
16 ELSIF J = '0' AND K = '1' THEN QESTADO <= '0';
17 ELSIF J = '0' AND K = '0' THEN QESTADO <= QESTADO;
18 END IF;
19 END IF;
20 END PROCESS;
21 Q <= QESTADO; --Guarda el valor de la señal en la salida de los leds
22 end sintaxis1;