在高速電路系統(tǒng)設(shè)計(jì)中,差分串行通信方式正在取代并行總線方式 ,以滿足系統(tǒng)對(duì)高帶寬數(shù)據(jù)通信的需求。RocketIO是Virtex2 Pro以上系列中集成的專用高速串行數(shù)據(jù)收發(fā)模塊,可用于實(shí)現(xiàn)吉比特的數(shù)據(jù)傳輸,適用于多種高速數(shù)據(jù)傳輸協(xié)議。依據(jù)實(shí)際工程應(yīng)用需求,提出了基于RocketIO的高速串行數(shù)據(jù)傳輸系統(tǒng)解決方案,實(shí)現(xiàn)了每通道2.5 Gb/s的傳輸速度。最后介紹了RocketIO在Aurora和PCI Express協(xié)議實(shí)現(xiàn)中的應(yīng)用,并總結(jié)了高速通信系統(tǒng)的共性特征。
引言
隨著電子系統(tǒng)對(duì)速度以及精度要求的提高,高速串行數(shù)據(jù)通信模式正在逐步取代傳統(tǒng)的并行總線式結(jié)構(gòu)。并行總線結(jié)構(gòu)由于其固有的缺點(diǎn),在速度上的提升空間已經(jīng)很小。
① 并行總線在印制電路板上要占用大量的空間,在電路系統(tǒng)日益小型化的今天給系統(tǒng)的設(shè)計(jì)帶來(lái)很大困難。如PATA66以上的PATA數(shù)量達(dá)到了80根,使得電路板的布線極為困難。
② 并行總線由于在布線時(shí)很難保證每條線路長(zhǎng)度與電氣特征一致,導(dǎo)致信號(hào)到達(dá)時(shí)間不同,在較高的工作頻率下很難實(shí)現(xiàn)完全同步,以致出現(xiàn)信號(hào)偏移。這使接收器難以確定采樣時(shí)間,容易造成數(shù)據(jù)錯(cuò)誤。
③ 由于寄生電容的影響,在并行的兩條數(shù)據(jù)線中容易產(chǎn)生串?dāng)_,甚至改變信號(hào)原有真實(shí)電平。采用地線進(jìn)行屏蔽可以在一定程度上消除串?dāng)_,但同時(shí)也造成總線線路數(shù)目的急劇增加。
④ 并行總線參考電平為地電平,容易受噪聲干擾。同時(shí)由于在總線上“0”、“1”分布不均勻,在信號(hào)收發(fā)器之間易造成直流偏置,造成信號(hào)噪聲容限降低。
相比而言,高速串行總線采用差分對(duì)的形式,并且在發(fā)送端與接收端之間采用點(diǎn)對(duì)點(diǎn)的連接結(jié)構(gòu)。差分信號(hào)經(jīng)過(guò)編碼,消除信號(hào)序列中直流分量,從而可以提高噪聲容限。同時(shí),在信號(hào)序列中插入時(shí)鐘信息,信號(hào)中攜帶時(shí)鐘,解決了信號(hào)偏移問(wèn)題。
在嵌入式應(yīng)用方面,主流的FPGA中都已對(duì)差分信號(hào)提供了硬件支持,如Xilinx公司推出的Virtex系列FPGA中,相鄰的兩個(gè)I/O口都以差分信號(hào)對(duì)形式出現(xiàn)。從Virtex2 Pro系列開(kāi)始,更是在片上集成了固化的RocketIO模塊,以提供高超高速的串行通信支持。本文將從工程應(yīng)用的角度出發(fā)介紹RocketIO的相關(guān)特征,并探討其在高速數(shù)據(jù)傳輸中的應(yīng)用。
1 RocketIO
RocketIO收發(fā)器是在Virtex2 Pro以上系列FPGA中集成的專用串行通信模塊,在使用時(shí)不占用FPGA其他邏輯與片上存儲(chǔ)資源。在Virtex5 LXT和SXT系列FPGA中,RocketIO稱為GTP,每?jī)蓚€(gè)GTP共用一個(gè)PLL,組成一個(gè)GTP_Dual。其結(jié)構(gòu)框圖如圖1所示。
?
圖1 GTP_Dual Tile結(jié)構(gòu)框圖
?
每一個(gè)RocketIO收發(fā)器均具有如下特征:
◆ 具有可配置終端、電壓擺幅與耦合的電流模邏輯串行驅(qū)動(dòng)或緩沖器。
◆ 可編程發(fā)送預(yù)加重和接收均衡,以實(shí)現(xiàn)最優(yōu)信號(hào)完整性。
◆ 100 Mb/s~3 Gb/s的線速范圍,線速在100 Mb/s~500 Mb/s區(qū)間時(shí)具有可選的5倍過(guò)采樣功能。
◆ 可選的嵌入式PCS功能,例如8位/10位編碼、逗號(hào)對(duì)齊、通道綁定以及時(shí)鐘校正。
◆ 最小化的確定性數(shù)據(jù)通道延遲。
◆ 對(duì)PCI Express、SATA、傳輸?shù)葏f(xié)議的支持。
從應(yīng)用上講,RocketIO處于數(shù)據(jù)傳輸協(xié)議的物理層,用以實(shí)現(xiàn)最基本的數(shù)據(jù)通信環(huán)境。其主要功能可以概括為:將輸入的并行數(shù)據(jù)經(jīng)過(guò)編碼,轉(zhuǎn)化為高速的差分串行信號(hào)。在實(shí)際應(yīng)用中,輸入時(shí)鐘、PLL參數(shù)設(shè)置以及PCB線路的設(shè)計(jì)與布局是影響數(shù)據(jù)傳輸效果的最重要因素。
1.1 輸入時(shí)鐘
RocketIO有三種時(shí)鐘輸入方式:專用差分時(shí)鐘、共享鄰近GTP_Dual的時(shí)鐘、以及使用FPGA內(nèi)部時(shí)鐘。Rocket I/O GTP時(shí)鐘輸入方式如圖2 所示。
?
圖2 Rocket I/O GTP時(shí)鐘輸入方式
?
使用專用差分時(shí)鐘時(shí),差分的時(shí)鐘信號(hào)通過(guò)輸入差分緩沖器變?yōu)閱味藭r(shí)鐘,輸入到GTP_Dual Tile中的PLL,當(dāng)使用的時(shí)鐘源精度滿足要求時(shí)具有最優(yōu)的時(shí)鐘穩(wěn)定性。
從相鄰GTP_Dual Tile獲得時(shí)鐘時(shí)需要使用GTP專用的時(shí)鐘通路,但此時(shí)GTP_Dual與提供時(shí)鐘的GTP_Dual Tile間隔的GTP_Dual Tile個(gè)數(shù)不能超過(guò)兩個(gè),即每對(duì)差分輸入時(shí)鐘最多可驅(qū)動(dòng)7個(gè)GTP_Dual Tile。
相比于上述兩種時(shí)鐘輸入方式,從FPGA內(nèi)部獲得時(shí)鐘時(shí)鐘精度最差。這是因?yàn)楣饫w,F(xiàn)PGA內(nèi)部使用的時(shí)鐘經(jīng)過(guò)邏輯電路以及BUFG或BUFR緩沖后,會(huì)引入較大的時(shí)間抖動(dòng)。但由于在FPGA內(nèi)部可以靈活變換參考時(shí)鐘頻率,因此在速度與精度要求不太高的場(chǎng)合可采用FPGA內(nèi)部時(shí)鐘。經(jīng)實(shí)驗(yàn)驗(yàn)證,對(duì)于誤碼率要求在1‰以下的應(yīng)用,從FPGA內(nèi)部獲得的時(shí)鐘信號(hào)可以滿足要求。
1.2 PLL參數(shù)設(shè)置
評(píng)論