蔡玉輝
(中國電子科技集團公司第四十七研究所,沈陽110032)
隨著網絡技術的高速發展,以太網已在通信、控制、傳輸領域得到了普遍的應用。目前對集成網絡功能的SoC(System on a Chip)芯片的應用需求量也在快速增長。在實際的科研與應用中,FPGA驗證被廣為采用,因其可以快速定位SoC芯片的設計缺陷,同時兼能進行軟件程序開發,進而縮短整個項目的開發周期[1-2]。在此,首先介紹基于FPGA的以太網驗證平臺的軟硬件架構,然后詳細闡述基于該平臺的以太網IP核的驗證工作過程。
以太網基于TCP/IP協議[3],其參考模型如圖1所示。其中數據鏈路層和物理層由硬件實現;應用層、傳輸層、IP層則由軟件實現。數據鏈路層分為邏輯鏈路控制層LLC和媒體訪問控制層MAC。此處需要驗證的IP核為MAC層的功能。對MAC控制器的功能驗證采用軟硬件協調驗證的方法[4]。該驗證系統的硬件平臺及軟件平臺架構簡介如下:

圖1 TCP/IP協議參考模型
硬件平臺:該以太網硬件平臺采用母板+子板的結構。母板采用Xilinx公司的Kintex-7 325T FPGA,最大容量是325萬門。子板主要集成以太網的PHY芯片、JTAG調試接口、串口、LED、按鍵等功能。PHY芯片選用的是DAVICOM公司的DM9161芯片。子板與母板之間是通過接口FMC-HPC連接,連接結構框圖如圖2所示。

圖2以太網FPGA驗證平臺結構框圖
軟件平臺:該軟件平臺主要是基于輕量級的TCP/IP協議族——LWIP。LWIP的主要目的是減少存儲器利用量和代碼尺寸。LWIP更適合應用于小的、資源有限的嵌入式系統。該驗證系統是基于LWIP協議開發的軟件驗證程序,測試代碼使用嵌入式C語言[5-6]編寫。
系統采用硬件描述語言Verilog HDL實現邏輯功能[7],以Xilinx Vivado 2016.4為電路開發運行環境,以VCS為軟件仿真環境完成系統的功能設計。網絡通信的鏈路一端為Kintex-7 325T FPGA,另一端為PC機。PC端使用WireShark軟件抓取鏈路上收發的以太網數據。
以太網IP核的功能驗證按照以下步驟進行調試驗證:
(1)寄存器驗證
首先對MAC控制器所有寄存器進行復位值、讀寫寄存器的驗證。
(2)MDIO接口控制
MDIO是MAC控制器和PHY之間的管理接口。該接口是通過時鐘MDC和數據MDIO兩根信號線來訪問PHY寄存器。驗證第一步首先是要保證該接口時序正確,通過該接口完成對子板上PHY芯片的控制。通過MDIO接口訪問PHY芯片的總線接口時序如圖3所示。

圖3 MDIO接口時序
(3)數據鏈路建立
當完成PHY寄存器的初始化后,FPGA端與PC端進行自協商,確定通信模式及通信速率,由于設計的網卡是10M/100M以太網,因此自協商結果一般為100MHz、全雙工的工作模式。
(4)RMII接口通信
精簡獨立介質接口RMII相比于獨立介質接口MII,減少了以太網模塊和外部PHY之間的連接引腳數。以太網的MAC與PHY通過RMII接口連接,如圖4所示。編寫不含網絡協議的軟件測試程序,其目的是測試MAC層收發幀的時序是否正確。RMII接口的以太網時鐘信號頻率為50MHz,數據幀通信的波形如圖5所示。

圖4 RMII接口

圖5 RMII接口通信波形
(5)PING程序調試
在完成MAC幀收發調試后,基本可證明MAC IP核硬件平臺功能正確,基于此,編寫基于LWIP協議的PING程序,此程序基于ICMP(Internet Control Message Protocol,因特網控制報文協議),通過ICMP發送請求和回送應答來驗證整個網絡的連接性。
(6)UDP收發測試[8]
完成IP層測試后,可證明MAC控制器的功能及硬件板卡的設計基本正確。基于此,開發UDP的測試程序,完成傳輸層數據的收發測試。PC機使用周立功的TCP&UDP測試工具,其運行結果如圖6所示。

圖6 UDP測試結果界面
(7)典型應用協議調試
在完成以上所有測試工作后,編寫基于Telnet、Http、FTP等協議的應用層的程序,最終完成典型的應用協議的測試。
在網絡技術高速發展和物聯網興起的背景下,研究了以太網IP核基于FPGA的驗證工作,基于該平臺,完成了對以太網MAC控制器的功能驗證,同時進行了軟件程序開發,大大縮短了項目開發周期。