Altera_Forum
Honored Contributor
12 years agoDFF with clock enable
Hello everyone,
I was wondering, when implementing a DFF with clock enable : library IEEE; use IEEE.STD_LOGIC_1164.all; entity D_FF_VHDL is port ( clk : in std_logic; rst : in std_logic; pre : in std_logic; ce : in std_logic; d : in std_logic; q : out std_logic ) ;end entity D_FF_VHDL; architecture Behavioral of D_FF_VHDL isbegin process (clk) is
begin if rising_edge(clk) then
if (rst='1') then
q <= '0'; elsif (pre='1') then
q <= '1'; elsif (ce='1') then
q <= d; end if; end if; end process; end architecture Behavioral; What happens with q when ce equals to '0'? How does the FF keeps last state? Why after q<=d line shouldn't we add : else q<=q? As I understand there shouldn't be any state at which q is unknown. Hence, when the clock is rising but disabled by ce='0' state of q in unknown. Please explain. Much appreciated, Boris. Simulation Results[/B][/B]