JK Flip-Flop and T Flip-Flop
JK Flip-Flop with active high reset input
Code:
entity flip_flop is port (clk,J,K,rst : in std_logic; Q: out std_logic; Qnot : out std_logic); end flip_flop; architecture my_flipflop of flip_flop is signal state: std_logic; signal input: std_logic_vector(1 downto 0); begin input <= J & K; process(clk, rst) is begin if (rst='1') then state <= '0'; elsif (clk'event and clk='1') then case (input) is when "11" => state <= not state; when "10" => state <= '1'; when "01" => state <= '0'; when "00" => state <= state; when others => null; end case; end if; end process; Q <= state; Qnot <= not state; end my_flipflop;
Simulation Waveforms:
T Flip-Flop with enable and reset
Code:
library ieee; use ieee.std_logic_1164.all; entity flip_flop is port (clk,t,en,rst : in std_logic; Q: out std_logic; Qnot : out std_logic); end flip_flop; architecture my_flipflop of flip_flop is signal op: std_logic; begin process(clk, rst) is begin if(en='0') then op<='Z'; elsif (en='1' and rst='1') then op <= '0'; elsif (clk'event and clk='1' and en='1') then if(t='1') then op <= not op; else op <= op; end if; end if; end process; Q <= op; Qnot <= not op; end my_flipflop;
Simulation Waveforms:
/*54745756836*/