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仿真中存在的一些問(wèn)題

FPGA之家 ? 來(lái)源:網(wǎng)絡(luò)交換FPGA ? 2023-05-08 11:19 ? 次閱讀

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方可。 以圖1所示工程為例,

82f11584-ec2f-11ed-90ce-dac502259ad0.jpg

圖1 vivado示例工程

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

8319ad82-ec2f-11ed-90ce-dac502259ad0.jpg

圖2 QuestaSim仿真波形

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

8329584a-ec2f-11ed-90ce-dac502259ad0.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)的源代碼如下:

setfilename[glob*_compile.do]
setcontent[open$filenamer+]
setrow0
while{![eof$content]}{
incrrow
gets$contentline
setlist($row)$line
}
close$content
setfilename2"compile.do";
setcontent[open$filename2w+]
for{seti1}{$i<=?$row}?{incr?i}?{
????if?{![string?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)的源代碼如下:

setfilenamecompile.do
do$filename
setfilename[glob*_simulate.do]
do$filename
log-r/*
restart-force
run1ms

例程

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

8348360c-ec2f-11ed-90ce-dac502259ad0.png

圖4 QuestaSim仿真波形

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

8359db32-ec2f-11ed-90ce-dac502259ad0.jpg

圖5 QuestaSim仿真波形

完整源碼

setfilename[glob*_compile.do]
setcontent[open$filenamer+]
setrow0
while{![eof$content]}{
incrrow
gets$contentline
setlist($row)$line
}
close$content
setfilename2"compile.do";
setcontent[open$filename2w+]
for{seti1}{$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





審核編輯:劉清

聲明:本文內(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)投訴
  • 仿真器
    +關(guān)注

    關(guān)注

    14

    文章

    1008

    瀏覽量

    83440
  • TCL
    TCL
    +關(guān)注

    關(guān)注

    10

    文章

    1699

    瀏覽量

    88270
  • Vivado
    +關(guān)注

    關(guān)注

    19

    文章

    797

    瀏覽量

    65854
  • MODELSIM仿真
    +關(guān)注

    關(guān)注

    0

    文章

    15

    瀏覽量

    7264

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

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

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    仿真執(zhí)行自定義custom指令時(shí),只能執(zhí)行軟件程序中所調(diào)用條是為什么?

    學(xué)識(shí)淵博的人你好,我們?cè)诰帉?xiě)軟件程序的時(shí)候出現(xiàn)的一些問(wèn)題。在仿真執(zhí)行自定義custom指令時(shí),只能執(zhí)行軟件程序中所調(diào)用條,而后在仿真中會(huì)
    發(fā)表于 08-16 07:07

    cadence畫(huà)板中遇到的一些問(wèn)題

    cadence畫(huà)板中遇到的一些問(wèn)題,在這里分享給大家,多多指教
    發(fā)表于 02-25 16:01 ?0次下載

    關(guān)于紅外通信的一些問(wèn)題知識(shí)點(diǎn)

    關(guān)于紅外通信的一些問(wèn)題知識(shí)點(diǎn)。
    發(fā)表于 05-05 17:40 ?4次下載

    基于linux系統(tǒng)實(shí)現(xiàn)的vivado調(diào)用VCS仿真教程

    在linux系統(tǒng)上實(shí)現(xiàn)vivado調(diào)用VCS仿真教程 作用:vivado調(diào)用VCS仿真可以加快工
    的頭像 發(fā)表于 07-05 03:30 ?1.1w次閱讀
    基于linux系統(tǒng)實(shí)現(xiàn)的<b class='flag-5'>vivado</b><b class='flag-5'>調(diào)用</b>VCS<b class='flag-5'>仿真</b>教程

    基于saber仿真中一些問(wèn)題的處理方法

    來(lái)源:電源網(wǎng) 由于saber仿真要求較高,所以給初學(xué)者造成了一些困擾,現(xiàn)在我們交流下一些常見(jiàn)錯(cuò)誤的解決方法: 1)設(shè)置元件屬性時(shí)加了單位,這就要抽臉了,初犯可以寬恕。 2)元件名文件名路徑名有重復(fù)
    的頭像 發(fā)表于 10-12 01:57 ?1049次閱讀

    VCS獨(dú)立仿真Vivado IP核的一些方法總結(jié)

    前年,發(fā)表了篇文章《VCS獨(dú)立仿真Vivado IP核的一些方法總結(jié)》(鏈接在參考資料1),里面簡(jiǎn)單講述了使用VCS仿真
    的頭像 發(fā)表于 03-22 10:31 ?3923次閱讀

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

    Vivado調(diào)用Questa Sim或ModelSim仿真中存在
    的頭像 發(fā)表于 09-02 10:12 ?8129次閱讀
    <b class='flag-5'>Vivado</b><b class='flag-5'>調(diào)用</b><b class='flag-5'>Questa</b> <b class='flag-5'>Sim</b>或ModelSim<b class='flag-5'>仿真</b>小技巧

    使用Vivado仿真器進(jìn)行混合語(yǔ)言仿真一些要點(diǎn)

    Vivado 仿真器支持混合語(yǔ)言項(xiàng)目文件及混合語(yǔ)言仿真。這有助于您在 VHDL 設(shè)計(jì)中包含 Verilog 模塊,反過(guò)來(lái)也是樣。 本文主要介紹使用
    的頭像 發(fā)表于 10-28 16:24 ?3047次閱讀

    Vivado仿真器進(jìn)行混合語(yǔ)言仿真一些要點(diǎn)

    本文主要介紹使用 Vivado 仿真器進(jìn)行混合語(yǔ)言仿真一些要點(diǎn)。
    發(fā)表于 08-01 09:25 ?1203次閱讀

    使用VCS仿真Vivado IP核時(shí)遇到的問(wèn)題及解決方案

    前年,發(fā)表了篇文章《VCS獨(dú)立仿真Vivado IP核的一些方法總結(jié)》(鏈接在參考資料1),里面簡(jiǎn)單講述了使用VCS仿真
    的頭像 發(fā)表于 08-29 14:41 ?2012次閱讀

    關(guān)于Vivado Non-project,我們應(yīng)知道的一些問(wèn)題

    ,同時(shí)也便于工程管理。Non-Project模式編譯時(shí)間會(huì)比Project模式短,因?yàn)樗袛?shù)據(jù)存儲(chǔ)在內(nèi)存,直接內(nèi)存讀取數(shù)據(jù)比硬盤(pán)讀取要快一些。這里我們探討下使用Non-Project模式時(shí)可能碰到的一些問(wèn)題
    的頭像 發(fā)表于 12-15 13:51 ?1731次閱讀

    Questa Sim不支持-novopt問(wèn)題

    仿真中為防止信號(hào)被優(yōu)化,會(huì)在modelsim仿真的do文件中使用vsim -novopt項(xiàng),但是Questa Sim已經(jīng)不支持,并會(huì)提示以下信息。所以要觀察信號(hào)第
    的頭像 發(fā)表于 12-23 10:34 ?4763次閱讀
    <b class='flag-5'>Questa</b> <b class='flag-5'>Sim</b>不支持-novopt問(wèn)題

    Vivado調(diào)用第三方仿真軟件查看波形的過(guò)程中存在一些問(wèn)題

    首先說(shuō)明下Modelsim與Questa Sim都可以與Vivado聯(lián)調(diào),也比較相似,但是Questa
    的頭像 發(fā)表于 02-10 16:28 ?3319次閱讀

    使用Vivado調(diào)用questasim仿真報(bào)錯(cuò)的原因及其解決辦法

    天使用Vivado調(diào)用questasim(modelsim估計(jì)也樣),仿真報(bào)錯(cuò)
    的頭像 發(fā)表于 05-08 17:12 ?2659次閱讀

    Vivado調(diào)用Modelsim仿真

    Modelsim是十分常用的外部仿真工具,在Vivado中也可以調(diào)用Modelsim進(jìn)行仿真,下面將介紹如何對(duì)vivado進(jìn)行配置并
    的頭像 發(fā)表于 07-24 09:04 ?3152次閱讀
    <b class='flag-5'>Vivado</b><b class='flag-5'>調(diào)用</b>Modelsim<b class='flag-5'>仿真</b>