回覆列表
  • 1 # 小馬哥

    中文名稱是“亞穩態”亞穩態的定義(說明): 在 Howard Johnson 的《High Speed Digital Design: A Handbook of Black Magic》一書中,專門就邏輯電路的亞穩態作了專門的分析。由於 timing margine 不夠,電路的輸入沒有能夠上到所需要的邏輯電平高度,導致邏輯器內部不得不花費額外的時間使得輸出達到所需的穩定邏輯狀態,這個額外的時間,我們也叫作決斷時間(resolution time)。在 Johnson舉的例子裡,邏輯器件的邏輯電平是用電容來維持的,如果時序不夠,就好像給電容充電不足。 Howard Johnson 在書中(P123 頁-3.11.2)用一個 flip-flop 的例子來說明亞穩態(metastable behavior)。 書中用一個 amplifier,兩個 switch,一個電容來模擬 flip-flop 的工作狀態。電容用來儲存電路的邏輯電平,兩個 switch 狀態的改變可以模擬資料的輸入和 flip-flop 的工作狀態。在flip-flop開始翻轉之前,輸入資料的邏輯電平儲存在電容裡,然後flip-flop透過一個switch S1斷開與輸入端的連線,同時透過 amplifier(帶有一個正反饋環)開始進行內部的翻轉機制。 從輸入端 switch S1斷開,和正反饋環上的 switch S2閉合開始,amplifier 就處於一個冪指數形式的中間態,或者說是不穩定態(形象地說就是“工作中”),可以用如下式子表達:V(out)=V(in)exp[kt]。其中 V(in)表示輸入邏輯的電平,V(out)表示輸出的邏輯電平。k 是一個時間常數,它和 amplifier 的頻寬以及正反饋環路有關。 我們看到,如果 flip-flop 在用電容對輸入電壓取樣的時間過短,也就是所謂的時序不夠,就會導致 V(in)的值很小,對於 flip-flop 就需要花很長的時間使得輸出邏輯 V(out)達到標準電平,也就是說電路處於中間態的時間變長,使得電路“反應”變遲鈍。這就是我們所說的“亞穩態”。 從 Johnoson 的一系列試驗可以看出,隨著 timing margine 不足程度的加深,邏輯電路“反應”會越來越慢,當超過一定的極限時候,邏輯電路就沒有輸出。 可以說,電路亞穩態的存在,會給時序設計帶來很多連鎖反應。因此,對於高速邏輯電路的設計,充分的 timing margine 是必需的。 以上是個人的一點體會心得,相關的理論分析和例項可以參閱 Howard Johnson的書。 亞穩態在設計中的問題分析 1. 亞穩態與設計可靠性 設計數位電路時大家都知道同步是非常重要的,特別當要輸入一個訊號到一個同步電路中,但是該訊號由另一個時鐘驅動時,這是要在介面處採取一些措施,使輸入的非同步訊號同步化,否則電路將無法正常工作,因為輸入端很可能出現亞穩態(Metastability),導致取樣錯誤。這裡我們對亞穩態的起因、危害、對可靠性的影響和消除模擬做一些介紹。 2. 亞穩態發生的原因 在同步系統中,如果觸發器的 setup time / hold time 不滿足,就可能產生亞穩態,此時觸發器輸出端 Q 在有效時鐘沿之後比較長的一段時間處於不確定的狀態,在這段時間裡 Q 端會出現毛刺、振盪、或固定在某一電壓值,而不一定等於資料輸入端 D 的值。這段之間稱為決斷時間(resolution time)。經過 resolution time 之後 Q端將穩定到 0 或1上,但是究竟是0 還是 1,這是隨機的,與輸入沒有必然的關係。亞穩態實質是介於”0””1”電平之間的一個狀態。亞穩態是 FF的一個固有特性。正常取樣也會有一個亞穩態時間。當建立保持時間滿足時,FF 在經歷取樣、亞穩態後,進入一個正確的狀態。如果建立保持時間不滿足,那麼FF會有一個相當長的亞穩態時間,最後隨機進入一個固定態。 3. 亞穩態的危害 由於輸出在穩定下來之前可能是毛刺、振盪、固定的某一電壓值,因此亞穩態除了導致邏輯誤判之外,輸出 0~1 之間的中間電壓值還會使下一級產生亞穩態,即導致 meta stability的傳播。邏輯誤判(由於組合邏輯的 race,導致匯流排狀態的不穩定)有可能透過電路的特殊設計減輕危害(如非同步 FIFO中 Gray碼計數器的作用,一次只變化一位),而亞穩態的傳播則擴大了故障面,難以處理。 4. 亞穩態的簡單解決辦法 只要系統中有非同步元件,亞穩態就是無法避免的,因此設計的電路首先要減少亞穩態導致錯誤的發生,其次要使系統對產生的錯誤不敏感。前者要靠同步來實現,而後者根據不同的設計應用有不同的處理辦法。用同步來減少亞穩態發生機會的典型電路如圖 1 所示。 圖 1 兩級同步化電路 在圖 1 中,左邊為非同步輸入端,經過兩級觸發器同步,在右邊的輸出將是同步的,而且該輸出基本不存在亞穩態。其原理是即使第一個觸發器的輸出端存在亞穩態,經過一個 CLK 週期後,第二個觸發器 D 端的電平仍未穩定的機率非常小,因此第二個觸發器 Q 端基本不會產生亞穩態。 注意,這裡說的是“基本”,也就是無法“根除”,那麼如果第二個觸發器 Q出現了亞穩態會有什麼後果呢?後果的嚴重程度是由你的設計決定的,如果系統對產生的錯誤不敏感,那麼系統可能正常工作,或者經過短暫的異常之後可以恢復正常工作,例如設計非同步 FIFO時使用格雷碼計數器當讀寫地址的指標就是處於這方面的考慮。如果設計上沒有考慮如何降低系統對亞穩態的敏感程度,那麼一旦出現亞穩態,系統可能就崩潰了。 5. 亞穩態與系統可靠性 使用同步電路以後,亞穩態仍然有發生的可能,與此相連的是平均故障間隔時間MTBF(mean time between failure),亞穩態的發生機率與時鐘頻率無關,但是 MTBF與時鐘有密切關係。 有文章提供了一個例子,某一系統在 20MHz 時鐘下工作時,MTBF約為 50年,但是時鐘頻率提高到 40MHz 時,MTBF 只有 1 分鐘!可見降低時鐘頻率可以大大減小亞穩態導致系統錯誤的出現,其原因在於,時鐘週期如果儘可能的大於 resolution time 可減小亞穩態傳遞到下一級的機會,提高系統的 MTBF,如圖 2 所示。 6. 總結 亞穩態與設計可靠性有非常密切的關係,當前對很多設計來說,實現需要的功能並不困難,難的是提高系統的穩定性、可靠性,較小亞穩態發生的機率,並降低系統對亞穩態錯誤的敏感程度可以提高系統的可靠性。 7. Cures for metastability(摘自 johnson 所書) 用反應更快的 Flip-Flop,減少 metastability window。 如圖一,引入由同一時鐘驅動的串接 DFF。 降低取樣頻率,給 DFF 更多的時間避開 metastability window(亞穩態時間)。 使用邊沿變化快速的時鐘訊號。 減少亞穩態出現的關鍵是器件使用比較好的工藝和時鐘週期的餘量大一些。好器件工藝的 resolution time會比較短,例如傳統的 TTL 電路中,高速的 74F系列就比74LS好;時鐘頻率低一些,出現亞穩態時提供給輸出穩定的時間也會多一些,這樣可以減小亞穩態傳播的機會。同步系統也存在亞穩態,但是相比非同步系統來說,比較容易控制,只要 setup/hold time滿足就可以,而對非同步系統,這個簡單的要求也不容易滿足,這也是同步系統的優點之一。

  • 中秋節和大豐收的關聯?
  • 氨基酸肥料可以和磷肥一起用嗎?