FPGA的亚稳态跟MTBF
FPGA的亞穩(wěn)態(tài)跟MTBF
博主微信:flm13724054952,不懂的有疑惑的也可以加微信咨詢,歡迎大家前來投稿,謝謝!
引言
看了許多網(wǎng)上介紹亞穩(wěn)態(tài)的博文,有些介紹得不是很到位,例如在介紹亞穩(wěn)態(tài)的時候并沒有一起介紹了MTBF(mean time between failure,平均無故障時間),甚至有一些“歧義”的介紹比較使人誤導,這篇博文主要了描述了我自己對FPGA中的亞穩(wěn)態(tài)跟MTBF的了解。介紹亞穩(wěn)態(tài)是怎樣產(chǎn)生的,還有它是怎樣導致設計的失敗。并舉例子介紹MTBF由亞穩(wěn)態(tài)得出的平均無故障時間可以告訴設計者是否應該去降低出現(xiàn)失效的幾率。這篇博文將告訴你如何由各種設計和器件參數(shù)計算出平均無故障時間,如何通過一些設計技巧優(yōu)化或者規(guī)避亞穩(wěn)態(tài)來提高系統(tǒng)的穩(wěn)定性。當然本文都是博主跟公司工程師們交流及自己研究理解的,如果有不到位的歡迎批評并交流。
亞穩(wěn)態(tài)
在所有的數(shù)字器件中如FPGA的寄存器都有各自的時序要求,只有滿足了時序要求,寄存器才能在輸入端捕捉數(shù)據(jù)并在輸出端輸出穩(wěn)定的數(shù)據(jù)。在前面博文介紹的電路靜態(tài)時序分析可知,為保證電路正常,信號應該在寄存器捕獲沿前的“建立時間Tsu”之前翻轉(zhuǎn)變換并保持穩(wěn)定到寄存器捕獲沿后的“保持時間Th”,然后經(jīng)過Tco(始終捕獲沿到寄存器Q端所需的時間)才會輸出有效(穩(wěn)定)。如果一個數(shù)據(jù)信號的翻轉(zhuǎn)變換違反了寄存器的Tsu跟Th,寄存器的輸出就可能會是亞穩(wěn)態(tài)。在產(chǎn)生亞穩(wěn)態(tài)中,輸出會在高電平跟低電平來回震蕩的時間叫做Tmet(從亞穩(wěn)態(tài)震蕩到穩(wěn)定狀態(tài)的0或者1的過程叫做決斷時間,resolution time),這個時候輸出翻轉(zhuǎn)到0或者1的延遲可能會超過時鐘沿到寄存器輸出端的延遲(注意是Tmet>Tco)。
下面是我從很多博文看到的一張時序解釋圖
由圖可知,當產(chǎn)生亞穩(wěn)態(tài)后Tco時間后會有Tmet(決斷時間)的振蕩時間段,當振蕩結(jié)束回到穩(wěn)定狀態(tài)時為“0”或者“1”,這個是隨機的。因此,會對后續(xù)電路判斷造成影響。 這張時序圖給我的感覺就是難道Tco==Th?,兩者很明顯是不同的概念,另外許多博文圖片的描述都是震蕩時間Tmet是在Tco之后開始算的??,我看了Alter官網(wǎng)的白皮書介紹與公司工程師們的交流則看法不一樣,亞穩(wěn)態(tài)Tmet是在信號違反時序而馬上觸發(fā)的,而不是在違反之后還要經(jīng)過Tco之后才觸發(fā)進入決斷時間Tmet。所以對于亞穩(wěn)態(tài)的時序圖我的看法則如下所示:當input在時鐘上升沿(捕獲沿)前的Tsu建立時間里翻轉(zhuǎn)變換,即為input violates在經(jīng)過寄存器觸發(fā)進入亞穩(wěn)態(tài)Tmet的震蕩時間,其震蕩時間大于Tco。而決斷時間Tmet是取決于制造商的工藝與電路系統(tǒng)的工作環(huán)境,大部分情況下寄存器會從亞穩(wěn)態(tài)快速的進入到穩(wěn)定狀態(tài)。但是并不代表系統(tǒng)完全沒事,系統(tǒng)的穩(wěn)定性更多時候取決于MTBF。 當然以上是自己的研究了解,如果大家有其他看法,歡迎提出交流批評,歡迎共同進步。
亞穩(wěn)態(tài)的危害
是不是當電路發(fā)生亞穩(wěn)態(tài)就會導致系統(tǒng)失效呢?這個答案很明顯是否定的。當寄存器捕獲輸出發(fā)生亞穩(wěn)態(tài),但是如果能在同步給下一個寄存器的capture數(shù)據(jù)之前恢復到穩(wěn)定狀態(tài)(下一個寄存器時鐘捕獲沿的Tsu之前保持穩(wěn)定),那么就不會導致設計失敗而消極的對系統(tǒng)造成影響。但是當如果寄存器輸出亞穩(wěn)態(tài)的決斷時間Tmet如果大于Tco以及到下一個寄存器路徑上的時間余量,那么下一個同步寄存器就會得到一個不確定的不一致邏輯狀態(tài)而導致設計的失敗跟系統(tǒng)失效。
亞穩(wěn)態(tài)的產(chǎn)生
在上面的描述中,我們在廣義上已經(jīng)知道其實亞穩(wěn)態(tài)的產(chǎn)生原因主要是因為違反了寄存器的時序要求而導致輸出的震蕩。但是其實亞穩(wěn)態(tài)從其產(chǎn)生的方式主要分為三大類:
第一類:在同步系統(tǒng)電路里面,可以說就是組合邏輯路徑上的延遲大等原因而造成違反寄存器的時序要求。
這一類的解決方式比較好解決,一般較少路徑延遲即可,而這種在同步系統(tǒng)電路里面其亞穩(wěn)態(tài)的產(chǎn)生是比較小概率的,只要不違反時序,保證電路余量即可。
第二類:在多時鐘跨時域的系統(tǒng)電路里面,因為發(fā)送域寄存器時鐘與接收域寄存器時鐘的時鐘相位移不確定,而導致發(fā)送域數(shù)據(jù)有可能隨時到達接收域寄存器(隨時到達而不滿足寄存器的Tsu跟Th),所以會導致寄存器產(chǎn)生亞穩(wěn)態(tài)。
這一類的解決方式有多種方法,例如總線傳輸,異步FIFO傳輸?shù)确绞?#xff0c;這里不做詳細描述,在后面的博文將再做詳細介紹。
第三類:異步復位而導致系統(tǒng)電路產(chǎn)生亞穩(wěn)態(tài)。因為異步復位信號有可能隨時復位在時鐘沿的附近,而導致系統(tǒng)產(chǎn)生亞穩(wěn)態(tài)。這一類的解決方式有“異步復位,同步釋放”等,也在后面的博文將再做詳細介紹。
平均無故障時間(MTBF)
對于亞穩(wěn)態(tài)來說,我們沒有辦法把他完全消滅,只能做的是看如何優(yōu)化電路,在時間上來衡量他發(fā)生錯誤的概率是多大。
如果在一個FPGA系統(tǒng)電路里面存在多個獨立(異步)時鐘,并且存在多時鐘跨時域(clock domain)之間的信號傳輸,那么電路會出現(xiàn)亞穩(wěn)態(tài)。出現(xiàn)亞穩(wěn)態(tài)的平均時間間隔常用“平均無故障時間” (MTBF, Mean Time Between Failure)來表示。數(shù)據(jù)的頻率,時鐘頻率及寄存器的工作溫度、電壓、輻射等因素都對MTBF有影響。平均無故障時間一般根據(jù)系統(tǒng)應用需求而定,例如一個醫(yī)療設備額平均無故障時間要大于一個消費型的音響。提高平均無故障時間有利于減少系統(tǒng)在信號傳輸過程因亞穩(wěn)態(tài)而帶來的風險。下圖是平均無故障時間MTBF的計算公式:
從上圖的計算可以看得出,MTBF與觸發(fā)器的時鐘頻率密切相關(guān),甚至受到時鐘頻率的影響極大,但是注意一點的是亞穩(wěn)態(tài)發(fā)生的概率與時鐘的頻率無關(guān),只是MTBF與觸發(fā)器的時鐘頻率有密切聯(lián)系。例如對于一個系統(tǒng)來說,可能觸發(fā)器的時鐘頻率為20MHZ時,系統(tǒng)MTBF為5年,但是當觸發(fā)器時鐘為40MHZ時,可能MTBF只剩下一分鐘了。例如假設觸發(fā)器的時鐘頻率為10MHZ,而輸入數(shù)據(jù)頻率為3KHZ,其MTBF如下圖所計算的:
MTBF的提高
提高平均無故障時間有利于減少系統(tǒng)在信號傳輸過程因亞穩(wěn)態(tài)而帶來的風險。那我們應該如何提高MTBF呢,從上圖MTBF的計算公式來說,我們可以看得出MTBF取決于電路寄存器的工藝及電路的Tmet(Tr,在不引起同步失敗的前提下亞穩(wěn)態(tài)可持續(xù)的最長時間)。
提高MTBF的第一種辦法:提高工藝,例如從180nm的工藝提高到90nm的工藝,更快的供電電壓跟更快的晶體管可以使亞穩(wěn)態(tài)信號更快的穩(wěn)定下來。晶體管的速度提升通常來說也是提高了亞穩(wěn)態(tài)的平均無故障時間。
提高MTBF的第二章辦法:采用3-5的同步鏈裝置,來提高電路的Tmet/Tr,根據(jù)系統(tǒng)應用的MTBF需求甚至可以采用更高更多的同步鏈。例如:如果給定器件和運行條件下的Tmet是50ps,則在Tmet上提高200ps則提高MTBF的e^4倍,即50多倍,然而如果提高400ps則累乘e8是3000多倍。
為了增加Tmet可以增加同步鏈的寄存器個數(shù),因為寄存器到寄存器之間的時間余量都會加到Tmet中去,一般來說,在面對跨時域數(shù)據(jù)交匯的電路,為了更好的亞穩(wěn)態(tài)保護,一般會采用兩級同步鏈電路。經(jīng)典的兩級同步鏈的電路設計圖如下所示:
總結(jié)
當信號在異步時鐘域中傳輸或者因為異步復位亞穩(wěn)態(tài)就會發(fā)生。而亞穩(wěn)態(tài)失效的平均無故障時間與器件的工藝,設計規(guī)格和同步邏輯中的時序裕量有關(guān)。FPGA設計者可以使用一些設計技巧提高Tmet或增加同步寄存器中的時序裕量來提高系統(tǒng)可靠性和平均無故障時間。
參考書籍
https://wenku.baidu.com/view/036beaf9aef8941ea76e0568.html FPGA的亞穩(wěn)態(tài)
總結(jié)
以上是生活随笔為你收集整理的FPGA的亚稳态跟MTBF的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 在线音频小工具
- 下一篇: 做题记录 To 2019.2.13