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