FDE: D flip-flop with clock Enable
FDE is a D-type flip-flop with an active-high clock enable (CE). The CE input is examined on the low-to-high transition of the clock (C) input. If it is asserted, the data on the D input is loaded to Q; otherwise, Q retains its previous value. |
Verilog
module FDE( input CE, D, C, output reg Q); always @(posedge C) if(CE) Q <= D; endmodule
VHDL
library IEEE; use IEEE.std_logic_1164.all; entity FDE is port ( CE, D, C : in std_logic; Q : out std_logic); end entity FDE; architecture A of FDE is begin process (C) is begin if rising_edge(C) then if CE = '1' then Q <= D; end if; end if; end process; end architecture A;
Testbench
DUT { module FDE(input CE, D, C, output Q) create_clock C [CE, D, C] -> [Q] } [1, 1, .C] -> [1] // load 1 [0, 0, .C] -> [1] // hold if CE low [1, 0, .C] -> [0] // load 0 [0, 1, .C] -> [0] // hold if CE low