隨著數(shù)字化設(shè)計和SoC的日益復雜,復位架構(gòu)也變得非常復雜。在實施如此復雜的架構(gòu)時,設(shè)計人員往往會犯一些低級錯誤,這些錯誤可能會導致亞穩(wěn)態(tài)、干擾或其他系統(tǒng)功能故障。本文討論了一些復位設(shè)計的基本的結(jié)構(gòu)性問題。在每個問題的最后,都提出了一些解決方案。
復位域交叉問題
1. 問題
在一個連續(xù)設(shè)計中,如果源寄存器的異步復位不同于目標寄存器的復位,并且在起點寄存器的復位斷言過程中目標寄存器的數(shù)據(jù)輸入發(fā)生異步變化,那么該路徑將被視為異步路徑,盡管源寄存器和目標寄存器都位于同一個時鐘域,在源寄存器的復位斷言過程中可能導致目標寄存器出現(xiàn)亞穩(wěn)態(tài)。這被稱為復位域交叉,其中,啟動和捕捉觸發(fā)的復位是不同的。
在這種情況下,C寄存器和A寄存器的起點異步復位斷言是不同的。在C寄存器復位斷言過程中而A觸發(fā)器沒有復位,如果A寄存器的輸入端有一些有效數(shù)據(jù)交易,那么C寄存器的起點異步復位斷言引起的異步變更可能導致目標A寄存器發(fā)生時序違規(guī),從而可能產(chǎn)生亞穩(wěn)態(tài)。
圖1:復位域交叉問題
在上面的時序圖中,當有一些有效數(shù)據(jù)交易通過C1進行時,rst_c_b獲得斷言,導致C1發(fā)生異步改變,w.r.t clk從而使QC1進入亞穩(wěn)態(tài),這可能導致設(shè)計發(fā)生功能故障。
2. 解決方案
* 使用異步復位、不可復位觸發(fā)器或D1觸發(fā)器POR。
* 如果復位源rst_c_b是同步的,那么則認為來自C_CLR --> Q的用于從rst_c_b_reg -->C_CLR-->C_Q1-->C1-->A_D進行設(shè)置保持檢查的時序弧能夠避免設(shè)計亞穩(wěn)態(tài)。然而,通常在默認情況下,C_CLR-->Q時序弧在庫中不啟用,需要在定時分析過程中明確啟用。
* 在目的地(A)使用雙觸發(fā)器同步器,以避免設(shè)計中發(fā)生亞穩(wěn)態(tài)傳播。然而,設(shè)計人員應(yīng)確保安裝兩個觸發(fā)器引入的延遲不會影響預(yù)期功能。