軟體版本:Anlogic -TD5.9.1-DR1_ES1.1
作業系統:WIN10 64bit
硬體平臺:適用安路(Anlogic)FPGA
實驗平臺:米聯客-MLK-L1-CZ06-DR1M90G開發板
板卡獲取平臺:https://milianke.tmall.com/
登入"米聯客"FPGA社群 http://www.uisrc.com 影片課程、答疑解惑!
1概述
FPGA開發中對設計的程式碼功能進行必要的模擬可以提高研發效率,詳盡的測試條件更能讓一些設計隱患提前發現,所以程式碼的模擬在FPGA開發中非常重要,對於初學者一定不能只滿足於表象的功能實現,而應該嚴謹的對自己編寫的程式碼進行充分模擬驗證,之後上板驗證。
在進行本實驗前,請提前安裝好modelsim。本實驗所實用的modelsim版本為modelsim-win64-10.6d-se。
實驗目的:
1:掌握modelsim如何編譯TD的FPGA庫
2:掌握modelsim如何模擬安路
3:掌握TD軟體如何設定modelsim模擬
4:掌握從TD呼叫modelsim的模擬方法
2模擬庫的編譯
以DR1器件為例,TD軟體自帶有模擬模型,並可在modelsim進行編譯,步驟如下:
1:在 modelsim 的安裝目錄下,新建資料夾,如:anlogic,
2:啟動 modelsim,選擇 file → change directory 將路徑轉到 anlogic 資料夾下
3:在 modelsim 的 file → new → library下新建名為DR1的庫
5:開啟 compile → compile,彈出compile souce files對話方塊,library中選擇剛建立的DR1,查詢範圍選擇 src 下的所有檔案,勾選 compile selected files together,執行編譯命令
TD路徑下的FPGA器件模擬庫檔案具體路徑如下:
單擊一個檔案,安裝ctrl+a全選,之後單擊Compile
編譯成功後單擊Done
3使用modelsim模擬驗證
3.1 方法一使用modelsim建立模擬工程
本文實驗在前一個demo的基礎上完整。
1: 選擇 file → change directory
1:在 modelsim 中,點選 file → new → project,新建 project,如:sim_prj
2:可點選 add existing file 新增設計檔案,也可點選 Create New File 建立新的設計檔案,並將其新增到工程。
3:可以連續多次把需要模擬的檔案都新增進來
4:點選 進行編譯,編譯成功後,原始檔的狀態將會由"?"變成"✔"
5:點選 simulate → start simulate,在 work Library 中選擇 testbench 檔案進行模擬,如果想模擬後,在模組列表中檢視各訊號引數或波形的變化情況,可將"Enableoptimization"前面的勾去掉,否則,Modelsim 會將訊號引數最佳化掉,導致訊號列表為空。
6:然後選擇 libraries 點選 add,選擇之前編譯的DR1路徑。
點選 OK 進行模擬
如果波形視窗沒有出來,單擊View->Wave呼叫出來,其他視窗沒有出來的也能透過這裡設定
點選u_pll_test,選擇需要觀察到波形視窗的訊號
右擊,把訊號新增到波形視窗
設定單步模擬10us
3.2 方法二使用直接編輯模擬檔案模擬
除了第一種方法,對於有一定經驗的工程師可以使用第二種更加便捷的方法。
首先看下本工程路徑下提供了2個模板檔案
cmd.do改檔案可以直接在modelsim控制檯中執行,其中C:/modeltech64_10.6d/anlogic/DR1就是我們前面編譯好的模擬庫
## part 1: create lib vlib work vmap work work
## part 2: load rtl vlog -timescale 1ps/1ps -sv -f compile.f
## part 3: sim vsim -L C:/modeltech64_10.6d/anlogic/DR1 -gui -novopt work.sim_top_tb #vsim -voptargs=+acc work.pll_test_tb
## part 4: add wave #do wave.do add wave *
## part 5: show ui view wave view structure view signals
## part 6: run sim #run -all run 1000ns |
compile.f 設定編譯檔案的路徑,一般只要對compile.f進行修改,本工程只用到了3個檔案
../01_rtl/pll_test.v ../02_sim/sim_top_tb.v ../03_ip/al_ip/mypll.v ../03_ip/mypll/DR1_PHY_PLL_WRAPERR_83aa86f42154.v |
把cmd.do和compile.f複製到uisrc/02_sim路徑
開啟modelsim並且設定路徑
選擇路徑
在控制檯輸入do cmd.do
可以看到波形完成載入
之後的模擬和前面的方法一樣。
3.3 方法三使用TD聯合模擬
3.3.1 模擬引數設定
TD 支援使用者使用第三方工具(如 Synopsys VCS、 Mentor Graphics Modelsim 等)來進行功能驗證和時序驗證。TD 提供模擬所需的功能和時序模型。
在進行TD聯合除錯前,請根據本實驗前面內容完成模擬庫的編譯。
以下介紹在TD軟體中生成供Modelsim 模擬所需檔案的流程。
1:在執行 HDL2Bit Flow 前,先設定相關引數。
2:點選 Simulation進行模擬相關的設定,設定與當前建立的工程相關聯。
3.3.2 模擬檔案do檔案設定
1:執行 HDL2Bit Flow
對於向執行什麼級別的模擬,就執行對應的HDL2Bit Flow
當 HDL2Bit Flow 執行至 Read Design 這一步時,可執行 Behavioral Simulation;
當 HDL2Bit Flow 執行至 Optimize RTL 這一步時,可執行 Post-RTL Simulation;
當 HDL2Bit Flow 執行至 Optimize Gate 這一步時,可執行 Post-Gate Simulation;
當 HDL2Bit Flow 執行至 Optimize Routing 這一步時,可執行 Post-Route Simulation。
以執行Behavioral Simulation模擬來說,只要執行Read Design 這一步,如下圖
2:TD介面模擬庫編譯
testbench檔案可以新建一個tb或者新增一個已經編寫好的tb模擬檔案,這裡我們新增已經編寫好的。
(1)Simulator:選擇模擬工具,目前支援 Modelsim 以及 Questasim;
(2)Executable Path:選擇模擬工具的可執行檔案路徑,Windows 系統的 TD 版本支援在預設狀態下自動識別目標模擬工具的可執行路徑,若目標模擬工具未新增到 PATH 環境變數或者需要覆蓋環境變數中的路徑時需要設定;
(3)Device Family:選擇編譯的器件庫,TD 支援的器件庫以介面選項為準,預設狀態下選擇編譯所有器件庫;
(4)Compiled Library Location: 選擇儲存編譯庫結果的路徑,TD 將在該路徑下建立相應的資料夾儲存對應器件庫的編譯結果;
(5)Recompile:選中該選項後會對已編譯過的器件庫進行重新編譯,預設狀態不會重編譯。
3:定義 testbench 檔案
如點選 tools->Simulation則會彈出如下對話方塊,可以新增一個已經存在的
testbench檔案可以新建一個tb或者新增一個已經編寫好的tb模擬檔案,這裡我們新增已經編寫好的。
勾選run,點選 OK即呼叫第三方模擬工具自動執行行為級功能模擬。
需要注意,呼叫IP的時候產生的xml檔案不能用來模擬,需要註釋掉。
模擬檔案需要新增glbl glbl();DR1_PHY_GSR DR1_PHY_GSR();這兩句話,不然編譯可能會報錯。
3.3.3 啟動modelsim模擬
4總結
本實驗演示了三種方法進行模擬,使用者可以根據自己的使用習慣選擇模擬方式,我比較推薦第二種方式。如果需要進行佈局佈線後的模擬,可以選擇第三種方式。