1. 程式人生 > 其它 >亞穩態—學習總結

亞穩態—學習總結

一、什麼是亞穩態

首先康康百度怎麼解釋亞穩態的:亞穩態是指觸發器無法在某個規定時間段內達到一個可確認的狀態。當一個觸發器進入亞穩態時,既無法預測該單元的輸出電平,也無法預測何時輸出才能穩定在某個正確的電平上。在這個穩定期間,觸發器輸出一些中間級電平,或者可能處於振盪狀態,並且這種無用的輸出電平可以沿訊號通道上的各個觸發器級聯式傳播下去。

根據百科解釋,可以提煉以下特點:

1)亞穩態違背了時序,無法在規定時間成為穩態。

2)亞穩態輸出不確定,但是會傳給後一級觸發器。這會導致後級電路出錯。所有亞穩態危害很大。

3)亞穩態最終都會穩定下來,但需要較長的時間。

二、亞穩態是怎麼產生的

根據1.1,我們知道亞穩態是由於違背了觸發器的建立(Tsu)和保持時間(Th)而產生的。

首先解釋幾個基本概念:

Tsu為建立時間:是指在觸發器的時鐘訊號上升沿到來以前,資料穩定不變的時間,如果建立時間不夠,資料將不能在這個時鐘上升沿被穩定的打入觸發器,Tsu就是指這個最小的穩定時間。

Th為保持時間:是指在觸發器的時鐘訊號上升沿到來以後,資料穩定不變的時間,如果保持時間不夠,資料同樣不能被穩定的打入觸發器,Th就是指這個最小的保持時間。

Tco為輸出時間:是觸發器在clk時鐘上升沿到來之後需多長的時間才能穩定輸出的的時間。

Tmet:亞穩態輸出恢復到穩定狀態所需的超出Tco的額外時間稱為穩定時間,即經過這段時間,亞穩態變成穩態了。

如果資料傳輸中不滿足觸發器的Tsu和Th,就會造成資料不穩定,從而導致亞穩態。

其核心在於:資料不穩定

三、如何避免亞穩態

如果規定一個特定時間長度,資料在這個時間長度內還不能穩定,則會造成亞穩態。那麼定義這個時間長度為亞穩態視窗。

如上面所述,只要滿足了建立時間和保持時間,就能避免亞穩態。對於亞穩態視窗來說,視窗越大,進入亞穩態的概率也越大。

在FPGA/IC設計當中,非同步訊號、跨時鐘域訊號都是亞穩態高發區。

對於非同步訊號,一般採用多級同步器,可以避免亞穩態的發生。

相當於拉長了整體的Tsu和Th,讓資料有足夠的時間穩定下來。

對於跨時鐘域訊號,採用FIFO對跨時鐘域資料進行緩衝,讓訊號在FIFO中穩定後再輸出。

特別注意的是,上述方法只能降低亞穩態發生的概率,如果亞穩態還是發生了,那麼上述方法並不能阻止亞穩態傳輸給後級電路。