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