4 种组合
module D_FF_reset{
input clk,
input D,
input reset_n,//async regardless of the clock,下降沿 低电平有效
input clear_n,//sync
output Q
};
reg Q_next,Q_reg;
always @(negedge clk,negedge reset_n)
begin
if(!reset_n)
Q_reg<=1'b0;
else
Q_reg<=Q_next;
end
always @(D,clear_n)
begin
if(!clear_n)
Q_next=1'b0;
else
Q_next=D;
end
assign Q=Q_reg;
endmodule