[米聯客-安路飛龍DR1-FPSOC] FPGA基礎篇連載-03安路TD結合modelsim模擬

米联客(milianke)發表於2024-07-23

軟體版本: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如何編譯TDFPGA

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.docompile.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模擬檔案,這裡我們新增已經編寫好的。

1Simulator:選擇模擬工具,目前支援 Modelsim 以及 Questasim

2Executable Path:選擇模擬工具的可執行檔案路徑,Windows 系統的 TD 版本支援在預設狀態下自動識別目標模擬工具的可執行路徑,若目標模擬工具未新增到 PATH 環境變數或者需要覆蓋環境變數中的路徑時需要設定;

3Device Family:選擇編譯的器件庫,TD 支援的器件庫以介面選項為準,預設狀態下選擇編譯所有器件庫;

4Compiled Library Location: 選擇儲存編譯庫結果的路徑,TD 將在該路徑下建立相應的資料夾儲存對應器件庫的編譯結果;

5Recompile:選中該選項後會對已編譯過的器件庫進行重新編譯,預設狀態不會重編譯。

3:定義 testbench 檔案

如點選 tools->Simulation則會彈出如下對話方塊,可以新增一個已經存在的

testbench檔案可以新建一個tb或者新增一個已經編寫好的tb模擬檔案,這裡我們新增已經編寫好的。

勾選run,點選 OK即呼叫第三方模擬工具自動執行行為級功能模擬。

需要注意,呼叫IP的時候產生的xml檔案不能用來模擬,需要註釋掉。

模擬檔案需要新增glbl glbl()DR1_PHY_GSR DR1_PHY_GSR();這兩句話,不然編譯可能會報錯。

3.3.3 啟動modelsim模擬

4總結

本實驗演示了三種方法進行模擬,使用者可以根據自己的使用習慣選擇模擬方式,我比較推薦第二種方式。如果需要進行佈局佈線後的模擬,可以選擇第三種方式。

相關文章