學習 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 源碼也會全部給出,大家完全可以自己仿真、驗證。