ALTERA千兆網IP核Triple-Speed Ethernet使用方法

一、實驗實現功能

本文僅實現最簡單的fpga向電腦主機發送hello world,UDP包,每隔一秒發送一次。上板跑通,可證明整條傳輸鏈路打通,對IP核的配置及使用是正確的。主要參考文獻是altera官方的ug 01008"Triple-Speed Ethernet Intel FPGA IP User Guide".讀者需對以太網OSI分層模型有基本的瞭解。需要知道物理層幀格式、IP層包格式以及UDP報文格式。這個在UG01008的附錄內也有介紹。

二、數據流以及控制流

搭建nios片上系統,CPU c程序通過avalon_mm總線配置千兆網(即三速以太網(Triple-Speed Ethernet,TSE)IP核,配置完成後,拉起一個PIO寄存器的值,指示邏輯模塊定時發送以太網幀(物理層)。

三、工程需注意點

工程結構如下圖

tse_top例化三個模塊。

1.frame_send是定時發送以太網幀的邏輯模塊,通過avalon_streanm接口連接到qsys模塊tse_qsys上。

2.tse_qsys爲片上系統的頂層文件,內涵nios cpu,jtag_uart,onchip mem,tse ip核以及pio等組件。

3.pll爲qsys和frame_send模塊以及tse_top提供數個頻率的時鐘。

tse_top頂層模塊

tse_top的輸入輸出口如下圖

o_rgm_clk是rgmii接口時鐘,本實驗爲125Mhz(TSE IP核配置爲千兆模式,百兆模式下該時鐘應爲12.5MHz,十兆模式下應爲1.25Mhz)

o_rgm_data是rgmii接口數據,位寬爲4位,若ip核配置爲gmii接口,則該信號爲8位。rgmii接口下,ip核內例化了ddr時鐘,上升沿和下降沿均可以採樣數據,因而可以節省一半的數據引腳。

o_rgm_ctl是rgmii接口的控制信號,也是雙沿傳輸的。上升沿傳輸發送使能,下降沿傳輸發送使能和發送錯誤的異或。

o_phy_clk_25m是發送給phy芯片的時鐘,沒有這個時鐘,phy芯片不會工作的。

o_phy_rst_n是phy芯片的復位信號。上點後,phy芯片需要被複位。

tse_qsys模塊

該模塊是qsys的頂層模塊。

搭建qsys系統時需要注意一下幾點。

1.tse ip核內FIFO寬度設置爲8bit較爲方便。

2.時鐘頻率按照ug1008設置,即配置IP核的avalon_mm總線時鐘50mhz,ip核接收邏輯端以太網幀的avalon stream總線頻率100Mhz.

3.例化qsys頂層時,magic_sleep_n需設置1.ff_tx_crc_fwd需設置0.status_connection_set_10設0,status_connection_set_1000設1.

frame_send模塊

該模塊在nios配置完ip核後,開始定時發送以太網幀。

該模塊需注意一下幾點:

1.

圖中,frame_length至少爲64byte.

2.ff_tx_crc_fwd被設置爲0後,ip核會自動爲以太網幀添加FCS

3.ip核自動爲幀添加preable和sfd

其他內容按照以太網幀格式生成即可。

四、c程序和實驗運行流程

1.c程序按照ug1008 97頁推薦配置IP核參數即可.

2.quartus內編譯完工程後燒錄進板子,打開wireshark設置好捕獲規則,開始捕捉。然後eclipse內運行c程序,程序運行完後,邏輯模塊即開始持續發送udp報文,電腦端wirehark內可捕獲到來自板子的UDP報文。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章