Vivado聯合modelsim仿真

      ModelsIm是FPGA仿真中最常見的軟件之一。可以單獨利用Modelsim來仿真或者通過開發工具調用來聯合仿真。至於用哪一種方法呢?那就取決於個人的喜好了,經過一段時間的對比,目前我比較趨向於利用開發工具聯調來仿真。主要有以下優勢:

  1. 聯調仿真分析,操作簡單。你幾乎不需要手動敲Tcl指令就可以進行仿真,自動化程度更高。
  2. 與單獨用Modelsim建立工程仿真相比,聯調仿真一般在仿真是所需要調用的庫,軟件會自動分析,不需要自己篩選仿真所需的庫文件,且不容易出錯。這一優勢在你仿真工程中帶有大量IP核、原語的時候,會體現得淋漓盡致。
  3. 在仿真時候,多個測試用例仿真時,層次結構更加清晰。

本文就如何利用vivado聯合modelsim仿真進行簡要說明。

1.仿真前具體設置

  • 利用vivado先編譯好modelsim仿真所需要的庫。存放在某個文件夾中,方便以後調用。我的習慣一般將庫放到modelsim的安裝目錄下,新建一個文件夾來存放新編譯的庫。如下圖所示文件夾叫vivado2017_lib。方便區分,我就以我用的vivado版本來命名。

 

  • 修改modelsim.ini文件,將庫添加到modelsim的啓動中。具體做法在介紹modelsim仿真一文有詳細說明,這裏不展開。

 

  • 接Vivado的相關設置。主要包含以下4步,其中第4步是把仿真庫指向前一個步驟編譯出來的庫文件。第5步是指向modelsim啓動程序的路徑。

 

 

以上即做好了聯合仿真前的準備設置工作了。

2.仿真步驟

工程準備完畢後,添加好仿真所需文件(testbench/仿真激勵模塊)。例如下圖中,1是我準備要仿真的工程。2是仿真的頂層文件即測試用例,3是仿真包含的內容,包括需要仿真的文件(UDT),仿真激勵,例如時鐘以及復位產生文件等。其中UDT即仿真對象是可綜合的文件。

 

激活當前仿真的測試用例,就可以開始仿真了。

問題1:如何保留我這一次的觀察信號設置?

具體操作步驟如下:

 

爲了方便保留這一次仿真中的一些觀察信號以及設置,我們可以把它保存下來。在modelsim軟件呢中,點擊保存,想這次的相關設置保存好do文件。注意:爲例避免被覆蓋掉,一般不能取默認的命名,建議將do文件命名與對應的測試用例對應上。

 

問題2:怎樣還原上一次的仿真波形等設置?

在下一次啓動modelsim的時候,選擇File—>LoadàMacro_File,然後選擇上一次保留的設置文件即可。

 

問題3.如何添加多個測試用例文件?

通過下述步驟添加仿真文件。例如不同的testbench等。

針對多個testbench的情況,通過設計set_as_top選擇來激活當前testbench,從而決定該次仿真的測試用例。如下圖的工程中,包含了2個測試用例,當前激活的是tb02。

 

 

3.可能出現的問題

聯合仿真的時候,有時候並不像單獨利用modelsim仿真的那樣,會彈出錯誤日誌方便你定位。有時候有些錯誤(例如語法錯誤,編譯順序的問題,中文路徑或者缺乏某個文件導致沒能仿真成功)會導致vivado一直卡住了,沒能夠走到調用modelsim的不驟。那麼碰到這種情況,我們可以去哪找到日誌呢?

以我建的工程爲例,一般在vivado存放仿真工程的路徑中,可以找到compile.log和simulate.log這兩個日誌文件,方便定位。

 

4.仿真文件管理建議

一個好的仿真文件管理習慣,有助於快速還原當初的仿真環境,有助於定位問題。

 

最起碼可以在仿真文件中包含以下幾個子文件夾,其中HDL用於存放仿真是所編寫的一些文件,例如仿真的時鐘產生模塊、外圍芯片模型等;TB_PTN用於存放不同的測試用例,即不同的testbench。Wave文件用於存放針對不同testbench下觀察信號的設置等等。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章