學習 Verilog 做仿真時,可選擇不同仿真環境。FPGA 開發環境有 Xilinx 公司的 ISE(目前已停止更新),VIVADO;因特爾公司的 Quartus II;ASIC 開發環境有 Synopsys 公司的 VCS ;很多人也在用 Icarus Verilog 和 GTKwave 的方法,更加的輕便。
雖然 ISE 或者 Quartus II 都會自帶仿真器,但功能還是有欠缺。所以,這裏介紹下 Quartus II + Modelsim 聯合仿真的測試方法,運行環境為 64bit-win10 係統。
Quartus II 安裝
本次介紹使用的 Quartus 版本為 10.1。
目前 Quartus II 官網已經沒有 13.1 以下版本的安裝包,大家可以安裝 13.1 以上版本的軟件。功能都是大同小異,下載地址:https://fpgasoftware.intel.com/13.1/?edition=subscription&platform=windows
下載 13.1 以上的 quartus II 時,官網也會推薦相應版本的 Modelsim,一起下載即可。
開始安裝,修改安裝路徑,其他按照默認設置一步步操作即可。
下圖是成功安裝的截圖。
如果提示需要 License file,如下圖所示,則需要指定購買該軟件時的 license 文件。
如果 license 文件需要替換 Host-ID,隻需要 license 文件中的 HOSTID 替換為 NIC 選項中隨便一個 ID 即可,如下圖紅色框所示:
Quartus II 10.1 安裝完還需要安裝 Device,即安裝支持各種可編程邏輯器件型號的庫文件,否則 Quartus II 不能正常建立工程。
安裝路徑需要選擇 Quartus II 的安裝路徑,此時 Device 安裝可自動識別 Quartus II。
最新 Quartus II(例如 2016 版本)已經支持一套化安裝了。
Modelsim 安裝
Modelsim 選擇 modelsim-win64-10.1c-se 版本。
也需要修改下安裝路徑,然後按照默認設置進行操作即可。
安裝完畢後可能提示需要重啟電腦,重啟即可。
建立 Quartus II 工程
建立工程
File->New project Wizard
設置工作路徑與工程名字、top module名字。
注意,路徑與名字設置時,不能包含中文。
選擇器件型號
我們隻進行簡單的仿真,不進行下載、燒錄等,所以我們不用關心具體信號,隨便選一種即可。
然後一直點擊 Next,直到 Finish。
新建 Verilog 源文件
下麵就對 4 位寬 10 進製計數器進行簡單的仿真。
點擊:File->New->Verilog HDL File->OK
點擊:File->Save As
輸入 module 名字為:counter10.v
需要注意的是,top module 名字一定要和 project 名字一致,否則會報錯(如圖中所示)。
把 Verilog 代碼複製到文件 counter10.v 中,進行一鍵編譯(實際包含了編譯、綜合、布局布線等)。
報錯時,可通過點擊 Error log 來定位錯誤,進行修改,直至沒有 Error。
Quartus II 調用 Modelsim 仿真
仿真設置為 Modelsim-altera
點擊:Tool->Options->EDA Tool Options
將 Modelsim 後麵的地址改為 Modelsim 啟動程序的路徑。
選擇仿真器
點擊:Assignments -> Simulation
Tool name 選擇 ModelSim,並設置 Format、Time scale 等,如圖。。
寫 testbench 文件
點擊:Processing->start->Start TestBench Template Writer
如果設置正確,會在工程路徑 simulation/modelsim 下產生 .vt 文件。
.vt 文件模板已經給出了端口部分的代碼、接口變量的聲明和例化語句映射等。我們要做的就是將測試代碼填入到 testbench 合適的位置。
這裏簡單的寫一下時鍾、複位驅動代碼,如下圖所示。
將 testbench 添加到工程中
點擊:Assignments -> Settings -> Simulation
在 Compile test bench 選項中,選擇 new,設置 Test bench name,並通過 File name 查找的方式,將上一步生成的 .vt 文件添加到工程中。
需要注意的是,testbench 文件名字需要和 testbench 裏的 top module 名字保持一致,否則後續啟動 Modelsim 時會報錯,不能進行正常的仿真。
重新一鍵編譯
此時,你會發現,Tasks 欄編譯的狀態變成了問號,需要重新進行一鍵編譯。
調用 Modelsim 仿真
點擊:Tools->Run simulation Tool->RTL Simulation
這時就會自動啟動 Modelsim 軟件。
Modelsim 操作這裏不做具體介紹。
由仿真圖可知,我們的設計完成了 10 進製計數的基本功能。
總結
記憶中,Quartus II + Modelsim 的聯合仿真功能既強大,又安裝方便。幾年後重新進行此過程,發現步驟也有些許繁瑣,花費了我一晚上的時間來搞定。很多細節也在上麵提出,多多注意就好。不過,大家以後有機會進行大型的數字模塊仿真時,就會發現此方法的有效性。
在接下來的教程裏,有些簡單的仿真可能用其他軟件進行,截圖界麵可能與 Modelsim 不一致。大家看到後不用懷疑仿真的準確性,這裏特別說明。
設計模塊與 testbench 源碼也會全部給出,大家完全可以自己仿真、驗證。