最近看 advanced fpga 以及 fpga 設(shè)計實戰(zhàn)演練中有講到復(fù)位電路的設(shè)計,才知道復(fù)位電路有這么多的門道,而不是簡單的外界信號輸入系統(tǒng)復(fù)位。
流程:
1. 異步復(fù)位:
優(yōu)點(diǎn):⑴大多數(shù) DFF 都有異步復(fù)位端口,因此采用異步復(fù)位可以節(jié)約資源。
⑵設(shè)計相對簡單。
⑶異步復(fù)位信號識別方便,而且可以很方便地使用 fpga 的全局復(fù)位端口。
缺點(diǎn):⑴在復(fù)位信號釋放時容易出現(xiàn)問題,亞穩(wěn)態(tài)。
⑵復(fù)位信號容易受到毛刺的影響。這是由于時鐘抖動或按鍵觸發(fā)時的硬件原因造成的。
代碼:一個 4bit 的計數(shù)器。
1 always @(posedge clk or negedge sys_rst_n) begin
2 if (~sys_rst_n) begin
3 count <= 0;
4 end //if
5 else begin
6 count <= count + 1'b1; ? ?
7 end //else
8 end //always
復(fù)位信號低電平時候,系統(tǒng)立刻進(jìn)入復(fù)位態(tài);
2. 同步復(fù)位:
優(yōu)點(diǎn):⑴降低亞穩(wěn)態(tài)出現(xiàn)的概率。
⑵使所設(shè)計的系統(tǒng)成為 100%的同步時序電路,有利于時序分析,綜合出來的 Fmax 一般較高。
⑶只有在時鐘有效沿才有效,可以濾除高于時鐘頻率的毛刺。
缺點(diǎn):⑴復(fù)位信號的有效時長必須大于時鐘周期,才能真正被系統(tǒng)識別并完成復(fù)位任務(wù)。
⑵大多數(shù)的 Dff 只有異步復(fù)位端口,會浪費(fèi)較多的邏輯資源。
代碼:
1 always @(posedge clk) begin
2 if (~sys_rst_n) begin
3 count <= 0;
4 end //if
5 else begin
6 count <= count + 1'b1; ? ?
7 end //else
8 end //always
時鐘上升沿如果復(fù)位信號為低電平,復(fù)位開始,時鐘上升沿若復(fù)位信號為高電平,復(fù)位結(jié)束。
3. 異步復(fù)位同步釋放:(推薦使用)
優(yōu)點(diǎn):結(jié)合了同步復(fù)位與異步復(fù)位的優(yōu)點(diǎn)。
缺點(diǎn):容易受到噪聲與宰脈沖的干擾。如果可能,最好對輸入到 fpga 的異步復(fù)位信號先進(jìn)行濾波與去抖動。
代碼:
1 module rstn_as (
2 //input;
3 input wire clk,
4 input wire sys_rst_n,
5 //output;
6 output reg rst_n
7 );
8 reg rst_n_reg;
9 always @(posedge clk or negedge sys_rst_n) begin
10 if (~sys_rst_n) begin
11 rst_n <= 1'b0;
12 rst_n_reg <= 1'b0;
13 end //if
14 else begin
15 rst_n_reg <= 1'b1;
16 rst_n <= rst_n_reg; ? ?
17 end //else
18 end //always
19
20 endmodule
wire rst_n;
rstn_as u1(
.clk (clk),
.sys_rst_n (sys_rst_n),
.rst_n (rst_n)
);
always @(posedge clk or negedge rst_n) begin
if (~rst_n) begin
count <= 0;
end //if
else begin
count <= count + 1'b1; ? ?
end //else
end //always
當(dāng)復(fù)位信號低電平時,系統(tǒng)立即復(fù)位;當(dāng)時鐘上升沿檢測到復(fù)位信號失效后,在下一個時鐘上升沿拉高 rst_n。新的 rst_n 是已經(jīng)同步化了的復(fù)位信號。
以上。
審核編輯 黃昊宇
-
FPGA
+關(guān)注
關(guān)注
1642文章
21918瀏覽量
611871
發(fā)布評論請先 登錄
相關(guān)推薦
fpga設(shè)計實戰(zhàn):復(fù)位電路仿真設(shè)計

電路仿真軟件哪個更實用
基于Altium Designer的電路仿真
基于FPGA的SoC驗證平臺實現(xiàn)電路仿真偵錯

實現(xiàn)FPGA實戰(zhàn)復(fù)位電路的設(shè)計和仿真

評論