跨越鴻溝:同步世界中的異步信號
發布時間:2007/8/15 0:00:00 訪問次數:921
只有最初級的邏輯電路才使用單一的時鐘。大多數與數據傳輸相關的應用都有與生俱來的挑戰,即跨越多個時鐘域的數據移動,例如磁盤控制器、CDROM/DVD 控制器、調制解調器、網卡以及網絡處理器等。當信號從一個時鐘域傳送到另一個時鐘域時,出現在新時鐘域的信號是異步信號。
在現代 IC、ASIC 以及 FPGA 設計中,許多軟件程序可以幫助工程師建立幾百萬門的電路,但這些程序都無法解決信號同步問題。設計者需要了解可靠的設計技巧,以減少電路在跨時鐘域通信時的故障風險。
基礎
從事多時鐘設計的第一步是要理解信號穩定性問題。當一個信號跨越某個時鐘域時,對新時鐘域的電路來說它就是一個異步信號。接收該信號的電路需要對其進行同步。同步可以防止第一級存儲單元(觸發器)的亞穩態在新的時鐘域里傳播蔓延。
亞穩態是指觸發器無法在某個規定時間段內達到一個可確認的狀態。當一個觸發器進入亞穩態時,既無法預測該單元的輸出電平,也無法預測何時輸出才能穩定在某個正確的電平上。在這個穩定期間,觸發器輸出一些中間級電平,或者可能處于振蕩狀態,并且這種無用的輸出電平可以沿信號通道上的各個觸發器級聯式傳播下去。
對任何一種觸發器,在時鐘觸發沿前后的一個小時間窗口內,輸入信號必須穩定。這一時間窗口是多種因素的函數,包括觸發器設計、實現技術、運行環境以及無緩沖輸出上的負載等。輸入信號陡峭的邊沿可以將此窗口減至最小。隨著時鐘頻率的升高,會出現更多有問題的時間窗口,而隨著數據頻率的提升,這種窗口的命中概率則會增加。
FPGA 制造商和 IC 晶片廠用“MTBF”來標識合格的觸發器,并且確定它們的特性。“MTBF”(平均無故障時間)用統計方法描述了一個觸發器的亞穩態特性,即確定某個觸發器出現故障的概率。在計算 MTBF 時,制造商部分基于輸入信號改變導致觸發器不穩定期間的時間窗口長度。另外,MTBF 的計算還使用了輸入信號的頻率以及驅動觸發器的時鐘頻率。
在一個 ASIC 或 FPGA 庫中,每種觸發器都有時序要求,以幫助你確定容易出問題的窗口。“建立時間”(Setup time)是指在時鐘沿到來之前,觸發器輸入信號必須保持穩定的時間。“保持時間”(Hold time)則是指在時鐘沿之后,信號必須保持穩定的時間。這些指標通常比較保守,以應對電源電壓、工作溫度、信號質量以及制造工藝等各種可能的差異。如果一個設計滿足了這些時序要求,則觸發器出現錯誤的可能性可以忽略不計。
現代 IC 與 FPGA 設計中使用的綜合工具可以保證設計能滿足每個數字電路觸發器對建立與保持時間的要求。然而,異步信號卻給軟件提出了難題。對新的時鐘域來說,從其它時鐘域傳來的信號是異步的。大多數綜合工具在判定異步信號是否滿足觸發器時序要求時遇到了麻煩。因為它們不能確定觸發器處于非穩態的時間,所以它們也就不能確定從一個觸發器通過組合邏輯到達下一個觸發器的總延遲時間。所以,最好的辦法是使用一些電路來減輕異步信號的影響。
信號同步
信號同步的目的是防止新時鐘域中第一級觸發器的亞穩態信號對下級邏輯造成影響。簡單的同步器由兩個觸發器串聯而成,中間沒有其它組合電路。這種設計可以保證后面的觸發器獲得前一個觸發器輸出時,前一個觸發器已退出了亞穩態,并且輸出已穩定。設計中要注意將兩個觸發器放得盡可能近,以確保兩者間有最小的時滯(clock skew)。
IC 制造廠提供同步單元,幫助完成信號同步工作。這些單元通常包括一個有非常高增益的觸發器,它比普通觸發器耗電更高,也比較大。這種觸發器降低了對輸入信號建立-保持時間的要求,并且當輸入信號導致亞穩態時,它可以防止出現振蕩。另一種同步器單元包括兩個觸發器,省去了將兩個單獨觸發器靠近放置的工作,也防止設計人員誤在兩個觸發器間加入任何其它的組合邏輯。
為了使同步工作能正常進行,從某個時鐘域傳來的信號應先通過原時鐘域上的一個觸發器,然后不經過兩個時鐘域間的任何組合邏輯,直接進入同步器的第一個觸發器中(圖 1)。這一要求非常重要,因為同步器的第一級觸發器對組合邏輯所產生的毛刺非常敏感。如果一個足夠長的信號毛刺正好滿足建立-保持時間的要求,則同步器的第一級觸發器會將其放行,給新時鐘域的后續邏輯送出一個虛假的信號。
一個經同步后的信號在兩個時鐘沿以后就成為新時鐘域中的有效信號。信號的延遲是新時鐘域中的一到兩個時鐘周期。一種粗略的估算方法是同步器電路在新時鐘域中造成兩個時鐘周期的延遲,設計者需要考慮同步延遲將對跨時鐘域的信號時序造成的影響。
同步器有許多種設計方法,因為一種同步器不能滿足所有應用的需求。同步器的類型基本上有三種:電平、邊沿檢測和脈沖(表 1)。雖然還存在著其它類型的同步器,但這三種類型的同
只有最初級的邏輯電路才使用單一的時鐘。大多數與數據傳輸相關的應用都有與生俱來的挑戰,即跨越多個時鐘域的數據移動,例如磁盤控制器、CDROM/DVD 控制器、調制解調器、網卡以及網絡處理器等。當信號從一個時鐘域傳送到另一個時鐘域時,出現在新時鐘域的信號是異步信號。
在現代 IC、ASIC 以及 FPGA 設計中,許多軟件程序可以幫助工程師建立幾百萬門的電路,但這些程序都無法解決信號同步問題。設計者需要了解可靠的設計技巧,以減少電路在跨時鐘域通信時的故障風險。
基礎
從事多時鐘設計的第一步是要理解信號穩定性問題。當一個信號跨越某個時鐘域時,對新時鐘域的電路來說它就是一個異步信號。接收該信號的電路需要對其進行同步。同步可以防止第一級存儲單元(觸發器)的亞穩態在新的時鐘域里傳播蔓延。
亞穩態是指觸發器無法在某個規定時間段內達到一個可確認的狀態。當一個觸發器進入亞穩態時,既無法預測該單元的輸出電平,也無法預測何時輸出才能穩定在某個正確的電平上。在這個穩定期間,觸發器輸出一些中間級電平,或者可能處于振蕩狀態,并且這種無用的輸出電平可以沿信號通道上的各個觸發器級聯式傳播下去。
對任何一種觸發器,在時鐘觸發沿前后的一個小時間窗口內,輸入信號必須穩定。這一時間窗口是多種因素的函數,包括觸發器設計、實現技術、運行環境以及無緩沖輸出上的負載等。輸入信號陡峭的邊沿可以將此窗口減至最小。隨著時鐘頻率的升高,會出現更多有問題的時間窗口,而隨著數據頻率的提升,這種窗口的命中概率則會增加。
FPGA 制造商和 IC 晶片廠用“MTBF”來標識合格的觸發器,并且確定它們的特性。“MTBF”(平均無故障時間)用統計方法描述了一個觸發器的亞穩態特性,即確定某個觸發器出現故障的概率。在計算 MTBF 時,制造商部分基于輸入信號改變導致觸發器不穩定期間的時間窗口長度。另外,MTBF 的計算還使用了輸入信號的頻率以及驅動觸發器的時鐘頻率。
在一個 ASIC 或 FPGA 庫中,每種觸發器都有時序要求,以幫助你確定容易出問題的窗口。“建立時間”(Setup time)是指在時鐘沿到來之前,觸發器輸入信號必須保持穩定的時間。“保持時間”(Hold time)則是指在時鐘沿之后,信號必須保持穩定的時間。這些指標通常比較保守,以應對電源電壓、工作溫度、信號質量以及制造工藝等各種可能的差異。如果一個設計滿足了這些時序要求,則觸發器出現錯誤的可能性可以忽略不計。
現代 IC 與 FPGA 設計中使用的綜合工具可以保證設計能滿足每個數字電路觸發器對建立與保持時間的要求。然而,異步信號卻給軟件提出了難題。對新的時鐘域來說,從其它時鐘域傳來的信號是異步的。大多數綜合工具在判定異步信號是否滿足觸發器時序要求時遇到了麻煩。因為它們不能確定觸發器處于非穩態的時間,所以它們也就不能確定從一個觸發器通過組合邏輯到達下一個觸發器的總延遲時間。所以,最好的辦法是使用一些電路來減輕異步信號的影響。
信號同步
信號同步的目的是防止新時鐘域中第一級觸發器的亞穩態信號對下級邏輯造成影響。簡單的同步器由兩個觸發器串聯而成,中間沒有其它組合電路。這種設計可以保證后面的觸發器獲得前一個觸發器輸出時,前一個觸發器已退出了亞穩態,并且輸出已穩定。設計中要注意將兩個觸發器放得盡可能近,以確保兩者間有最小的時滯(clock skew)。
IC 制造廠提供同步單元,幫助完成信號同步工作。這些單元通常包括一個有非常高增益的觸發器,它比普通觸發器耗電更高,也比較大。這種觸發器降低了對輸入信號建立-保持時間的要求,并且當輸入信號導致亞穩態時,它可以防止出現振蕩。另一種同步器單元包括兩個觸發器,省去了將兩個單獨觸發器靠近放置的工作,也防止設計人員誤在兩個觸發器間加入任何其它的組合邏輯。
為了使同步工作能正常進行,從某個時鐘域傳來的信號應先通過原時鐘域上的一個觸發器,然后不經過兩個時鐘域間的任何組合邏輯,直接進入同步器的第一個觸發器中(圖 1)。這一要求非常重要,因為同步器的第一級觸發器對組合邏輯所產生的毛刺非常敏感。如果一個足夠長的信號毛刺正好滿足建立-保持時間的要求,則同步器的第一級觸發器會將其放行,給新時鐘域的后續邏輯送出一個虛假的信號。
一個經同步后的信號在兩個時鐘沿以后就成為新時鐘域中的有效信號。信號的延遲是新時鐘域中的一到兩個時鐘周期。一種粗略的估算方法是同步器電路在新時鐘域中造成兩個時鐘周期的延遲,設計者需要考慮同步延遲將對跨時鐘域的信號時序造成的影響。
同步器有許多種設計方法,因為一種同步器不能滿足所有應用的需求。同步器的類型基本上有三種:電平、邊沿檢測和脈沖(表 1)。雖然還存在著其它類型的同步器,但這三種類型的同