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