Xilinx的7系列FPGA高速收發(fā)器:TX發(fā)送端的介紹
掃描二維碼
隨時(shí)隨地手機(jī)看文章
每一個(gè)收發(fā)器擁有一個(gè)獨(dú)立的發(fā)送端,發(fā)送端有PMA(Physical Media Attachment,物理媒介適配層)和PCS(Physical Coding Sublayer,物理編碼子層)組成,其中PMA子層包含高速串并轉(zhuǎn)換(Serdes)、預(yù)/后加重、接收均衡、時(shí)鐘發(fā)生器及時(shí)鐘恢復(fù)等電路。PCS子層包含8B/10B編解碼、緩沖區(qū)、通道綁定和時(shí)鐘修正等電路。對(duì)于GTX的發(fā)送端來(lái)說(shuō),結(jié)構(gòu)如圖1所示。
圖1
FPGA內(nèi)部并行數(shù)據(jù)通過(guò)FPGA TX Interface進(jìn)入TX發(fā)送端,然后經(jīng)過(guò)PCS和PMA子層的各個(gè)功能電路處理之后,最終從TX驅(qū)動(dòng)器中以高速串行數(shù)據(jù)輸出,下面將介紹各個(gè)功能電路。
FPGA TX Interface(TX用戶(hù)接口):TX Interface是用戶(hù)數(shù)據(jù)發(fā)往GTX的接口,該接口的信號(hào)如表1所示。
表1
發(fā)送數(shù)據(jù)接口是TXDATA,采樣時(shí)鐘是TXUSRCLK2,在TXUSRCLK2的上升沿對(duì)TXDATA進(jìn)行采樣。TXUSRCLK2的速率由線(xiàn)速率、TX Interface接口位寬和8B/10B是否使能決定(TXUSRCLK2頻率 = 線(xiàn)速率 / TX_DATA_WIDTH ;比如線(xiàn)速率是10Gb/s,TX_DATA_WHDTH等于80,那么TXUSRCLK2的頻率是125MHz)。TXDATA的位寬可以配置成16/20/32/40/64/80位寬,通過(guò)TX_DATA_WIDTH 、TX_INT_DATAWIDTH、TX8B10BEN三個(gè)屬性設(shè)置可以配置成不同的位寬,具體屬性如表2所示。
表2
GTX的TX Interface分成內(nèi)部數(shù)據(jù)位寬和FPGA接口位寬,其中內(nèi)部數(shù)據(jù)歸屬于TXUSRCLK時(shí)鐘域,F(xiàn)PGA接口數(shù)據(jù)歸屬于TXUSRCLK2時(shí)鐘域,而內(nèi)部數(shù)據(jù)位寬支持2byte/4byte,F(xiàn)PGA接口數(shù)據(jù)位寬支持2byte/4byte/8byte,因此,決定了TXUSRCLK和TXUSRCLK2有一定的時(shí)鐘倍數(shù)關(guān)系,TXUSRCLK和TXUSRCLK2的時(shí)鐘倍數(shù)關(guān)系如表3所示,其中TX_INT_DATAWIDTH屬性設(shè)置為“0”,表示內(nèi)部數(shù)據(jù)位寬為2byte,如果設(shè)置為“1”,則表示內(nèi)部數(shù)據(jù)位寬為4byte(線(xiàn)速率大于6.6Gb/s的時(shí)候應(yīng)當(dāng)置“1”)。
表3
TXUSRLK和TXUSRCLK2時(shí)鐘是相關(guān)聯(lián)的,在時(shí)鐘這兩個(gè)時(shí)鐘時(shí)應(yīng)該遵循下面兩個(gè)準(zhǔn)則:
1. TXUSRCLK和TXUSRCLK2必須是上升沿對(duì)齊的,偏差越小越好,因此應(yīng)該使用BUFGs或者BUFRs來(lái)驅(qū)動(dòng)這兩個(gè)時(shí)鐘(因?yàn)門(mén)X Interface和PCS子層之間沒(méi)有相位校正電路或者FIFO,所以需要嚴(yán)格對(duì)齊,本人自己的理解)。
2. 即使TXUSRCLK、TXUSRCLK2和GTX的參考時(shí)鐘運(yùn)行在不同的時(shí)鐘頻率,必須保證三者必須使用同源時(shí)鐘。
發(fā)送端的時(shí)鐘結(jié)構(gòu):為了能夠更好的理解GTX的發(fā)送端如何工作,理解發(fā)送端的時(shí)鐘結(jié)構(gòu)很有必要,圖2是發(fā)送端的時(shí)鐘結(jié)構(gòu)圖。
圖2
其中紅框部分和黃底部分的內(nèi)容是我們需要重點(diǎn)了解的地方,圖中的MGTREFCLK是上一篇中提到的GTX的參考時(shí)鐘,經(jīng)過(guò)一個(gè)IBUFDS_GTE2源語(yǔ)之后進(jìn)入GTX,用以驅(qū)動(dòng)CPLL或者QPLL。對(duì)于TX PMA來(lái)說(shuō),主要實(shí)現(xiàn)的功能是并串轉(zhuǎn)換,其并串轉(zhuǎn)換的時(shí)鐘可以由CPLL提供,也可以由QPLL提供,由TXSYSCLKSEL選擇,TX PMA子層里面有三個(gè)紅色方框部分是串行和并行時(shí)鐘分頻器,作用是產(chǎn)生并行數(shù)據(jù)的驅(qū)動(dòng)時(shí)鐘,其中D分頻器主要用于將PLL的輸出分頻,以支持更低的線(xiàn)速率。
÷2/÷4這個(gè)選項(xiàng)由TX_INT_DATAWIDTH決定,如果TX_INT_DATAWIDTH為“0”,則選擇÷2,反之選擇÷4。
對(duì)于÷4/÷5,則由TX_DATA_WIDTH決定,如果是位寬是16/32/64,則選擇÷4,如果位寬是20/40/80,則選擇÷5。
對(duì)于TXUSRCLK和TXUSRCLK2由誰(shuí)驅(qū)動(dòng)呢,官方推薦使用TXOUTCLK驅(qū)動(dòng),這樣做能精簡(jiǎn)設(shè)計(jì),同時(shí)穩(wěn)定,如何使用TXOUTCLK來(lái)做TXUSRCLK和TXUSRCLK2的驅(qū)動(dòng)時(shí)鐘呢,根據(jù)TXUSRCLK和TXUSRCLK2的頻率關(guān)系,以一個(gè)Lane為例,圖3表示TXUSRCLK=TXUSRCLK2的驅(qū)動(dòng)方式,圖4表示TXUSRCLK = 2*TXUSRCLK2的驅(qū)動(dòng)方式。
圖3 圖4
對(duì)于圖4,CLKOUT0的值為CLKOUT1的2倍。
TX 8B/10B Encoder:高速收發(fā)器的發(fā)送端一般都帶有8b/10b編碼器。目的是保證數(shù)據(jù)有足夠的切換提供給時(shí)鐘恢復(fù)電路,編碼器還提供一種將數(shù)據(jù)對(duì)齊到字的方法,同時(shí)線(xiàn)路可以保持良好的直流平衡。在GTX應(yīng)用中,如果發(fā)送的是D碼,則需要將TXCHARISK拉低,如果是K碼,則將相應(yīng)的TXCHARISK拉高。
TX Buffer:了解發(fā)送的TX Buffer的作用,首先得搞清楚TX發(fā)送端的時(shí)鐘域,TX發(fā)送端的時(shí)鐘域如圖5所示。
圖5
圖5中紅色方框就是TX Buffer,我們都知道FIFO具有隔離時(shí)鐘域的功能,在這里也不例外,我們從圖中可以知道,TX Buffer連接著兩個(gè)不同的時(shí)鐘域XCLK和TXUSRCLK,在發(fā)送端的PCS子層內(nèi)部包含兩個(gè)時(shí)鐘域,XCLK(PMA并行時(shí)鐘域)TXUSRCLK時(shí)鐘域,為了數(shù)據(jù)發(fā)送的穩(wěn)定,XCLK和TXUSRCLK必須是速率匹配,相位差可以消除的,TX Buffer主要用于匹配兩時(shí)鐘域的速率和消除兩時(shí)鐘域之間的相位差。
TX Buffer也可以被旁路,TX發(fā)送端提供了一個(gè)相位對(duì)齊電路,可以解決XCLK和TXUSRCLK時(shí)鐘域之間的相位差,但是TX_XCLK_SEL需設(shè)置為“TXUSR”來(lái)保持XCLK時(shí)鐘域和TXUSRCLK保持同頻。
TX Pattern Generator:GTX擁有偽隨機(jī)數(shù)列產(chǎn)生電路,偽隨機(jī)數(shù)列是之中看似隨機(jī),但是是有規(guī)律的周期性二進(jìn)制數(shù)列,有良好的隨機(jī)性和接近白噪聲的相關(guān)函數(shù),所以偽隨機(jī)數(shù)列可以用來(lái)做誤碼率測(cè)量、時(shí)延測(cè)量、噪聲發(fā)生器、通信加密和擴(kuò)頻通信等等領(lǐng)域,在GTX中可以用來(lái)測(cè)試高速串行通道傳輸?shù)恼`碼率,圖6是GTX的PRBS生成電路。
圖6
可以使能或者旁路這個(gè)PRBS生成電路,如果旁路的話(huà)TXDATA會(huì)傳輸?shù)桨l(fā)送端的PMA。一般使用PRBS模式測(cè)試模型如圖7所示。
圖7
TX Polarity Control:TX發(fā)送端支持對(duì)TX發(fā)送的數(shù)據(jù)進(jìn)行極性控制,從PCS子層輸出的編碼數(shù)據(jù)在進(jìn)入PISO串行化之前進(jìn)行極性翻轉(zhuǎn),這部分功能主要是用來(lái)彌補(bǔ)PCB的設(shè)計(jì)錯(cuò)誤,如果PCB設(shè)計(jì)時(shí)不慎將TXP和TXN交叉連接的話(huà),可以通過(guò)設(shè)置TXPOLARITY為“1”來(lái)翻轉(zhuǎn)信號(hào)的極性。