本文簡要描述了 MDY 千兆網工程仿真的過程。
千兆網模塊使用了一個比較大的 IP 核,即三速以太網 IP 核,該 IP 核較大,涉及的功能較多,不能像之前那樣添加 altera_mf.v 文件就行。那了方便起見,還是使用了傳統的,通過 QUARTUS 調用 MODELSIM 的方式進行仿真。
希望學員能根據本案例,舉一反三,掌握 QUARTUS 調用 MODELSIM 的方法。
1. 設置 MODELSIM 工具路徑
在 QUARTUS 中的 tools 欄中,點擊 options 選項。
在彈出的窗口中,選擇 EDA tool options,然后在 Modelsim 中選擇 modelsim 的所在的路徑。注意一般是在 win32 或者 win64pe 的目錄。
2. 設置仿真文件
在工程的頂層文件中,右鍵選擇 Settings。
在彈出的窗口中,先選擇 Simulation。
在 Tool name 中,選擇 Modelsim。(如果您的工具不同,就根據實質情況來選)
在 Format for output netlist 中,選擇 verilog HDL。
在 Time Scale 中,選擇時間單位,我這里選擇的是 100ps。
其他默認即可。
點擊 Test Benches 按鍵,開始進行測試文件設置。
在彈出的窗口中,點擊 New,開始新增一個測試文件。
在 Test bench name 中,填寫測試文件名。本次演示工程中,測試文件名是test_mdyUdpIp。
在 Top level module in test bench 中,填寫測試文件中的模塊名,即 module name。一般
規范的是模塊名與測試文件名一致,所以填 test_mdyUdpIp。
注意以上兩個選項概念是不同的。有些人的模塊名與文件名不一致,這個要注意下。
在上圖 3 處,點擊后選擇測試文件,然后在 Add 中點擊,即可添加測試文件。
當設置完成后,一路按 OK\APPLY 選項,關閉設置窗口。
3. 運行 RTL 仿真
在 QUARTUS 界面中,在 tools 中,選擇 Run Simulaton Tool,再選擇 RTL Simulaton。
此時開始調用 MODELSIM 進行綜合編譯和仿真。
MODELSIM 有可能會出現上面的錯誤。
仔細閱讀錯誤提示,該提示說找不到 myUdpIp_18.vo 文件。并且是在運行“udp_ip_example_run_msim_rtl_verilog.do”第 276 行時出現的錯誤。
筆者在目錄下確實找不到 myUdpIp_18.vo 文件,百思不得其解,這個文件是哪里來的?!
不得已,去找 udp_ip_example_run_msim_rtl_verilog.do 看看。
如上圖,找到 udp_ip_example_run_msim_rtl_verilog.do 文件。
找到 276 行,確實是有一條語句要編譯 myUdpIp_18.vo 文件。仍然不明白為什么要編
譯:是生成的 IP 核少了這個文件,還是說測試時多要求了這個文件。
沒有辦法的情況下,將 276 行屏蔽,嘗試不用此語句是否能成功。如上圖所示,加一個#,保存。
修改后,注意注意!是在 MODELSIM 的窗口中,按“向上箭頭”鍵,找到上面的語句do udp_ip_example_run_msim_rtl_verilog.do,按回車執行。
千萬不要在 QUARTUS 里調用仿真,那樣又會修改回 do 文件的。
執行后果然沒有問題,一切順利,如上圖所示。大家可以自由使用了。
4. 修改代碼調試
當仿真發現問題,修改完代碼后。沒有必要從第 3 步開始(即不用 QUARTUS 調用MODELSIM)。而是直接在 MODELSIM 窗口中,選擇 compile,選擇修改的文件,compile。
然后在 MODELSIM 中 Restart,重新跑即可。