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