본문 바로가기

언어/Verilog 코드 예제

[Verilog] D flip-flop with reset, preset, and enable

module dff_3(clk, in_1, out_1, reset, preset, enable);
input clk;
input in_1;
input reset; 
input preset;
input enable; 
output out_1;   

reg out_1;  

always @(posedge clk or negedge reset or negedge preset) begin 
   if (reset == 1'b0)  // if reset is low  
      out_1 <= 1'b0;      
   else if (preset == 1'b0) // if preset is low
      out_1 <= 1'b1;
   else if (enable) // if enable is high                               
      out_1 <= in_1;               
   end               
endmodule