博主一直致力尋找高效的工作方式,所以一直喜歡折騰軟件,從剛開始只用軟件IDE自帶的編輯器,到Notepad++,再到后來的Vim,從用ISE14.7自帶的Isim仿真,到發現更好的Modelsim,再到使用do腳本自動化仿真,樂此不疲。之前一直使用Modelsim獨立仿真,雖然好用,但是對於IP Core的仿真可真是麻煩,需要找到對應的IP Core庫文件,所以博主一直在尋找把FPGA開發工具和Modelsim級聯起來的方法,終於被我找到,分享出來!
Vivado2017.3與Modelsim級聯仿真
首先在Modelsim的安裝目錄下新建一個文件夾,命名隨意,知道是Vivado的庫文件就行了。
打開一個Vivado工程,點擊上方菜單欄Tools——>Compile Simulation Libraries
按上圖所示選擇,上面是剛才新建好要綜合到的Vivado的庫文件,下面是Modelsim的安裝路徑。設置完成后點擊Compile,綜合Vivado的庫文件。
這個過程應該是持續半個小時或者更長,依個人電腦性能而定。
綜合完成后會在Tcl Console打印出這樣的信息,這都是綜合好的庫文件,可以看到是0Errors 警告可以忽略。
打開剛才Modelsim安裝路徑下新建的庫文件可以看到生成了很多文件夾。
回到Vivado,點擊左邊Flow Navigtor的Setting——>Simulation,選擇仿真工具為Modelsim,綜合庫文件路徑指定到剛才生成好的路徑。Apply。
選擇3rdParty Simulators,按如圖所示添加Modelsim安裝路徑和仿真庫路徑。Apply。
打開編譯好的庫文件夾,下面有一個modelsim.ini的文件,打開
找到如圖所示部分,復制,如果你全編譯了,得好老一大段呢。
然后打開Modelsim安裝路徑下的modelsim.ini這個文件
把剛才那段粘貼到這里。
點擊Run Simulation——>Run Behavioral Simlation進行行為級仿真。
如果一直卡在這個界面,這個時候就要看下Tcl Console,窗口打印的信息了,應該是有錯誤或警告,Modelsim仿真時,變量必須定義在代碼使用這個變量中出現之前,這個如果用過Modelsim的朋友應該會深有體會。自行解決。
一切都沒有問題后,當然就會出仿真波形了。下面是重點了。
Vivado會在仿真時候在如圖工程路徑里生成這么幾個do文件,關於do文件我前面介紹過,即自動化仿真腳本,我們只需要修改這些do文件,在Modelsim中的Transcript窗口輸入do xxx.do命令即可。
鍵入do再按鍵盤↑鍵會自動彈出可以運行的do文件,按下Enter即可運行。
這里的后綴為udo的這個文件是Xilinx提供的用戶do文件,要添加do文件的內容應該是在這里面添加,比如需要在Wave里添加其他模塊的波形,直接在這個udo文件里添加相應的代碼就好了。
Vivado定制一鍵操作工具
這里還有一個小技巧,就是Viado自定義一鍵操作工具,這里自定義一個Modelsim的一鍵仿真圖標,點擊就可以直接進入仿真。
點擊Tools——>Custom Cpmmands——>Customzie Commands彈出如下界面。
點擊如圖所示+號,鍵入modelsim_sim,回車。
找一個Modelsim的圖標圖片保存在modelsim的安裝路徑下,圖片格式為png。
按如圖所示設置,從上到下,Shorcut可以設置快捷鍵,這里需要添加一個Tcl腳本(如下),添加modelsim圖標路經,Apply。
腳本中個人要修改的是剛才編譯的Vivado庫文件的路徑。
完成后就會在菜單欄生成一個Modelsim的圖標,點擊圖標便可以直接進入仿真界面。
ISE14.7級聯Modelsim仿真
折騰完了Vivado,咱們來繼續折騰一下ISE,我們知道ISE到14.7版本就停更了,雖說最近出了個Win10版本,但是我裝了下,打開就跟打開了個虛擬機似的,不習慣。雖然ISE14.7在Win10上有多個兼容性問題,不過博主都一一找到了解決辦法,一直用着感覺還可以。下來整整它和Modelsim聯合仿真吧。
在ISE14.7安裝路徑下,找到compxlibgui.exe這個可執行文件,點擊運行。
如果出現上圖錯誤,這可能是在解決win10兼容性問題的時候修改了一些文件,可以在開始菜單里,找到simulation library compilation打開。
接下來會彈出如上窗口,選擇Modelsim SE,和Modelsim安裝路徑。
語言選擇Both沒准啥時候還會用到。
這里選擇需要編譯的庫文件,可以全選,也可以吧CPLD器件勾選掉,應該不會用到了吧。
Next~
在Modelsim安裝路徑下新建一個ISE14.7的庫文件夾,把要編譯的路勁指向這個文件夾。
看網上一個博主說這個過程得快一個小時,我的電腦不到十分鍾,七代I7-7700果然強悍(逃)。
Finish編譯完成。
打開編譯好的庫文件夾,下面有一個modelsim.ini的文件,打開
找到如圖所示部分,復制,我這里編譯的庫較少,所以只有這些,如果你全編譯了,得好老一大段呢。
然后打開Modelsim安裝路徑下的modelsim.ini這個文件
把剛才復制的那段粘貼到這里。
打開ISE點擊Edit——>Preferences——>設置Modelsim的運行路徑
點擊設置配置,將仿真工具設置為Modelsim SE。
然后就可以點擊如圖所示,彈出的窗口選擇No直接仿真了。
接下來還是要提的是,ISE同樣會生成自動仿真腳本。在ISE的工程目錄下。在Transcript下面按↑鍵可自動彈出do xxx.fdo腳本命令,Enter運行。同樣用戶也是修改udo腳本,來添加波形。
QuartusII級聯Modelsim進行仿真
順帶也折騰下QuartusII吧,其實對於QuartusII,博主是一直使用Modelsim獨立仿真的,因為QuartusII的IP Core在設置的時候會告訴你用到了哪個庫文件,只需要在仿真的時候把對應的庫文件添加到工程里就可以了。不過調用起來其實也不麻煩,干起來。
點擊上方菜單欄Tools——>Options,在EDA Tools Options中選擇Modelsim軟件的運行路徑。
OK
上方菜單欄點擊Assignments——>Setting按圖所示,選擇仿真工具為Modelsim。然后添加test bench文件。
點擊New~
將寫好的測試文件添加進來,上面的命名必須與testbench文件一致,否則會報錯。
設置完成后點擊OK。
OK
OK~
點擊Tools——>Run Simulation Tool——>RTL Simulation,可直接運行仿真。
運行過程中如果彈出這個Error,是因為Modelsim沒有破解成功,需要重新破解,破解完成后,重啟軟件即可。
同樣的QuartusII在工程目錄下也會生成一個do文件,用戶可直接修改進行仿真了。
關於do文件的使用和模板,可以看我之前發的一片博文。Modelsim中使用TCL腳本編寫do文件實現自動化仿真
轉載請注明出處:NingHeChuan(寧河川)
個人微信訂閱號:開源FPGA
如果你想及時收到個人撰寫的博文推送,可以掃描左邊二維碼(或者長按識別二維碼)關注個人微信訂閱號
知乎ID:NingHeChuan
微博ID:NingHeChuan