RM新时代网站-首页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Vivado調(diào)用Questa Sim或ModelSim仿真小技巧

FPGA之家 ? 來(lái)源:網(wǎng)絡(luò)交換FPGA ? 作者:董勐 ? 2021-09-02 10:12 ? 次閱讀

Vivado調(diào)用Questa Sim或ModelSim仿真中存在的一些自動(dòng)化問(wèn)題的解決方案。

Vivado調(diào)用Questa Sim仿真中存在的一些問(wèn)題

首先說(shuō)明一下Modelsim與Questa Sim都可以與Vivado聯(lián)調(diào),也比較相似,但是Questa Sim比Modelsim功能更加廣泛,對(duì)于System Verilog的語(yǔ)法支持更加完善,本文以Questa Sim為例說(shuō)明一下Vivado調(diào)用第三方仿真軟件查看波形的過(guò)程中存在的一些問(wèn)題。

1、添加新的觀測(cè)信號(hào)需要重新仿真

Vivado直接調(diào)用Modelsim/QuestaSim進(jìn)行仿真時(shí),波形文件里默認(rèn)只會(huì)出現(xiàn)仿真最頂層中包含的信號(hào),若此時(shí)將仿真運(yùn)行一段時(shí)間后,想要查看其他模塊信號(hào)波形時(shí),需要重新仿真或者運(yùn)行do XXX_simulate.do方可。

在這個(gè)工程中,我們調(diào)用Questa Sim進(jìn)行仿真,可以看到頂層模塊會(huì)自動(dòng)跑100ns。

此時(shí),我們?nèi)粝氩榭磍_ethernet_0_pkt_gen_mon這個(gè)模塊的波形時(shí),直接進(jìn)入波形界面進(jìn)行添加,結(jié)果如圖3所示。

b72ff162-0b49-11ec-8fb8-12bb97331649.jpg

圖3 QuestaSim仿真波形

從圖3中可以看到,當(dāng)模塊的信號(hào)被添加進(jìn)來(lái)后,已經(jīng)運(yùn)行過(guò)的仿真時(shí)間內(nèi),新加入的信號(hào)沒(méi)有仿真結(jié)果。

2、修改邏輯代碼后,需要重新調(diào)用仿真器

在代碼調(diào)試過(guò)程中,修改部分邏輯代碼后(不包括IP核),如果想要查看修改后工程的仿真結(jié)果,需要關(guān)閉當(dāng)前的仿真器,從vivado中重新調(diào)用方可。其原因是vivado在生成XXX_compile.do文件時(shí),會(huì)在其末尾自動(dòng)添加“quit -force”語(yǔ)句,而更改了相應(yīng)的代碼文件后,我們需要執(zhí)行“do XXX_compile.do”命令重新編碼整個(gè)庫(kù),然而在運(yùn)行此文件時(shí),當(dāng)前的仿真器會(huì)被強(qiáng)制退出。

解決方案

為了解決上述問(wèn)題,同時(shí)更加方便使用,本文使用TCL語(yǔ)言,編寫(xiě)了一個(gè)較為方便的do文件,其可以實(shí)現(xiàn)如下功能:

1、對(duì)XXX_compile.do自動(dòng)修改

對(duì)XXX_compile.do自動(dòng)修改,去除其末尾的“quit -force”,并生成新的compile.do文件,其對(duì)應(yīng)的源代碼如下:

set filename [glob *_compile.do]

set content [open $filename r+]

set row 0while {![eof $content]} {

incr row

gets $content line

set list($row) $line

}

close $contentset filename2 “compile.do”;

set content [open $filename2 w+]

for {set i 1} {$i 《= $row} {incr i} {

if {?。踫tring match “quit -force” $list($i)]} {

puts $content $list($i)

}

};

close $content

2、使用“l(fā)og -r /*”命令

該命令可以讓modelsim/Questa Sim在進(jìn)行仿真中,對(duì)所有信號(hào)同步進(jìn)行仿真,從而解決新加入的觀測(cè)信號(hào)沒(méi)有仿真結(jié)果的問(wèn)題;

3、保證仿真器不退出

當(dāng)修改工程中的邏輯代碼(不含IP核)后,只需要運(yùn)行該do文件,其自動(dòng)進(jìn)行編譯和仿真,且使用修改后的compile.do文件,保證仿真器不退出,其對(duì)應(yīng)的源代碼如下:

set filename compile.do

do $filenameset filename [glob *_simulate.do]

do $filenamelog -r /*

restart -force

run 1ms

例程

在使用該do文件之前,需要首先通過(guò)vivado調(diào)用modelsim/ questasim,然后將do文件拷貝到工程對(duì)應(yīng)的behave文件夾下。仍以工程為例,當(dāng)修改了代碼內(nèi)部分邏輯后,在QuestaSim的transcrip界面,輸入命令do auto_update_sim.do即可自動(dòng)重新編譯、仿真,結(jié)果如圖4所示(默認(rèn)仿真時(shí)間設(shè)置為1ms)

b73a161a-0b49-11ec-8fb8-12bb97331649.png

圖4 QuestaSim仿真波形

添加了l_ethernet_0_pkt_gen_mon這個(gè)模塊,可以發(fā)現(xiàn)仿真過(guò)的時(shí)間內(nèi)同樣有仿真結(jié)果,如圖5所示。

b74a2398-0b49-11ec-8fb8-12bb97331649.jpg

圖5 QuestaSim仿真波形

完整源碼

set filename [glob *_compile.do]

set content [open $filename r+]

set row 0while {?。踖of $content]} {

incr row

gets $content line

set list($row) $line

}

close $contentset filename2 “compile.do”;

set content [open $filename2 w+]

for {set i 1} {$i 《= $row} {incr i} {

if {![string match “quit -force” $list($i)]} {

puts $content $list($i)

}

};

close $content

set filename compile.do

do $filename

set filename [glob *_simulate.do]

do $filename

log -r /*

restart –force

run 1ms

編輯:jq

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • IP
    IP
    +關(guān)注

    關(guān)注

    5

    文章

    1701

    瀏覽量

    149502
  • 仿真器
    +關(guān)注

    關(guān)注

    14

    文章

    1017

    瀏覽量

    83721
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4779

    瀏覽量

    68521
  • Vivado
    +關(guān)注

    關(guān)注

    19

    文章

    812

    瀏覽量

    66470

原文標(biāo)題:[源碼]Vivado調(diào)用Questa Sim仿真小技巧

文章出處:【微信號(hào):zhuyandz,微信公眾號(hào):FPGA之家】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    使用modelsim時(shí)的問(wèn)題分析

    仿真對(duì)于FPGA設(shè)計(jì)來(lái)說(shuō)至關(guān)重要,我們經(jīng)常使用modelsim來(lái)進(jìn)行功能仿真或者時(shí)序仿真,這樣就需要將modelsim和設(shè)計(jì)軟件(quart
    的頭像 發(fā)表于 10-24 18:15 ?266次閱讀
    使用<b class='flag-5'>modelsim</b>時(shí)的問(wèn)題分析

    Efinity FIFO IP仿真問(wèn)題 -v1

    幾個(gè)文件? 我們來(lái)看下modelsim.do文件,里面vlog了fifo_tb.sv文件,另外還調(diào)用了flist文件里的文件,flist只有一個(gè)文件那就是fifo_sim.v。所以這個(gè)仿真
    的頭像 發(fā)表于 10-21 11:41 ?980次閱讀
    Efinity FIFO IP<b class='flag-5'>仿真</b>問(wèn)題 -v1

    如何在ModelSim中添加X(jué)ilinx仿真庫(kù)

    今天給大俠帶來(lái)在FPGA設(shè)計(jì)應(yīng)用中如何在ModelSim中添加X(jué)ilinx仿真庫(kù),話不多說(shuō),上貨。 注意:ModelSim一定要安裝在不帶空格的目錄下,即不要安裝在“Program
    發(fā)表于 07-03 18:16

    Vivado 使用Simulink設(shè)計(jì)FIR濾波器

    ,選擇好需要觀測(cè)的信號(hào)后直接右鍵單擊Xilinx Add to Viewer。這時(shí)啟動(dòng)仿真將自動(dòng)打開(kāi)vivado的Waveform窗口,可以在時(shí)域上觀察每一個(gè)點(diǎn)的數(shù)據(jù)。 上圖為單個(gè)25M正弦波
    發(fā)表于 04-17 17:29

    ISE 關(guān)聯(lián) Modelsim 詳細(xì)操作

    在兩者之間即可,然后保存。 第三步,打開(kāi)ISE,在菜單Edit-Preferences…,調(diào)出設(shè)置窗口。 設(shè)置好之后就到了最后一步,在新建工程時(shí),選擇對(duì)應(yīng)的modelsim即可,在看仿真時(shí)正常打開(kāi)就行了。
    發(fā)表于 03-22 18:55

    最實(shí)用的Modelsim使用教程

    過(guò)程又有兩種方法,一種是通過(guò)Quartus調(diào)用Modelsim,Quartus在編譯之后自動(dòng)把仿真需要的.vo文件以及需要的仿真庫(kù)加到modelsi
    發(fā)表于 03-19 16:40

    fpga仿真文件怎么寫(xiě)

    首先,你需要選擇一個(gè)FPGA仿真軟件,如ModelSimVivado、Quartus II等。這些軟件都提供了強(qiáng)大的仿真功能,可以幫助你驗(yàn)證FPGA設(shè)計(jì)的正確性。
    的頭像 發(fā)表于 03-15 14:00 ?790次閱讀

    ADS調(diào)用spectre網(wǎng)表仿真異?!Χㄖ@的NetlistInclude

    ADS是支持調(diào)用spice/spectre等網(wǎng)表文件進(jìn)行仿真的,可以用NetlistInclude控件來(lái)進(jìn)行調(diào)用。
    的頭像 發(fā)表于 03-07 09:57 ?2330次閱讀
    ADS<b class='flag-5'>調(diào)用</b>spectre網(wǎng)表<b class='flag-5'>仿真</b>異?!Χㄖ@的NetlistInclude

    最實(shí)用的Modelsim使用及仿真的基本步驟

    仿真也稱(chēng)為時(shí)序仿真或者布局布線后仿真,是指電路已經(jīng)映射到特定的工藝環(huán)境以后,綜合考慮電路的路徑延遲與門(mén)延遲的影響,驗(yàn)證電路能否在一定時(shí)序條件下滿足設(shè)計(jì)構(gòu)想的過(guò)程,是否存在時(shí)序違規(guī)。
    的頭像 發(fā)表于 03-06 09:58 ?9162次閱讀
    最實(shí)用的<b class='flag-5'>Modelsim</b>使用及<b class='flag-5'>仿真</b>的基本步驟

    【基于Lattice MXO2的小腳丫FPGA核心板】02ModelSim仿真

    ModelSim軟件用于FPGA的模塊仿真 軟件安裝 ModelSim仿真軟件隨著Diamond一同安裝,軟件的安裝和證書(shū)申請(qǐng)流程很簡(jiǎn)單可以參考電子森林Lattice Diamond教
    發(fā)表于 02-29 08:25

    Modelsim報(bào)錯(cuò), -novopt 開(kāi)關(guān)打開(kāi),仿真失敗

    在使用紫光同創(chuàng)PDS和Modelsim聯(lián)合仿真時(shí),modelsim報(bào)錯(cuò)不會(huì)解決,如下圖
    發(fā)表于 02-18 10:26

    仿真?

    #2024,為FPGA生態(tài)加油,為FPGA社區(qū)點(diǎn)贊#...使用IP核時(shí)如何進(jìn)行modelsim仿真
    發(fā)表于 02-02 20:22

    sim卡pin碼怎么設(shè)置 sim卡pin碼怎么重置

    SIM卡PIN碼是一種用于保護(hù)SIM卡的安全性的功能,它要求在每次啟動(dòng)手機(jī)更換SIM卡時(shí)輸入正確的PIN碼才能使用。如果你想設(shè)置重置
    的頭像 發(fā)表于 01-31 14:34 ?2.2w次閱讀

    如何使用 ModelSim 進(jìn)行設(shè)計(jì)仿真

    ModelSim為HDL仿真工具,我們可以利用該軟件來(lái)實(shí)現(xiàn)對(duì)所設(shè)計(jì)的VHDLVerilog程 序進(jìn)行仿真,支持IEEE常見(jiàn)的各種硬件描述語(yǔ)言標(biāo)準(zhǔn)??梢赃M(jìn)行兩種語(yǔ)言的混合
    發(fā)表于 01-14 09:47 ?0次下載

    modelsim安裝運(yùn)行patch閃退

    模擬器的安裝和運(yùn)行是計(jì)算機(jī)科學(xué)中非常重要的一環(huán)。ModelSim是一種流行的數(shù)字電子設(shè)計(jì)自動(dòng)化工具,用于驗(yàn)證和仿真硬件設(shè)計(jì)。然而,有時(shí)安裝和運(yùn)行Patch可能會(huì)導(dǎo)致閃退問(wèn)題。本文將詳細(xì)解釋如何安裝
    的頭像 發(fā)表于 01-04 10:43 ?1508次閱讀
    RM新时代网站-首页