楊見 陳偉 許杰 陳少林
(1.四川九洲空管科技有限責(zé)任公司 四川省綿陽市 621000 2.空裝駐綿陽地區(qū)某軍事代表室 四川省綿陽市 621000)
隨 著CML(CurrentModeLogic)、CDR、8b10b 編碼/64b66b編碼技術(shù)、預(yù)加重/去加重、時(shí)鐘補(bǔ)償?shù)燃夹g(shù)的出現(xiàn),能夠極大地減小時(shí)鐘抖動(dòng)、收發(fā)時(shí)鐘頻偏、信號(hào)衰減和線路噪聲對(duì)接收性能的影響,從而使高速串行傳輸方式得到極為廣泛的應(yīng)用,而其接口信號(hào)線數(shù)量少、應(yīng)用成本低等優(yōu)點(diǎn),更是讓開發(fā)人員相比并行數(shù)據(jù)傳輸接口而言,更愿意選擇高速串行傳輸方式。Xilinx FPGA 集成了可實(shí)現(xiàn)不同線速率的高速串行收發(fā)器硬核資源,開發(fā)人員只需要進(jìn)行簡(jiǎn)單的配置即可實(shí)現(xiàn)高速串行應(yīng)用?;诔杀究紤],在工程應(yīng)用中,開發(fā)人員依然遵循通過調(diào)用盡量少的資源去完成足夠多的功能這一準(zhǔn)則展開設(shè)計(jì)。本文就針對(duì)這一點(diǎn)對(duì)Xilinx FPGA 高速串行資源的利用提出一種設(shè)計(jì)思路進(jìn)行分析并驗(yàn)證。
QUAD116 搭建4 條常規(guī)的10G 高速鏈路與目標(biāo)設(shè)備三通信,QUAD115 搭建3 條10G 高速鏈路與目標(biāo)設(shè)備二通信,以及一條千兆網(wǎng)鏈路與目標(biāo)設(shè)備一通信。
鏈路設(shè)計(jì)要求如圖1 所示。
Xilinx 7 系列GTX 每四個(gè)Channel 組合成一個(gè)QUAD,每個(gè)QUAD 有兩組參考時(shí)鐘輸入,一個(gè)QPLL,4 個(gè)CPLL,CPLL 輸出時(shí)鐘頻率最高3.125Ghz,通信鏈路線速率最高6.25Gbps,QPLL 輸出時(shí)鐘頻率則在5.93Ghz~12.5Ghz 范圍內(nèi)。
由Xilinx 官方手冊(cè)PG047 可知,每個(gè)QUAD 的參考時(shí)鐘,除了驅(qū)動(dòng)自身外,還可以為相鄰的兩個(gè)QUAD 提供時(shí)鐘驅(qū)動(dòng)。如QUAD116 的參考時(shí)鐘(MGTREFCLK0/MGTREFCLK1)就可以同時(shí)驅(qū)動(dòng)QUAD115、QUAD116、QUAD117,但QUAD115 就只能同時(shí)驅(qū)動(dòng)QUAD115 與QUAD116。
QUAD 內(nèi)共享資源結(jié)構(gòu)如圖2 所示。
千兆網(wǎng)鏈路通過調(diào)用Xilinx“1G/2.5G Ethernet PCS/PMA or SGMII”IP 核完成底層搭建,10G 高速鏈路通過調(diào)用Xilinx“7 Series FPGAs GTX/GTH Transceivers”IP 核完成底層搭建,兩者都是基于GTX 硬核實(shí)現(xiàn)。
由Xilinx 官方手冊(cè)PG047 可知,千兆網(wǎng)鏈路實(shí)際線速率為1.25Gbps,IP 核需要125Mhz 參考時(shí)鐘,使用GTX 的CPLL 資源;Transceiver IP 核實(shí)現(xiàn)10Gbps 線速率鏈路時(shí)所需的參考時(shí)鐘可以為100Mhz、125Mhz 等,需要使用GTX 的QPLL 資源。
圖1:高速通信鏈路規(guī)劃
圖2:GTX 時(shí)鐘結(jié)構(gòu)
圖3:FPGA 時(shí)鐘資源分配示意圖
圖4:Transceiver IP 核5 條10G 高速鏈路參考時(shí)鐘(100Mhz)分配示意圖
圖5:Transceiver IP 核結(jié)構(gòu)層次示意圖(Q115 與Q116 均接入Q116 參考時(shí)鐘)
圖6:共享邏輯分配在IP 核內(nèi)部后文件層級(jí)結(jié)構(gòu)示意圖
圖7:共享邏輯分配在IP 核外部后文件層級(jí)結(jié)構(gòu)示意圖
圖8:共享邏輯分配在核外移除GT_COMMON 后的千兆網(wǎng)IP 核層級(jí)結(jié)構(gòu)圖
系統(tǒng)10G Transceiver 鏈路要保證通信質(zhì)量,則選擇高速收發(fā)兩端時(shí)鐘同頻同源,千兆網(wǎng)IP 核會(huì)通過發(fā)送時(shí)鐘補(bǔ)償序列完成對(duì)時(shí)鐘差異的校準(zhǔn)。
那么要完成需求描述中所有通信鏈路的搭建,我們時(shí)鐘資源的最簡(jiǎn)設(shè)計(jì)如圖3 所示。
即,QUAD116 與QUAD115 的7 條高速鏈路均采用QUAD116的100Mhz 參考時(shí)鐘進(jìn)行驅(qū)動(dòng),而千兆網(wǎng)則直接使用QUAD115 提供的125Mhz 參考時(shí)鐘進(jìn)行驅(qū)動(dòng)。
首先調(diào)用“Transceiver”IP 核配置10G 高速鏈路,為簡(jiǎn)化操作流程,選擇QUAD116 的4 條鏈路與QUAD115 的GT00/GT01/GT02鏈路在一個(gè)IP核里進(jìn)行統(tǒng)一配置,如圖4所示,而IP核“Shared Logic”則可以選擇“Include Shared Logic In Core”,由軟件完成10G 通信鏈路共享資源的分配,而不需要人工介入。
“Transceiver”IP 核結(jié)構(gòu)層次示意圖如圖5 所示。
接著調(diào)用“1G/2.5G Ethernet PCS/PMA or SGMII v15.2”IP 核搭建千兆網(wǎng),由于IP 核圖形界面未提供參考時(shí)鐘分配接口,僅提供“Shared Logic”分配選項(xiàng)。而如果共享邏輯放在核內(nèi),即使實(shí)際不會(huì)使用QPLL,IP 核依然會(huì)默認(rèn)調(diào)用QUAD115 GT_COMMON模塊占用QUAD115 的QPLL 資源,從而與QUAD115 的10G 高速鏈路發(fā)生資源調(diào)用沖突,如圖6 所示。
故千兆網(wǎng)IP 核共享邏輯必須選擇放在IP 核外,即“Include Shared Logic In Example Design”選項(xiàng)。在IP 核生成完畢之后打開Example Design,可以看到示例工程中IP 核與共享邏輯層級(jí)結(jié)構(gòu),如圖7 所示。
手動(dòng)將圖中方框內(nèi)文件移植到實(shí)際工程中IP 核的上層代碼塊中,其層級(jí)結(jié)構(gòu)如圖8 所示。
在上述配置完成后,開發(fā)人員就可以創(chuàng)建上層應(yīng)用,分別實(shí)現(xiàn)在當(dāng)前硬件基礎(chǔ)上的最優(yōu)高速設(shè)計(jì)。
所有功能代碼添加完成后,對(duì)工程進(jìn)行編譯,Vivado 軟件未提示錯(cuò)誤,將目標(biāo)文件寫入FPGA 中,通過與目標(biāo)設(shè)備進(jìn)行通信測(cè)試,千兆網(wǎng)與10G 高速鏈路通信均正常且穩(wěn)定,無誤碼,數(shù)據(jù)無丟包。
所有開發(fā)及測(cè)試均基于Xilinx Vivado 2017.4 版本完成。
在遵循開發(fā)平臺(tái)與IP 核廠商設(shè)計(jì)規(guī)則的前提下,通過對(duì)已有資源進(jìn)行合理的分解與重組可以有效提高硬件利用率,節(jié)約設(shè)計(jì)成本。