FPGA高速序列傳輸技術與應用—GTX概述與參考時鐘篇
xilinx的7系列FPGA根據不同的器件型別,集成了GTP、GTX、GTH以及GTZ四種序列高速收發器,四種收發器主要區別是支援的線速率不同,圖一可以說明在7系列裡面器件型別和支援的收發器型別以及最大的收發器數量。
圖一
Xilinx的7系列FPGA隨著整合度的提高,其高速序列收發器不再獨佔一個單獨的參考時鐘,而是以Quad來對序列高速收發器進行分組,四個序列高速收發器和一個COMMOM(QPLL)組成一個Quad,每一個序列高速收發器稱為一個Channel,以XC7K325T為例,GTX在FPGA內部如圖二所示:
圖二
對於每一個序列高速收發器,其包含了傳送部分和接收部分,內部結構圖三:
圖三
傳送端和接收端功能獨立,均由PMA(Physical Media Attachment,物理媒介適配層)和PCS(PhysicalCoding Sublayer,物理編碼子層)兩個子層組成。其中PMA子層包含高速串並轉換(Serdes)、預/後加重、接收均衡、時鐘發生器及時鐘恢復等電路。PCS子層包含8B/10B編解碼、緩衝區、通道繫結和時鐘修正等電路。
GTX傳送端處理流程:首先使用者邏輯資料經過8B/10B編碼後,進入一個傳送快取區,該緩衝區主要是PMA子層和PCS子層兩個時鐘域的時鐘隔離,解決兩者時鐘速率匹配和相位差異的問題,最後經過高速Serdes進行並串轉換,有必要的話,可以進行預加重、後加重。值得一提的是,如果在PCB設計時不慎將TXP和TXN差分引腳交叉連線,則可以通過極性控制來彌補這個設計錯誤。接收端和傳送端過程相反,相似點較多,這裡就不贅述了,需要注意的是RX接收端的彈性緩衝區,其具有時鐘糾正和通道繫結功能。
上面是GTX的效能和結構功能概述,下面詳細分析GTX的時鐘結構。
以7系列的GTX來說,每個Quad有兩個外部差分參考時鐘源,其中一個Quad的時鐘結構如圖四所示:
圖四
紅色方框部分是兩個差分參考時鐘輸入,每個外部參考時鐘的輸入必須經過IBUFDS_GTE2源語之後才能使用。綠色方框是來自其他Quad的參考時鐘輸入,7系列FPGA支援使用相鄰(南北方向)Quad的參考時鐘作為當前Quad的參考時鐘,多路參考時鐘源經過一個選擇器之後,分兩路進入QPLL和CPLL,如圖五和圖六,其中藍色方框是QPLL,黃色方框是CPLL,對於一個GTX Channel來說,可以獨立選擇參考時鐘,可以選擇QPLL,也可以選擇CPLL,QPLL和CPLL的區別在於兩者支援的線速率不同,QPLL支援的線速率高於CPLL,圖七是外部參考時鐘模型的詳細結構,紅色箭頭表示QPLL通路,黃色箭頭表示CPLL通路。
圖五
圖六
圖七
因為每一個Quad有兩個外部參考時鐘,因此對於每一個Quad來說,可以選擇兩個不同的參考時鐘,每一個CHANNEL的接收端和傳送端都可以獨立選擇參考時鐘,如圖八所示:
圖八
如果使用者需要使用其他Quad的參考時鐘源來作為當前Quad的參考時鐘,在滿足下面三個條件的情況下可以使用:
1. 只能使用當前Quad上方的Quad的參考時鐘;
2. 只能使用當前Quad下方的Quad的參考時鐘;
3. 一個Quad的參考時鐘源不能驅動超過3個Quad的收發器(只能驅動當前Quad和上下方相鄰兩個Quad);
滿足上面的條件,就可以把其他Quad的參考時鐘配置成當前Quad的參考時鐘,如圖九所示,注意圖中紅色方框表示相鄰的Quad:
圖九
QPLL和CPLL的區別,在於兩者支援的線速率不同,對於CPLL來說,支援的線速率位1.6GHz到3.3GHZ之間,而對於QPLL來說,GTX支援的線速率分兩檔,Lower Baud支援5.93GHz~8.0GHz,Upper Baud支援9.8GHz~12.5GHz,對於GTH則不分檔位,支援的線速率為8.0GHz~13.1GHz。