【Efinix Ti60】以Modelsim測試Triple Speed Ethernet MAC IP Core的Testbench
...大约 2 分鐘
【Efinix Ti60】以Modelsim測試Triple Speed Ethernet MAC IP Core的Testbench
本文示範如何使用Modelsim測試Efinty生成的Triple Speed Ethernet(TSE, 1000/100/10Mbps) MAC IP Core中提供的Testbench,並觀察波形。
注意
請先自行安裝Modelsim
在此Testbench中,Packet將以MAC/UDP Pattern Generate生成並經由AXI4傳輸至RGMII,並將RGMII的TX及RX設為loop-back,將封包傳回自己,如以下的data flow圖所示:

(1) 生成TSEMAC IP
在IP選單中,右鍵新增IP
新增IP 在跳出的IP Catalog視窗中,選擇
Triple Speed Ethernet MAC
,並按Next>>
IP Catalog選項 設定IP名稱
IP名稱 切換到
Deliverables
tab,選擇Testbench
及Testbench/modelsim
選項,並按右下角Generate
生成IP及Testbench 生成的IP會在專案資料夾的
IP/<module_name>
底下生成路徑
(2) Modelsim測試
在
IP/<module_name>\Testbench
中,可在tb_top.v
設定測試參數tb_top.v位置 在Parameter區塊中,設定
TEST_CASE
、MAC_SPEED
及PAT_TYPE
(pattern generator)// Parameter Define parameter TSET_CASE = 1;//Values range from "1" to "9" parameter MAC_SPEED = 4;//4:1000M; 2:100M; 1:10M; parameter PAT_TYPE = 1;//0:UDP Pattern; 1:MAC Pattern; parameter DST_MAC_H = 16'habcd; parameter DST_MAC_L = 32'hef22_1100; parameter SRC_MAC_H = 16'heae8; parameter SRC_MAC_L = 32'h5e00_60c8; parameter MAC_DLEN = 16'd64; parameter SRC_IP = 32'hc0a80164; parameter DST_IP = 32'hc0a80165; parameter SRC_PORT = 16'h0521; parameter DST_PORT = 16'h2715; parameter UDP_DLEN = 16'h64;
Test Cases
編號 名稱 說明 1 MAC pattern封包TX測試 傳輸1000個長度為100的MAC pattern packet。 2 UDP pattern封包TX測試 傳輸1000個長度為100的UDP pattern packet。 3 Pause frame封包測試 傳輸5個packet,其順序為 normal
→normal
→pause frame
→normal
→normal
。4 巨幅(Jumbo)封包及過大(oversize) jumbo封包測試 傳輸長度為9000及9001的封包。其中長度9001應觸發error並記錄於 fInError
register,且rx_axis_mac_tuser
轉為1。5 過小(undersize)封包測試 傳輸長度為0的封包。應自動填充 8’h00
的data value來滿足64-bytes之最小封包長度限制。6 錯誤(error)封包測試 傳輸3個packet,其順序為 normal
→has CRC error
→oversize
。7 位址過濾(Address filtering)測試 傳輸1個MAC address不是本機MAC address的封包。 在
IP/<module_name>\Testbench
以任意terminal開啟並執行以下指令(請確保Modelsim已安裝)vsim -do modelsim.do
在Modelsim中,將左方選單的
tb_top
拖曳到wave視窗(或右鍵add wave)Add wave 觀察波形
Clock及APB3訊號
clk & apb3 RGMII訊號
可觀察到TX及RX為相反訊號,表示成功loop-back
rgmii
Transcript中如顯示
TEST PASSED
表示測試成功Transcript
What do you think?
- 0
- 0
- 0
- 0
- 0
- 0
Powered by Waline v3.2.6
Preview: