??? 摘 要: 介紹了采用Virtex-ⅡPRO系列FPGA設(shè)計的應(yīng)用于下一代無線通信系統(tǒng)中的高速I/O。由于充分利用芯片中集成的Rocket I/O模塊,并采用差分" title="差分">差分輸入?yún)⒖紩r鐘、8B/10B編碼、預(yù)加重處理、通道綁定" title="綁定">綁定技術(shù)等,實現(xiàn)了四個綁定通道的高速互連(2.5Gbaud)。設(shè)計結(jié)果表明,采用Rocket I/O模塊進(jìn)行高速I/O設(shè)計,可極大簡化片上邏輯電路和片外PCB版圖設(shè)計。
??? 關(guān)鍵詞: Rocket I/O? 抖動? 差分線? 通道綁定? 眼圖
?
??? 由于通信對帶寬的需求迅猛增長,促使一系列基于差分、源同步、時鐘數(shù)據(jù)恢復(fù)(CDR)等先進(jìn)技術(shù)的互連方式應(yīng)運而生。在傳統(tǒng)設(shè)計中,單端互連方式易受干擾、噪聲的影響,傳輸速率" title="傳輸速率">傳輸速率最高只能達(dá)到200~250Mbps/Line;在更高速率的接口設(shè)計中,多采用包含有源同步時鐘的差分串行傳輸方式(如LVDS、LVPECL等),但在傳輸過程中時鐘與數(shù)據(jù)分別發(fā)送,傳輸過程中各信號瞬時抖動不一致,破壞了接收數(shù)據(jù)與時鐘之間的定時關(guān)系,因而傳輸速率很難超越1Gbps/Channel;XILINX公司推出了內(nèi)嵌Rocket I/O模塊的VirtexⅡPRO系列FPGA,使實現(xiàn)更高的傳輸速率成為可能[1~3]。采用了CML(Current Mode Logic)、CDR、線路編碼(8B/10B)和預(yù)加重等技術(shù)的Rocket I/O模塊,可極大地減小時鐘扭曲、信號衰減和線路噪聲對接收性能的影響,從而使傳輸速率進(jìn)一步提高。本文著重討論如何配置Rocket I/O模塊,進(jìn)行FPGA的片內(nèi)、片外設(shè)計和仿真,從而在以10英寸差分線組互連的兩片F(xiàn)PGA間達(dá)到2.5Gbaud/Channel的傳輸速率,并實現(xiàn)了四個雙向通道的綁定操作。
1 Rocket I/O特性
??? VirtexⅡPRO系列FPGA內(nèi)嵌的Rocket I/O模塊是基于Mindspeed公司四代SkyRailTM技術(shù)開發(fā)的高速串行收發(fā)器" title="收發(fā)器">收發(fā)器,該系列FPGA單片最多集成了24路Rocket I/O收發(fā)器,最大可提供75Gbps全雙工通信帶寬。Rocket I/O模塊靈活的配置方式使其可以提供對光纖通道、千兆以太網(wǎng)、XAUI、Infiniband、PCI Express等一系列高速通信標(biāo)準(zhǔn)的支持。其主要特性為:⑴每個通道收發(fā)器支持從622Mbps至3.125Gbps的全雙工傳輸速率;⑵收發(fā)器內(nèi)嵌發(fā)送時鐘生成電路和接收時鐘恢復(fù)電路;⑶CDR源同步數(shù)據(jù)發(fā)送方式;⑷五級可編程輸出電壓幅度(800~1600mV)控制;⑸四級可編程輸出預(yù)加重處理;⑹收發(fā)器支持交流和直流耦合方式,可兼容多種高速接口標(biāo)準(zhǔn);⑺片內(nèi)集成可編程差分終端電阻(50Ω、75Ω);⑻支持片內(nèi)串行和并行環(huán)回測試模式;⑼可編程標(biāo)界檢測符(comma)圖樣,提供對多種協(xié)議標(biāo)準(zhǔn)的支持。
??? Rocket I/O收發(fā)器由物理媒質(zhì)適配層(PMA)和物理編碼子層(PCS)構(gòu)成,如圖1所示。其中PMA層屬于收發(fā)器的數(shù)/?;旌筒糠?,包括串/并變換器、并/串變換器、差分發(fā)送驅(qū)動器、差分接收器、發(fā)送時鐘生成電路、接收時鐘恢復(fù)電路等。而PCS層屬于收發(fā)器的數(shù)字部分,包括發(fā)送FIFO、8B/10B編碼器、8B/10B解碼器、CRC生成和校驗、用于通道綁定和時鐘修正的Elastic Buffer等。由于要支持多種高速串行通信標(biāo)準(zhǔn),Rocket I/O模塊的PMA和PCS包含了許多配置參數(shù),這些參數(shù)可以通過外部端口和內(nèi)部配置寄存器進(jìn)行設(shè)定。配置過程可以以靜態(tài)(參數(shù)通過FPGA配置文件設(shè)定)或動態(tài)(通過Rocket I/O的配置端口進(jìn)行局部重新配置)的方式進(jìn)行。
?
2 Rocket I/O的設(shè)計要素
??? 要達(dá)到Rocket I/O模塊的最佳性能,需要考慮到諸多設(shè)計因素,本文就其最重要的部分展開討論。
2.1 參考時鐘
??? 高性能的通信質(zhì)量要求有高穩(wěn)定性和高精度的時鐘源。抖動和頻偏是衡量時鐘源的兩個重要指標(biāo)。抖動一般是指一個實際情況下的周期信號每個周期的圖樣相對于該信號理想情況下一個周期圖樣的偏差[4]。抖動產(chǎn)生原因包括時鐘晶體本身的機械振動、器件的熱噪聲和電源串入噪聲等。抖動可以分為確定性抖動和隨機抖動。確定性抖動是線性可加的,它包括信號在傳輸中媒質(zhì)損耗、碼間串?dāng)_(ISI)等周期性因素導(dǎo)致的抖動;隨機抖動是均方可加的,它是由半導(dǎo)體器件熱噪聲、電源波動等共模隨機噪聲源導(dǎo)致的。頻偏是指時鐘標(biāo)稱頻率與實際頻率的偏差,主要受晶體加工精度的影響。由于Rocket I/O模塊內(nèi)部將輸入?yún)⒖紩r鐘20倍頻,而Rocket I/O模塊可容忍的輸入?yún)⒖紩r鐘抖動公差為40ps,可見參考時鐘的抖動對其性能有直接影響。在VirtexⅡPRO系列FPGA中,Rocket I/O模塊集中分布在上、下四個通道中。當(dāng)Rocket I/O工作在2.5Gbaud以上時,參考時鐘應(yīng)采用差分輸入方式(如LVDS、LVPECL),由上、下四個通道的專用差分時鐘引腳輸入,至相同或相鄰?fù)ǖ乐蠷ocket I/O的BREFCLK輸入端,以避免時鐘信號引入不必要的抖動。在2.5Gbaud速率以下應(yīng)用時,不要用FPGA內(nèi)的DCM來生成Rocket I/O的輸入時鐘,因為經(jīng)DCM倍頻的時鐘會引入較大的抖動,使Rocket I/O的接收鎖相環(huán)無法穩(wěn)定地鎖定發(fā)送時鐘。圖2所示的連接方案中,Rocket I/O模塊的輸入時鐘由差分或單端引腳饋入后,應(yīng)只經(jīng)過一級全局緩沖(BUFG)布設(shè)到時鐘樹上,再連接到Rocket I/O模塊的參考時鐘輸入端,這樣可最大限度地降低抖動的引入。
?
2.2 復(fù) 位
??? Rocket I/O模塊的復(fù)位引腳分為發(fā)送(TX_RESET)和接收(RX_RESET)兩部分。由于DCM在輸出時鐘鎖定在設(shè)定值前,輸出時鐘處于不穩(wěn)定狀態(tài),不能用作內(nèi)部邏輯電路時鐘,所以要在DCM時鐘輸出鎖定有效,并經(jīng)過適當(dāng)延遲后才可將片內(nèi)邏輯復(fù)位。Rocket I/O模塊要求復(fù)位輸入至少保持兩個USRCLK時鐘周期來完成FIFO的初始化[1]。如圖2所示,圖中RESET_MGT模塊實現(xiàn)的即是上述功能。
2.3 8B/10B線路碼
??? 線路碼具有平衡碼流中“0”、“1”概率的能力,并且可以減小碼流中長連“0”和長連“1”串。8B/10B編碼是屬于基于塊編碼的mBnB線路碼中的一種。經(jīng)過mBnB編碼的碼流具有“0”和“1”等概率、連“0”和連“l(fā)”數(shù)小、直流基線漂移小、低頻分量小、功率譜帶寬較窄、時鐘成分豐富、定時提取方便且抖動小以及能進(jìn)行運行誤碼監(jiān)測等許多優(yōu)點,因此在Rocket I/O模塊內(nèi)部集成了8B/10B編碼器和解碼器。
??? 應(yīng)用Rocket I/O模塊進(jìn)行互連時,根據(jù)互連雙方接口的電氣標(biāo)準(zhǔn)的不同,分為直流耦合和交流耦合方式。在直流耦合方式下,并不一定要求采用8B/10B編碼,可以選擇其它的線路碼型或不用線路編碼。但在較高的傳輸速率條件下(如2.5Gbaud以上),為了達(dá)到良好的抗干擾性能和低的誤碼率,應(yīng)該考慮采用8B/10B編碼。而在交流耦合方式下,必須選擇8B/10B編碼,否則接收端" title="接收端">接收端的漂移會使接收器無法正常工作。
??? 8B/10B編碼集合中包括數(shù)據(jù)字串部分和控制字串部分[1]。數(shù)據(jù)字串包括256個可能的數(shù)值,其中包括可作為控制字串(K23.7、K28.0~K28.7、K27.7、K29.7、K30.7)的碼字。當(dāng)傳送字串作為控制字時,由Rocket I/O模塊相應(yīng)的控制字標(biāo)志輸入引腳(如TX_CHARISK)指定該字為控制字串。
2.4 通道綁定
??? 通道綁定是指將多個串行通道組合在一起構(gòu)成一個并行通道,以此來提高收發(fā)的數(shù)據(jù)吞吐率。由于每個通道在收發(fā)器互連、時鐘再生和數(shù)據(jù)接收延遲上各不相同,會使接收到的數(shù)據(jù)產(chǎn)生“錯位”的情況(如圖3所示),因此要在發(fā)送端數(shù)據(jù)流中加入一個特殊的序列——通道綁定序列,如圖中的“P”字符。每個綁定通道都設(shè)定“P”字符為通道綁定序列,在接收端指定一個通道為主通道,其余通道都依據(jù)主通道的CHBONDO有效指示進(jìn)入綁定狀態(tài),進(jìn)而鎖定本通道在Elastic Buffer中接收到通道綁定序列的位置。由Elastic Buffer向內(nèi)部邏輯電路輸出數(shù)據(jù)時,所有經(jīng)過綁定的通道都以綁定序列指定的Elastic Buffer中的偏移位置進(jìn)行對齊輸出。通道綁定完成后,為了使綁定維持在穩(wěn)定狀態(tài),各通道收發(fā)器也要以主通道收發(fā)器為基準(zhǔn)進(jìn)行時鐘修正操作。
?
??? Rocket I/O模塊通道綁定互連的一種參考方案如圖4所示。FPGA布線原則是使綁定指示信號在模塊間傳輸?shù)难舆t盡量小,盡量使兩個互連模塊間的連線不要穿越整個芯片。在FPGA布線時要對綁定指示互連線設(shè)置嚴(yán)格的時延約束參數(shù)[1]。
?
2.5? PCB設(shè)計
??? PCB設(shè)計中差分線的線型可選為微波傳輸線和帶狀線,它們都有較好的性能。微波傳輸線一般有更高的差分阻抗,不需要額外的過孔;而帶狀線在信號間提供了更好的屏蔽。PCB差分線模型如圖5所示。在通常的銅介質(zhì)、環(huán)氧-玻璃纖維基材(FR4)條件下,布線要求為:(1)差分線對內(nèi)兩條線間的距離應(yīng)盡量小于兩倍線寬,即S<2W;(2)PCB板材厚度應(yīng)大于差分線對內(nèi)兩條線之間的距離,即B>S;(3)相鄰差分對之間的距離應(yīng)大于兩倍的差分線對的距離,即D>2S。
?
??? 出于對信號線的屏蔽的考慮,設(shè)計的線型選用帶狀線,計算公式[2]為:
???
??? 當(dāng)介電常數(shù)εr=4.3、T=1mil、W=6 mil、S=10mil、B=20mil時,由⑴式得Z0≈54.4Ω。由(2)式得差分線阻抗ZDIFF≈100Ω,以適配Rocket I/O模塊設(shè)定的50Ω差分輸入阻抗[1]。PCB布線時應(yīng)注意以下幾點:
??? ?(1)差分線對內(nèi)的長度相互匹配以減少信號扭曲。為使設(shè)計傳輸速率達(dá)到2.5Gbaud,在差分線對內(nèi)部每個走線區(qū)間內(nèi)的實際布線公差應(yīng)控制在5mil內(nèi)。
??? (2)差分線對內(nèi)兩條線之間的距離應(yīng)盡可能小,以使外部干擾為共模特征。差分線對間的距離應(yīng)盡可能保持一致,以降低差分阻抗分布的不連續(xù)性。
??? (3)采用電源層作為差分線的信號回路,因為電源平面有最小的傳輸阻抗,從而減小噪聲。
??? (4)由于每個過孔可帶來0.5~1.0dB的損耗,應(yīng)盡量減少過孔數(shù)目。過孔的通孔和焊盤應(yīng)有盡量小的物理尺寸,并且在通孔穿越的未連接層不加焊盤。差分對內(nèi)的過孔不僅在數(shù)量上要匹配,而且在放置的位置上也要接近,以使阻抗分布盡量一致。
??? (5)避免導(dǎo)致阻抗不連續(xù)的90°走線,而要用圓弧或45°折線來代替。走線時應(yīng)使向左、向右折角的數(shù)量接近,這樣可減少信號經(jīng)差分線傳輸引起的扭曲。
??? 在采用圖3所示的交流耦合方式時,可以使Rocket I/O適配更多的高速I/O接口標(biāo)準(zhǔn)。設(shè)計中要注意耦合電容選用75~500nF的無極性電容,盡量選擇體積、ESR和ESL小的貼片封裝方式,并且應(yīng)放置在差分線靠近接收器一側(cè)鄰近位置上,同時布線要保證差分線對間不能交錯。
3 系統(tǒng)架構(gòu)
??? 系統(tǒng)架構(gòu)如圖6所示,在兩片F(xiàn)PGA間有4個通道共8對直流耦合差分互連線,每個通道可提供雙向2.5Gbaud的線路傳輸速率。通道綁定模塊將每片F(xiàn)PGA的4個Rocket I/O模塊綁定在一起,在采用8B/10B編碼條件下提供64×125Mbps雙向速率。每片的通道綁定模塊還提供8×2位的控制接口,指示當(dāng)前正在發(fā)送或接收到的是控制字還是數(shù)據(jù)。系統(tǒng)的時鐘源選用ICS8442差分輸出(LVDS)頻率合成器,它可以提供31.25MHz~700MHz的頻率合成范圍和低的抖動(RMS period:2.7ps;Cycle-to-cycle:18ps),可滿足設(shè)計中Rocket I/O模塊對參考時鐘性能的要求。設(shè)計中由ICS8442的兩路差分輸出驅(qū)動器將合成后的時鐘送至兩片F(xiàn)PGA的差分時鐘輸入端。四個通道Rocket I/O模塊發(fā)端采用20%預(yù)加重,以減小信號高頻分量因介質(zhì)損耗而在收端引起的信號畸變,從而改善接收效果。
?
??? 圖7所示為發(fā)送控制狀態(tài)機,兩片F(xiàn)PGA以主、從方式工作,主設(shè)備在復(fù)位后連續(xù)發(fā)送用于修正接收鎖相環(huán)時鐘的特定“K”字符,同時從設(shè)備判斷是否成功接收到“K”字符。如從設(shè)備成功接收則表明接收時鐘正確恢復(fù),然后從設(shè)備發(fā)送“K”字符以使主設(shè)備的接收時鐘同步。主設(shè)備判斷每個通道是否都進(jìn)入接收時鐘同步狀態(tài),若是則開始發(fā)送通道綁定序列。從設(shè)備確定接收通道綁定完成后,停止向主設(shè)備發(fā)送“K”字符而改發(fā)通道綁定序列,使主設(shè)備也完成接收綁定。此時主、從設(shè)備都維持在通道綁定狀態(tài),并且間歇發(fā)送鎖相環(huán)同步“K”字符以維持接收時鐘同步。若此時有一側(cè)進(jìn)入失同步狀態(tài),以上同步、綁定過程將由主設(shè)備再次發(fā)起。在設(shè)計中幀的數(shù)據(jù)段長度固定為1K(8Byte),數(shù)據(jù)段結(jié)束后為4字節(jié)的CRC校驗值,如接收CRC錯誤則將該幀丟棄。任何一方要發(fā)送數(shù)據(jù)幀時便在幀的首尾各插入一個空閑時隙,并在發(fā)送完成后繼續(xù)維持同步狀態(tài)。
?
4? 板級設(shè)計仿真
??? 由于Rocket I/O收發(fā)器工作在2.5Gbaud的速率下,基于IBIS模型的仿真難以提供足夠的精度。為了精確仿真Rocket I/O收發(fā)器在板級設(shè)計中的性能,采用收發(fā)器HSPICE模型進(jìn)行接收效果仿真。仿真中選擇測試圖樣為K28.5’D21.4’D21.5’D21.5’D28.2’D28.2’D15.1’D15.4’D10.5’D10.5,仿真時長為110ns。圖8所示依次為發(fā)送端輸入、差分輸出和接收端差分輸入的60~85ns波形圖,其中Rocket I/O發(fā)送器輸入信號Vtx_in的tsetup=66.7ps。
?
??? 分別對發(fā)送端差分輸出和接收端差分輸入信號進(jìn)行眼圖分析,得到如圖9所示的眼圖。圖中測得發(fā)端抖動為0.203UI,接收端抖動為0.227UI,但這只是仿真得到的電路固有抖動,在實際情況下的隨機抖動對性能的影響并未在仿真中考慮。由圖中可以看出,在發(fā)端采用20%預(yù)加重后接收端眼圖的寬度和張開程度都有所改善,因而可以較好地恢復(fù)發(fā)送信號。
?
??? 由系統(tǒng)的實測效果證明,應(yīng)用Rocket I/O模塊設(shè)計通信系統(tǒng)中片間、背板的高速接口,是一種高性能的簡化的解決方案。通過采用更加精確的HSPICE模型進(jìn)行分析,可及早地發(fā)現(xiàn)板級設(shè)計中的信號完整性問題,降低設(shè)計風(fēng)險。
參考文獻(xiàn)
1 RocketIO(tm) Transceiver User Guide[S]. Xlinix Inc,2002
2 Interface Signal Management Group. LVDS Owner’s Manual[EB/OL] . National Semiconductor, 1997
3 Stephen H.Hall, Garrett W.Hall, James A.McCall. HighSpeed Digital System Design[M]. John Wiley & Sons,2000
4 Patrick R.Trischitta, Eve L.Varma. Jitter in Digital Transmission System[M] . Artech House, 1989
5 Star-Hspice User Guide [S]. Avant!Corporation, June 2002
6?Ken Lazaris-Brunner, John D’Ambrosia. Active-copper-back-plane Interconnects Go Faster and Farther[EB/OL], 2002