FPGA復(fù)位——同步復(fù)位和異步復(fù)位

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

一、特點:

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

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

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

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

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

1、同步復(fù)位:

  • 優(yōu)點:

  • 有利于仿真器的仿真。

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

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

  • 缺點:

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

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

2、異步復(fù)位:

  • 優(yōu)點:

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

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

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

  • 缺點:

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

  • 復(fù)位信號容易受到毛刺的影響。

三、總結(jié):

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

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


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

1、異步復(fù)位,同步釋放

input rst_n,clk;
output rst_syn_n;//系統(tǒng)的復(fù)位信號
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;

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

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

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

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

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

2.sequence coordinated reset removal:
這是相對于上述方式來說的,也就是說各時鐘域的復(fù)位信號彼此相關(guān),各個部分系統(tǒng)雖然也同時復(fù)位,但是卻分級釋放。而分級的順序可由各個“reset synchronizer”的級聯(lián)方式?jīng)Q定??梢韵葟?fù)位前級,再復(fù)位后級,也可以反過來。反正方式很靈活,需要根據(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)容