Xilinx 7系列690T FPGA GTX的QPLL和CPLL使用問題
最近使用Xilinx 7系列690T芯片的多個GTX接口傳輸千兆以太網(wǎng)數(shù)據(jù)幀時,在某些的測試情況下個別GTX接口會出現(xiàn)少量丟幀的問題,最后通過實驗發(fā)現(xiàn)是時鐘的分配使用問題,具體而言是GTX接口的QPLL和CPLL的使用問題。
情況說明
本次調(diào)試的主要任務(wù)是調(diào)通FPGA板子(型號為690T)上的24個GTX接口(對應(yīng)于24個SGMII接口)。每個BANK上有4個GTX接口,每個接插件上也是4個GTX接口。如下圖所示。
1、出現(xiàn)問題波形
連接數(shù)據(jù)源,下載自回環(huán)程序測試接口,發(fā)現(xiàn)X1 AB,X2AB,X3 AB 正常,X1 CD,X2 CD,X3 CD(就是靠后的一排)有少量丟幀。正常的口和有丟幀的口連接同一個地檢口測試,且下載的是相同程序。錯口打固定幀256字節(jié)時在VIVADO上抓信號看到收到了超短幀和錯幀。且?guī)^出錯。
2、測試場景一:24口的BANK及接插件分配情況
框內(nèi)的為一個BANK,一條橫線上的為一個接插件上的
測試情況:打接口回環(huán),X1 AB,X2 AB,X3 AB正常收發(fā),X1CD,X2 CD,X3 CD有丟幀。
3、測試場景二:12口的BANK及接插件分配情況
測試情況:打接口回環(huán)。此時的X1 AB和 X1 CD現(xiàn)象與上面的24口情況相同(約束方法相同,X1 CD有丟幀現(xiàn)象。但之前測試12口的時候無誤)。但此時X3 CD正常接收。(注意到此時的X3 CD和24口測試程序的約束方法不同,此時X3 CD有兩個主核,有兩個從核,初步懷疑是一個主核帶不起三個從核或是一個bank到集插件上的時鐘走線有問題。)
4、測試場景三:測試版BANK及接插件分配情況
測試情況:打接口回環(huán)。此時的X1 AB上的數(shù)據(jù)1,2正常,數(shù)據(jù)3,4丟幀,X1 CD上的數(shù)據(jù)5,6丟幀,數(shù)據(jù)7,8正常。可以發(fā)現(xiàn)正常的數(shù)據(jù)口都有一個主核,一個從核。而丟幀的數(shù)據(jù)口只有從核。
分析:此時可以排除是硬件問題,因為測試情況一、二時,X1 AB可正常收發(fā)數(shù)據(jù)。然而換成測試三的約束條件,發(fā)現(xiàn)有兩個口也丟幀。
解決思路
經(jīng)過上面的三種方案驗證,懷疑是從核不能獨立工作。于是查閱GTX手冊,看到GTX的外部時鐘使用模式如下圖:
GTXE2_CHANNEL/ GTHE2_CHANNEL必須為每個收發(fā)器實例化原語。如果需要高性能QPLL時,必須實例化GTXE2_COMMON/GTHE2_COMMON原語。若速率要求不高,則可以每個通道用CPLL.用QPLL時,每個QUAD塊上若用多個GTX接口,則需要有主從之分。
用QPLL時參考時鐘經(jīng)過IBUFDS_GTE2原語輸出到GTXE2_COMMON/GTHE2_COMMON原語。
GTXE2_COMMON/GTHE2_COMMON原語產(chǎn)生的時鐘再供給其他channel.由于一個QUAD塊上只能有一個GTXE2_COMMON/GTHE2_COMMON,所以再用QPLL時一個QUAD塊上有主從之分。
為了解決這次調(diào)試時出現(xiàn)的從核不能獨立工作的現(xiàn)象,采用CPLL的方式,每個channel都有CPLL,所以每個核都是一樣的,沒有主從之分,問題解決。每個核都接的是參考時鐘經(jīng)過IBUFDS_GTE2原語輸出的單端參考時鐘。程序中把GTXE2_COMMON/GTHE2_COMMON原語注釋掉,把輸入到核的GTXE2_COMMON/GTHE2_COMMON的輸出接零就好,如下圖:
基礎(chǔ)知識
以下來源于網(wǎng)絡(luò):
Xilinx的7系列FPGA隨著集成度的提高,其高速串行收發(fā)器不再獨占一個單獨的參考時鐘,而是以Quad來對串行高速收發(fā)器進(jìn)行分組,四個串行高速收發(fā)器和一個COMMOM(QPLL)組成一個Quad,每一個串行高速收發(fā)器稱為一個Channel。
QPLL和CPLL的區(qū)別,在于兩者支持的線速率不同,對于CPLL來說,支持的線速率位1.6GHz到3.3GHZ之間,而對于QPLL來說,GTX支持的線速率分兩檔,Lower Baud支持5.93GHz~8.0GHz,Upper Baud支持9.8GHz~12.5GHz,對于GTH則不分檔位,支持的線速率為8.0GHz~13.1GHz。
Xilinx的7系列FPGA根據(jù)不同的器件類型,集成了GTP、GTX、GTH以及GTZ四種串行高速收發(fā)器,四種收發(fā)器主要區(qū)別是支持的線速率不同,下圖可以說明在7系列里面器件類型和支持的收發(fā)器類型以及最大的收發(fā)器數(shù)量。
Xilinx的7系列FPGA隨著集成度的提高,其高速串行收發(fā)器不再獨占一個單獨的參考時鐘,而是以Quad來對串行高速收發(fā)器進(jìn)行分組,四個串行高速收發(fā)器和一個COMMOM(QPLL)組成一個Quad,每一個串行高速收發(fā)器稱為一個Channel,以XC7K325T為例,GTX在FPGA內(nèi)部如下圖所示:
對于每一個串行高速收發(fā)器,其包含了發(fā)送部分和接收部分,內(nèi)部結(jié)構(gòu)如下圖:
發(fā)送端和接收端功能獨立,均由PMA(Physical Media Attachment,物理媒介適配層)和PCS(Physical Coding Sublayer,物理編碼子層)兩個子層組成。其中PMA子層包含高速串并轉(zhuǎn)換(Serdes)、預(yù)/后加重、接收均衡、時鐘發(fā)生器及時鐘恢復(fù)等電路。PCS子層包含8B/10B編解碼、緩沖區(qū)、通道綁定和時鐘修正等電路。
GTX發(fā)送端處理流程:首先用戶邏輯數(shù)據(jù)經(jīng)過8B/10B編碼后,進(jìn)入一個發(fā)送緩存區(qū),該緩沖區(qū)主要是PMA子層和PCS子層兩個時鐘域的時鐘隔離,解決兩者時鐘速率匹配和相位差異的問題,最后經(jīng)過高速Serdes進(jìn)行并串轉(zhuǎn)換,有必要的話,可以進(jìn)行預(yù)加重、后加重。值得一提的是,如果在PCB設(shè)計時不慎將TXP和TXN差分引腳交叉連接,則可以通過極性控制來彌補這個設(shè)計錯誤。接收端和發(fā)送端過程相反,相似點較多,這里就不贅述了,需要注意的是RX接收端的彈性緩沖區(qū),其具有時鐘糾正和通道綁定功能。
上面是GTX的性能和結(jié)構(gòu)功能概述,下面詳細(xì)分析GTX的時鐘結(jié)構(gòu)。
以7系列的GTX來說,每個Quad有兩個外部差分參考時鐘源,其中一個Quad的時鐘結(jié)構(gòu)如下圖所示:
紅色方框部分是兩個差分參考時鐘輸入,每個外部參考時鐘的輸入必須經(jīng)過IBUFDS_GTE2源語之后才能使用。綠色方框是來自其他Quad的參考時鐘輸入,7系列FPGA支持使用相鄰(南北方向)Quad的參考時鐘作為當(dāng)前Quad的參考時鐘,多路參考時鐘源經(jīng)過一個選擇器之后,分兩路進(jìn)入QPLL和CPLL,如圖五和圖六,其中藍(lán)色方框是QPLL,黃色方框是CPLL,對于一個GTX Channel來說,可以獨立選擇參考時鐘,可以選擇QPLL,也可以選擇CPLL,QPLL和CPLL的區(qū)別在于兩者支持的線速率不同,QPLL支持的線速率高于CPLL,圖七是外部參考時鐘模型的詳細(xì)結(jié)構(gòu),紅色箭頭表示QPLL通路,黃色箭頭表示CPLL通路。
因為每一個Quad有兩個外部參考時鐘,因此對于每一個Quad來說,可以選擇兩個不同的參考時鐘,每一個CHANNEL的接收端和發(fā)送端都可以獨立選擇參考時鐘,如下圖所示:
如果用戶需要使用其他Quad的參考時鐘源來作為當(dāng)前Quad的參考時鐘,在滿足下面三個條件的情況下可以使用:
1、只能使用當(dāng)前Quad上方的Quad的參考時鐘;
2、只能使用當(dāng)前Quad下方的Quad的參考時鐘;
3、一個Quad的參考時鐘源不能驅(qū)動超過3個Quad的收發(fā)器(只能驅(qū)動當(dāng)前Quad和上下方相鄰兩個Quad);
滿足上面的條件,就可以把其他Quad的參考時鐘配置成當(dāng)前Quad的參考時鐘,如下圖所示,注意圖中紅色方框表示相鄰的Quad:
QPLL和CPLL的區(qū)別,在于兩者支持的線速率不同,對于CPLL來說,支持的線速率位1.6GHz到3.3GHZ之間,而對于QPLL來說,GTX支持的線速率分兩檔,Lower Baud支持5.93GHz~8.0GHz,Upper Baud支持9.8GHz~12.5GHz,對于GTH則不分檔位,支持的線速率為8.0GHz~13.1GHz。當(dāng)以高于CPLL操作范圍的線路速率操作通道時,需要使用QPLL。GTXE2_COMMON原語封裝了當(dāng)使用GTX QPLL時,必須實例化GTX QPLL。
全文完。
*博客內(nèi)容為網(wǎng)友個人發(fā)布,僅代表博主個人觀點,如有侵權(quán)請聯(lián)系工作人員刪除。