高速數字電路互連時序模型與布線長度分析 高速電路設計領域,關于布線有一種幾乎是公理的認識,即“等長”走線,認為走線只要等長就一定滿足時序需求,就不會存在時序問題。本文對常用高速器件的互連時序建立模型,并給出一般性的時序分析公式。為體現具體問題具體分析的原則,避免將公式當成萬能公式,文中給出了MII、RMII、RGMII和SPI的實例分析。實例分析中,結合使用公式分析和理論分析兩種方法,以實例證明公式的局限性和兩種方法的利弊。本文最后還基于這些實例分析,給出了SDRAM和DDR SDRAM等布線的一般性原則。 本文通過實例指明時序分析的關鍵在于:對具體時序理解透徹的基礎上,具體問題具體分析,不能一味的套用公式,更不是通過走線的等長來解決時序問題。 1.典型高速器件互連時序模型 圖1給出通用高速器件互連接口簡化模型。圖中,左側虛線框表示通信器件雙方的主控端。常見的實際情形有:SDRAM控制器、SPI主控制器等。經過適當的演化,基于本模型很容易得到I2C主控端、MII接口的TX組模型、RMII共享時鐘模型以及DDR控制信號與地址信號的互連模型等。右側虛線框表示通信中的被動端。本模型中,數據是雙向的,但是時鐘是單一方向。簡單地說,就是時鐘單一方向發送,數據雙向傳遞。這個特點是本模型的適應場景。 圖1簡化的器件互連模型 圖2是基于本模型的數據寫時序關系圖。圖中,T0表示主控端內部時鐘發生器CLK發出的時鐘到達觸發器Q1時鐘輸入端的延時;T1表示觸發器Q1接受到時鐘后到Q1輸出端出現數據的延時;T2表示主控端內部時鐘發生器CLK發出的時鐘到主控端外部時鐘輸出引腳的延時;T3表示內部觸發器Q1輸出的數據到達主控端外部數據輸出引腳的延時。通常,半導體制造商不會給出T0-T3這些參數,通常會給出一個用于反映這些參數最終等價效果的參數,即主控端外部數據引腳上出現數據時相對于外部時鐘引腳出現時鐘信號的延時,這里記為Tco. 圖2數據寫時序圖 時序分析最關心的參數是信號到達接受端的最終建立時間和保持時間是否符合器件要求。這里將建立時間和保持時間分別記為Tsetup和Thold.Tflt-clk和Tflt-data分別表示時鐘信號和數據信號的飛行時間,即他們在對應走線上的延時。Tjitter-clk和Tjitter-data分別代表時鐘信號和數據信號上的抖動時間。 器件的建立時間和保持時間是通過描述器件外部的時鐘引腳和數據引腳上的時序關系來反映器件內部相關的時序延時和相關目標邏輯時序關系的集總參數。信號從器件的引腳到內部目標邏輯存在一定延時,同時內部邏輯需要最終的建立和保持時間,綜合器件內部的這些需求,最終得到器件對外的時序要求。 分析圖2中時鐘信號和數據信號的相互關系,可以發現:由于Tco的存在,如果器件間的時鐘和數據走線等長,則在接收端,用于發送時間的邊沿不能用于數據的采樣。為了在接收端對數據進行正確采樣,必須調整時鐘和數據走線的關系,有兩種方法:第一,時鐘走線長于數據走線,使得數據飛行時間較時鐘短。此時,在接收端仍然可以使用產生數據的時鐘沿采樣數據;第二,數據走線比時鐘長,使得數據飛行時間較時鐘長。此時,可以使用使用產生數據時鐘沿的下一個上升沿采樣數據。 實際工程中,設計人員一般使用第二種方法并希望對于數字系統的建立時間和保持時間都留有一定裕量,因此我們可以得出下列公式,即建立時間公式: (Tsetup)min + (Tco)max + (Tflt-data - Tflt-clk)max + Tjitter-clk+ Tjitter-data (Thold)min(2) 很顯然,Tco、Tflt-data、Tflt-clk中,Tco是器件的固有參數,Tflt-data和Tflt-clk取決于對應的PCB走線長度和走線層等。如果Tflt-data和Tflt-clk的差過小,則導致數據的保持時間不足;如果過大,則會使得建立時間不足。因此,Tflt-data和Tflt-clk的差存在上限和下限雙重限制。 圖3數據讀時序圖 圖3是基于本模型的數據讀時序關系圖。圖中參數含義與前述相同。需要注意的是:在讀關系中,時鐘首先需要從主控端傳到從端,待從端發出的數據回到主控端后,才能由主控端對數據進行采樣。因此,建立和保持時間的公式如下: (Tsetup)min + (Tco)max + (Tflt-data)max + (Tflt-clk)min + Tjitter-clk+ Tjitter-data 圖4 使用數據產生沿的后續邊沿采樣數據 2.時序分析實例 2.1 MII接口 MII接口是最常用的百兆以太網PHY芯片與MAC間的接口,表1和表2分別是某百兆PHY芯片和某MPU內部MAC的RX通道時序參數表。 表1某PHY芯片RX通道時序參數表 表2某MPU內MAC RX通道時序參數表 通過表格可以看出,MAC側要求RXD、RX_DV和RX_ER信號對RX_CLK信號的建立與保持時間最小為8ns,也就是實際的建立與保持時間不得小于8ns.假設RXD、RX_DV與RX_CLK信號從PHY側到MAC側的延時完全相同,則在MAC側有: 傳輸的時鐘周期為40ns; 最小的建立時間為40-tval =12ns; 最小的保持時間為thold = 10ns; 最小的建立時間和保持時間總和為22ns; 假設RXD、RX_DV和RX_ER信號對RX_CLK信號存在延時,則存在兩種極端情況: 當延時導致建立時間達到最低要求,即當相對延時為+4ns時,則在MAC側建立時間為8ns,保持時間為14ns; 當延時導致保持時間達到最低要求,即當相對延時為-2ns時,則在MAC側建立時間為14ns,保持時間為8ns; 假設MII接口走線在PCB表層,PCB板材為FR-4,可知信號傳輸速度大約為160ps/inch,綜合上述兩種情況,可以得出RXD、RX_DV和RX_ER相對RX_CLK的走線長度關系為:延遲+4ns時,RXD、RX_DV和RX_ER走線相對RX_CLK可以長:4000/160 * 2.54 = 63CM;延遲-2ns時,RXD、RX_DV和RX_ER走線相對RX_CLK可以短:2000/160 * 2.54 = 32CM;可見,對于MII的RX通道信號,可以無需考慮等長。 注意,時序關系不代表不需要考慮反射問題。當信號在走線上的傳播和返回延時比信號的上升時間長時,就有必要考慮是否進行終端阻抗匹配以抑制反射。 下面使用公式進行計算,以對比理論分析和公式法的優劣。為簡化計算,忽略公式(1)和公式(2)中的抖動因素Tjitter-clk和Tjitter-data,相關公式變為: (Tsetup)min + (Tco)max + (Tflt-data - Tflt-clk)max(Thold)min(6) 將表2和表3中的參數帶入公式(5)和公式(6),得出: 10 - (Tco)minflt-data - Tflt-clk 表3 某PHY芯片TX通道時序參數表 表4 某MPU內MAC TX通道時序參數表 使用公式進行計算,為簡化忽略公式(3)和公式(4)中的抖動因素Tjitter-clk和Tjitter-data,則相關公式變為: (Tsetup)min + (Tco)max + (Tflt-data)max + (Tflt-clk)min 表5某PHY芯片的時序參數表 表6某MPU內MAC RX通道時序參數表 表7某MPU內MAC TX通道時序參數表 該MPU內MAC在RMII模式時,不支持時鐘輸出,同時PHY要求時鐘信號為輸入。該MPU配合PHY工作在RMII模式下,需要外部使用一顆符合雙方精度要求的50MHz振蕩器,來為雙方提供時鐘基準。 為簡化時序分析,可以將外部振蕩器至MPU和PHY雙方的走線設計為等長,此時時鐘信號在兩者的時鐘輸入引腳上具有完全一致的時刻。 注意:等長走線的一般實現方法是蛇形線,但等長的蛇形線并不一定意味著等延時。只有當蛇形線的延時效果等同或者盡可能近似于直線時,等長才意味著等延時。為了讓蛇形線具有類似于直線的延時效果,蛇形線的高度應盡可能小,蛇形線的開口應盡可能寬,也就是說,波浪線的外形更利于等延時。 當時鐘信號等時刻到達收發雙方的輸入引腳時,具有如圖5所示的時序模型,因而僅需討論數據線的長度。 圖5共用時鐘的RMII時序模型 根據上述時序模型,可得出下列時序公式: (Tsetup)min + (Tco)max + (Tflt-data)max + Tjitter-clk+ Tjitter-data (Thold)min(8) 對RXD、CRS_DV和RX_ER信號來說,該組信號由PHY發給MPU,根據公式(7)和公式(8),可得(為了簡化,認為最小的Tco時間等于Thold時間): 1 flt-data < 2 走線時間不可能為負值,假設走線位于PCB表層,材料為FR-4,則: Lflt-data < 31.75CM 對TXD、和TX_EN信號來說,該組信號由MPU發給PHY,根據公式(7)和公式(8),可得: -0.5 flt-data < 3 走線時間不可能為負值,假設走線位于PCB表層,材料為FR-4,則: Lflt-data < 47.625CM 對RXD、CRS_DV和RX_ER信號來說,該組信號由PHY發給MPU。假設數據線走線長度為0,則數據線延時為0ns,此時在MPU側接受到信號的最小建立時間為:20-14=6ns,最小保持時間為:3ns。MAC側要求的最小建立時間為4ns,最小保持時間為2ns?梢姡藭r數據線的走線長度最長延時可以到2ns,此時MAC側接受到信號的建立時間和保持時間分別為4ns和5ns,符合時序要求。所以走線長度最長可以為31.75CM。 對TXD和TX_EN信號來說,該組信號由MPU發給PHY。假設數據線走線長度為0,則數據線延時為0ns,此時在PHY側接受到信號的最小建立時間為:20-13=7ns,最小保持時間為:2ns。MAC側要求的最小建立時間為4ns,最小保持時間為1.5ns。可見,此時數據線的走線長度最長延時可以到3ns,此時MAC側接受到信號的建立時間和保持時間分別為4ns和4.5ns,符合時序要求。所以走線長度最長可以為47.625CM。 3.結論 進行時序分析的關鍵點首先在于必須對被分析的時序關系非常清楚、能夠深刻理解當前對象的時序協議。其次,時序分析要針對具體問題具體分析,不存在所謂的萬能時序公式。有時,單純依靠理論分析或者單純依靠時序關系公式并不一定能夠解決問題,而是要兩者結合使用。 對于高速信號的布線而言,存在“等長”說,即很多工程師認為只要所有的線路盡可能等長,就一定滿足時序要求。事實上,這是一種錯誤的認識,本文的實例分析就明確證明了這一點。只有那些時鐘和數據由同一個器件發出,由另一個器件接受,并且發送端的建立時間和保持時間恰好滿足接收端需求時,“等長”才算是一種偷懶的方法。除此以外,尤其是那些通過單向時鐘驅動、采樣雙向數據或者逆向數據的信號,必須具體問題具體分析。當然,對于PC機這類通用設備來說,由于主板的設計需要兼容不同廠家的內存條,此時走線設計為等長確實是合理的設計。 公共時鐘系統由于使用單向時鐘信號對雙向數據進行采樣,因此存在雙重限制,兩組限制制約了走線不僅有走線長度差值限制,同時還有走線總長度限制。源同步時鐘系統使用與數據同向的時鐘,因此只存在單重限制,使得走線只有差限制而沒有總長度限制。 一般而言,對于SPI接口、MII接口、共享時鐘的RMII接口或者SDRAM信號,走線應盡可能的短。對于DDR SDRAM信號以及RGMII等DDR時序的接口來說,多數情況下,組內等長確實是一種簡便快速的方法。 |