10G以太網(wǎng)光口與高速串行接口的使用越來(lái)越普遍,本文擬通過(guò)一個(gè)簡(jiǎn)單的回環(huán)實(shí)驗(yàn),來(lái)說(shuō)明在常見的接口調(diào)試中需要注意的事項(xiàng)。各種Xilinx FPGA接口學(xué)習(xí)的秘訣:Example Design。歡迎探討。
一、實(shí)驗(yàn)?zāi)康?/strong>
為實(shí)現(xiàn)大容量交換機(jī)與高速率通信設(shè)備之間的高效數(shù)據(jù)傳輸,高速接口的理解與使用愈發(fā)顯現(xiàn)出其重要地位。本實(shí)驗(yàn)設(shè)計(jì)中計(jì)劃使用四個(gè)GTH高速串行接口,分別采用了10G以太網(wǎng)接口協(xié)議以及Aurora64b66b接口協(xié)議,實(shí)現(xiàn)交換板到測(cè)試設(shè)備的連接并通過(guò)光纖實(shí)現(xiàn)高速數(shù)據(jù)片外回環(huán),以達(dá)到快速理解接口協(xié)議并能夠熟練使用該兩種高速接口實(shí)現(xiàn)數(shù)據(jù)收發(fā)的目的。
二、接口簡(jiǎn)介
1、 GT接口簡(jiǎn)介
應(yīng)用在高速串行接口的數(shù)據(jù)收發(fā)。在A7系列芯片中叫GTP、在K7系列叫GTX、V7系列叫GTH,對(duì)于不同速度等級(jí)的高速通信的物理接口,原理基本一致。
1.1、收發(fā)器結(jié)構(gòu)
對(duì)于每一個(gè)串行高速收發(fā)器,其分為兩個(gè)子層:PCS(物理編碼子層)和 PMA(物理媒體連接子層)。PCS 層主要進(jìn)行數(shù)據(jù)編解碼以及多通道的處理;PMA 層主要進(jìn)行串并、并串轉(zhuǎn)換,預(yù)加重、去加重,串行數(shù)據(jù)的發(fā)送、數(shù)據(jù)時(shí)鐘的提取??梢允褂胕bert IP核對(duì)接口進(jìn)行回環(huán)測(cè)試,確定該接口是否可以正常使用。
![“”](https://file.elecfans.com/web1/M00/C8/50/pIYBAF9t9aGACb2sAAGnA86Pp2E901.jpg)
GT接口發(fā)送端處理流程:首先用戶邏輯數(shù)據(jù)經(jīng)過(guò)8b/10b編碼后,進(jìn)入一個(gè)發(fā)送緩存區(qū),該緩沖區(qū)主要是PMA子層和PCS子層兩個(gè)時(shí)鐘域的時(shí)鐘隔離,解決兩者時(shí)鐘速率匹配和相位差異的問(wèn)題,最后經(jīng)過(guò)高速Serdes進(jìn)行并串轉(zhuǎn)換。接收端和發(fā)送端過(guò)程相反,具體實(shí)現(xiàn)可參考ug476_7Series_Transceivers進(jìn)行學(xué)習(xí)。
1.2、GT時(shí)鐘使用說(shuō)明
7系列FPGA通常按照bank來(lái)分,對(duì)于GTX/GTH的bank,一般稱為一個(gè)Quad,原因是Xilinx的7系列FPGA隨著集成度的提高,其高速串行收發(fā)器不再獨(dú)占一個(gè)單獨(dú)的參考時(shí)鐘,而是以Quad來(lái)對(duì)串行高速收發(fā)器進(jìn)行分組,四個(gè)串行高速收發(fā)器和一個(gè)COMMON(QPLL)組成一個(gè)Quad,每一個(gè)串行高速收發(fā)器稱為一個(gè)Channel,其內(nèi)部結(jié)構(gòu)如圖2所示。
![“”](https://file.elecfans.com/web1/M00/C7/DA/o4YBAF9t9aOABpVGAAEZ3vUFW1Y939.png)
從底層角度看,由于CPLL是每個(gè)Channel獨(dú)有的,所以CPLL的所有接口都在Channel這個(gè)底層模塊中。而QPLL是另外使用了一個(gè)叫common的底層模塊。GTX中QPLL和CPLL,除了數(shù)目(每個(gè)Quad有一個(gè)QPLL四個(gè)CPLL)和歸屬(QPLL屬于common,CPLL屬于Channel)不同之外,最大的不同在于支持的最高線速率頻率不同。CPLL最高只有6.xG,而QPLL可以超過(guò)10G(具體數(shù)值要根據(jù)器件的速度等級(jí)來(lái)查詢DataSheet)。
對(duì)于7系列的GTX來(lái)說(shuō),每個(gè)Quad有兩個(gè)外部差分參考時(shí)鐘源,每個(gè)外部參考時(shí)鐘的輸入必須經(jīng)過(guò)IBUFDS_GTE2原語(yǔ)之后才能使用。7系列FPGA支持使用南北相鄰Quad的參考時(shí)鐘作為當(dāng)前Quad的參考時(shí)鐘,但是一個(gè)Quad的參考時(shí)鐘源不能驅(qū)動(dòng)超過(guò)3個(gè)Quad上的收發(fā)器(只能驅(qū)動(dòng)當(dāng)前Quad和南北方相鄰兩個(gè)Quad)。對(duì)于一個(gè)GTX Channel來(lái)說(shuō),可以獨(dú)立選擇該收發(fā)器的參考時(shí)鐘,可以選擇QPLL,也可以選擇CPLL,需要注意的是,每一個(gè)Quad上只有一個(gè)QPLL資源,重復(fù)例化會(huì)導(dǎo)致布線報(bào)錯(cuò)。
1.3、GT的主從概念
在我們使用GT 接口IP核時(shí)(Aurora和10GEthernet也適用),常提到的主核與從核的說(shuō)法并不準(zhǔn)確,這實(shí)際上只是我們?cè)谂渲肐P核時(shí)的一個(gè)共享邏輯的選項(xiàng),如圖3所示:
![“”](https://file.elecfans.com/web1/M00/C8/50/pIYBAF9t9aWAbkgpAABM-3Ur7bI077.png)
該說(shuō)明中很清楚的表明,兩個(gè)選項(xiàng)分別表示了收發(fā)器的QPLL、時(shí)鐘和復(fù)位邏輯等是包含在內(nèi)核本身還是示例設(shè)計(jì)(example design)中,為簡(jiǎn)單起見,我們常把共享邏輯包含在內(nèi)核本身的IP稱為主核,內(nèi)核中不包含共享邏輯的IP稱為從核,其結(jié)構(gòu)如下圖4和圖5所示。從核與主核的區(qū)別是:我們可以在Example Design中修改共享邏輯。在實(shí)際的設(shè)計(jì)中,可以使用主核也可以使用從核,但要注意的是,若設(shè)計(jì)中使用了一個(gè)主核后,則其內(nèi)部便使用了該Quad上的QPLL資源,在使用該Quad上的其他GTX接口時(shí),不能再使用主核,也無(wú)需再給從核添加共享邏輯。
2、 Aurora接口簡(jiǎn)介
2.1、 概述
Aurora 協(xié)議是由Xilinx公司提供的一個(gè)開放、免費(fèi)的鏈路層協(xié)議,可以用來(lái)進(jìn)行點(diǎn)到點(diǎn)的串行數(shù)據(jù)傳輸,具有實(shí)現(xiàn)高性能數(shù)據(jù)傳輸系統(tǒng)的高效率和簡(jiǎn)單易用的特點(diǎn)。本設(shè)計(jì)中使用的Aurora 64b66b協(xié)議是一個(gè)可擴(kuò)展的、輕量級(jí)的鏈路層協(xié)議,可以用于單路或者多路串行數(shù)據(jù)通信,單路可以實(shí)現(xiàn)總線位寬為64bit的數(shù)據(jù)與串行差分?jǐn)?shù)據(jù)信號(hào)之間的轉(zhuǎn)換。
2.2、 信號(hào)的連接
上一節(jié)有提到對(duì)于高速串行收發(fā)器,每一個(gè)Quad里僅可以使用一個(gè)QPLL(GTE2_COMMON),在我們生成一個(gè)Aurora從核并打開其example design后,這部分共享邏輯就包含在其gt_common_support模塊中,該模塊會(huì)產(chǎn)生gt_qpllclk_quad2_out、gt_qpllrefclk_quad2_out等信號(hào)供IP核使用,當(dāng)我們生成一個(gè)Aurora主核時(shí),該部分邏輯則包含在IP核內(nèi)部,QPLL會(huì)作為輸出信號(hào)從IP核輸出。而當(dāng)設(shè)計(jì)中需要2個(gè)及以上的GTX接口時(shí),則需要將這一共享邏輯產(chǎn)生的信號(hào)輸出給所有需要使用的IP核。以主核+從核為例,下圖說(shuō)明了其部分信號(hào)的連接方式:
當(dāng)使用兩個(gè)從核時(shí),上圖連線的這些信號(hào)均在example design的共享邏輯中產(chǎn)生,需要人為將其輸入到每一個(gè)接口IP中。
2.3、 時(shí)序邏輯
2.3.1、 鏈路建立
Aurora通道鏈路初始化完畢后會(huì)置位lane_up信號(hào),表明接口可以接收數(shù)據(jù);channel_up拉高時(shí)標(biāo)志接口可以發(fā)送數(shù)據(jù)。一般判斷這兩個(gè)信號(hào)均置位時(shí)認(rèn)為接口已完成初始化,可以開始進(jìn)行數(shù)據(jù)傳輸。
2.3.2、 數(shù)據(jù)傳輸
Aurora接口內(nèi)的數(shù)據(jù)傳輸格式如下圖所示:
![“”](https://file.elecfans.com/web1/M00/C8/50/pIYBAF9t9ayATxVaAAChy7p0eiQ781.png)
圖7中,s_axi_tx_tready信號(hào)拉高時(shí)表示已準(zhǔn)備好傳輸數(shù)據(jù),該信號(hào)由鏈路內(nèi)部的時(shí)鐘補(bǔ)償機(jī)制決定,不受人為控制,僅當(dāng)s_axi_tx_tvalid和s_axi_tx_tready兩個(gè)信號(hào)均被置為1時(shí),才表明該時(shí)鐘周期內(nèi)總線數(shù)據(jù)被成功傳輸。
![“”](https://file.elecfans.com/web1/M00/C7/DA/o4YBAF9t9a6AQmesAACVdxrmjlA262.png)
圖8中,m_axi_rx_tvalid表示當(dāng)前總線上的數(shù)據(jù)有效。
2.4、 接口硬件實(shí)現(xiàn)
SERDES是SERializer(串行器)/DESerializer(解串器)。它是一種主流的時(shí)分多路復(fù)用(TDM)、點(diǎn)對(duì)點(diǎn)(P2P)的串行通信技術(shù)。即在發(fā)送端多路低速并行信號(hào)被轉(zhuǎn)換成高速串行信號(hào),經(jīng)傳輸媒介(連接器、銅線或光纖),最后在接收端高速串行信號(hào)重新轉(zhuǎn)換成低速并行信號(hào)。這種點(diǎn)對(duì)點(diǎn)的串行通信技術(shù)充分利用傳輸媒體的信道容量,減少所需的傳輸信道和器件引腳數(shù)目,提升信號(hào)的傳輸速度,從而大大降低通信成本。
使用SERDES的好處除了可以最大程度上節(jié)省傳輸線的數(shù)量,還可以兼容板間傳輸和光纖傳輸。無(wú)論是通過(guò)何種方式連接,都需要使用XILINX的GTP/GTX高速串行傳輸接口。該接口的物理實(shí)現(xiàn)方式,是SERDERS,物理層的編碼方式可以選擇Aurora 8B10B或Aurora 64B66B,而應(yīng)用層可以選擇不同的協(xié)議,也可以不使用。
3、 10G以太網(wǎng)接口
可參考本公眾號(hào)之前文章:10G 以太網(wǎng)接口的FPGA實(shí)現(xiàn),你需要的都在這里了。
3.1、 概述
10G 以太網(wǎng)包括10GBASE-X、10GBASE-R 和 10GBASE-W。10GBASE-X 使用一種特緊湊包裝,每一對(duì)發(fā)送器/接收器在 3.125Gbit/s 速度(數(shù)據(jù)流速度為 2.5Gbit/s)下工作。10GBASE-R 是一種使用 64B/66B 編碼(不再使用千兆以太網(wǎng)中所用的 8B/10B)的串行接口,數(shù)據(jù)流為 10.000Gbit/s。10GBASE-W 是廣域網(wǎng)接口,與 SONET OC-192 兼容,數(shù)據(jù)流為 9.585Gbit/s。本設(shè)計(jì)中使用的是Xilinx官方開源IP核10G Ethernet subsystem中10GBASE-R模式以太網(wǎng)光接口。
3.2、 時(shí)鐘關(guān)系
對(duì)于FPGA內(nèi)部的時(shí)鐘布局主要分為以下4部分:
(a)輸入的差分參考時(shí)鐘經(jīng)過(guò)一個(gè)參考鐘專用緩存(IBUFDS_GTE2)變?yōu)閱味藭r(shí)鐘refclk,然后將refclk分為兩路,一路接到QPLL(QuadraturephasePhase Locking Loop),另一路時(shí)鐘經(jīng)過(guò)一個(gè)BUFG后轉(zhuǎn)變?yōu)槿謺r(shí)鐘coreclk,繼續(xù)將coreclk分為兩路,一路作為10G MAC核XGMII接口的收發(fā)時(shí)鐘(xgmii_rx_clk和xgmii_tx_clk),另一路用于驅(qū)動(dòng)10G Ethernet PCS/PMA IP核內(nèi)部用戶側(cè)的邏輯。
(b)對(duì)于QPLL輸出的兩路時(shí)鐘qplloutclk和qplloutrefclk,主要是用于IP核內(nèi)GTH收發(fā)器使用的高性能時(shí)鐘,其中qplloutclk直接用于驅(qū)動(dòng)GTH內(nèi)發(fā)送端的串行信號(hào),其頻率為5.15625GHz。qplloutrefclk用于驅(qū)動(dòng)GTH內(nèi)部部分邏輯模塊,頻率為156.25MHz。
(c) txoutclk是由10G Ethernet PCS/PMA IP產(chǎn)生的一個(gè)322.26MHz的時(shí)鐘,該時(shí)鐘經(jīng)過(guò)BUFG后分為兩路,其中txusrclk用于驅(qū)動(dòng)IP核內(nèi)GTH的32bits總線數(shù)據(jù),txusrclk2用于驅(qū)動(dòng)IP核內(nèi)PCS層部分模塊。
(d)在實(shí)驗(yàn)室自研交換板(芯片型號(hào)xc7vx690tffg1761-2)上,25MHz的晶振產(chǎn)生系統(tǒng)時(shí)鐘輸入到FPGA內(nèi)的PLL(Phase LockingLoop)模塊,PLL模塊以25MHz時(shí)鐘為驅(qū)動(dòng)時(shí)鐘生成156.25MHz用戶鐘發(fā)送給10G MAC核用戶側(cè)。
3.3、 IP核配置
Vivado中10G以太網(wǎng) IP核的配置界面如下圖,該 IP 核符合 IEEE802.3-2008標(biāo)準(zhǔn),包含 MDIO(PHY 管理接口),F(xiàn)CS 處理機(jī)制可配置,流量控制等功能。MAC 與 PHY 的接口使用標(biāo)準(zhǔn) XGMII 接口,其收發(fā)數(shù)據(jù)位寬均為64bit,頻率為 156.25MHz。MAC 核與用戶的接口為 AXI4_STREAM,其數(shù)據(jù)位寬為64bits,工作頻率也為156.25MHz。在shared logic選項(xiàng)卡中選擇了將共享邏輯包含在example design中,也即從核模式。
![“”](https://file.elecfans.com/web1/M00/C7/DA/o4YBAF9t9bCAB8JOAADzveVZYAI250.png)
共享邏輯包含一個(gè)差分輸入時(shí)鐘緩沖器,該緩沖器連接到GT_COMMON塊,該Quad上最多可以有四個(gè)10G以太網(wǎng)子系統(tǒng)內(nèi)核共享此邏輯。
使用時(shí)鐘緩沖器(BUFG_GT)從收發(fā)器差分參考時(shí)鐘創(chuàng)建coreclk / coreclk_out。coreclk / coreclk_out的頻率與差分時(shí)鐘源的頻率相同。共享邏輯中的最終BUFG_GT來(lái)自GT_CHANNEL的TXOUTCLK,然后又連接到GT_CHANNEL,以提供收發(fā)器TX用戶時(shí)鐘(TXUSRCLK和TXUSERCLK2)。使用64位數(shù)據(jù)路徑時(shí),此時(shí)鐘的頻率為156.25 MHz;使用32位數(shù)據(jù)路徑時(shí),此時(shí)鐘的頻率為312.5MHz。需要注意的是,與IP核直接相連的用戶數(shù)據(jù)應(yīng)與coreclk對(duì)齊,即使本地的用戶時(shí)鐘頻率與coreclk頻率相同均為156.25MHz時(shí),也可能因?yàn)榉峭炊鴮?dǎo)致相位偏差,因此也應(yīng)采用異步FIFO進(jìn)行跨時(shí)鐘域處理。
3.4、 信號(hào)連接
以1個(gè)主核+2個(gè)從核為例,下圖說(shuō)明了其部分信號(hào)的連接方式:
![“”](https://file.elecfans.com/web1/M00/C8/50/pIYBAF9t9bKAK_SaAAFm4ztwcmw096.jpg)
當(dāng)使用兩個(gè)從核時(shí),上圖連線的這些信號(hào)均在example design的共享邏輯中產(chǎn)生,需要人為將其輸入到每一個(gè)接口IP中。
3.5、 數(shù)據(jù)傳輸
3.5.1、 鏈路建立
10G以太網(wǎng)通道鏈路初始化完畢后會(huì)置位core_ready信號(hào),表明接口接口已完成初始化,可以開始進(jìn)行數(shù)據(jù)傳輸。
3.5.2、 數(shù)據(jù)格式
10G以太網(wǎng)接口用戶側(cè)采用的AXI-Stream總線數(shù)據(jù)格式如下圖所示:
![“”](https://file.elecfans.com/web1/M00/C8/50/pIYBAF9t9bSAFPygAACRqgWKil0139.png)
3.6、 接口硬件實(shí)現(xiàn)
在遠(yuǎn)距離連接的場(chǎng)景中,銅導(dǎo)線已經(jīng)不能滿足如此長(zhǎng)距離,大數(shù)據(jù)量的通信,因此必須要采用光纖通信的方案。實(shí)現(xiàn)該方案需要使用光模塊。
光模塊是進(jìn)行光電和電光轉(zhuǎn)換的光電子器件。光模塊的發(fā)送端把電信號(hào)轉(zhuǎn)換為光信號(hào),接收端把光信號(hào)轉(zhuǎn)換為電信號(hào)。光模塊按照封裝形式分類,常見的有SFP,SFP+,XFP等。光模塊的接口是完全兼容XILINX的GTP/GTX IO,接口電路如圖所示:
![“”](https://file.elecfans.com/web1/M00/C7/DA/o4YBAF9t9baAHKzJAADSIz-3DxA009.png)
光模塊的種類有很多,下面只針對(duì)項(xiàng)目中常見的三種光模塊作介紹。
1)SFP光模塊
SFP光模塊是一種小型可插拔光模塊,目前最高速率可達(dá)10.3G(市面上基本為1.25G),通常與LC跳線連接。SFP光模塊主要由激光器構(gòu)成。SFP分類可分為速率分類、波長(zhǎng)分類、模式分類。SFP光模塊又包含了百兆SFP、千兆SFP、BIDI SFP、CWDM SFP和DWDM SFP。
2)SFP+光模塊
SFP+光模塊的外形和SFP光模塊是一樣的,傳輸速率可以達(dá)到10G,常用于中短距離傳輸。SFP+光模塊是一種可熱插拔的,獨(dú)立于通信協(xié)議的光學(xué)收發(fā)器。
3)XFP光模塊
XFP光模塊是一種可熱插拔的,獨(dú)立于通信協(xié)議的光學(xué)收發(fā)器。速率同樣可以達(dá)到10G,但是體積比SFP/SFP+光模塊要大。
通過(guò)比對(duì)分析,SFP+光模塊具有比XFP更緊湊的外形尺寸,比SFP更高的速率,因此在遠(yuǎn)距離光纖傳輸中是一種較為優(yōu)秀的方案。
本設(shè)計(jì)中10G以太網(wǎng)接口在硬件上采用SFP+光模塊實(shí)現(xiàn)光電轉(zhuǎn)換。
三、幀結(jié)構(gòu)分析
1、 以太網(wǎng)幀結(jié)構(gòu)
該部分內(nèi)容也可參看本公眾號(hào)之前文章:你見過(guò)物理層的以太網(wǎng)幀長(zhǎng)什么樣子嗎?
目前主要有兩種格式的以太網(wǎng)幀:Ethernet II(DIX 2.0)和IEEE 802.3。本設(shè)計(jì)使用Ethernet II幀結(jié)構(gòu),其幀格式如圖13所示:
![“”](https://file.elecfans.com/web1/M00/C8/50/pIYBAF9t9beAGffPAAA8Fd5ADF0771.png)
各字段具體說(shuō)明如下:
⑴ 前導(dǎo)碼(Preamble):由0、1間隔代碼組成,用來(lái)通知目標(biāo)站作好接收準(zhǔn)備。
⑵ 目標(biāo)地址和源地址(Destination Address & Source Address):表示發(fā)送和接收幀的工作站的地址,各占據(jù)6個(gè)字節(jié)。其中,目標(biāo)地址可以是單址,也可以是多點(diǎn)傳送或廣播地址。
⑶ 類型(Type)或長(zhǎng)度(Length):這兩個(gè)字節(jié)在Ethernet II幀中表示類型(Type),指定接收數(shù)據(jù)的高層協(xié)議類型。
⑷ 數(shù)據(jù)(Data):在經(jīng)過(guò)物理層和邏輯鏈路層的處理之后,包含在幀中的數(shù)據(jù)將被傳遞給在類型段中指定的高層協(xié)議。該數(shù)據(jù)段的長(zhǎng)度最小應(yīng)當(dāng)不低于46個(gè)字節(jié),最大應(yīng)不超過(guò)1500字節(jié)。如果數(shù)據(jù)段長(zhǎng)度過(guò)小,那么將會(huì)在數(shù)據(jù)段后自動(dòng)填充(Trailer)字符。相反,如果數(shù)據(jù)段長(zhǎng)度過(guò)大,那么將會(huì)把數(shù)據(jù)段分段后傳輸。
⑸ 幀校驗(yàn)序列(FSC):包含長(zhǎng)度為4個(gè)字節(jié)的循環(huán)冗余校驗(yàn)值(CRC),由發(fā)送設(shè)備計(jì)算產(chǎn)生,在接收方被重新計(jì)算以確定幀在傳送過(guò)程中是否被損壞。
2、Spirent Testcenter業(yè)務(wù)流格式
![“”](https://file.elecfans.com/web1/M00/C8/50/pIYBAF9t9biAIvJtAABNxNTYq9g940.png)
當(dāng)使用Testcenter配置以太網(wǎng)數(shù)據(jù)幀時(shí),Testcenter會(huì)在以太網(wǎng)幀的數(shù)據(jù)字段自動(dòng)添加20個(gè)字節(jié)的開銷,即上圖中的Signature字段,該字段的各部分功能如下:
![“”](https://file.elecfans.com/web1/M00/C7/DA/o4YBAF9t9bqAQAGVAADqG5UhQ58312.jpg)
該字段包含32bit(4個(gè)字節(jié))的流ID,支持40億個(gè)測(cè)試流。
該字段具有10納秒的時(shí)間戳分辨率
當(dāng)Spirent Testcenter在有效負(fù)載中插入PRBS23碼型時(shí),PRBS位置1
Last位會(huì)告訴接收方時(shí)間戳所在字節(jié)
該字段具有一個(gè)內(nèi)置的UDP / TCP Checksum Cheater字段(用于在有效載荷中放置修飾符時(shí)使用)
由于該Signature字段是SpirentTestcenter業(yè)務(wù)流的唯一標(biāo)識(shí),Testcenter通過(guò)識(shí)別接收到的數(shù)據(jù)流的Signature字段來(lái)計(jì)算鏈路時(shí)延并判斷是否有丟幀的情況,此外,該字段在Testcenter軟件中不對(duì)用戶可見,也即我們無(wú)法人為的去配置這個(gè)字段,因此建議在處理數(shù)據(jù)幀時(shí),不要?jiǎng)h改該字段信息。當(dāng)然,也可以選擇讓Testcenter不添加這一字段,但是這樣Testcenter在接收到以太網(wǎng)幀之后無(wú)法與已發(fā)送的數(shù)據(jù)幀進(jìn)行比較。本設(shè)計(jì)選擇的方案是默認(rèn)在Testcenter業(yè)務(wù)流后自動(dòng)添加Signature字段。
3、 自定義幀格式
本實(shí)驗(yàn)在標(biāo)準(zhǔn)以太網(wǎng)EthernetII幀格式的基礎(chǔ)上重新定義了系統(tǒng)內(nèi)部幀格式,如下圖:
![“”](https://file.elecfans.com/web1/M00/C8/50/pIYBAF9t9byAU16nAABcTC7L6BI887.png)
上圖中目的地址、源地址、幀類型和FCS字段均保留了EthernetII幀結(jié)構(gòu),而為了邏輯簡(jiǎn)單起見,將數(shù)據(jù)字段重新拆分成四個(gè)字段,其中預(yù)留字段僅起占位功能,Signature字段為Testcenter自動(dòng)填充的開銷字段。實(shí)驗(yàn)中真正使用的也就是載荷部分的84字節(jié)。
四、數(shù)據(jù)處理流程
1、 實(shí)現(xiàn)方案
1.1整體架構(gòu)
10G以太網(wǎng)接口接收來(lái)自Testcenter測(cè)試設(shè)備發(fā)送過(guò)來(lái)的以太網(wǎng)幀,提取出關(guān)鍵字段將其拆分成并行的12路通道數(shù)據(jù),與clk時(shí)鐘同步,然后將這些數(shù)據(jù)進(jìn)行組包,N個(gè)clk內(nèi)的數(shù)據(jù)組合成一幀,使用aurora64B66B將數(shù)據(jù)一幀一幀地發(fā)送出去,接收機(jī)對(duì)收到的幀數(shù)據(jù)進(jìn)行解析,并還原成與內(nèi)部clk同步的12路通道數(shù)據(jù),在將12路數(shù)據(jù)合并成以太網(wǎng)幀格式,通過(guò)10G以太網(wǎng)接口發(fā)送回Testcenter。實(shí)現(xiàn)框圖如下:
![“”](https://file.elecfans.com/web1/M00/C7/DA/o4YBAF9t9b6ADYJyAADqkuDWfOo791.png)
1.2、數(shù)據(jù)流程
根據(jù)上述設(shè)計(jì)架構(gòu),本設(shè)計(jì)的數(shù)據(jù)流程如下圖:
![“”](https://file.elecfans.com/web1/M00/C7/DA/o4YBAF9t9cCAYJSvAADWiHsQqfg038.png)
五、主要模塊仿真RTL級(jí)驗(yàn)證
1、 10G以太網(wǎng)接口功能驗(yàn)證
在10G以太網(wǎng)接口1發(fā)送端寫入64位固定幀,接口將其轉(zhuǎn)換成差分信號(hào)輸出,在差分端打環(huán),使接口1發(fā)送出的差分信號(hào)進(jìn)入接口2的接收端,將接收端恢復(fù)出的并行數(shù)據(jù)與數(shù)據(jù)源數(shù)據(jù)進(jìn)行比較。仿真結(jié)果如下圖:
在core_ready信號(hào)拉高后向接口1發(fā)送端pkt_tx_*寫入數(shù)據(jù),將接口1與接口2的差分端相連,監(jiān)測(cè)接口2接收端pkt_rx_*恢復(fù)出的以太網(wǎng)幀。
2、 Aurora64B66B接口功能驗(yàn)證
在Aurora64B66B接口1發(fā)送端寫入64位固定幀,接口將其轉(zhuǎn)換成差分信號(hào)輸出,在差分端打環(huán),使接口1發(fā)送出的差分信號(hào)進(jìn)入接口2的接收端,將接收端恢復(fù)出的并行數(shù)據(jù)與數(shù)據(jù)源數(shù)據(jù)進(jìn)行比較。仿真結(jié)果如下圖:
六、板級(jí)驗(yàn)證
1、 驗(yàn)證環(huán)境
實(shí)驗(yàn)選取實(shí)驗(yàn)室自研交換板(芯片型號(hào)xc7vx690tffg1761-2),該交換板具有6個(gè)GTH光口,本設(shè)計(jì)選取4個(gè)光口進(jìn)行測(cè)試,左起1口、4口為10G以太網(wǎng)接口,通過(guò)光纖與Testcenter相連,如圖32所示。2口、3口為Aurora64B66B接口,通過(guò)光纖實(shí)現(xiàn)外環(huán)連接。
2、 測(cè)試流配置
在Testcenter配套軟件上配置業(yè)務(wù)流時(shí),為直觀的驗(yàn)證本設(shè)計(jì)功能,為以太網(wǎng)幀配置payload,即添加custom header,如圖33所示:
3、 驗(yàn)證結(jié)果
通過(guò)Xilinx ila抓取部分信號(hào),從圖34可以看到本設(shè)計(jì)可以成功的提取出以太網(wǎng)幀的載荷字段,并從中解析出并行的12路通道數(shù)據(jù),前60字節(jié)與6.2中配置字段相同,本設(shè)計(jì)功能實(shí)現(xiàn)良好。圖35中對(duì)Testcenter接收到的數(shù)據(jù)幀進(jìn)行統(tǒng)計(jì)并與已發(fā)送的數(shù)據(jù)幀進(jìn)行比較,表明本設(shè)計(jì)未出現(xiàn)丟幀、錯(cuò)幀情況。
七、附錄
下面提供實(shí)現(xiàn)本設(shè)計(jì)的另一種思路:
在前幾章提及GT Quad中QPLL資源的問(wèn)題,即一個(gè)Quad上僅能夠使用一個(gè)QPLL,因此本設(shè)計(jì)使用了四個(gè)GTH接口共同使用一個(gè)共享邏輯,其QPLL時(shí)鐘信號(hào)需要驅(qū)動(dòng)2個(gè)10G以太網(wǎng)接口和2個(gè)Aurora64B66B接口。對(duì)初學(xué)者來(lái)說(shuō),梳理清楚GT時(shí)鐘并使用QPLL是具有一定困難的,最簡(jiǎn)單的方法是,將4個(gè)接口分別放置在兩個(gè)Quad上,即每?jī)蓚€(gè)GT接口共享一個(gè)QPLL資源,這樣可以直接使用Xilinx官方文檔中的1主帶1從的模式,盡可能的簡(jiǎn)化了代碼并大大減少調(diào)試中的困難。
本實(shí)驗(yàn)選擇的交換板上帶有標(biāo)準(zhǔn)FMC擴(kuò)展口,其上具有豐富的GT資源,下圖展示了FMC擴(kuò)展板與交換板的連接,以及通過(guò)同軸電纜將擴(kuò)展板上的差分端口相連實(shí)現(xiàn)外環(huán)。
編輯:hfy
-
收發(fā)器
+關(guān)注
關(guān)注
10文章
3477瀏覽量
106284 -
以太網(wǎng)
+關(guān)注
關(guān)注
40文章
5465瀏覽量
172827 -
高速接口
+關(guān)注
關(guān)注
1文章
53瀏覽量
14814 -
AURORA
+關(guān)注
關(guān)注
0文章
25瀏覽量
5422
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
將兩片TLK3101之間用光收發(fā)模塊通過(guò)光纖互聯(lián),TLK3101和光收發(fā)模塊之間的接口匹配不存在問(wèn)題,為什么?
TL16C554發(fā)送一串數(shù)據(jù),在回環(huán)測(cè)試中總讀不出最后一字節(jié)數(shù)據(jù),為什么?
ADC3561轉(zhuǎn)換成什么數(shù)據(jù)格式便于高速實(shí)時(shí)通過(guò)WIFI發(fā)送?
通過(guò)光纖通訊,PXIe可實(shí)現(xiàn)與臺(tái)式機(jī)/工控機(jī)的連接
![<b class='flag-5'>通過(guò)</b><b class='flag-5'>光纖</b>通訊,PXIe可<b class='flag-5'>實(shí)現(xiàn)</b>與臺(tái)式機(jī)/工控機(jī)的連接](https://file1.elecfans.com/web1/M00/F4/BD/wKgZoWcxqXaABHYHAAHRUQkUWSY877.png)
DSP發(fā)送數(shù)據(jù)時(shí)通過(guò)外擴(kuò)DA芯片產(chǎn)生4KHZ正弦波,接收時(shí)用DSP自帶的AD接收數(shù)據(jù),是不是沒(méi)法實(shí)現(xiàn)?
光纖器件與技術(shù)有關(guān)嗎
高速脈沖數(shù)據(jù)采集如何實(shí)現(xiàn)
![<b class='flag-5'>高速</b>脈沖<b class='flag-5'>數(shù)據(jù)</b>采集如何<b class='flag-5'>實(shí)現(xiàn)</b>](https://file1.elecfans.com//web2/M00/05/27/wKgaombMS2yAK4XkAADAZXvM-JQ184.jpg)
請(qǐng)問(wèn)如何使用片外SRAM?
萬(wàn)兆光纖跳線和千兆光纖跳線怎么區(qū)分
基于FPGA的AES256光纖加密設(shè)計(jì)
請(qǐng)問(wèn)opencv組件.bss太大了怎么放到片外RAM?
基于 FPGA 的光纖混沌加密系統(tǒng)
mpo光纖連接器應(yīng)用哪些方面
線路光纖差動(dòng)保護(hù)的原理和光纖通道具體要求
![線路<b class='flag-5'>光纖</b>差動(dòng)保護(hù)的原理和<b class='flag-5'>光纖</b>通道具體要求](https://file1.elecfans.com/web2/M00/C6/80/wKgZomYKJ-6ACDCBAAA-RalyJ2Y626.png)
評(píng)論