《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 可編程邏輯 > 設(shè)計(jì)應(yīng)用 > FPGA設(shè)計(jì)中的亞穩(wěn)態(tài)及其緩解措施
FPGA設(shè)計(jì)中的亞穩(wěn)態(tài)及其緩解措施
來(lái)源:電子技術(shù)應(yīng)用2012年第8期
汪路元
北京空間飛行器總體設(shè)計(jì)部,,北京100094
摘要: 亞穩(wěn)態(tài)是異步數(shù)字電路設(shè)計(jì)中的固有現(xiàn)象,。針對(duì)FPGA產(chǎn)品研制中的亞穩(wěn)態(tài)問(wèn)題,分析了其產(chǎn)生的原因,,闡述了亞穩(wěn)態(tài)對(duì)系統(tǒng)可靠性的影響和評(píng)估方法,,并針對(duì)單比特異步傳輸,、多比特異步傳輸和復(fù)位三種情況下的亞穩(wěn)態(tài)提出緩解措施。該措施可以在工程實(shí)踐中參考使用,。
中圖分類號(hào): TP331.2
文獻(xiàn)標(biāo)識(shí)碼: A
文章編號(hào): 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

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

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

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

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

 

 

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

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

    隨著FPGA功能復(fù)雜度和運(yùn)行頻率的大幅提升,,亞穩(wěn)態(tài)已經(jīng)成為危害系統(tǒng)可靠性的重要隱患,必須在設(shè)計(jì)初期采取緩解措施,,以獲得滿足要求的MTBF,,將亞穩(wěn)態(tài)的影響降低至系統(tǒng)允許范圍。根據(jù)實(shí)際需要,,靈活運(yùn)用文中的緩解措施,,便可以減小亞穩(wěn)態(tài)的影響,提高系統(tǒng)可靠性,。
參考文獻(xiàn)
[1] 沈立,,朱來(lái)文,陳宏偉,,等譯.高速數(shù)字設(shè)計(jì)[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)載,。