理解FPGA 中的壓穩態(tài)
本白皮書(shū)介紹FPGA 中的壓穩態(tài),為什么會(huì )出現這一現象,它是怎樣導致設計失敗的。介紹怎樣計算壓穩態(tài)MTBF,重點(diǎn)是對結果造成影響的各種器件和設計參數。
引言
當信號在不相關(guān)或者異步時(shí)鐘域之間傳送時(shí),會(huì )出現壓穩態(tài),它是導致包括FPGA 在內的數字器件系統失敗的一種現象。本白皮書(shū)介紹FPGA 中的壓穩態(tài),解釋為什么會(huì )出現這一現象,討論它是怎樣導致設計失敗的。
通過(guò)計算壓穩態(tài)導致的平均故障間隔時(shí)間(MTBF),設計人員知道是否應采取措施來(lái)降低這類(lèi)失敗的概率。
本白皮書(shū)解釋怎樣利用各種設計和器件參數來(lái)計算MTBF, FPGA 供應商和設計人員怎樣提高M(jìn)TBF??梢酝ㄟ^(guò)設計方法和優(yōu)化措施來(lái)降低出現壓穩態(tài)失敗的概率,從而提高系統可靠性。
什么是壓穩態(tài)?
FPGA 等數字器件中的所有寄存器都有確定的信號時(shí)序要求,使每一個(gè)寄存器能夠正確的采集輸入數據,產(chǎn)生輸出信號。為保證能夠可靠的工作,寄存器輸入必須在時(shí)鐘沿之前穩定一段時(shí)間( 寄存器建立時(shí)間,即tSU),在時(shí)鐘沿之后也要保持穩定一段時(shí)間( 寄存器保持時(shí)間,即tH)。一定的時(shí)鐘至輸出延時(shí) (tCO) 之后,寄存器輸出有效。如果信號轉換不能滿(mǎn)足寄存器的tSU 或者tH 要求,寄存器輸出就有可能進(jìn)入壓穩態(tài)。在壓穩態(tài)中,寄存器輸出在高電平和低電平狀態(tài)之間徘徊一段時(shí)間,這意味著(zhù),輸出延時(shí)超出設定的tCO 之后才能轉換到確定的高電平或者低電平狀態(tài)。
在同步系統中,輸入信號必須滿(mǎn)足寄存器時(shí)序要求,因此,不會(huì )出現壓穩態(tài)。信號在不相關(guān)或者異步時(shí)鐘域電路之間傳輸時(shí),一般會(huì )出現壓穩態(tài)問(wèn)題。在這種情況下,由于信號可能在相對于目的時(shí)鐘的任意時(shí)間到達,因此,設計人員不能保證信號能夠滿(mǎn)足tSU 和tH 要求。然而,并不是所有不能滿(mǎn)足寄存器tSU 或者tH的信號轉換都導致壓穩態(tài)輸出。寄存器是否會(huì )進(jìn)入壓穩態(tài)以及返回穩定狀態(tài)所需要的時(shí)間與器件制造工藝以及實(shí)際工作條件有關(guān)。在大部分情況下,寄存器會(huì )很快返回穩定狀態(tài)。
可以把寄存器在時(shí)鐘邊沿采樣數據信號形象的看成是球從山上滾落下來(lái),如圖1 所示。山的兩邊代表穩定狀態(tài)――信號轉換之后,信號的老數據和新數據,山頂代表壓穩態(tài)。如果球從山頂滾落,它會(huì )處于不確定狀態(tài),實(shí)際中,它稍偏向一側,然后,落到山下。從山頂開(kāi)始,越到山腳,球到達底部穩定狀態(tài)的速度越快。
如果數據信號在時(shí)鐘沿之后以最小的 tH 轉換,這就類(lèi)似球從山的“老數據值”一側落下,輸出信號保持在該時(shí)鐘轉換的最初值不變。當寄存器數據輸入在時(shí)鐘沿之前以最小 tSU 轉換,保持時(shí)間大于最小 tH,這就類(lèi)似球從山的“新數據值”一側落下,輸出信號很快達到穩定的新?tīng)顟B(tài),滿(mǎn)足確定的tCO 時(shí)間要求。但是,當寄存器數據輸入不能滿(mǎn)足tSU 或者 tH, 時(shí),這就類(lèi)似于球從山頂落下。如果球落在山頂附近,那么,它會(huì )花很長(cháng)時(shí)間才能落到山腳,增加了時(shí)鐘轉換到穩定輸出的延時(shí),超出了要求的tCO。
理解FPGA 中的壓穩態(tài)Altera 公司
2
圖 1. 利用球從山上落下描述壓穩態(tài)
圖2 描述了壓穩態(tài)信號。時(shí)鐘信號轉換時(shí),輸入信號從低電平狀態(tài)轉換到高電平狀態(tài),不能滿(mǎn)足寄存器的tSU 要求。數據輸出信號從低電平狀態(tài)開(kāi)始,進(jìn)入壓穩態(tài),在高電平和低電平狀態(tài)之間徘徊。信號輸出A 轉換到輸入數據的新邏輯1 狀態(tài),輸出B 返回到數據輸入最初的邏輯0 狀態(tài)。在這兩種情況下,輸出轉換到確定的1 或者0 狀態(tài)的時(shí)間被延遲了,超出了寄存器要求的tCO。
圖 2. 壓穩態(tài)輸出信號實(shí)例
壓穩態(tài)什么時(shí)候會(huì )導致設計失敗?
如果數據輸出信號在寄存器下次采集數據之前,轉換到有效狀態(tài),那么,壓穩態(tài)信號不會(huì )對系統工作有不利影響。但是,如果壓穩態(tài)信號不能在它到達下一設計寄存器之前轉換到低電平或者高電平狀態(tài),那就會(huì )導致系統失敗。繼續山和球的形象解釋?zhuān)斍虻竭_山腳( 穩定邏輯狀態(tài)0 或者1) 的時(shí)間超出分配的時(shí)間后,即,寄存器tCO 加上寄存器通路所有時(shí)序余量的時(shí)間,就會(huì )出現失敗。當壓穩態(tài)信號沒(méi)有在分配的時(shí)間內穩定下來(lái)時(shí),如果目的邏輯觀(guān)察到不一致的邏輯狀態(tài),即,不同的目的寄存器采集到不同的壓穩態(tài)信號值,出現邏輯失敗。
同步寄存器
當信號在不相關(guān)或者異步時(shí)鐘域電路之間傳送時(shí),在使用該信號之前,需要將信號同步到新的時(shí)鐘域。新鐘域中第一個(gè)寄存器起到了同步寄存器的作用。
評論