FPGA復位——同步復位和異步復位

其他參考資料:
FPGA中復位信號的設(shè)計
FPGA同步復位異步復位
異步復位同步釋放---關(guān)于復位的問題
FPGA同步復位,異步復位以及異步復位同步釋放實例分析

一、特點:

同步復位:
顧名思義,同步復位就是指復位信號只有在時鐘上升沿到來時,才能有效。否則,無法完成對系統(tǒng)的復位工作。用Verilog描述如下:

always @ (posedge clk) begin
    if (!Rst_n)
        ...
end

異步復位:
它是指無論時鐘沿是否到來,只要復位信號有效,就對系統(tǒng)進行復位。用Verilog描述如下:

always @ (posedge clk or negedge Rst_n) begin
    if (!Rst_n)
        ...
end

二、各自的優(yōu)缺點:

1、同步復位:

  • 優(yōu)點:

  • 有利于仿真器的仿真。

  • 可以使所設(shè)計的系統(tǒng)成為100%的同步時序電路,這便大大有利于時序分析,而且綜合出來的fmax一般較高。

  • 因為他只有在時鐘有效電平到來時才有效,所以可以濾除高于時鐘頻率的毛刺。

  • 缺點:

  • 復位信號的有效時長必須大于時鐘周期,才能真正被系統(tǒng)識別并完成復位任務(wù)。同時還要考慮,諸如:clk skew,組合邏輯路徑延時,復位延時等因素。

  • 由于大多數(shù)的邏輯器件的目標庫內(nèi)的DFF都只有異步復位端口,所以,倘若采用同步復位的話,綜合器就會在寄存器的數(shù)據(jù)輸入端口插入組合邏輯,這樣就會耗費較多的邏輯資源。

2、異步復位:

  • 優(yōu)點:

  • 大多數(shù)目標器件庫的dff都有異步復位端口,因此采用異步復位可以節(jié)省資源。

  • 設(shè)計相對簡單。

  • 異步復位信號識別方便,而且可以很方便的使用FPGA的全局復位端口GSR。

  • 缺點:

  • 在復位信號釋放(release)的時候容易出現(xiàn)問題。具體就是說:倘若復位釋放時恰恰在時鐘有效沿附近,就很容易使寄存器輸出出現(xiàn)亞穩(wěn)態(tài),從而導致亞穩(wěn)態(tài)。

  • 復位信號容易受到毛刺的影響。

三、總結(jié):

所以說,一般都推薦使用異步復位,同步釋放的方式,而且復位信號低電平有效。這樣就可以兩全其美了。

所謂異步復位,同步釋放就是在復位信號到來的時候不受時鐘信號的同步,而是在復位信號釋放的時候受到時鐘信號的同步。


異步復位同步釋放的方法以及多時鐘系統(tǒng)的復位設(shè)計

1、異步復位,同步釋放

input rst_n,clk;
output rst_syn_n;//系統(tǒng)的復位信號
reg reg1,reg2;

always@(posedge clk or negedge rst_n )begin
    if(!rst_n)begin
        reg1<=1'b0;
        reg2<=1'b0;
   end
  else begin
        reg1<=1'b1;
        reg2<=reg1;
    end
end
  assign rst_syn_n = reg2;

復位是異步的,但是釋放確實同步的;用兩級寄存器,是消除復位釋放中可能存在的亞穩(wěn)態(tài)。

異步復位,同步釋放的好處是:
1.不要求復位信號必須大于一個時鐘周期;
2.因為釋放過程和時鐘同步,所以避免了亞穩(wěn)態(tài)。
兼具同步復位和異步復位的優(yōu)點。

不使用reg1的原因是消除毛刺的影響,如果受到毛刺的影響,reg1會產(chǎn)生一個很短的復位信號,這樣可能會導致復位不完全,系統(tǒng)出現(xiàn)混亂。

2、多時鐘系統(tǒng)中復位的處理方法
這是一個很實際的問題,因為在較大型的系統(tǒng)中,一個時鐘驅(qū)動信號顯然不能滿足要求,一定會根據(jù)系統(tǒng)的要求用多個同源時鐘(當然也可以是非同源了)去驅(qū)動系統(tǒng)的不同部分。那么在這樣的多時鐘系統(tǒng)中,復位鍵怎么設(shè)置?它的穩(wěn)定與否直接關(guān)系到了整個系統(tǒng)的穩(wěn)定性,因此要格外注意(在我看來,復位信號在同步時序系統(tǒng)中的地位和時鐘信號一樣重要)。下面就說一下具體的處理方法,當然所遵循的原則就仍應(yīng)該是上文的“異步復位,同步釋放”:

1.non-coordinated reset removal:
顧名思義,就是同一個系統(tǒng)中的多個同源時鐘域的復位信號,由彼此獨立的“reset synchronizer”驅(qū)動。當異步復位信號有效時,各時鐘域同時復位,但是復位釋放的時間由各自的驅(qū)動時鐘決定,也是就說:時鐘快的先釋放,時鐘慢的后釋放,但是各復位信號之間沒有先后關(guān)系。

2.sequence coordinated reset removal:
這是相對于上述方式來說的,也就是說各時鐘域的復位信號彼此相關(guān),各個部分系統(tǒng)雖然也同時復位,但是卻分級釋放。而分級的順序可由各個“reset synchronizer”的級聯(lián)方式?jīng)Q定??梢韵葟臀磺凹墸購臀缓蠹?,也可以反過來。反正方式很靈活,需要根據(jù)實際需要而定。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容