2019年11月8日 星期五

如何設計D Latch與D Flip-Flop (FPGA)

如何設計D Latch與D Flip-Flop?   (Verilog)

Abstract
記憶元件的基礎:D Latch與D Flip-Flop。
D Latch
Method 1:
使用continuous assignment:
d_latch.v / Verilog
1 /* 2 (C) OOMusou 2008 http://oomusou.cnblogs.com
3 
4 Filename    : d_latch.v5 Compiler    : Quartus II 7.2 SP36 Description : Demo how to write d latch7 Release     : 08/09/2008 1.08 */
9 
10 module d_latch (11   input  rst_n,12   input  en,13   input  d,14   output q15 );16 
17 assign q = (!rst_n) ? 0 :18            (en) ? d : q;19 endmodule

Method 2:
使用always block:
d_latch2.v / Verilog
1 /* 2 (C) OOMusou 2008 http://oomusou.cnblogs.com
3 
4 Filename    : d_latch2.v5 Compiler    : Quartus II 7.2 SP36 Description : Demo how to write d latch7 Release     : 08/09/2008 1.08 */
9 
10 module d_latch2 (11   input      rst_n,12   input      en,13   input      d,14   output reg q15 );16 
17 always@(rst_n, en, d, q) begin
18   if (!rst_n)19     q = 0;20   else if (en)21     q = d;22 end
23 
24 endmodule

d_latch00
d_latch01
D Flip-Flop
Method 1:
使用always block
d_ff.v / Verilog
1 /* 2 (C) OOMusou 2008 http://oomusou.cnblogs.com
3 
4 Filename    : d_ff.v5 Compiler    : Quartus II 7.2 SP36 Description : Demo how to write d flip-flop7 Release     : 08/09/2008 1.08 */
9 
10 module d_ff (11   input      clk,12   input      rst_n,13   input      en,14   input      d,15   output reg q16 );17 
18 always@(posedge clk or negedge rst_n)19   if (!rst_n)20     q <= 0;21   else if (en)22     q <= d;23    24 endmodule

Method 2:
使用Mega function
d_ff_mf.v / Verilog
1 /* 2 (C) OOMusou 2008 http://oomusou.cnblogs.com
3 
4 Filename    : d_ff_mf.v5 Compiler    : Quartus II 7.2 SP36 Description : Demo how to write d flip-flop with Mega function7 Release     : 08/11/2008 1.08 */
9 
10 module d_ff_mf (11   input  clk,12   input  rst_n,13   input  en,14   input  d,15   output q16 );17 
18 lpm_ff # (.lpm_width(1))19 df (20   .clock(clk),21   .aclr(!rst_n),22   .enable(en),23   .data(d),24   .q(q)25 );26 
27 endmodule

d_latch02
d_latch03

沒有留言:

張貼留言

2024_09 作業3 以Node-Red 為主

 2024_09 作業3  (以Node-Red 為主  Arduino 可能需要配合修改 ) Arduino 可能需要修改的部分 1)mqtt broker  2) 主題Topic (發行 接收) 3) WIFI ssid , password const char br...