![[IMG]](https://lh3.googleusercontent.com/--MdnfliWg1Q/VSAMGd50X-I/AAAAAAAACHw/WxvNWEY2eyk/w342-h318-no/t%E1%BA%A3i%2Bxu%E1%BB%91ng.png)
- Dữ liệu đầu ra Q phụ thuộc vào xung clock. Hay nói cách khác dữ liệu đầu ra Q bằng dữ liệu đầu vào D phụ thuộc vào sự tác động của xung clock. D Flip Flop là một trong 4 flip-flop cơ bản trong thiết kế số.Vì nó là đơn giản nhất trong 4 loại nên được sử dụng rất nhiều trong thiết kế số.

-Một số công dụng của D Flip Flop:
+ Dùng để chia tần số.
+ Chốt, lưu dữ liệu tạo ra RAM hoặc ROM…..
- Một số ví dụ về D FLIP FLOP dung verilog.
++ Ví dụ code Verilog cho D FLIP FLOP tích cực ở sườn dương.
MÃ:
module flop (clk, d, q); input clk, d; output q; reg q; always @(posedge clk) begin q <= d; end endmodule
MÃ:
module flop (clk, d, reset, q); input clk, d, reset; output q; reg q; always @(negedge clk or posedge reset) begin if (reset) q <= 1’b0; else q <= d; end endmodule
MÃ:
module flop (clk, d, s, q); input clk, d, s; output q; reg q; always @(posedge clk) begin if (s) q <= 1’b1; else q <= d; end endmodule
MÃ:
module flop (clk, d, ce, pre, q); input clk, ce, pre; input [3:0] d; output [3:0] q; reg [3:0] q; always @(posedge clk or posedge pre) begin if (pre) q <= 4’b1111; else if (ce) q <= d; end endmodule
++latch với tích cực ở sườn dương .
MÃ:
module latch (g, d, q); input g, d; output q; reg q; always @(g or d) begin if (g) q <= d; end endmodule
MÃ:
module latch (g, d, clr, q); input g, d, clr; output q; reg q; always @(g or d or clr) begin if (clr) q <= 1’b0; else if (g) q <= d; end endmodule
MÃ:
module latch (g, d, pre, q); input g, pre; input [3:0] d; output [3:0] q; reg [3:0] q; always @(g or d or pre) begin if (pre) q <= 4’b1111; else if (~g) q <= d; end endmodule