新聞中心

EEPW首頁(yè) > 網(wǎng)絡(luò)與存儲(chǔ) > 設(shè)計(jì)應(yīng)用 > RocketIO的高速串行通道設(shè)計(jì)與驗(yàn)證

RocketIO的高速串行通道設(shè)計(jì)與驗(yàn)證

作者:中國(guó)科學(xué)院光電技術(shù)研究所 吳威 蘇海冰 時(shí)間:2008-05-19 來(lái)源:《單片機(jī)與嵌入式系統(tǒng)應(yīng)用》 收藏

  引 言
 
  目前,多數(shù)計(jì)算機(jī)、處理設(shè)備和設(shè)備都采用,但隨著芯片性能不斷提升和系統(tǒng)越來(lái)越復(fù)雜,數(shù)據(jù)傳輸帶寬已成為提高系統(tǒng)性能的瓶頸。雖然增大寬度可以提高芯片與芯片之間、背板與背板之間的數(shù)據(jù)吞吐量,但是數(shù)據(jù)線的增多和傳輸速率的加快會(huì)使PCB布線的難度提高,并且增加了信號(hào)延時(shí)和時(shí)鐘相位偏移。高速串行互連技術(shù)成為提高數(shù)據(jù)傳輸帶寬的有效解決途徑。

本文引用地址:http://m.butianyuan.cn/article/82761.htm

  新的技術(shù)不斷涌現(xiàn),如新推出的標(biāo)準(zhǔn)有PCI-express、RapidI()、10Gigabit Ethernet Attachment Unit Interface(XAUI)、HyperTransport、Infini-Band、SATA等。新標(biāo)準(zhǔn)的快速發(fā)展及網(wǎng)絡(luò)與領(lǐng)域不斷增強(qiáng)的數(shù)字統(tǒng)一趨勢(shì),對(duì)系統(tǒng)設(shè)計(jì)人員橋接這些標(biāo)準(zhǔn)和適應(yīng)不斷演化的標(biāo)準(zhǔn)提出了新的挑戰(zhàn),需要具有新一代系統(tǒng)集成和靈活性的可編程解決方案。Xilinx公司的Vir-tex-4 FX系列FPGA芯片內(nèi)置了收發(fā)器,能夠提供622 Mb/s~6.5 Gb/s的數(shù)據(jù)傳輸速率,并且支持多種高速串行協(xié)議,可以幫助設(shè)計(jì)人員方便、靈活、可靠地實(shí)現(xiàn)高速通信。

  1 設(shè)計(jì)要素

  1.1 時(shí) 鐘
 
  在Virtex-4 FX系列FPGA中每個(gè) Multi-Gigabit Transceiver(MGT)有多個(gè)時(shí)鐘輸入。其中,參考時(shí)鐘有3種,根據(jù)不同的傳輸速率選擇不同的參考時(shí)鐘。GREFCLK適用于單個(gè)MGT組且數(shù)據(jù)傳輸率低于1 Gb/s的情況。REFCLK1和REFCLK2一般用于數(shù)據(jù)傳輸率高于1 Gb/s、低于6.5 Gb/s的情況。

  時(shí)鐘精度和時(shí)鐘抖動(dòng)是評(píng)價(jià)時(shí)鐘質(zhì)量的兩個(gè)重要指標(biāo)。MGT模塊要求高精度的參考時(shí)鐘,MGT要求的時(shí)鐘精度為±350×10-6,MGT可容忍的輸入?yún)⒖紩r(shí)鐘抖動(dòng)公差最大為40 ps,所以從DCM中出來(lái)的時(shí)鐘(大于±100ps)不能夠作為MGT的參考時(shí)鐘輸入。MGT的時(shí)鐘一般采用以下方案解決:從片外輸入的差分時(shí)鐘必須經(jīng)過(guò)模塊指定的差分時(shí)鐘引腳接入,然后經(jīng)過(guò)Rock-etIO模塊中的時(shí)鐘管理模塊GTllCLK_MGT轉(zhuǎn)化成單端時(shí)鐘,送到REFCLK1或REFCLK2作為MGT的參考時(shí)鐘。

  MGT模塊的輸出時(shí)鐘TXOUTCLK1、TXOUT-CLK2、RXRECCLK1、RXRECCLK2可以作為4個(gè)用戶使用的時(shí)鐘TXUSRCLK、TXUSRCLK2、RXUSRCLK、RX-USRCLK2的時(shí)鐘源;也可以作為DCM模塊的輸入,從而生成用戶所需的特定頻率的時(shí)鐘,提供給系統(tǒng)其他模塊使用。參考時(shí)鐘的頻率由串行傳輸速率和時(shí)鐘參數(shù)設(shè)置來(lái)決定。表1是該實(shí)驗(yàn)中關(guān)于時(shí)鐘參數(shù)的設(shè)置。

       

  1.2 復(fù) 位

  MGT模塊中的復(fù)位分為發(fā)送部分的復(fù)位和接收部分的復(fù)位。發(fā)送部分的復(fù)位主要包括TXPMARESET和TXPCSRESET;接收部分的復(fù)位主要包括RXPMARE-SET和RXPCSRESET。TXPMARESET復(fù)位用于復(fù)位PMA和重新初始化PMA功能。其引腳電平為高時(shí),復(fù)位PLL控制邏輯和內(nèi)部的PMA分頻器,同時(shí)也使發(fā)送器PLL LOCK信號(hào)為低并且迫使TX PLL進(jìn)行校驗(yàn)。TXP-MARESET引腳電平為高至少要持續(xù)3個(gè)USRCLK時(shí)鐘周期。

  當(dāng)TXPCSRESET引腳電平為高時(shí),TX PCS模塊被復(fù)位。TX PCS模塊包括:TX Fabric接口,8B/10B編碼器,10GBASE-R編碼器,TX緩沖器,64B/66B擾碼器和10GBASE-R自適應(yīng)同步器。TXPCSRESET復(fù)位與TXPMARESET復(fù)位是相互獨(dú)立,互不影響的。

  TXPCSRESET復(fù)位的要求如下:

 ?、僭赥XPCSRESET復(fù)位時(shí),TXUSRCLK和PCS的TXCLK時(shí)鐘必須已經(jīng)保持穩(wěn)定,以便初始化發(fā)送緩沖器。

 ?、赥XPCSRESET引腳電平為高,至少要持續(xù)3個(gè)TXUSRCLK或TXUSRCLK2時(shí)鐘周期。

  ③在TXPCSRESET復(fù)位結(jié)束后,TX PCS模塊至少需要5個(gè)時(shí)鐘周期(以TXUSRCLK或TXUSRCLK2中最長(zhǎng)的時(shí)鐘周期為準(zhǔn))來(lái)完成各個(gè)子模塊的復(fù)位。

  圖1是發(fā)送部分的復(fù)位時(shí)序圖。接收部分的復(fù)位時(shí)序圖和復(fù)位要求與接收部分類似,請(qǐng)參見(jiàn)Xilinx公司技術(shù)文檔ug076.pdf。

       

  2 MGT的模塊及原理介紹

  發(fā)送的并行數(shù)據(jù)經(jīng)過(guò)8B/10B編碼后,寫(xiě)入發(fā)送端FIFO,然后轉(zhuǎn)換成串行差分?jǐn)?shù)據(jù)發(fā)送出去。接收端接收到的串行差分信號(hào)首先經(jīng)過(guò)接收端緩沖,然后經(jīng)過(guò)串并轉(zhuǎn)化器轉(zhuǎn)換成并行數(shù)據(jù),再經(jīng)過(guò)8B/10B解碼,寫(xiě)入彈性緩沖,最后并行輸出。

  2.1 8B/10B編解碼器

  8B/10B編碼機(jī)制是由IBM公司開(kāi)發(fā)的,已經(jīng)被廣泛采用。它是一種數(shù)值查找類型的編碼機(jī)制,可將8位的字符轉(zhuǎn)化為10位字符。轉(zhuǎn)化后的字符可以保證有足夠的跳變用于時(shí)鐘恢復(fù)。8B/10B編碼具有“0”和“1”出現(xiàn)的概率相等,直流基線漂移小,低頻分量小,功率譜帶寬較窄,抖動(dòng)小,以及能夠檢測(cè)輸入數(shù)據(jù)中的錯(cuò)誤等許多優(yōu)點(diǎn)。

  8B/10B編碼可以分為256個(gè)數(shù)據(jù)字符和12個(gè)控制字符。數(shù)據(jù)字符,標(biāo)為D,用于傳輸數(shù)據(jù);控制字符,標(biāo)為K,用于傳輸控制序列。12個(gè)控制字符用于對(duì)齊、控制,以及將帶寬劃分為子通道。

  2.2 comma字符檢測(cè)和對(duì)齊

  Virtex-4 RrocketIO有可編程的逗號(hào)檢測(cè),以便于實(shí)現(xiàn)10位字符的各種通信協(xié)議和檢測(cè),通過(guò)對(duì)MCOMMA_10B_VALUE、DEC_MCOMMA_DETECT、PCOMMA_10B_VALUE、DEC_PCOMMA_DETECT和COMMA_10B_MASK這些參數(shù)的設(shè)置,可以實(shí)現(xiàn)任意的8位或10位符號(hào)檢測(cè)。

  接收器在輸入數(shù)據(jù)流中掃描搜尋comma字符。如果找到,解串器就調(diào)整序列邊界以匹配檢測(cè)到的comma字符序列,且掃描是連續(xù)進(jìn)行的。一旦對(duì)齊確定,所有后續(xù)comma字符的對(duì)齊均已確定。在任意的序列組合里,comma字符序列必須是唯一的。常用的K字符是12個(gè)K字符中的一個(gè)或多個(gè)。由于K28.1、K28.5、K28.7這些字符的頭7位都是1100000,這種比特序列模式只可以在這些控制字符中出現(xiàn),因此,這些控制字符是非常理想的對(duì)齊序列。

  2.3 時(shí)鐘修正

  在時(shí)鐘/數(shù)據(jù)恢復(fù)電路的作用下,從接收的串行數(shù)據(jù)流中解出時(shí)鐘的頻率和相位,一般將它的20分頻時(shí)鐘作為恢復(fù)時(shí)鐘。在恢復(fù)時(shí)鐘作用下從串行數(shù)據(jù)經(jīng)過(guò)解串器產(chǎn)生并行數(shù)據(jù)作為8B/10B譯碼的輸入,譯碼后的數(shù)據(jù)進(jìn)入16×52位的接收緩沖器。輸入緩沖器的輸人數(shù)據(jù)速率是由PCS RXCLK的頻率決定的,而從緩沖器讀取端輸出的數(shù)據(jù)速率是由RXUSRCLK的頻率決定的。由于兩個(gè)時(shí)鐘會(huì)有差異,所以需要進(jìn)行時(shí)鐘修正。

  時(shí)鐘修正的基本原理是:在發(fā)送端,當(dāng)數(shù)據(jù)發(fā)送了一定的字節(jié)或數(shù)個(gè)數(shù)據(jù)包后,通過(guò)插入和發(fā)送一些特定的字節(jié)修正字符;在接收端,當(dāng)接收到這些字符后會(huì)自動(dòng)地丟棄或者重復(fù)來(lái)補(bǔ)償時(shí)鐘的差異。時(shí)鐘修正的核心工作是在比特流中搜尋特定的字符序列。

  3 MGT的測(cè)試與驗(yàn)證

  本實(shí)驗(yàn)是在XilinX公司的ML405評(píng)估板上進(jìn)行的,使用2個(gè)MGT。其中,MGT1用來(lái)發(fā)送數(shù)據(jù)(通過(guò)mgt1_tx_n和mgt1_tx_p這對(duì)差分線),MGT0用于接收數(shù)據(jù)(通過(guò)mgt0_tx_n和mgt0_tx_p這對(duì)差分線)。使用串行ATA電纜(長(zhǎng)約100 cm)將它們連接起來(lái)形成一個(gè)大環(huán)路,進(jìn)行數(shù)據(jù)讀回測(cè)試。MGT驗(yàn)證實(shí)驗(yàn)的硬件框圖如圖2所示。

        

  其中,gtll_init_tx模塊產(chǎn)生tx—pmareset、tx_pcsreset復(fù)位信號(hào)以及frame—gen模塊的復(fù)位信號(hào);frame—gen模塊產(chǎn)生帶有comma字符的數(shù)據(jù)流,每次發(fā)送的數(shù)據(jù)位寬為32位;gtll_init_rx模塊產(chǎn)生rx_pmareset、rx_pcsreset復(fù)位信號(hào)以及frame_check模塊的復(fù)位信號(hào);frame_check模塊用來(lái)將發(fā)送的數(shù)據(jù)與實(shí)際接收到的來(lái)自于MGT0的并行輸出端口的數(shù)據(jù)進(jìn)行比較,如果檢測(cè)到不一致,則frame_check模塊的ERR_COUNT計(jì)數(shù)器就加1,通過(guò)讀取該計(jì)數(shù)器的值和記錄MGT工作的時(shí)間就可以計(jì)算出該系統(tǒng)中MGT的錯(cuò)誤率。

  假設(shè)MGT的錯(cuò)誤率為δ,MGT的數(shù)據(jù)傳輸率為μ,MGT傳輸數(shù)據(jù)的有效時(shí)間為τ,ERR_COUNT計(jì)數(shù)器的計(jì)數(shù)值為E,則有:

        

  實(shí)驗(yàn)中測(cè)得,E=319,τ=3 600s,μ=3 Gb/s。將上述數(shù)值代入式(1),求得δ=2.957×10-11。通過(guò)取不同的時(shí)間τ,每個(gè)τ對(duì)應(yīng)做多次實(shí)驗(yàn),可以得到δ的范圍為[2.752×10-11,3.168×10-11]。通過(guò)該實(shí)驗(yàn)可以發(fā)現(xiàn)具M(jìn)GT的可靠性比較高,可以滿足我們的工程需求,具有很高的實(shí)際使用價(jià)值。

  結(jié) 語(yǔ)

  目前,系統(tǒng)對(duì)數(shù)據(jù)傳輸率的要求越來(lái)越高,高速串行互連技術(shù)由于將時(shí)鐘與數(shù)據(jù)合并進(jìn)行傳輸,從而解決了高速并行數(shù)據(jù)傳輸過(guò)程中時(shí)鐘和數(shù)據(jù)的抖動(dòng)問(wèn)題,提高了數(shù)據(jù)傳輸速率,降低了設(shè)計(jì)復(fù)雜性和成本,減少了引腳數(shù)量和PC板面積。Xilinx公司的Virtex-4 FX系列FPGA器件中所提供的用于實(shí)現(xiàn)高速串行互連的RocketIO IP核,具有使用方便、配置靈活、集成度高等優(yōu)點(diǎn),將它用于解決高速串行數(shù)據(jù)傳輸問(wèn)題,既簡(jiǎn)化了設(shè)計(jì),又提高了系統(tǒng)的集成度和可靠性,有很好的應(yīng)用前景。

linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)
分頻器相關(guān)文章:分頻器原理


評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉