Quartus 調試筆記


Quartus 調試筆記

@(verilog)

最近忙於芯片跟測試FPGA聯調,解鎖了不少quartus的用法,在此記錄一下備忘。

一. modelsim 聯仿

1. tb文件創建

  • Processing --- Start --- Start testbench template writer
    • 自動創建當前top 模塊的testbench, 自動例化完整,創建的tb文件一般在simulate/modelsim文件夾下(.vt類型)

2. modelsim聯仿環境

  • Assignment -- setting -- EDA tool settings -- simulation 中選擇tool為modelsim之后勾選compile test bench。
    點擊testbenches, New , 之后填入tb name, top module name (tb頂層名要和實際tb里的一致),然后file name中選擇之前自動創建的tb.vt文件,然后就可以一路ok了

最后點擊 Tool--- run simulation tool --- rtl simulation就可以打開modelsim仿真了。

二. modelsim - quartus 動態調試仿真

實際上每次在quartus中對工程做了修改以后,再次仿真沒必要關掉之前的modelsim。 只需要配置一下wave.do文件即可,具體步驟如下:

  1. 首先在modelsim中,File --- Save Format ,將當前調試環境保存為wave.do文件。一般是放在simulation/modelsim文件夾下。之后建議把這個wave.do文件加入到工程中方便修改。
  2. 打開wave.do文件,可以看到里面都是modelsim中調試過程進行的一些操作,包括添加信號,仿真時間設定等等,比如我的是:
onerror {resume}
quietly WaveActivateNextPane {} 0
add wave -noupdate /new_kws_test_vlg_tst/clk_50M
add wave -noupdate /new_kws_test_vlg_tst/rstn
add wave -noupdate /new_kws_test_vlg_tst/clk_200k
add wave -noupdate /new_kws_test_vlg_tst/I_threshold_load_finish
add wave -noupdate -radix decimal /new_kws_test_vlg_tst/i1/mem_addr
TreeUpdate [SetDefaultTree]
WaveRestoreCursors {{Cursor 1} {130261609 ps} 0}
quietly wave cursor active 1
configure wave -namecolwidth 353
configure wave -valuecolwidth 100
configure wave -justifyvalue left
configure wave -signalnamewidth 0
configure wave -snapdistance 10
configure wave -datasetprefix 0
configure wave -rowmargin 4
configure wave -childrowmargin 2
configure wave -gridoffset 0
configure wave -gridperiod 1
configure wave -griddelta 40
configure wave -timeline 0
configure wave -timelineunits ns
update
WaveRestoreZoom {5044059661 ps} {5543637850 ps}

后面要添加波形也可以參照這里的寫法直接在do文件里修改。

但是光這些腳本還沒法做到一鍵運行,缺少.v文件的信息,所以需要下面的流程。

  1. 在simulation/modelsim中找到一個_rtl_verilog.do后綴的文件,里面包含上面提到的缺失腳本,大概長這樣:

把選中部分粘貼到wave.do里就可以了。

  1. 之后的仿真流程就是,在quartus中編寫verilog和testbench並保存,之后跳到modelsim中依次輸入命令:
    quit -sim
    do wave.do
    就可以仿真修改后的工程了,無需“反復橫跳”。當然,如果工程中加入了新的.v,只要在wave.do中仿照之前的格式添加就可以了。

前幾天看到有FPGA

三. quartus-modelsim仿真ROM注意事項

  1. modelsim中仿真quartus中的ROM IP時,不支持mif格式,最好在quartus中File,save as將mif 保存為hex
  2. 最好把rom ip和hex都放在工程文件同目錄下。

四. SignalTap 使用

基本使用方法可以參考:
https://blog.csdn.net/k331922164/article/details/47623501

抓數據神器,只需要一個jtag, 雖然每次添加新信號都要重新編譯燒錄,但總比示波器方便多了。
波形圖跟采樣深度大小有關,深度越大采樣的數據越多。目前還不知道如何將一段時間內所有數據點存下來,(貌似只能保存觸發點之后采樣深度大小的波形,不知道有沒有什么方法可以存一段時間內的所有波形)。但就調試基本使用而言足夠了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM