[IC設計] 如何使用 Altera Quartus II + ModelSim 進行電路模擬開發

Quartus 版本 : Quartus Prime Lite Edition 18.1
ModelSim 版本 : ModelSim - Intel FPGA Starter Edition 10.5b (Quartus Prime 18.1)
建議下載的時候將 Quartus 和 ModelSim 一起下載比較不會遇到相容性的問題
Lite 才是免費的喔!
簡單說明一下 Quartus 和 ModelSim 是如何互相連動的
首先先聲明 Quartus 和 ModelSim 兩個 tool是可以獨立進行 rtl verilog code compile 開發的
但是由於 Quartus無法進行電路內部細節的訊號除錯
所以就得仰賴 ModelSim 另外將 RTL 和 testbench 跑過產生出來的波形再來除錯
所以如果覺得兩個一起用很麻煩的話
可以先在 ModelSim 上面先進行電路開發驗證
最後再將整個電路放到 Quartus 上合成 bitmap 在 download 到板子上
回到 Quartus 連結 Modelsim 的設定
進入設定 Assignment -> Settings
EDA Tools Settings -> Simulation
以下的設定是選擇使用其他的 EDA tool 來跑 simulation

紅色的部分如果勾起來代表 simulation 是用合成完的 netlist 來模擬
也就是post sim
我這邊不勾是因為 netlist 電路很難在前期開發時除錯
另一個設定是告訴 Quartus Modelsim 安裝在哪裡
Tools -> Options
General -> EDA Tool Options

設定好之後將 Top-level 設定在 DUT (不能設定在testbench top)
即可 Processing -> Start Compilation
跑完之後按下 Tools -> Run simulation tool -> RTL simulation
即可自動開啟 Modelsim看波形
如果今天想要修改 testbench 變更測試項目時可以在 ModelSim 的 tool comㄩand line 按上方向鍵上
就會看到上一個指令是 do <project_name>_run_msim_rtl_verilog.do
這是一支 script 內容如下
transcript on
if {[file exists rtl_work]} {
vdel -lib rtl_work -all
}
vlib rtl_work
vmap work rtl_work
vlog -vlog01compat -work work +incdir+C:/Users/techo/Desktop/Tutor/Caesar/L1 {C:/Users/techo/Desktop/Tutor/Caesar/L1/add1.v}
vlog -vlog01compat -work work +incdir+C:/Users/techo/Desktop/Tutor/Caesar/L1 {C:/Users/techo/Desktop/Tutor/Caesar/L1/fa4.v}
vlog -sv -work work +incdir+C:/Users/techo/Desktop/Tutor/Caesar/L1 {C:/Users/techo/Desktop/Tutor/Caesar/L1/tb_top.v}
vsim -t 1ps -L altera_ver -L lpm_ver -L sgate_ver -L altera_mf_ver -L altera_lnsim_ver -L cyclonev_ver -L cyclonev_hssi_ver -L cyclonev_pcie_hip_ver -L rtl_work -L work -voptargs="+acc" tb_top
add wave *
view structure
view signals
run -all
這裡用的是 TCL command
也就是對 ModelSim 進行一堆設定
包含 testbench file path、timescale、file list
可以參考 Simulation Quick-Start for ModelSim* - Intel® FPGA Edition 來進行更多進階設定