MGT(Multi-gigabit transceiver)在業(yè)界MGT是高速串行收發(fā)器模塊的簡稱,xilinx公司在其artix7、kintex7以及virtex7里集成了數(shù)量不同的MGT用于實現(xiàn)FPGA與外界的高速串行通信,并且根據(jù)支持線速度的不同賦予了它新的名稱。另外,Spartan7里面沒有MGT。 在artix7里面,MGT被稱作GTP;在kintex7里面,MGT被稱作GTX;在virtex7里面,MGT被稱作GTX/GTH/GTZ; GTP最高線速度6.6Gb/s,GTX最高線速度12.5Gb/s,GTH最高線速度13.1Gb/s,GTZ最高線速度28.05Gb/s(太牛逼,沒用過,本篇不做介紹了)。 無論是GTP、GTX還是GTH,都是由3個模塊構(gòu)成:1、時鐘模塊2、數(shù)據(jù)發(fā)送模塊3、數(shù)據(jù)接收模塊 首先我們看看GTP的構(gòu)成,如圖1所示:
圖1:GTP結(jié)構(gòu)圖
在artix7中,每個GTP包含1個時鐘模塊、4個數(shù)據(jù)發(fā)送模塊以及4個數(shù)據(jù)接收模塊。一個時鐘模塊負(fù)責(zé)管理4對收發(fā)器(1個發(fā)送模塊和1個接收模塊合為一對收發(fā)器)。
時鐘模塊的輸入端可以接2組差分參考時鐘,內(nèi)部也有2個頻率為1.6GHz~3.3GHz的PLL,這樣就允許RX和TX工作在不同的參考時鐘下。
我們在來看看GTX/GTH的構(gòu)成,如圖2所示:
圖2:GTX/GTH結(jié)構(gòu)圖
在kintex7/virtex7中,每個GTX/GTH同樣包含1個時鐘模塊、4個數(shù)據(jù)發(fā)送模塊以及4個數(shù)據(jù)接收模塊。一個時鐘模塊負(fù)責(zé)管理4對收發(fā)器。但是時鐘模塊內(nèi)有4個CPLL,即每個收發(fā)器都包含一個。同時還有一個QPLL。那么CPLL和QPLL有何不同呢? 在GTX里面,CPLL的頻率范圍為1.6GHz~3.3GHz,支持的最高線速度為6.6Gb/s。在GTH里面,CPLL的頻率范圍為1.6GHz~5.16GHz。當(dāng)收發(fā)器的線速度非常高,其CPLL的頻率范圍已無法滿足需求時,QPLL就出場了。 在GTX里面,QPLL的工作頻率在低波段模式時為5.93 GHz~8.0GHz,在高波段的工作頻率為9.8GHz~12.5GHz。在GTH里面,QPLL的工作頻率為8.0GHz~13.1GHz。 因此,無論是artix、kintex還是virtex,PLL的頻率范圍決定了收發(fā)器的最高線速度。 咱們再看看數(shù)據(jù)發(fā)送模塊的結(jié)構(gòu),如圖3所示:
圖3:TX模塊
TX模塊的每一個單元模塊在其datasheet都有詳細(xì)的描述,有興趣的可以仔細(xì)去研究。咱們在使用TX功能時,大概知道其工作原理即可。
正如圖上所標(biāo)識的,咱們將需要發(fā)送的16/32bit并行數(shù)據(jù)通過內(nèi)部接口fifo“1”傳遞給8/10編碼模塊“2”,模塊“2”的10bit數(shù)據(jù)由于需要跨時鐘域,因此緩存到fifo“3”后再傳遞到并串轉(zhuǎn)換模塊“4”,“4”輸出的串行數(shù)據(jù)再通過接口5處理,調(diào)整數(shù)據(jù)的電氣性能就通過高速IO口發(fā)送出去了。 咱們再看看數(shù)據(jù)接收模塊的結(jié)構(gòu),如圖4所示:
圖4:RX模塊
RX模塊的使用相對發(fā)送模塊來說復(fù)雜一點點,但僅僅也是一點點而已。其數(shù)據(jù)流通的路徑和TX模塊正好相反,咱們這里就不再細(xì)說。 根據(jù)實際使用的經(jīng)驗來看,RX模塊數(shù)據(jù)接收時,串并轉(zhuǎn)換的時鐘域、數(shù)據(jù)緩存的時鐘域、RX與FPGA內(nèi)部邏輯之間的時鐘域,咱們千萬要注意,只要一混淆,數(shù)據(jù)接收就會出現(xiàn)莫名的bug。最簡單的方式就是使用RX接收數(shù)據(jù)的恢復(fù)時鐘,datasheet也推薦了其他幾種方式,大家也可以研究研究。 另外,RX數(shù)據(jù)的對齊咱們只要管理好上圖標(biāo)注?的部分,監(jiān)測其輸出的三兩個標(biāo)識信號,就可完成數(shù)據(jù)的正確獲取。
總之GTP、GTX、GTZ的使用沒有想象的復(fù)雜,例化這些IP核時,xilinx官方都給出了帶詳細(xì)注解的源碼例程,咱們少量改動就可以用在自己項目上了,其四五百頁的英文datasheet很多的內(nèi)容都可以走馬觀花,不會影響咱們使用它的功能。