蔡玉輝
(中國電子科技集團公司第四十七研究所,沈陽110032)
隨著網(wǎng)絡(luò)技術(shù)的高速發(fā)展,以太網(wǎng)已在通信、控制、傳輸領(lǐng)域得到了普遍的應(yīng)用。目前對集成網(wǎng)絡(luò)功能的SoC(System on a Chip)芯片的應(yīng)用需求量也在快速增長。在實際的科研與應(yīng)用中,F(xiàn)PGA驗證被廣為采用,因其可以快速定位SoC芯片的設(shè)計缺陷,同時兼能進行軟件程序開發(fā),進而縮短整個項目的開發(fā)周期[1-2]。在此,首先介紹基于FPGA的以太網(wǎng)驗證平臺的軟硬件架構(gòu),然后詳細闡述基于該平臺的以太網(wǎng)IP核的驗證工作過程。
以太網(wǎng)基于TCP/IP協(xié)議[3],其參考模型如圖1所示。其中數(shù)據(jù)鏈路層和物理層由硬件實現(xiàn);應(yīng)用層、傳輸層、IP層則由軟件實現(xiàn)。數(shù)據(jù)鏈路層分為邏輯鏈路控制層LLC和媒體訪問控制層MAC。此處需要驗證的IP核為MAC層的功能。對MAC控制器的功能驗證采用軟硬件協(xié)調(diào)驗證的方法[4]。該驗證系統(tǒng)的硬件平臺及軟件平臺架構(gòu)簡介如下:
圖1 TCP/IP協(xié)議參考模型
硬件平臺:該以太網(wǎng)硬件平臺采用母板+子板的結(jié)構(gòu)。母板采用Xilinx公司的Kintex-7 325T FPGA,最大容量是325萬門。子板主要集成以太網(wǎng)的PHY芯片、JTAG調(diào)試接口、串口、LED、按鍵等功能。PHY芯片選用的是DAVICOM公司的DM9161芯片。子板與母板之間是通過接口FMC-HPC連接,連接結(jié)構(gòu)框圖如圖2所示。
圖2以太網(wǎng)FPGA驗證平臺結(jié)構(gòu)框圖
軟件平臺:該軟件平臺主要是基于輕量級的TCP/IP協(xié)議族——LWIP。LWIP的主要目的是減少存儲器利用量和代碼尺寸。LWIP更適合應(yīng)用于小的、資源有限的嵌入式系統(tǒng)。該驗證系統(tǒng)是基于LWIP協(xié)議開發(fā)的軟件驗證程序,測試代碼使用嵌入式C語言[5-6]編寫。
系統(tǒng)采用硬件描述語言Verilog HDL實現(xiàn)邏輯功能[7],以Xilinx Vivado 2016.4為電路開發(fā)運行環(huán)境,以VCS為軟件仿真環(huán)境完成系統(tǒng)的功能設(shè)計。網(wǎng)絡(luò)通信的鏈路一端為Kintex-7 325T FPGA,另一端為PC機。PC端使用WireShark軟件抓取鏈路上收發(fā)的以太網(wǎng)數(shù)據(jù)。
以太網(wǎng)IP核的功能驗證按照以下步驟進行調(diào)試驗證:
(1)寄存器驗證
首先對MAC控制器所有寄存器進行復(fù)位值、讀寫寄存器的驗證。
(2)MDIO接口控制
MDIO是MAC控制器和PHY之間的管理接口。該接口是通過時鐘MDC和數(shù)據(jù)MDIO兩根信號線來訪問PHY寄存器。驗證第一步首先是要保證該接口時序正確,通過該接口完成對子板上PHY芯片的控制。通過MDIO接口訪問PHY芯片的總線接口時序如圖3所示。
圖3 MDIO接口時序
(3)數(shù)據(jù)鏈路建立
當完成PHY寄存器的初始化后,F(xiàn)PGA端與PC端進行自協(xié)商,確定通信模式及通信速率,由于設(shè)計的網(wǎng)卡是10M/100M以太網(wǎng),因此自協(xié)商結(jié)果一般為100MHz、全雙工的工作模式。
(4)RMII接口通信
精簡獨立介質(zhì)接口RMII相比于獨立介質(zhì)接口MII,減少了以太網(wǎng)模塊和外部PHY之間的連接引腳數(shù)。以太網(wǎng)的MAC與PHY通過RMII接口連接,如圖4所示。編寫不含網(wǎng)絡(luò)協(xié)議的軟件測試程序,其目的是測試MAC層收發(fā)幀的時序是否正確。RMII接口的以太網(wǎng)時鐘信號頻率為50MHz,數(shù)據(jù)幀通信的波形如圖5所示。
圖4 RMII接口
圖5 RMII接口通信波形
(5)PING程序調(diào)試
在完成MAC幀收發(fā)調(diào)試后,基本可證明MAC IP核硬件平臺功能正確,基于此,編寫基于LWIP協(xié)議的PING程序,此程序基于ICMP(Internet Control Message Protocol,因特網(wǎng)控制報文協(xié)議),通過ICMP發(fā)送請求和回送應(yīng)答來驗證整個網(wǎng)絡(luò)的連接性。
(6)UDP收發(fā)測試[8]
完成IP層測試后,可證明MAC控制器的功能及硬件板卡的設(shè)計基本正確。基于此,開發(fā)UDP的測試程序,完成傳輸層數(shù)據(jù)的收發(fā)測試。PC機使用周立功的TCP&UDP測試工具,其運行結(jié)果如圖6所示。
圖6 UDP測試結(jié)果界面
(7)典型應(yīng)用協(xié)議調(diào)試
在完成以上所有測試工作后,編寫基于Telnet、Http、FTP等協(xié)議的應(yīng)用層的程序,最終完成典型的應(yīng)用協(xié)議的測試。
在網(wǎng)絡(luò)技術(shù)高速發(fā)展和物聯(lián)網(wǎng)興起的背景下,研究了以太網(wǎng)IP核基于FPGA的驗證工作,基于該平臺,完成了對以太網(wǎng)MAC控制器的功能驗證,同時進行了軟件程序開發(fā),大大縮短了項目開發(fā)周期。