IC基礎(五):設計中的復位


一般來說,同步系統,都使用異步復位。這是因為同步復位的電路實現,比異步復位的電路實現,要浪費更多電路資源

工程實踐中,確實見過由於未做異步復位的同步處理,而出現大概率系統死機現象(復位的作用域是很大的)。

 

一、異步復位不安全的原因

  1.什么是異步復位

    在帶有復位端的D觸發器中,當reset信號“復位”有效時,它可以直接驅動最后一級的與非門,令Q端“異步”置位為“1”or“0”。這就是異步復位。

    當這個復位信號release時,Q的輸出由前一級的內部輸出決定(D端口)。

  2.復位信號的恢復時間T( recovery time ):

    原本有效的復位信號釋放(對於低電平有效的復位信號指上升沿),與緊跟其后的第一個時鍾上升沿之間的最小時間。 

    這個時間的意義是,如果保證不了這個最小恢復時間,也就是說這個異步控制信號的解除與“下個時鍾沿”離得太近(但在這個時鍾沿之前),沒有給寄存器留有足夠時間來恢復至正常狀態,那么就不能保證“下個時鍾沿”能正常作用,也就是說這個“時鍾沿”可能會失效

 

  3.復位信號的移除時間T(recovery time):

    時鍾信號的上升沿,與緊跟其后異步復位信號從有效到無效的最小時間。

    這個時間的意義是,如果保證不了這個去除時間,也就是說這個異步控制信號的解除與“有效時鍾沿”離得太近(但在這個時鍾沿之后),那么就不能保證有效地屏蔽這個“時鍾沿”,也就是說這個“時鍾沿”可能會起作用

  4.恢復與移除時間的意義

    如果你想讓某個時鍾沿起作用,那么你就應該在“恢復時間”之前是異步控制信號變無效,如果你想讓某個時鍾沿不起作用,那么你就應該在“去除時間”過后使控制信號變無效。如果你的控制信號在這兩種情況之間,那么就沒法確定時鍾沿是否起作用或不起作用了,也就是說可能會造成寄存器處於不確定的狀態。而這些情況是應該避免的。所以在復位信號的處理上,要遵守恢復時間和去除時間。

    如下圖異步復位時序所示,為復位電路復位時序圖。如果異步復位信號的撤銷時間在Trecovery(恢復時間)和Tremoval(移除時間)之內,那勢必造成亞穩態的產生,輸出在時鍾邊沿的Tco后會產生振盪,振盪時間為Tmet(決斷時間),最終穩定到“0”或者“1”,就會可能造成復位失敗。

 

 

 

  5.總結

    異步復位信號亞穩態的原因

    復位結束也就是釋放的時刻,恰在時鍾上升沿的建立時間和保持時間之間時,無法決定現在的復位狀態是1還是0,造成亞穩態。

 

二、推薦異步復位同步釋放

  1.電路結構

 

     異步復位:顯而易見,rst_async_n異步復位后,rst_sync_n將拉低,即實現異步復位。

    同步釋放:這個是關鍵,看如何實現同步釋放,即當復位信號rst_async_n撤除時,由於雙緩沖電路(雙寄存器)的作用,rst_sync_n復位信號不會隨着rst_async_n的撤除而撤除。

    假設rst_async_n撤除時發生在clk上升沿,如果不加此電路則可能發生亞穩態事件,但是加上此電路以后,假設第一級D觸發器clk上升沿時rst_async_n正好撤除,則D觸發器1輸出高電平“1”,此時第二級觸發器也會更新輸出,但是輸出值為前一級觸發器clk來之前時的Q1輸出狀態。顯然Q1之前為低電平,因此第二級觸發器輸出保持復位低電平,直到下一個clk來之后,才隨着變為高電平。即同步釋放。

 

  2.代碼實現

 1 module reset_gen ( output rst_sync_n, input clk, rst_async_n);
 2 reg rst_s1, rst_s2;
 3 wire rst_sync_n ;
 4 
 5 always @ (posedge clk, posedge rst_async_n)
 6     if (rst_async_n)
 7          begin
 8             rst_s1 <= 1'b0;
 9             rst_s2 <= 1'b0;
10         end
11     else
12         begin
13             rst_s1 <= 1'b1;
14             rst_s2 <= rst_s1;
15         end
16 
17 assign rst_sync_n = rst_s2; //注意這里的rst_sync_n才是我們真正對系統輸出的復位信號
18 
19 endmodule

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM