FPGA的異步復位與同步復位

FPGA的異步復位與同步復位

博主微信:flm13724054952,不懂的有疑惑的也可以加微信諮詢,歡迎大家前來投稿,謝謝!

引言

在做FPGA或者數字IC電路設計的時候,無法避免的一個問題就是電路的復位設計,電路的復位方式一般分爲兩種,異步復位跟同步復位。兩種不同的復位方式都有各自的優缺點,本文就是介紹這兩種方式的對比,爲FPGA設計者或者數字IC設計工程師在選復位方式的時候不再疑惑。

同步與異步

在介紹同步復位與異步復位的區別及優缺點之前先介紹同步與異步的概念。
同步復位:同步是指與時鐘同步,在滿足時鐘沿(上升沿或者下降沿)觸發條件下檢測復位信號是否有效,如果有效則在下個時鐘沿觸發的時候生效。
異步復位:異步是指與時鐘無關,在任何情況下,一旦檢測到復位信號有效則馬上覆位整個系統電路。
也就是可以說異步復位跟同步復位的第一個區別就是:同步復位在復位信號在有效的時候還要等待下一個時鐘才能生效。而異步復位則是馬上生效。

同步復位

同步復位的電路設計

在上面我們已經知道同步復位是指與時鐘同步,在滿足時鐘沿(上升沿或者下降沿)觸發條件下檢測復位信號是否有效,如果有效則在下個時鐘沿觸發的時候生效。具體的同步復位電路設計如下圖所示:
在這裏插入圖片描述
同步復位電路設計圖如下圖所示,可以看得到其實同步復位是用了一個與門,與上了輸入信號再給了D觸發器的。這種復位設計觸發方式有好有壞。通過與門控制輸入達到同步在時鐘沿時纔能有效復位的設計,但是增加了路徑延遲,消耗電路餘量。
在這裏插入圖片描述
同步復位的功能仿真圖如下所示:當rst_n=0的時候,輸出b不會馬上被複位,而是要等待到下一個時鐘沿才能生效。同時在後面可以可得到對於短暫的復位,如果復位脈衝的寬度不大於一個時鐘週期直至到下一個時鐘沿的話,那麼復位就會無效,計數器繼續工作。這樣子同步復位就有好處也有無處了,如果對於短暫的假復位,電路不會復位受到影響而繼續工作,但是萬一是真復位又沒有保持直至下個時鐘沿就會復位電路失敗。
在這裏插入圖片描述

同步復位的優缺點

同步電路的優點:
1:同步復位在綜合的時候會綜合出一個比較小面積的觸發器(相對於異步復位來言),因爲復位信號想通過一個cell門來於輸入與之,再一併給觸發器的(不過有時候在現如今的大規模芯片設計裏面,節省一個cell或者一個觸發器的面積對電路來說可能不是很有意義);
2:同步復位在做電路仿真的時候比較容易;
3:同步復位可以保證電路是100%是同步電路;
4:同步復位可以保證在時鐘沿有效的時候來採,所以時鐘工作時會減少因爲復位而帶來的毛刺對系統造成亞穩態的影響;
同步電路的缺點:
1:同步復位的復位脈衝寬度要保證足夠長到被下一個時鐘沿採集捕捉到,纔能有效復位電路;
2:大部分的庫元件都是直接含有異步復位端,同步復位的話就如上面說的,要用cell門來與上輸入成爲組合邏輯,從一定情況的浪費了資源;
3:如果芯片或者FPGA有三態總線的話,則復位方式就很重要了。爲了防止內部三態總線發生競爭衝突,三態總線在芯片通電的時候,該芯片的電源上必須有一個異步復位端。

異步復位

異步復位的電路設計

上面我們已經知道異步是指與時鐘無關,在任何情況下,一旦檢測到復位信號有效則馬上覆位整個系統電路。具體的異步復位電路設計如下圖所示:
在這裏插入圖片描述
異步復位的電路設計圖如下所示,復位端直接於觸發器連接,在rst_n復位信號來的時候可以馬上覆位電路。這種異步復位也是有好有壞,直接利用觸發器本身可以馬上覆位電路,不增加數據路徑長度;但是復位有可能復位在時鐘沿的附近而造成亞穩態。
在這裏插入圖片描述
異步復位的功能仿真圖如下所示:當rst_n=0的時候,輸出d馬上被複位,不需要等待到下一個時鐘沿才能生效。對於異步復位這種立刻生效的功能也有好有壞。那就是像對於後面的那種短暫的假復位,電路也會被馬上覆位而重新開始工作。
在這裏插入圖片描述

異步復位的優缺點

異步電路的優點:
1:異步復位的最大優點就是供應商的庫元件裏面帶有含異步復位端的觸發器,數據路徑可以保證被清掉;
2:異步復位不帶cell門去與輸入,所以容易佈局佈線,並且減少了數據路徑上的延遲;
3:異步復位可以被馬上覆位不用等待一個時鐘週期。
異步電路的缺點:
1:異步復位不利於仿真,因爲在做仿真的時候,許多輸入都要等待一個時鐘沿來觸發,而異步復位並不care;
2:異步復位最大缺點就是因爲異步復位有可能隨時發生在時鐘沿的附近而導致亞穩態(在上一條博客中已經解釋過了);
3:異步復位如果其復位源存在一些短暫而虛假的復位脈衝就會產生毛刺甚至導致系統亞穩態。

異步復位同步釋放

對於一些經典的設計方法是“異步復位,同步釋放”,這種電路設計RTL代碼如下所示:
在這裏插入圖片描述
異步復位同步釋放的電路設計圖如下所示:在這裏插入圖片描述

復位抖動的消除

對於上面所述的一樣,如果復位存在抖動或者存在假復位的現象,而我們想要避免消除這種想象。可以採用下面這種復位電路設計方式,將復位信號進行延遲後再與,延遲計數的同時,使復位信號與時鐘同步(異步復位,同步釋放),不僅可以避免復位存在的抖動或者假復位,同時避免了單純異步復位帶來的亞穩態的危險。
在這裏插入圖片描述
這種電路設計的RTL代碼圖如下所示:
在這裏插入圖片描述

總結

1:同步復位的主要優點就是減少毛刺避免亞穩態,容易仿真,但是浪費資源且不易綜合分析;
2:異步復位的主要優點就是節省資源,易綜合分析跟佈局佈線,但是容易造成亞穩態跟生成毛刺;
3:復位的改進設計方式有多種方式較多采用的是異步復位,同步釋放的設計方法。

參考文獻

Synchronous Resets ? Asynchrous Resets? I am so confused! How will i ever know which to use ? Clifford E Cummings Don Mills

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章