理解FPGA 中的壓穩(wěn)態(tài)
3
為消除異步信號傳送時壓穩(wěn)態(tài)導(dǎo)致的失敗,電路設(shè)計人員通常在目的時鐘域中使用多個串聯(lián)寄存器( 同步寄存器鏈或者同步器),將信號重新同步到新時鐘域上。采用這些寄存器,在設(shè)計中的其他部分使用壓穩(wěn)態(tài)信號之前,該信號能夠有更多的時間轉(zhuǎn)換到確定狀態(tài)。同步寄存器至寄存器通路上的時序余量是壓穩(wěn)態(tài)信號穩(wěn)定所需要的時間,被稱為壓穩(wěn)態(tài)穩(wěn)定時間。
同步寄存器鏈或者同步器是滿足以下要求的寄存器序列:
■ 鏈上的寄存器都由相同的或者相位相關(guān)的時鐘進(jìn)行同步
■ 鏈上的第一個寄存器由不相關(guān)的時鐘域進(jìn)行驅(qū)動,即異步驅(qū)動。
■ 每個寄存器只扇出連接一個寄存器,鏈上的最后一個寄存器除外。
同步寄存器鏈的長度是滿足以上要求的同步時鐘域中的寄存器數(shù)量。圖3 是長度為2 的同步鏈的例子,假設(shè)輸出信號被送入多個目的寄存器。
圖 3. 同步寄存器鏈實(shí)例
注意,異步輸入信號,或者在不相關(guān)時鐘域之間傳輸?shù)男盘枺瑫谙鄬τ诓杉拇嫫鲿r鐘沿的任意點(diǎn)進(jìn)行轉(zhuǎn)換。因此,設(shè)計人員無法預(yù)測數(shù)據(jù)轉(zhuǎn)換前的信號轉(zhuǎn)換順序或者目的時鐘邊沿數(shù)量。例如,如果在時鐘域之間傳送異步總線信號,并進(jìn)行同步,數(shù)據(jù)信號會在不同的時鐘沿進(jìn)行轉(zhuǎn)換。結(jié)果,會接收到不正確的總線數(shù)據(jù)。
設(shè)計人員必須適應(yīng)這種電路工作方式,例如,雙時鐘 FIFO (DCFIFO) 邏輯存儲信號或者握手邏輯等。FIFO邏輯使用同步器在兩個時鐘域之間傳送控制信號,然后,數(shù)據(jù)被寫入雙端口存儲器,或者讀出。Altera 為這一操作提供DCFIFO 宏功能,它包括各種級別的延時,為控制信號提供亞穩(wěn)態(tài)保護(hù)。如果異步信號被用作兩個時鐘域之間的部分握手邏輯,控制信號會指出數(shù)據(jù)什么時候才能在時鐘域之間進(jìn)行傳輸。在這種情況下,采用同步寄存器以確保亞穩(wěn)態(tài)不會影響控制信號的接收,在任何亞穩(wěn)態(tài)條件下,數(shù)據(jù)都有足夠的建立時間,在使用數(shù)據(jù)之前達(dá)到穩(wěn)定。在設(shè)計比較好的系統(tǒng)中,每一信號在被使用之前都能達(dá)到穩(wěn)定狀態(tài),設(shè)計可以正常工作。
計算亞穩(wěn)態(tài)MTBF
亞穩(wěn)態(tài)平均故障間隔時間MTBF 大致估算了亞穩(wěn)態(tài)導(dǎo)致出現(xiàn)兩次設(shè)計失敗之間的平均時間。較大的MTBF( 例如亞穩(wěn)態(tài)失敗間隔數(shù)百甚至數(shù)千年) 表明非常可靠的設(shè)計。所需要的MTBF 取決于系統(tǒng)應(yīng)用。例如,急救醫(yī)療設(shè)備需要的MTBF 要比消費(fèi)類視頻顯示設(shè)備長得多。增大亞穩(wěn)態(tài)MTBF 能夠減小信號傳輸導(dǎo)致設(shè)備出現(xiàn)亞穩(wěn)態(tài)問題的概率。
可以使用設(shè)計信息以及器件特征參數(shù)來計算設(shè)計中某些信號傳輸或者所有信息傳輸?shù)膩喎€(wěn)態(tài)MTBF。采用下面的公式和參數(shù)來計算同步器鏈的MTBF:
C1 和C2 常數(shù)取決于器件工藝和工作條件。
4
在fCLK 和fDATA 參數(shù)取決于設(shè)計規(guī)范: fCLK 是接收異步信號時鐘域的時鐘頻率, fDATA 是異步輸入數(shù)據(jù)信號的觸發(fā)頻率。較快的時鐘頻率以及觸發(fā)數(shù)據(jù)能夠降低( 或者劣化) MTBF。
tMET 參數(shù)是亞穩(wěn)態(tài)信號達(dá)到確切狀態(tài)的亞穩(wěn)態(tài)建立時間,即,超出寄存器tCO 的時序余量。同步鏈的 tMET 是鏈上每一寄存器輸出時序余量之和。
設(shè)計中每一同步器鏈的MTBF 確定了總的設(shè)計MTBF。同步器的失效率是1/MTBF,將每一同步器鏈的失敗概率相加得到整個設(shè)計的失敗概率,如下所示:
設(shè)計亞穩(wěn)態(tài)MTBF 為1/failure_ratedesign。
設(shè)計人員使用Altera® FPGA 時,不需要手動完成這些計算,這是因?yàn)锳ltera Quartus® II 軟件將亞穩(wěn)態(tài)參數(shù)集成到了工具中。
確定亞穩(wěn)態(tài)常數(shù)
FPGA供應(yīng)商可以通過FPGA的亞穩(wěn)態(tài)特性來確定MTBF方程中的常數(shù)。確定特性的難點(diǎn)在于典型FPGA設(shè)計的MTBF 一般在幾年以上,因此,使用真實(shí)設(shè)計,在實(shí)際工作條件下測量亞穩(wěn)態(tài)事件之間的時間間隔是不可行的。為確定器件亞穩(wěn)態(tài)常數(shù), Altera 使用了測試電路,設(shè)計的這一電路具有較短的可測量MTBF,如圖4 所示。
圖 4. 亞穩(wěn)態(tài)特性參數(shù)測試電路結(jié)構(gòu)
在這一設(shè)計中, clka 和clkb 是兩路不相關(guān)的時鐘信號。同步器輸入數(shù)據(jù)在每一時鐘周期進(jìn)行觸發(fā)( 較大的fDATA)。同步器長度為1,這是因?yàn)橐粋€同步寄存器連接了兩個目的寄存器。目的寄存器在一個時鐘周期后以及一個半時鐘周期后采集同步器輸出。如果信號在下一時鐘沿到達(dá)之前進(jìn)入亞穩(wěn)態(tài),電路探測到采樣信號出現(xiàn)了不同,輸出一個錯誤信號。這一電路能夠探測到半時鐘周期內(nèi)出現(xiàn)的大部分亞穩(wěn)態(tài)事件。
評論