亞穩態檢視原始碼討論檢視歷史
亞穩態是全國科學技術名詞審定委員會公布的科技類名詞。
在漢字的歷史上,人們通常把秦代之前留傳下來的篆體文字和象形文字稱為「古文字[1]」,而將隸書和之後出現的字體稱為「今文字」。因此,「隸變[2]」就成為漢字由古體(古文字)演變為今體(今文字)的分界線。
名詞解釋
亞穩態是指觸發器無法在某個規定時間段內達到一個可確認的狀態。當一個觸發器進入亞穩態引時,既無法預測該單元的輸出電平,也無法預測何時輸出才能穩定在某個正確的電平上。在這個穩定期間,觸發器輸出一些中間級電平,或者可能處于振盪狀態,並且這種無用的輸出電平可以沿信號通道上的各個觸發器級聯式傳播下去。
危害
由於輸出在穩定下來之前可能是毛刺、振盪、固定的某一電壓值,因此亞穩態除了導致邏輯誤判之外,輸出0~1之間的中間電壓值還會使下一級產生亞穩態(即導致亞穩態的傳播)。 邏輯誤判有可能通過電路的特殊設計減輕危害(如異步FIFO中Gray碼計數器的作用),而亞穩態的傳播則擴大了故障面,難以處理。
只要系統中有異步元件,亞穩態就是無法避免的,因此設計的電路首先要減少亞穩態導致錯誤的發生,其次要使系統對產生的錯誤不敏感。前者要用同步電路來實現,而後者根據不同的設計應用有不同的處理辦法。左邊為異步輸入端,經過兩級觸發器同步,在右邊的輸出將是同步的,而且該輸出基本不存在亞穩態。其原理是即使第一個觸發器的輸出端存在亞穩態,經過一個CLK周期後,第二個觸發器D端的電平仍未穩定的概率非常小,因此第二個觸發器Q端基本不會產生亞穩態。注意,這裡說的是「基本」,也就是無法「根除」,那麼如果第二個觸發器Q出現了亞穩態會有什麼後果呢?後果的嚴重程度是由你的設計決定的,如果系統對產生的錯誤不敏感,那麼系統可能正常工作,或者經過短暫的異常之後可以恢復正常工作,例如設計異步FIFO時使用格雷碼計數器當讀寫地址的指針就是處於這方面的考慮。如果設計上沒有考慮如何降低系統對亞穩態的敏感程度,那麼一旦出現亞穩態,系統可能就崩潰了。
處理亞穩態的經典辦法——雙觸發
設計中使用的任何寄存器都會指定一個建立和保持時間,在時鐘上升沿前後的這個時間內輸入數據被禁止發生任何變動。所有器件中的寄存器都要指定這個精確參數,就是為了防止數據信號兩次變化發生的時間間隔太過靠近,從而導致其輸出陷入亞穩態。
當需要在兩個時鐘域傳輸信號的時候,需要考慮一個重要的問題是:是否需要採樣從一個時鐘域傳輸到另一個時鐘域的這個信號的每一個值?通過思考這個問題可以發現,在跨時鐘邊界存在跨時鐘域傳輸數據允許丟失部分採樣值和跨時鐘域傳輸數據不允許丟失任何信號採樣值兩種情況,而且確認設計到底屬於哪種情況則變得非常重要。
對於第一種情況來說,沒有必要去採樣每一個值,但是需要注意的是被採樣的值必需要確保精確度;而在第二種情況中,一個跨時鐘域信號必需要被正確識別,或者說在其允許發生改變之前必須被識別。這兩種情況中,跨時鐘域信號都需要被同步到其接收時鐘域之中。
參考文獻
- ↑ 什麼是古文字,古文字是如何識別出來的,搜狐,2021-03-26
- ↑ 隸變,變什麼了?,搜狐,2021-05-06