1.亞穩態與設計可靠性
設計數字電路時大家都知道同步是非常重要的,特別當要輸入一個信號到一個同步電路中,但是該信號由另一個時鐘驅動時,這是要在接口處采取一些措施,使輸入的異步信號同步化,否則電路將無法正常工作,因為輸入端很可能出現亞穩態(Metastability),導致采樣錯誤。
下面我們會對亞穩態的原理、起因、危害、解決辦法、對可靠性的影響和消除仿真做一些介紹。
2. 什么是亞穩態?
亞穩態是指觸發器無法在某個規定時間段內達到一個可確認的狀態。當一個觸發器進入亞穩態時,既無法預測該單元的輸出電平,也無法預測何時輸出才能穩定在某個正確的電平上。在這個穩定期間,觸發器輸出一些中間級電平,或者可能處于振蕩狀態,并且這種無用的輸出電平可以沿信號通道上的各個觸發器級聯式傳播下去。
3.亞穩態發生的原因
在同步系統中,如果觸發器的setup time / hold time不滿足,就可能產生亞穩態,此時觸發器輸出端Q在有效時鐘沿之后比較長的一段時間處于不確定的狀態,在這段時間里Q端毛刺、振蕩、固定的某一電壓值,而不是等于數據輸入端D的值。這段之間成為決斷時間(resolution time)。經過resolution time之后Q端將穩定到0或1上,但是究竟是0還是1,這是隨機的,與輸入沒有必然的關系。
4.亞穩態的危害
由于輸出在穩定下來之前可能是毛刺、振蕩、固定的某一電壓值,因此亞穩態除了導致邏輯誤判之外,輸出0~1之間的中間電壓值還會使下一級產生亞穩態(即導致亞穩態的傳播)。 邏輯誤判有可能通過電路的特殊設計減輕危害(如異步FIFO中Gray碼計數器的作用),而亞穩態的傳播則擴大了故障面,難以處理。
5.亞穩態的解決辦法
只要系統中有異步元件,亞穩態就是無法避免的,因此設計的電路首先要減少亞穩態導致錯誤的發生,其次要使系統對產生的錯誤不敏感。前者要同步來實現,而后者根據不同的設計應用有不同的處理辦法。用同步來減少亞穩態發生機會的典型電路如圖1所示。
圖 1 兩級同步化電路
在圖1中,左邊為異步輸入端,經過兩級觸發器同步,在右邊的輸出將是同步的,而且該輸出基本不存在亞穩態。其原理是即使第一個觸發器的輸出端存在亞穩態,經過一個CLK周期后,第二個觸發器D端的電平仍未穩定的概率非常小,因此第二個觸發器Q端基本不會產生亞穩態。注意,這里說的是“基本”,也就是無法“根除”,那么如果第二個觸發器Q出現了亞穩態會有什么后果呢?
后果的嚴重程度是有你的設計決定的,如果系統對產生的錯誤不敏感,那么系統可能正常工作,或者經過短暫的異常之后可以恢復正常工作,例如設計異步FIFO時使用格雷碼計數器當讀寫地址的指針就是處于這方面的考慮。如果設計上沒有考慮如何降低系統對亞穩態的敏感程度,那么一旦出現亞穩態,系統可能就崩潰了。
6.亞穩態與系統可行性
使用同步電路以后,亞穩態仍然有發生的可能,與此相連的是MTBF(Mean Time Between Failure),亞穩態的發生概率與時鐘頻率無關,但是MTBF與時鐘有密切關系。 有文章提供了一個例子,某一系統在20MHz時鐘下工作時,MTBF約為50年,但是時鐘頻率提高到40MHz時,MTBF只有1分鐘!可見降低時鐘頻率可以大大減小亞穩態導致系統錯誤的出現,其原因在于,提供較長的resolution time可減小亞穩態傳遞到下一級的機會,提高系統的MTBF,如圖2所示。
圖 2 resolution time與MTBF的關系
7. 總結
亞穩態與設計可靠性有非常密切的關系,當前對很多設計來說,實現需要的功能并不困難,難的是提高系統的穩定性、可靠性,較小亞穩態發生的概率,并降低系統對亞穩態錯誤的敏感程度可以提高系統的可靠性。
-
數字電路
+關注
關注
193文章
1605瀏覽量
80580 -
亞穩態
+關注
關注
0文章
46瀏覽量
13268
原文標題:電路設計時,如何降低亞穩態發生機率?
文章出處:【微信號:gh_bee81f890fc1,微信公眾號:面包板社區】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論