亞穩態

亞穩態

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

基本介紹

  • 中文名:亞穩態
  • 外文名:semi-stable state
  • 含義:指觸發器無法在某個規定時間段
  • 解決方法:降低系統時鐘
  • 危害:出現亞穩態,系統可能就崩潰了
  • 解決方法:降低系統時間,用反應更快的FF等
簡介,解決方法,原因,危害,處理亞穩態的經典辦法——雙觸發,可行性,亞穩態現象,

簡介

觸發器的建立時間和保持時間在時鐘上升沿左右定義了一個時間視窗,如果觸發器數據輸入連線埠上的數據在這個時間視窗內發生變化(或者數據更新),那么就會產生時序違規。存在這個時序違規是因為違反了建立時間要求和保持時間要求,此時觸發器內部的一個節點(一個內部節點或者要輸出到外部節點)可能會在一個電壓範圍內浮動,無法穩定在邏輯0或者邏輯1狀態。換句話說,如果數據在上述視窗中被採集,觸發器中的電晶體不能可靠地設定為邏輯0或者邏輯1對應的電平上。所以此時的電晶體並未處於飽和區對應的高或者低電平,而是在穩定到一個確定電平之前,徘徊在一個中間電平狀態(這箇中間電平或許是一個正確值,又或許不是)。如圖3—5所示,這就是所謂的亞穩態。
異步時鐘域亞穩態波形圖異步時鐘域亞穩態波形圖

解決方法

1. 降低系統時鐘
2 .用反應更快的FF
3. 引入同步機制,防止亞穩態傳播
4. 改善時鐘質量,用邊沿變化快速的時鐘信號
關鍵是器件使用比較好的工藝和時鐘周期的裕量要大。

原因

在同步系統中,如果觸發器的setup time / hold time不滿足,就可能產生亞穩態,此時觸發器輸出端Q在有效時鐘沿之後比較長的一段時間處於不確定的狀態,在這段時間裡Q端毛刺、振盪、固定的某一電壓值,而不是等於數據輸入端D的值。這段時間稱為決斷時間(resolution time)。經過resolution time之後Q端將穩定到0或1上,但是究竟是0還是1,是隨機的,與輸入沒有必然的關係。

危害

由於輸出在穩定下來之前可能是毛刺、振盪、固定的某一電壓值,因此亞穩態除了導致邏輯誤判之外,輸出0~1之間的中間電壓值還會使下一級產生亞穩態(即導致亞穩態的傳播)。 邏輯誤判有可能通過電路的特殊設計減輕危害(如異步FIFO中Gray碼計數器的作用),而亞穩態的傳播則擴大了故障面,難以處理。
只要系統中有異步元件,亞穩態就是無法避免的,因此設計的電路首先要減少亞穩態導致錯誤的發生,其次要使系統對產生的錯誤不敏感。前者要用同步電路來實現,而後者根據不同的設計套用有不同的處理辦法。左邊為異步輸入端,經過兩級觸發器同步,在右邊的輸出將是同步的,而且該輸出基本不存在亞穩態。其原理是即使第一個觸發器的輸出端存在亞穩態,經過一個CLK周期後,第二個觸發器D端的電平仍未穩定的機率非常小,因此第二個觸發器Q端基本不會產生亞穩態。注意,這裡說的是“基本”,也就是無法“根除”,那么如果第二個觸發器Q出現了亞穩態會有什麼後果呢?後果的嚴重程度是由你的設計決定的,如果系統對產生的錯誤不敏感,那么系統可能正常工作,或者經過短暫的異常之後可以恢復正常工作,例如設計異步FIFO時使用格雷碼計數器當讀寫地址的指針就是處於這方面的考慮。如果設計上沒有考慮如何降低系統對亞穩態的敏感程度,那么一旦出現亞穩態,系統可能就崩潰了。

處理亞穩態的經典辦法——雙觸發

設計中使用的任何暫存器都會指定一個建立和保持時間,在時鐘上升沿前後的這個時間內輸入數據被禁止發生任何變動。所有器件中的暫存器都要指定這個精確參數,就是為了防止數據信號兩次變化發生的時間間隔太過靠近,從而導致其輸出陷入亞穩態。
當需要在兩個時鐘域傳輸信號的時候,需要考慮一個重要的問題是:是否需要採樣從一個時鐘域傳輸到另一個時鐘域的這個信號的每一個值?通過思考這個問題可以發現,在跨時鐘邊界存在跨時鐘域傳輸數據允許丟失部分採樣值和跨時鐘域傳輸數據不允許丟失任何信號採樣值兩種情況,而且確認設計到底屬於哪種情況則變得非常重要。
對於第一種情況來說,沒有必要去採樣每一個值,但是需要注意的是被採樣的值必需要確保精確度;而在第二種情況中,一個跨時鐘域信號必需要被正確識別,或者說在其允許發生改變之前必須被識別。這兩種情況中,跨時鐘域信號都需要被同步到其接收時鐘域之中。
最常見的同步器就是使用兩級暫存器,即使用暫存器打兩拍的方式進行同步。所謂的同步器就是採樣一個異步信號,採樣輸出能夠同步到本地或採樣時鐘的模組。這種最簡單也是使用最普遍的兩級暫存的同步器如圖所示。
兩級暫存的同步器兩級暫存的同步器
當然,仍然有可能級聯的第二個暫存器輸出還會表現為非穩定狀態,但是這種雙暫存同步器已經可以解決大部分這類亞穩態問題。在設計這種同步器的時候應當注意遵循以下原則:
(1)級聯的暫存器必須使用同一個採樣時鐘。
(2)傳送端時鐘域暫存器輸出和接收端異步時鐘域級聯暫存器輸入之間不能有任何其他組合邏輯。
(3)同步器中級聯的暫存器中除了最後一個暫存器外所有的暫存器只能有一個扇出,即其只能驅動下一級暫存器的輸入。

可行性

使用同步電路以後,亞穩態仍然有發生的可能,與此相連的是MTBF(Mean Time Between Failure),亞穩態的發生機率與時鐘頻率無關,但是MTBF與時鐘有密切關係。 有文章提供了一個例子,某一系統在20MHz時鐘下工作時,MTBF約為50年,但是時鐘頻率提高到40MHz時,MTBF只有1分鐘!可見降低時鐘頻率可以大大減小亞穩態導致系統錯誤的出現,其原因在於,提供較長的resolution time可減小亞穩態傳遞到下一級的機會,提高系統的MTBF。

亞穩態現象

在物理化學領域,亞穩態指的是按相平衡條件,應發生相變而未發生的狀態。常見的亞穩態現象有如下幾種。
按相平衡條件,在某一溫度,當氣體的分壓大於其在該溫度下的飽和蒸氣壓時,該氣體將白髮凝聚成液體或固體。但新生成的凝聚相顆粒極其微小。根據開爾文公式,微小顆粒的蒸氣壓遠遠大於該物質的正常蒸氣壓。因此,雖然該氣體的分壓已經大於其正常蒸氣壓,但對於將要形成的微小新相顆粒來說仍未飽和,當氣體十分純淨時,往往其分壓大於其飽和蒸氣壓仍不能凝聚。這種按相平衡條件應凝聚而未凝聚的氣體稱為過飽和蒸氣(supersaturated vapor)。蒸氣中的灰塵、容器的粗糙內表面都可以成為蒸氣的凝聚中心,使新生成的凝聚相從一開始就具有較大的曲率半徑,這樣在蒸氣的過飽和程度較小的情況下,蒸氣就可開始凝聚。人工降雨就是根據這個原理向雲層中撒入固體顆粒。使已經飽和的水蒸氣凝聚成雨的。
(二)過冷液體
在一定壓力下,當液體的溫度已低於該壓力下液體的凝固點,而液體仍不凝固的現象,叫過冷現象,此時的液體稱為過冷液體(supercooling liquid)。根據開爾文公式,晶體微粒越小,蒸氣壓越高,在正常凝固點晶體微粒不能產生。只有當液體過冷至某一溫度後,此時晶體微粒的平衡蒸氣壓等於液體的平衡蒸氣壓,才可能有新相形成。避免過冷現象的關鍵在於促使新相晶核順利產生。為此,可在液體冷卻到凝固點附近時加入少量晶體作為新相種子,液體達到凝固點時會自動在這些晶體微粒表面析出沉積;同時,要加強攪拌。
(三)過熱液體
沸騰是液體從內部形成氣泡、在液體表面上劇烈氣化的現象。但如果在液體中沒有提供氣泡的物質存在時,液體在沸點時將無法沸騰。這種溫度高於沸點但仍不沸騰的液體,稱為過熱液體(superheated liquid)。
液體沸騰時首先在液體底部形成氣泡,根據開爾文公式,小氣泡形成時氣泡內飽和蒸氣壓遠小於外壓,而微小氣泡若穩定存在,必須克服三種壓力:大氣壓力P、液體靜壓力P及氣泡凹液面產生的附加壓力P,僅當氣泡內蒸汽壓P滿足P(P+P>P)時,氣泡才能成長上升。新生成的微小氣泡不能滿足這一條件,因而不能穩定存在。這樣便造成了液體在沸點時不沸騰,溫度繼續升高的過熱現象。過熱較多時,會發生暴沸
在一定條件下,晶體的顆粒愈小其溶解度愈大。所以將溶液進行恆溫蒸發時,溶質的濃度逐漸增大,達到普通溶質晶體的飽和濃度時,對微小晶體溶質卻仍未達到飽和狀態,作為晶體成長核心的晶核難以析出。為了使晶核能自動生成,需要將溶液進一步蒸發,達到一定的過飽和程度,晶體才可能不斷析出。這種按相平衡條件,應當有晶體析出而未析出的溶液,稱為過飽和溶液。
在結晶過程中,若溶液的過飽和度太大,將生成很細小的顆粒,不利於過濾或洗滌,會影響產品的質量。在生產中常採用向結晶器中投入小晶體作為新相種子的方法,防止溶液過飽和程度過高,可獲得較大顆粒的晶體。
上述亞穩態的共同特徵是,它們都偏離平衡而處於較高的能量狀態。從熱力學觀點看,它們是不穩定的,但是卻能相對持久存在。出現亞穩態的原因是由於新相的種子難以產生。上面提出的各種防止方法都是為了創造條件,以有利於新相種子的形成,促使各種系統由亞穩態過渡到平衡狀態。在科研和生產中,有時需要破壞亞穩態,如上述的結晶過程。但有時則需要保持亞穩態長期存在,如金屬的淬火。

相關詞條

熱門詞條

聯絡我們