最新從Xilinx轉到Intel,摸索quartus調試作的一些總結
推薦使用quartus加modelsim-intel edition,緣由後面講。可是本博客的目的是總結出quartus prime pro的modelsim使用(這個是最麻煩,自動化最差的),因此選擇modelsim的獨立版本。本文經過學習standard版本中自動生成的do文件,學習並總結modelsim仿真庫的配置(基於quartus)和do文件的詳細使用。javascript
調試1,調試2 做爲學習仿真操做和do文件編寫的一個探索,調試3是pro版真正實操的流程
困難:目前只能對a10及如下芯片仿真,Stratix 10(pro edition才能用)找不到對應的仿真庫(器件庫已經裝了,可是找不到仿真庫),目前無法仿真,如有大佬知道怎麼解決,望告知,感激涕零。java
安裝完quartus(standard edition)後:
安裝modelsim10.5se 並和諧:
下面基因而modelsim獨立版本後端
這裏是編譯基礎庫和quartus中連接user compiled library location 的方法
這裏是quartus設置仿真軟件及testbench的方法markdown
使用簡單的 IOPLL IP核進行測試,基於quartus prime 2017 standard:調試仿真編輯器
若不設置user compiled labrary,則每次的do文件都會編譯一次基礎庫(從quartus安裝目錄下面)和ip核相關文件(這個ip核的仿真文件須要在設置IP核generate HDL的時候勾選simulation ),.do文件實例以下(quartus standard 生成的),能夠看出除了基礎庫,還會編譯pll.vo,這個是生成ip核時同時生成的,這個就是最完整的.do文件,做爲pro版本身編寫時的參考學習
能夠看到,modelsim仿真須要 的全部操做, 連接編譯 基本庫、ip核vo,v(包含ip核頂層文件v,還有主體文件vo)、 編譯用戶文件.v、 編譯testbench , 並仿真testbench
這部分代碼必定不能跳過,要仔細研究測試
transcript on
if ![file isdirectory test_iputf_libs] { file mkdir test_iputf_libs } if ![file isdirectory verilog_libs] { file mkdir verilog_libs } vlib verilog_libs/altera_ver vmap altera_ver ./verilog_libs/altera_ver vlog -vlog01compat -work altera_ver {e:/quartus2017standard/quartus/eda/sim_lib/altera_primitives.v} vlib verilog_libs/lpm_ver vmap lpm_ver ./verilog_libs/lpm_ver vlog -vlog01compat -work lpm_ver {e:/quartus2017standard/quartus/eda/sim_lib/220model.v} vlib verilog_libs/sgate_ver vmap sgate_ver ./verilog_libs/sgate_ver vlog -vlog01compat -work sgate_ver {e:/quartus2017standard/quartus/eda/sim_lib/sgate.v} vlib verilog_libs/altera_mf_ver vmap altera_mf_ver ./verilog_libs/altera_mf_ver vlog -vlog01compat -work altera_mf_ver {e:/quartus2017standard/quartus/eda/sim_lib/altera_mf.v} vlib verilog_libs/altera_lnsim_ver vmap altera_lnsim_ver ./verilog_libs/altera_lnsim_ver vlog -sv -work altera_lnsim_ver {e:/quartus2017standard/quartus/eda/sim_lib/altera_lnsim.sv} vlib verilog_libs/twentynm_ver vmap twentynm_ver ./verilog_libs/twentynm_ver vlog -vlog01compat -work twentynm_ver {e:/quartus2017standard/quartus/eda/sim_lib/twentynm_atoms.v} vlog -vlog01compat -work twentynm_ver {e:/quartus2017standard/quartus/eda/sim_lib/mentor/twentynm_atoms_ncrypt.v} vlib verilog_libs/twentynm_hssi_ver vmap twentynm_hssi_ver ./verilog_libs/twentynm_hssi_ver vlog -vlog01compat -work twentynm_hssi_ver {e:/quartus2017standard/quartus/eda/sim_lib/mentor/twentynm_hssi_atoms_ncrypt.v} vlog -vlog01compat -work twentynm_hssi_ver {e:/quartus2017standard/quartus/eda/sim_lib/twentynm_hssi_atoms.v} vlib verilog_libs/twentynm_hip_ver vmap twentynm_hip_ver ./verilog_libs/twentynm_hip_ver vlog -vlog01compat -work twentynm_hip_ver {e:/quartus2017standard/quartus/eda/sim_lib/mentor/twentynm_hip_atoms_ncrypt.v} vlog -vlog01compat -work twentynm_hip_ver {e:/quartus2017standard/quartus/eda/sim_lib/twentynm_hip_atoms.v} if {[file exists rtl_work]} { vdel -lib rtl_work -all } vlib rtl_work vmap work rtl_work ###### Libraries for IPUTF cores vlib test_iputf_libs/PLL_altera_iopll_171 vmap PLL_altera_iopll_171 ./test_iputf_libs/PLL_altera_iopll_171 ###### End libraries for IPUTF cores ###### MIF file copy and HDL compilation commands for IPUTF cores vlog "E:/qua_standard_proj/PLL/altera_iopll_171/sim/PLL_altera_iopll_171_qwujbna.vo" -work PLL_altera_iopll_171 vlog "E:/qua_standard_proj/PLL/sim/PLL.v" vlog -vlog01compat -work work +incdir+E:/qua_standard_proj {E:/qua_standard_proj/test.v} vlog -vlog01compat -work work +incdir+E:/qua_standard_proj/simulation/modelsim {E:/qua_standard_proj/simulation/modelsim/test.vt} vsim -t 1ps -L altera_ver -L lpm_ver -L sgate_ver -L altera_mf_ver -L altera_lnsim_ver -L twentynm_ver -L twentynm_hssi_ver -L twentynm_hip_ver -L rtl_work -L work