一、前言
芯片間的數(shù)據(jù)傳輸根據(jù)同一時間傳輸?shù)腷it數(shù)分為串行傳輸和并行傳輸。
串行傳輸:每次傳輸1bit數(shù)據(jù),該方式具有傳輸距離長,傳輸可靠,但延遲高,數(shù)據(jù)帶寬低。
并行傳輸:每次可傳輸多bit數(shù)據(jù),具有傳輸效率高,但傳輸距離短,因同時多路傳輸相互之間存在干擾導(dǎo)致信號容易失真。
二、芯片間數(shù)據(jù)傳輸技術(shù)發(fā)展
芯片間數(shù)據(jù)傳輸時,要保證數(shù)據(jù)準(zhǔn)確被接收端接收,需要考慮時鐘信號在準(zhǔn)確的時刻采集數(shù)據(jù)信號,因為需要考慮時鐘信號與數(shù)據(jù)信號的同步。
2.1 時鐘/數(shù)據(jù)同步方式
根據(jù)時鐘信號與數(shù)據(jù)信號的同步方式分為系統(tǒng)同步,源同步,自同步
系統(tǒng)同步:發(fā)送端和接收端的時鐘來自同一個外部時鐘,簡單原理圖如下
對應(yīng)的詳細(xì)時間模型如下圖,下圖中灰色背景的都是實際需要考慮的,可見需要考慮不少相關(guān)單元的延時。
源同步:接收端的時鐘和數(shù)據(jù)都來自發(fā)送端
源同步對應(yīng)的時間模型如下圖,相比于系統(tǒng)同步,只需考慮輸出延時和板間延時
自同步:源同步設(shè)計會帶來時鐘域的增加,如上圖中的clk2,因此,出現(xiàn)了自同步這種方式,時鐘信號和數(shù)據(jù)信號在同一路傳輸。
對應(yīng)的時間模型如下圖,自同步中包含了3個主要模塊:串并轉(zhuǎn)換,并串轉(zhuǎn)換以及時鐘數(shù)據(jù)恢復(fù)單元
并串轉(zhuǎn)換有兩種實現(xiàn)方式:移位寄存器,旋轉(zhuǎn)選擇器(revolving selectors)
串并轉(zhuǎn)換的方式與并串轉(zhuǎn)換相反
時鐘數(shù)據(jù)恢復(fù)
時鐘數(shù)據(jù)恢復(fù)是通過PLL去同步一個和生成輸入串行數(shù)據(jù)流的時鐘頻率相匹配的時鐘
2.2 Serdes
Serdes是屬于自同步的一種,通常結(jié)構(gòu)如下
Serializer(并串轉(zhuǎn)換):將并行數(shù)據(jù)流轉(zhuǎn)換成串行數(shù)據(jù)
Deserializer(串并轉(zhuǎn)換): 將串行數(shù)據(jù)流轉(zhuǎn)換成并行數(shù)據(jù)
Rx (Receive) Align:將輸入數(shù)據(jù)以合適的長度進(jìn)行分組,從自動檢測到用戶控制的位流分隔有多個不同的機(jī)制
Clock Manager:管理設(shè)計中需要的不同時鐘,包括分頻時鐘,倍頻時鐘,以及時鐘恢復(fù)
Transmit FIFO (First In First Out): 將需發(fā)送的數(shù)據(jù)先存儲
Receive FIFO:允許在移除接收到的數(shù)據(jù)前先進(jìn)行存儲,對于需要進(jìn)行時鐘糾正的系統(tǒng)很重要
Receive Line Interface:指模擬接收電路,包括差分接收器,以及正向均衡或反向均衡
Transmit Line Interface:模擬發(fā)送電路,可以改變驅(qū)動強(qiáng)度
Line Encoder:將數(shù)據(jù)編碼成一種更有友好的線性格式,包括將無變化的長序列移除,對于serdes不是必需的模塊
Line Decoder:將經(jīng)過Line Encoder的數(shù)據(jù)恢復(fù)成原始數(shù)據(jù)
Clock Correction and Channel Bonding:允許糾正發(fā)射時鐘和接收時鐘的差異,也可以糾正不同信道中時鐘的偏斜
三、 7系列GTX/GTH
GT的全稱為Gigabit Transceiver ,是基于serdes技術(shù)發(fā)展起來的。Xilinx 7系列器件的收發(fā)器有GTX和GTH兩類,GTX支持的線速率范圍為500Mb/s到12.5Gb/s
GTH支持的線速率范圍為500Mb/s到13.1Gb/s. GTX/GTH可以通過配置靈活使用。
3.1 GTXE2
下圖右上角顯示了Kintex-7中GTXE2的位置,由4個GTX Quad組成,每個GTX Quad由一個GTXE2_COMMON和4個GTXE2_CHANNEL組成,其中GTXE2_COMMON和GTXE2_CHANNEL是用于例化該單元的原語。
3.2 Quad
單個Quad的內(nèi)部結(jié)構(gòu)如下圖,包含了1個GTXE2_COMMON和4個Four GTXE2 CHANNEL,時鐘都是來自差分時鐘輸入,有兩個差分輸入對IBUFDS_GTE2,通過一個參考時鐘分配單元傳輸?shù)紾TXE2_CHANNEL中的CPLL和GTXE2_COMMON中的QPLL
3.3GTXE2_CHANNEL
GTXEW_CHANNEL的內(nèi)部結(jié)構(gòu)如下圖,模塊較多,結(jié)構(gòu)也復(fù)雜。
3.4 參考時鐘結(jié)構(gòu)
QPLL和CPLL(Channel PLL)是GT的時鐘管理單元,用于生成以及管理時鐘信號,從而實現(xiàn)數(shù)據(jù)的高速傳輸。CPLL是使用環(huán)形振蕩器的PLL,QPLL是使用LC共振器的PLL。時鐘來源于輸入的參考時鐘,其中GTSOUTHREFCLK/GTNORTHREFCLK表示參考時鐘來自南北方向其他Quad的參考時鐘,所謂的南北方向也即臨近的上下Quad的參考時鐘。
QPLL的時鐘連接如下圖,如果需要使用QPLL,必須例化GTXE2_COMMON/
GTHE2_COMMON。其中QPLLREFCLKSEL為參考時鐘選擇端口,為3bit的數(shù)據(jù)。具體的端口選擇規(guī)則如下表
GTREFCLK0/GTREFCLK1為IBUFDS_GTE2使用的外部時鐘,GTGREFCLK為FPGA內(nèi)部生成的參考時鐘輸入端口,一般用于內(nèi)部測試。
CPLL的時鐘連接如下圖,如果只使用CPLL時,也必須例化GTXE2_COMMON/GTHE2_COMMON
對于單個Quad來說,參考時鐘可來自6個輸入引腳
1)Quad自身的GTREFCLK0和GTREFCLK1
2)來自上方相鄰Quad參考時鐘GTSOUTHREFCLK0和GTSOUTHREFCLK1
3)來自下方相鄰Quad參考時鐘GTNORTHREFCLK0和GTNORTHREFCLK1
4)1個外部參考時鐘最多驅(qū)動3個Quad
3.4.1 外部參考時鐘
每一個Quad有兩對差分輸入端口可以連接外部時鐘源,使用IBUFDS_GTE2可以實例化使用來自外部的時鐘作為參考時鐘對
3.5 CPLL
上一小節(jié)描述了外部時鐘與QPLL/CPLL的連接關(guān)系,下面是CPLL內(nèi)部時鐘連接,TX和RX時鐘分頻器都可以選擇時鐘來自CPLL還是QPLL, 然后再傳輸?shù)綄?yīng)的PMA/PCS的串并時鐘上
CPLL的內(nèi)部結(jié)構(gòu)如下圖
上述圖中的各系數(shù)含義如下圖
CPLL的時鐘輸出頻率計算公式為
對應(yīng)的線速率的計算公式為,D為TX/RX的時鐘分頻器的分頻系數(shù),由于時鐘的上升沿和下降沿都可以使用,因此乘2
3.6QPLL
每個Quad包含了一個基于LC振蕩器的PLL,即QPLL,QPLL可以被同一個Quad內(nèi)的收發(fā)信道使用,不能被其他Quad內(nèi)的收發(fā)器使用。QPLL支持的速率在GTX和GTH中不同,在GTX中還分為低帶寬和高帶寬。
當(dāng)運行的線速率超過CPLL的范圍時就需要使用QPLL,QPLL的內(nèi)部結(jié)構(gòu)如下圖
各系數(shù)的含義如下表
QPLL的輸出頻率計算公式如下
線速率的計算公式如下
四、收發(fā)器GTX/GTH
4.1 發(fā)送器TX
發(fā)送器的內(nèi)部結(jié)構(gòu)如下圖,每個收發(fā)器包含一個獨立的發(fā)送器,主要由左側(cè)的物理媒介適配層(?PMA)?和右側(cè)的物理編碼子層(?PCS)?組成。PMA子層負(fù)責(zé)高速串并轉(zhuǎn)換、?預(yù)/后加重、?接收均衡、?時鐘發(fā)生器及時鐘恢復(fù)等電路功能,?而PCS子層則包含8B/10B編解碼、?緩沖區(qū)、?通道綁定和時鐘修正等電路。?
并行數(shù)據(jù)從PFGA的內(nèi)部流向發(fā)送器接口,通過PCS和PMA,轉(zhuǎn)換成串行數(shù)據(jù)被TX傳輸出去。
通過TX的結(jié)構(gòu)圖可知,主要有以下模塊組成
1.FPGA TX Interface:TX接口就像是進(jìn)入TX數(shù)據(jù)路徑的網(wǎng)關(guān),在時鐘TXUSRCLK2
的上升沿將要發(fā)送的數(shù)據(jù)寫入到TXDATA端口,TXDATA端口的寬度可配置成2,4,8個字節(jié)。具體配置為TX_DATA_WIDTH控制FPGA接口寬度(FPGA Interface Width),TX_INT_DATAWIDTH屬性控制內(nèi)部數(shù)據(jù)寬度(Internal Data Width),對應(yīng)關(guān)系如下圖。
2.TX 8B/10B Encoder:對于輸出數(shù)據(jù),很多協(xié)議使用8B/10B這一行業(yè)標(biāo)準(zhǔn)編碼方案,只要在每個字節(jié)增加2bit就可達(dá)到DC平衡(直流平衡)和界限差異從而恢復(fù)時鐘信號。GTX/GTH有一個專用的8B/10B TX路徑來編碼發(fā)送數(shù)據(jù),而不需要其他的FPGA資源。
3.TX Gearbox:一些高速數(shù)據(jù)傳輸協(xié)議會用64B/66B的編碼方式來代替8B/10B編碼,可在維持原有編碼方案的優(yōu)勢下減少增加bit的開銷。TX Gearbox支持2字節(jié)、4字節(jié)、8字節(jié)接口,但是加擾數(shù)據(jù)需要使用FPGA的邏輯資源來實現(xiàn)。
4.TX Buffer:GTX/GTH收發(fā)器的發(fā)送數(shù)據(jù)路徑在PCS部分上有兩個內(nèi)部的并行時鐘域,即PMA并行時鐘域XCLK和PCS的TXUSRCLK時鐘域。
如果要發(fā)送數(shù)據(jù),XCLK的速率必須和TXUSRCLK速率匹配,兩個時鐘域不能存在相位差。因此,GTX/GTH中有一個TX相位對齊電路來解決XCLK和TXUSRCK間的相位差,即下圖的Phase Adjust FIFO,當(dāng)TX Buffer為bypass模式時,就使用Phase Adjust FIFO。所有的發(fā)送數(shù)據(jù)要么被TX buffer使用,要么被Phase Adjust FIFO使用。
TX buffer和TX buffer bypass(相位對齊電路)如下圖
5.TX Buffer Bypass:TX buffer的bypass模式是7系列收發(fā)器的高級功能。前面提到TX相位對齊電路可以調(diào)整PISO并行時鐘域與TXXCLK時鐘域的相位差。它也可以連續(xù)地調(diào)整TXUSRCLK來控制TX延時分配,從而補(bǔ)償因溫度和電壓變化帶來的波動。TX相位調(diào)整與延時對齊都可以由GTX自動控制,也可也用戶手動控制。
6.TX Pattern Generator:偽隨機(jī)序列(PRBS)通常用于測試高速鏈路的完整性。序列看似隨機(jī)的,卻是有一定的特性可以用來測試鏈路的質(zhì)量。GTX/GTH的pattern generator可以生成多個行業(yè)標(biāo)準(zhǔn)的PRBS,如PRBS-7,PRBS-15,PRBS-23,PRBS-31
7.TX Polarity Control:如果差分引腳TXP和TXN在PCB上意外地被交換了,TX發(fā)送的數(shù)據(jù)將會取反。一種辦法是在并行數(shù)據(jù)串行化以及發(fā)送前將其極性取反,來抵消在差分對上的極性取反。也可以通過TX極性控制模塊來實現(xiàn)輸出數(shù)據(jù)的極性取反。
8.TX Fabric Clock Output Control:TX fabric時鐘輸出控制模塊有兩部分組成:串行時鐘分頻控制與選擇器,并行時鐘分頻控制與選擇器。
下圖中分頻模塊/2或/4的由TX_INT_DATAWIDTH屬性決定,/4與/5由TX_DATA_WIDTH
決定
9.TX Phase Interpolator PPM Controller:TX相位插入器PPP控制器可以動態(tài)地控制TX相位插入(TX PI)。該模塊位于TX的PCS模塊,接收來自TX接口的數(shù)據(jù)并且輸出到TX的PMA上。當(dāng)需要對TX PMA上的數(shù)據(jù)進(jìn)行微調(diào)時才會使用,TX PI可以控制PLL的輸出時鐘,反過來也可以被TX相位插入PPM控制器模塊控制。
10.TX Configurable Driver:TX可配置驅(qū)動器是一個高速電流模式差分輸出緩沖器。為了最好的保持信號的完整性,該模塊可以通過控制差分電壓,發(fā)送預(yù)加重進(jìn)行Pre-cursor和Post-cursor,校準(zhǔn)終端電阻來實現(xiàn)。
11.TX Receiver Detect Support for PCI Express Designs:PCIE指標(biāo)包括允許發(fā)送器在一個指定連接上檢測接收器是否存在,確認(rèn)接收器是否存在是基于TXP/TXN的上升沿實現(xiàn)的。
12.TX Out-of-Band Signaling:每一個GTX/GTH收發(fā)器都支持生成帶外序列,可用在SATA,SAS以及PCIE協(xié)議中。
4.2 接收器RX
接收器RX的內(nèi)部結(jié)構(gòu)圖如下,每個GTX/GTH的收發(fā)器都包含一個獨立的接收器RX,和發(fā)送器類似,由PCS和PMA兩大部分組成,高速串行數(shù)據(jù)從每個接收器的PMA到PCS,然后進(jìn)入到FPGA內(nèi)部邏輯。
接收器的主要由以下部分組成
1.RX Analog Front End:RX AFE是一個高速電流模式輸入差分緩沖器,可以配置RX終端的電壓以及校準(zhǔn)終端電阻。
2.RX Out-of-Band Signaling:每一個GTX/GTH接收器都支持解碼SATA,SAS
和PCIE協(xié)議的帶外序列。
3.RX Equalizer (DFE and LPM):通常發(fā)送媒介或信道是一個帶寬有限的信道,信號傳輸存在衰減或失真。對于接收器在要在功耗和性能間折衷,有兩種自適應(yīng)的過濾方式。如果要功耗優(yōu)先,則接收器有一種低功耗模式(LPM)。如果要信號失真減少,則選擇DFE模式。相比于使用線性均衡器,DFE可以更好的調(diào)整過濾參數(shù)來補(bǔ)充發(fā)送信道的衰減,它是一個離散時間自使用高通濾波器。
GTX接收器的DFE模式結(jié)構(gòu)如下圖
4.RX CDR:RX CDR電路用于從一個輸入數(shù)據(jù)流中恢復(fù)出其中的時鐘信號。
CDR狀態(tài)機(jī)使用來自邊沿采樣器和數(shù)據(jù)采樣器的數(shù)據(jù)來決定輸入數(shù)據(jù)流的相位以及控制相位插入器(PIs)。當(dāng)數(shù)據(jù)采樣器的相位處于數(shù)據(jù)眼圖的中間位置時,邊沿采樣器的相位將鎖定在數(shù)據(jù)流的轉(zhuǎn)換區(qū)域。CPLL/QPLL為相位插入器PI提供基準(zhǔn)時鐘,PI反過來產(chǎn)生好的采樣相位使得CDR狀態(tài)機(jī)有最佳的相位控制。
5.RX Fabric Clock Output Control:和發(fā)送器類似,RX時鐘分頻控制模塊主要由兩部分組成:串行/并行時鐘分頻器控制以及選擇器控制
6.RX Margin Analysis:隨著線速率以及信道衰落增加,對于接收端的均衡器要求更高。7系列的RX眼圖掃描可以在均衡器后測量以及將接收器眼圖邊沿可視化。
7. RX Polarity Control:如果差分引腳RXP和RXN在PCB上意外地被交換了,RX接收到的數(shù)據(jù)將會取反。一種辦法是在SIPO后并行數(shù)據(jù)進(jìn)入PCS中將其極性取反,來抵消在差分對上的極性取反。也可以通過RX極性控制模塊來實現(xiàn)數(shù)據(jù)的極性取反。
8.RX Pattern Checker:RX模式檢查器可以設(shè)置去檢查四種行業(yè)PRBS模式(PRBS-7/PRBS-15/PRBS-23/PRBS-31)的任意一種,檢查器是自同步并且在"逗號"對齊或解碼前處理輸入數(shù)據(jù),主要用于測試信道上信號的完整性。
RXPRBSSEL用于選擇PRBS模式,值與對應(yīng)模式關(guān)系如下
001: PRBS-7
010: PRBS-15
011: PRBS- 23
100: PRBS-31
當(dāng)PRBS檢查器運行時,會嘗試在輸入數(shù)據(jù)中去尋找選擇的模式,如果輸入數(shù)據(jù)已經(jīng)發(fā)送器或差分對取反,接收到的數(shù)據(jù)將會通過RXPOLARITY來進(jìn)行取反。當(dāng)查找到選擇的模式后,將會通過對比輸入的模式與預(yù)期的結(jié)果模式來檢測PRBS錯誤,預(yù)期的模式時來自之前的輸入數(shù)據(jù)。檢查器會統(tǒng)計錯誤字(每個字20bit)的數(shù)量。因此,如果輸入的并行數(shù)據(jù)包含2個以上的錯誤時,錯誤的字?jǐn)?shù)和錯誤的bit數(shù)就會出現(xiàn)不一致的情況,當(dāng)統(tǒng)計的錯誤數(shù)達(dá)到0XFFFF時計數(shù)器停止計數(shù)。
9.RX Byte and Word Alignment:串行數(shù)據(jù)在被用于并行數(shù)據(jù)前必須按符號對齊,為了對齊成為可能,發(fā)送器發(fā)送一個可識別的序路,該序列稱為“逗號”。接收器在接收數(shù)據(jù)中查找“逗號”,找到逗號后會將其移除。
10.RX 8B/10B Decoder:如果接收到的是8B/10B編碼,接收器一定能解碼,因為接收器有一個自帶的8B/10B解碼器,該解碼器有以下特點
1)支持2字節(jié),4字節(jié),8字節(jié)的數(shù)據(jù)路徑操作
2)為差異提供菊式聯(lián)機(jī)運行
3)生成K字符和狀態(tài)輸出
4)如果輸入數(shù)據(jù)不是8B/10B編碼可以轉(zhuǎn)為Bypassed模式
5)當(dāng)遇到非表內(nèi)錯誤時,可以輸出10bit的編碼值
11.RX Buffer Bypass:RX相位對齊電路用于調(diào)整SIPO并行時鐘域和RX XCLK時鐘域間的相位差,從而使得數(shù)據(jù)有效地從SIPO傳輸?shù)絇CS.同時可以通過調(diào)整RXUSRCLK實現(xiàn)RX延時對齊從而消除溫度和電壓變化的影響。
12.RX Elastic Buffer:RX數(shù)據(jù)路徑上在PCS中有2個內(nèi)部并行時鐘域,PMA并行時鐘域XCLK和RCUSRCLK時鐘域。為了接收數(shù)據(jù),PMA并行速率必須足夠的接近RXUSRCLK速率,兩者之間的相位差必須要消除,這個就需要靠RX Elastic緩沖器。
13.RX Clock Correction:前面提到RX Elastic緩沖器可以消除兩個不同時鐘域的相位差,但XCLK和RXUSRCLK不是完全相同,RX elastic緩沖器可能會溢出或空缺多。為了解決這種問題,TX會周期性的發(fā)送一個或多個特殊字符,接收器接收到該特殊字符會將其移除或復(fù)制。當(dāng)緩沖器滿了時會將其移除,當(dāng)緩沖器很空時會對齊進(jìn)行復(fù)制,從而避免溢出或空缺的狀態(tài)。
14.RX Channel Bonding:像PCIE和XAUI協(xié)議可以將多個串行收發(fā)器連接成一個單個的高流量信道,每個串行收發(fā)器為一個lane。除非每個串行連接是完全相同的長度,否則兩個lane間即使是同時發(fā)送,接收也會出現(xiàn)不同步,從而有偏斜。通過信道綁定可以消除這種偏斜,對于一個綁定信道的收發(fā)器,所有發(fā)送器同時發(fā)送一個信道綁定字符(或一個字符序列),接收器接收到該字符后,接收器會根據(jù)字符的偏斜調(diào)整RX elastic緩沖器的延遲,從而數(shù)據(jù)可以無偏斜的到達(dá)RX的用戶接口。信道綁定支持8B/10B編碼,但不支持64B/66B,64B/67B,128B/130B以及擾碼數(shù)據(jù)。
15.RX Gearbox:同發(fā)送端一樣,RX gearbox也支持64B/66B和64B/67B頭和載荷分離
16.FPGA RX Interface:RX接口是進(jìn)入RX數(shù)據(jù)路徑的網(wǎng)關(guān),也即是數(shù)據(jù)經(jīng)過接收器后進(jìn)入到FPGA內(nèi)部邏輯的控制接口。通過在時鐘RXUSRCLK2的上升沿讀取來自RXDATA端口的數(shù)據(jù)從而接收數(shù)據(jù)。端口的寬度也是可配置的,可為2,4,8個字節(jié)。
同TX接口類似,屬性RX_INT_DATAWIDTH控制內(nèi)部數(shù)據(jù)寬度是2字節(jié)還是4字節(jié),屬性RX_DATA_WIDTH控制FPGA接口寬度。但與TX有差異的是,也支持8B/10B為bypassed模式時的寬度配置,也即下圖RX8B/10BEN為0時的場景。
4.3 TX與RX全流程分析
借用前面的GTXE2_CHANNEL的內(nèi)部結(jié)構(gòu)圖,左右各加上信道傳輸模塊,F(xiàn)PGA內(nèi)部邏輯,即是一個完整的閉環(huán)。圖中數(shù)字為根據(jù)數(shù)據(jù)流程對一些主要流程進(jìn)行標(biāo)記
發(fā)送流程:FPGA內(nèi)部的串行數(shù)據(jù)通過TX接口進(jìn)入到TX內(nèi)部,經(jīng)過8B/10B進(jìn)行編碼處理,在TX buffer上進(jìn)行相位調(diào)節(jié),Polarity中極性極性處理,進(jìn)入到PISO完成并串轉(zhuǎn)換,最后由TX Driver將串行數(shù)據(jù)發(fā)送出去。
接收流程:TX發(fā)送的數(shù)據(jù)經(jīng)過傳輸信道進(jìn)入到RX中,先是通過RX EQ/DFE或RX OOB對信道衰減進(jìn)行的一些處理,進(jìn)入SIPO實現(xiàn)數(shù)據(jù)串行轉(zhuǎn)換成并行數(shù)據(jù),完成極性處理以及相位對齊,然后進(jìn)行解碼操作,數(shù)據(jù)對齊后再通過RX接口進(jìn)入到FPGA的內(nèi)部,從而一個收發(fā)流程完成。
-
收發(fā)器
+關(guān)注
關(guān)注
10文章
3428瀏覽量
105999 -
數(shù)據(jù)傳輸
+關(guān)注
關(guān)注
9文章
1890瀏覽量
64593 -
時鐘
+關(guān)注
關(guān)注
10文章
1733瀏覽量
131479
原文標(biāo)題:Xilinx 7系列收發(fā)器GTX入門講解
文章出處:【微信號:gh_9d70b445f494,微信公眾號:FPGA設(shè)計論壇】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論