基于Xilinx FPGA的千兆以太網(wǎng)及E1信號(hào)的光纖傳輸
圖4 Virtex-5以太網(wǎng)MAC封裝的模塊結(jié)構(gòu)圖
以太網(wǎng)MAC是一個(gè)具有162個(gè)端口和79個(gè)參數(shù)的復(fù)雜組件。封裝文件讓你可以?xún)H對(duì)特定應(yīng)用所需端口的參數(shù)和接口輕松進(jìn)行設(shè)置。它們的另外一個(gè)優(yōu)勢(shì)是簡(jiǎn)化了時(shí)鐘和物理I/O資源的使用。
以太網(wǎng)MAC封裝。在最低級(jí)別,實(shí)體化一個(gè)單獨(dú)的或者雙以太網(wǎng)MAC,同時(shí)在CORE Generator GUI中將它的屬性設(shè)置成你偏好的選項(xiàng)。所有未使用的輸入端口接地,未使用的輸出端口保持開(kāi)路狀態(tài)。
模塊級(jí)別的封裝。在下一層級(jí),對(duì)物理接口以及所要求的時(shí)鐘資源進(jìn)行實(shí)體化。這包括用于串行接口的RocketIO GTP收發(fā)器。同時(shí)針對(duì)你的配置對(duì)時(shí)鐘進(jìn)行優(yōu)化,并且利用時(shí)鐘將輸出同步到你的設(shè)計(jì)。
LocalLink級(jí)別的封裝。在該級(jí)別,將FIFO添加到客戶端發(fā)送器和接收器接口。FIFO能夠處理接收時(shí)壞幀的丟失并且以半雙工模式對(duì)幀重新傳輸。LocalLink可以作為后端接口使用。
RocketIO GTP Transceiver
RocketIO是一種高速的串行收發(fā)器,采用兩對(duì)差分對(duì)來(lái)進(jìn)行數(shù)據(jù)的發(fā)送和接收,可以實(shí)現(xiàn)兩個(gè)單工或一對(duì)全雙工的數(shù)據(jù)傳輸。RocketIO支持622Mb/s~3.75Gb/s的全雙工傳輸速率,還具有8b/10b編解碼(平衡編碼)、時(shí)鐘生成及恢復(fù)等功能。Aurora協(xié)議是為專(zhuān)有上層協(xié)議或行業(yè)標(biāo)準(zhǔn)的上層協(xié)議提供透明接口的第一款串行互連協(xié)議,可用于高速線性通路之間的點(diǎn)到點(diǎn)串行數(shù)據(jù)傳輸,同時(shí)其可擴(kuò)展的帶寬,為系統(tǒng)設(shè)計(jì)人員提供了所需要的靈活性。
1 PMA和PCS層
RocketIO包括PMA(物理媒介適配層)和PCS(物理編碼子層)兩個(gè)子層,其內(nèi)部結(jié)構(gòu)如圖5所示。其中PMA子層主要用于串行化和解串,PCS主要包括線路編碼和CRC校驗(yàn)編碼。
圖5 PMA、PCS內(nèi)部結(jié)構(gòu)框圖
PMA子層中集成了SERDES,發(fā)送和接收緩沖,時(shí)鐘發(fā)生器及時(shí)鐘恢復(fù)電路。SERDES是一個(gè)串并轉(zhuǎn)換器,負(fù)責(zé)FPGA中本地的32位并行數(shù)據(jù)(也可以是16位或8位)與RocketIO接口的串行數(shù)據(jù)之間的轉(zhuǎn)換。采用串行數(shù)據(jù)收發(fā),可以在高頻條件下很好地避免數(shù)據(jù)間的串?dāng)_。時(shí)鐘發(fā)生器及時(shí)鐘恢復(fù)電路用于將時(shí)鐘與數(shù)據(jù)綁定發(fā)送,以及將時(shí)鐘從接收到的數(shù)據(jù)流中恢復(fù)出來(lái),從而避免了在高速傳輸條件下時(shí)鐘與數(shù)據(jù)分開(kāi)傳輸所帶來(lái)的時(shí)鐘抖動(dòng)等問(wèn)題。
PCS子層負(fù)責(zé)8b/10b編碼解碼和CRC校驗(yàn),并集成了負(fù)責(zé)channel綁定和時(shí)鐘修正的彈性緩沖。8b/10b編碼可以避免數(shù)據(jù)流中出現(xiàn)連0連1的情況,便于時(shí)鐘的恢復(fù)。channel綁定通過(guò)在發(fā)送數(shù)據(jù)流中加入P字符來(lái)將幾個(gè)RocketIO通道綁定成一個(gè)一致的并行通道,從而來(lái)提高數(shù)據(jù)的吞吐率。最多支持24個(gè)通道的綁定。彈性緩沖可以解決恢復(fù)時(shí)鐘與本地時(shí)鐘的不一致問(wèn)題,并進(jìn)行數(shù)據(jù)率的匹配,從而使得channel綁定成為可能。對(duì)Rocket IO模塊的配置,可以通過(guò)下面兩種方式進(jìn)行:靜態(tài)特性可以通過(guò)HDL代碼設(shè)置;動(dòng)態(tài)特性可以通過(guò)RocketIO的原語(yǔ)端口進(jìn)行配置。
評(píng)論