《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 設(shè)計應(yīng)用 > FPGA設(shè)計中的亞穩(wěn)態(tài)及其緩解措施
FPGA設(shè)計中的亞穩(wěn)態(tài)及其緩解措施
來源:電子技術(shù)應(yīng)用2012年第8期
汪路元
北京空間飛行器總體設(shè)計部,北京100094
摘要: 亞穩(wěn)態(tài)是異步數(shù)字電路設(shè)計中的固有現(xiàn)象。針對FPGA產(chǎn)品研制中的亞穩(wěn)態(tài)問題,分析了其產(chǎn)生的原因,闡述了亞穩(wěn)態(tài)對系統(tǒng)可靠性的影響和評估方法,并針對單比特異步傳輸、多比特異步傳輸和復(fù)位三種情況下的亞穩(wěn)態(tài)提出緩解措施。該措施可以在工程實踐中參考使用。
中圖分類號: TP331.2
文獻標識碼: A
文章編號: 0258-7998(2012)08-0013-03
Metastable state and mitigation measures in FPGA design
Wang Luyuan
Beijing Institute of Spacecraft System Engineering,Beijing 100094,China
Abstract: Metastable state is inherent in asynchronous digital circuits.This paper introduces the metastable state in FPGA design and analyses the effect on system reliability. Finally,several approaches that can be used in project are discussed to mitigate the effect in the process of one bit or many bits asynchronous transmission or reset.
Key words : flip-flop;metastable state;MTBF;reset

    在進行FPGA設(shè)計時,往往只關(guān)心“0”和“1”兩種狀態(tài)。然而在工程實踐中,除了“0”、“1”外還有其他狀態(tài),亞穩(wěn)態(tài)就是其中之一。亞穩(wěn)態(tài)是指觸發(fā)器或鎖存器無法在某個規(guī)定時間段內(nèi)達到一個可確認的狀態(tài)[1]。當(dāng)一個觸發(fā)器進入亞穩(wěn)態(tài)時,既無法預(yù)測該單元的輸出電平,也無法預(yù)測何時輸出才能穩(wěn)定在某個正確的電平上。在亞穩(wěn)態(tài)期間,觸發(fā)器輸出一些中間級電平,甚至可能處于振蕩狀態(tài),并且這種無用的輸出電平可以沿信號通道上的各個觸發(fā)器級聯(lián)式傳播下去。亞穩(wěn)態(tài)是異步數(shù)字電路設(shè)計中的固有現(xiàn)象,但是由于其偶發(fā)性和溫度敏感性的特點,在產(chǎn)品前期測試過程中很難發(fā)現(xiàn)。當(dāng)前多個型號的FPGA產(chǎn)品研制過程中暴露的質(zhì)量問題均與亞穩(wěn)態(tài)有關(guān),而且多是在設(shè)備研制后期進行高低溫試驗時出現(xiàn),嚴重影響了產(chǎn)品研制。因此,亞穩(wěn)態(tài)對系統(tǒng)的危害性應(yīng)該引起足夠重視,并在設(shè)計初期階段應(yīng)采取有效緩解措施,以提高系統(tǒng)的可靠性。

1 亞穩(wěn)態(tài)產(chǎn)生的原因
    所有數(shù)字器件(包括FPGA)的信號傳輸都有一定的時序要求,以保證每個器件將捕獲的輸入信號正確輸出。對于觸發(fā)器,為了確保操作的可靠性,輸入信號必須在時鐘沿的某段時間(觸發(fā)器的建立時間)之前保持穩(wěn)定,并且持續(xù)到時鐘沿之后的某段時間(觸發(fā)器的保持時間)才能改變,而且該觸發(fā)器的輸入反映到輸出還需要經(jīng)過一定的延時(時鐘到輸出的時間)。如果數(shù)據(jù)信號的變化違反了建立時間或者保持時間的要求,則觸發(fā)器的輸出會處于亞穩(wěn)態(tài)。此時,觸發(fā)器的輸出會在高電平“1”和低電平“0”之間盤旋一段時間,這也意味著觸發(fā)器的輸出達到一個穩(wěn)定的高或者低電平的狀態(tài)所需要的時間會大于時鐘到輸出的時間。這樣觸發(fā)器輸出端Q在有效時鐘沿之后較長一段時間處于不確定狀態(tài),這段時間稱為決斷時間。在這段時間里Q端可能為毛刺、振蕩或某一固定電壓值,而不是等于數(shù)據(jù)輸入端D的值。經(jīng)過決斷時間之后Q端將穩(wěn)定到“0”或“1”上,但究竟是“0”還是“1”,是隨機的,與輸入沒有必然的聯(lián)系。圖1所示是第一級觸發(fā)器存在建立時間或保持時間沖突時導(dǎo)致Q1出現(xiàn)亞穩(wěn)態(tài)的示意圖。

2 亞穩(wěn)態(tài)與系統(tǒng)可靠性
    由于亞穩(wěn)態(tài)輸出在穩(wěn)定下來之前可能是毛刺、振蕩、固定的某一電壓值,因此亞穩(wěn)態(tài)對系統(tǒng)的影響主要表現(xiàn)在以下兩個方面:
    (1)導(dǎo)致后端電路產(chǎn)生邏輯誤判,尤其是多扇出電路中,由于扇出延時的差別會導(dǎo)致各負載端識別出不同的邏輯電平,使系統(tǒng)功能發(fā)生紊亂。
    (2)輸出0~1之間的中間電壓值還會使下一級產(chǎn)生亞穩(wěn)態(tài),即導(dǎo)致亞穩(wěn)態(tài)在系統(tǒng)中傳播。
    亞穩(wěn)態(tài)的出現(xiàn)是一種概率現(xiàn)象,并且結(jié)果正確與否也是一種概率現(xiàn)象。因此,為了便于估算,工程實踐中提出了一種統(tǒng)計模型來評估亞穩(wěn)態(tài)所造成的危害程度,即平均無故障時間MTBF(Mean Time Between Failures)。MTBF的定義如下[2]:
    
    MTBF的計算對象是一個觸發(fā)器,在實際中器件生產(chǎn)廠家先通過特殊的測試手段得到產(chǎn)品的MTBF,然后再確定公式中的參數(shù)指標向外發(fā)布。用戶可以根據(jù)這些參數(shù)指標定量計算當(dāng)前設(shè)計的可靠性。對于常用的Actel公司的FPGA和Xilinx SRAM型FPGA,器件廠商均公布了T0和?子的數(shù)值[3-4],實際使用時可以進行評估計算。
3 FPGA設(shè)計中的亞穩(wěn)態(tài)緩解措施
    在FPGA設(shè)計中,只要不滿足內(nèi)部觸發(fā)器的建立時間和保持時間要求,就會出現(xiàn)亞穩(wěn)態(tài)。對于一個全同步設(shè)計來說,時鐘和數(shù)據(jù)相位關(guān)系固定,所有觸發(fā)器都由一個時鐘信號驅(qū)動,雖然在不同點也存在相位差別,但開發(fā)工具會通過計算時鐘信號線的走線長度來預(yù)測傳輸延時,并通過時鐘域內(nèi)的時鐘樹綜合算法來求得優(yōu)化的結(jié)構(gòu),使觸發(fā)器的建立時間和保持時間滿足要求,不出現(xiàn)亞穩(wěn)態(tài),這也是所有設(shè)計規(guī)范都推薦采用全同步設(shè)計的一個重要原因。但是,實際的系統(tǒng)一般都不只有一個時鐘,而是一個多時鐘系統(tǒng),例如常見的下行鏈路數(shù)據(jù)復(fù)接設(shè)備,一般是有多少路輸入就有多少個時鐘,因而需要分析其中的異步傳輸路徑并采取緩解措施。
3.1 針對單比特信號異步傳輸?shù)膩喎€(wěn)態(tài)緩解措施
    (1)慢時鐘域信號進入快時鐘域(兩者周期相差1倍以上)
    慢時鐘域信號進入快速時鐘域是工程實踐中遇到最多的一種情況,輸入信號從CLK1時鐘域進入到CLK2時鐘域時可以通過兩級觸發(fā)器級聯(lián)的方式來緩解亞穩(wěn)態(tài),具體電路如圖3所示。

    圖3電路中,由于無法預(yù)知異步輸入信號ASY_IN的翻轉(zhuǎn)時刻,所以同步器第一級觸發(fā)器的輸出Q1存在亞穩(wěn)態(tài),該信號通過FPGA布線路徑傳輸至第二級觸發(fā)器的輸入端。設(shè)CLK2的時鐘周期為T,且假定CLK2到兩個觸發(fā)器的時鐘延時相等(即偏斜為零),第一級觸發(fā)器輸出到第二級觸發(fā)器輸入端的路徑傳輸延時為tnet,其余時序參數(shù)定義同圖1。則只要滿足tco+tres+tnet+tsu≤T,Q1就有足夠的時間從亞穩(wěn)態(tài)恢復(fù)至穩(wěn)定態(tài),并滿足第二級觸發(fā)器的建立時間要求,所以第二級觸發(fā)器的輸出是穩(wěn)定態(tài)。同時還要注意的是,信號在CLK2時鐘域內(nèi)會有T~2T的延時。
    設(shè)計中,可以通過增加觸發(fā)器級聯(lián)的數(shù)目來獲得更大的MTBF,但是這樣會進一步增大信號延時并占用更多FPGA資源。綜合考慮現(xiàn)有FPGA器件工藝和電氣參數(shù),一般情況下,二級觸發(fā)器的級聯(lián)已經(jīng)可以滿足實際要求了。
    (2)慢時鐘域信號進入快時鐘域(兩者周期相差1倍以內(nèi))
    從亞穩(wěn)態(tài)的機理可以知道,圖3中Q1的亞穩(wěn)態(tài)恢復(fù)結(jié)果可能是“0”也可能是“1”,所以要求CLK1的周期必須是CLK2周期的2倍以上,才能保證當(dāng)異步輸入信號為單周期脈沖時,在CLK2時鐘域信號不丟失。所以對于兩個時鐘周期相差1倍以內(nèi)的情況,圖3的電路是不合適的,可以采用圖4所示的脈沖擴展同步電路來緩解亞穩(wěn)態(tài)。
   

 

 

3.2 多比特并行信號異步傳輸?shù)膩喎€(wěn)態(tài)緩解措施
    在許多應(yīng)用中,跨時鐘域傳送的不只是簡單的單比特信號,很多時候是并行數(shù)據(jù)信號的跨時鐘域傳輸。這種情況下,不能簡單地對并行信號的每一位獨立使用圖3所示同步器。因為實際電路中無法保證并行信號同時翻轉(zhuǎn),這樣做會導(dǎo)致輸出采集到錯誤的信號值,對系統(tǒng)功能產(chǎn)生影響。針對這種應(yīng)用可以采用異步FIFO或雙口RAM來解決[5]。
    在FPGA中,有現(xiàn)成的RAM硬核,設(shè)計時可以通過開發(fā)工具配置這些RAM的使用方式,可配成異步FIFO或雙口RAM。該類存儲器讀寫控制分別采用兩個完全獨立的時鐘域,異步FIFO內(nèi)部采用格雷碼計數(shù)器進行編址,操作簡單,提供了現(xiàn)成的半滿、全滿和空信號(這些信號均經(jīng)過了跨時鐘域處理,可以直接在讀時鐘域和寫時鐘域使用)。當(dāng)采用雙口RAM時,需要自行處理地址信號的跨時鐘域,此處需要注意的是,要將多比特的地址信息在各自時鐘域中轉(zhuǎn)化為單比特,然后再使用單比特同步器來解決。
3.3 異步復(fù)位過程的亞穩(wěn)態(tài)緩解措施
    異步復(fù)位由于其實時性好、設(shè)計簡單以及與FPGA底層庫單元(帶異步復(fù)位的觸發(fā)器)結(jié)合性好等特點,受到廣大設(shè)計師的青睞,但是在使用過程中往往忽略了其中的亞穩(wěn)態(tài)問題。類似于觸發(fā)器對輸入信號建立時間和保持時間的要求,異步復(fù)位信號在釋放時有恢復(fù)時間(Recovery time)和移除時間(Removal time)的要求,如圖6所示。

    圖中,trec為恢復(fù)時間,指復(fù)位信號釋放時刻與緊隨其后的有效時鐘沿間的最小時間;trem為移除時間,指時鐘有效沿時刻與之后的復(fù)位信號釋放之間的最小時間。這就要求異步復(fù)位釋放時刻與時鐘的有效沿盡量遠,即異步復(fù)位應(yīng)該和時鐘沒有任何關(guān)系。其實不然,對于觸發(fā)器,異步復(fù)位信號對內(nèi)部保持電路和直接輸出電路都有影響。當(dāng)復(fù)位信號有效時,輸出清零;當(dāng)復(fù)位信號釋放后,輸出由保持電路決定,如果復(fù)位信號釋放時刻離時鐘沿太近,則輸出會在清零和數(shù)據(jù)保持之間出現(xiàn)亞穩(wěn)態(tài)。
    實際電路中,可以采用異步復(fù)位同步釋放的方式來緩解復(fù)位導(dǎo)致亞穩(wěn)態(tài)的影響。低電平有效的異步復(fù)位同步釋放實現(xiàn)電路如圖7所示。圖7電路既保持了異步復(fù)位實時性好的優(yōu)點,又緩解了復(fù)位釋放時刻的亞穩(wěn)態(tài),實際應(yīng)用中可以參考。

    隨著FPGA功能復(fù)雜度和運行頻率的大幅提升,亞穩(wěn)態(tài)已經(jīng)成為危害系統(tǒng)可靠性的重要隱患,必須在設(shè)計初期采取緩解措施,以獲得滿足要求的MTBF,將亞穩(wěn)態(tài)的影響降低至系統(tǒng)允許范圍。根據(jù)實際需要,靈活運用文中的緩解措施,便可以減小亞穩(wěn)態(tài)的影響,提高系統(tǒng)可靠性。
參考文獻
[1] 沈立,朱來文,陳宏偉,等譯.高速數(shù)字設(shè)計[M].北京:電子工業(yè)出版社,2004:96-105.
[2] FOLEY C.Characterizing metastability[C].Proceedings of Second International Symposium on Date of Conference. Conference Publications,1996:175-184.
[3] Xilinx Corporation.Metastability considerations[R].1997.
[4] Actel Corporation.Metastability characterization report for actel antifuse FPGAs[R].2006.
[5] CUMMINGS C E,ALFKE P.Simulation and synthesis techniques for asynchronous FIFO design with asynchronous pointer comparisons[C].SNUG 2002(Synopsys Users Group Conference,San Jose,CA,2002) User Papers,March 2002.Section TB2,3rd paper.2002.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。