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

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

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

Vivado使用技巧:debug仿真設(shè)計(jì)的三種調(diào)試方法

454398 ? 來源:FPGADesigner的博客 ? 作者:FPGADesigner的博客 ? 2020-12-29 15:57 ? 次閱讀

源代碼級別調(diào)試
Vivado Simulator提供了在仿真過程中debug設(shè)計(jì)的特性,通過為源代碼添加一些可控制的執(zhí)行條件來檢查出問題的地方。總的來說有三種調(diào)試方法:

1.使用Step逐行調(diào)試
Step命令一次只執(zhí)行HDL代碼中的一行,從而驗(yàn)證和調(diào)試設(shè)計(jì)。運(yùn)行仿真后,點(diǎn)擊Run->Step或工具欄中的Step可執(zhí)行該命令。Restart可以將時(shí)間復(fù)位到TestBench的開始。當(dāng)前執(zhí)行的代碼會高亮顯示并且前方有箭頭指示:

pIYBAF9uJreAZy5wAABFND7-SlY040.png

運(yùn)行Step后會打開與頂層設(shè)計(jì)單元相關(guān)的HDL文件窗口,在窗口名稱上右鍵->新建水平分組或新建垂直分組即可同時(shí)查看HDL和波形窗口。

2.使用斷點(diǎn)(breakpoint)調(diào)試
Step調(diào)試的缺點(diǎn)是在大型設(shè)計(jì)中很繁瑣且花費(fèi)大量時(shí)間。設(shè)計(jì)者可以在源代碼中自行指定運(yùn)行停止的點(diǎn),稱為斷點(diǎn)。運(yùn)行仿真時(shí),仿真器遇到斷點(diǎn)就會暫停??稍O(shè)置斷點(diǎn)的行前有一個(gè)空心圈,點(diǎn)擊可設(shè)置斷點(diǎn),轉(zhuǎn)變?yōu)閷?shí)心圈。

o4YBAF9uJrmAW9drAABDHP9CHnU407.png

對應(yīng)的Tcl命令為“add_bp file_name line_number”。仿真調(diào)試過程中,斷點(diǎn)和Step調(diào)試是可以一起使用的。在實(shí)心圈上右鍵,或Run菜單中點(diǎn)擊Delete All Breakpoints可以刪除所有斷點(diǎn)。

3.條件調(diào)試
在設(shè)計(jì)中添加條件斷點(diǎn),仿真器檢測到條件為真時(shí)就會暫停當(dāng)前仿真。條件必須用Tcl命令添加,示例如下:
add_condition #命令模板
add_condition {reset == 1 && clk == 1} {puts “Reset went to high”; stop}
#當(dāng)clk與reset同時(shí)為高暫停仿真,控制臺打印消息輸出

遇到條件斷點(diǎn)并暫停后,只有等到下一個(gè)仿真命令才會繼續(xù)運(yùn)行仿真。

將對象強(qiáng)制到特定值
Vivado Simulator提供了Force功能將信號、wire或reg強(qiáng)制為某一值,該操作會重寫信號定義在HDL設(shè)計(jì)中的行為。考慮如下應(yīng)用情況:

  • TestBench中沒有對某一信號進(jìn)行驅(qū)動(dòng),可以使用Force功能給予激勵(lì);
  • Debug過程中使用Force糾正錯(cuò)誤的值,以繼續(xù)進(jìn)行仿真分析。

使用Force Constant、Force Clock、Remove Clock相關(guān)命令配置Force功能,而且仿真restart后仍然會保留已經(jīng)設(shè)置了的Force特性。

1.Force Constant功能
該命令會將信號固定為一個(gè)常數(shù)值,重寫了其HDL代碼中的賦值。在Objects窗口或波形窗口中選中某一對象,右鍵->Force Constant,打開如下窗口:

Force value按照value radix選擇的基數(shù)設(shè)置常數(shù)值;設(shè)置的值開始于Starting after time offset設(shè)置的時(shí)間,如果不帶單位則默認(rèn)為ns;Cancel after time offset設(shè)置的時(shí)間后會取消應(yīng)用Force功能。

2.Force Clock功能
該命令會使信號以一定速率在兩個(gè)值之間來回轉(zhuǎn)換,類似于時(shí)鐘信號一樣(但不局限于生成時(shí)鐘信號,可以定義任意振蕩的值)。在Objects窗口或波形窗口中選中某一對象,右鍵->Force Constant,打開如下窗口:

Leading edge value和Trailing edge value分別指定兩個(gè)振蕩狀態(tài)的值;Duty cycle和Period設(shè)置占空比和周期。右鍵菜單中的Remove Force用來清除設(shè)置。靈活使用Force特性可以加快設(shè)計(jì)仿真的調(diào)試驗(yàn)證,而不需要修改HDL代碼。

編輯:hfy


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

    關(guān)注

    30

    文章

    816

    瀏覽量

    128045
  • DEBUG
    +關(guān)注

    關(guān)注

    3

    文章

    89

    瀏覽量

    19849
  • Vivado
    +關(guān)注

    關(guān)注

    19

    文章

    804

    瀏覽量

    66224
收藏 人收藏

    評論

    相關(guān)推薦

    ARM的三種中斷調(diào)試方法

    ARM的三種中斷調(diào)試方法1 嵌入式軟件開發(fā)流程   參照嵌入式軟件的開發(fā)流程。第一步:工程建立和配置。第二步:編輯源文件。第步:工程編譯和鏈接。第四步:軟件的
    發(fā)表于 09-17 15:32

    【分享資料】ARM的三種中斷調(diào)試方法簡介

    ARM的三種中斷調(diào)試方法簡介1 嵌入式軟件開發(fā)流程   參照嵌入式軟件的開發(fā)流程。第一步:工程建立和配置。第二步:編輯源文件。第步:工程編譯和鏈接。第四步:軟件的
    發(fā)表于 03-19 09:29

    ARM的三種中斷調(diào)試方法介紹

    址處的代碼,實(shí)現(xiàn)動(dòng)態(tài)改變中斷處理函數(shù)。具體方法是:嵌入式技巧:ARM的三種中斷調(diào)試方法介紹嵌入式軟件開發(fā)流程參照嵌入式軟件的開發(fā)流程。第一步:工程建立和配置。第二步:編輯源文件。第
    發(fā)表于 10-18 09:28

    三種電路仿真軟件比較及器件模型加入方法

    摘要:在比較了ORCAD/PSPICE,PROTEL,Electronics Workbench三種仿真軟件各自特點(diǎn)的基礎(chǔ)上,介紹了把基于SPICE語言的器件模型加入三種軟件的方法,實(shí)
    發(fā)表于 05-10 09:03 ?95次下載

    噪聲系數(shù)測量的三種方法

    噪聲系數(shù)測量的三種方法 本文介紹了測量噪聲系數(shù)的三種方法:增益法、Y
    發(fā)表于 05-07 13:38 ?2142次閱讀

    Vivado+FPGA:如何使用Debug Cores(ILA)在線調(diào)試

    Vivado下在線調(diào)試是利用ILA進(jìn)行的,Xilinx官方給出了一個(gè)視頻,演示了如何使用Vivadodebug cores,下面我根據(jù)這個(gè)官方視頻的截圖的來演示一下: 官方的視頻使
    發(fā)表于 02-08 08:52 ?2528次閱讀

    Vivado中使用debug工具步驟與調(diào)試技巧

    在ISE中稱為ChipScope而Vivado中就稱為in system debug。下面就介紹Vivado中如何使用debug工具。 Debug
    發(fā)表于 11-17 14:05 ?6w次閱讀
    <b class='flag-5'>Vivado</b>中使用<b class='flag-5'>debug</b>工具步驟與<b class='flag-5'>調(diào)試</b>技巧

    基于Proteus嵌入式仿真平臺中三種源碼調(diào)試的方式分析

    就是能對嵌入式系統(tǒng)(硬、軟件)及其外圍電路進(jìn)行協(xié)同、動(dòng)態(tài)、交互式的仿真,并提供了仿真中進(jìn)行源碼調(diào)試三種方式。
    的頭像 發(fā)表于 03-29 08:19 ?3764次閱讀
    基于Proteus嵌入式<b class='flag-5'>仿真平臺中三種</b>源碼<b class='flag-5'>調(diào)試</b>的方式分析

    如何使用Vivado Logic Analyzer與邏輯調(diào)試IP進(jìn)行交互

    了解Vivado中的Logic Debug功能,如何將邏輯調(diào)試IP添加到設(shè)計(jì)中,以及如何使用Vivado Logic Analyzer與邏輯調(diào)試
    的頭像 發(fā)表于 11-30 06:22 ?3335次閱讀

    Vivado調(diào)試ILA debug結(jié)果也許不對

    FPGA的調(diào)試是個(gè)很蛋疼的事,即便Vivado已經(jīng)比ISE好用了很多,但調(diào)試起來依舊蛋疼。即便是同一個(gè)程序,F(xiàn)PGA每次重新綜合、實(shí)現(xiàn)后結(jié)果都多多少少會有所不同。而且加入到ila中的數(shù)據(jù)會占用RAM資源,影響布局布線的結(jié)果。
    的頭像 發(fā)表于 03-08 17:35 ?1.1w次閱讀

    關(guān)于Vivado三種操作Debug的方式

    Vivado中提供了多種Debug的操作方式,下面就來總結(jié)一下: 1. 代碼中例化ILA IP核 第一,直接例化ILA IP核: 需要探測多少個(gè)信號,信號的位寬是多少,直接選擇即可: 下面界面可以
    的頭像 發(fā)表于 11-11 17:07 ?1.1w次閱讀
    關(guān)于<b class='flag-5'>Vivado</b>中<b class='flag-5'>三種</b>操作<b class='flag-5'>Debug</b>的方式

    python統(tǒng)計(jì)詞頻的三種方法

    python統(tǒng)計(jì)詞頻的三種方法方法。
    發(fā)表于 05-25 14:33 ?2次下載

    一文解析Vivado三種封裝IP的方式

    Vivado提供了三種封裝IP的方式:(1)將當(dāng)前工程封裝為IP;(2)將當(dāng)前工程中的BD(IPI 設(shè)計(jì))封裝為IP;(3)將指定的文件目錄封裝為IP。 IP Packager支持的輸入文件HDL
    的頭像 發(fā)表于 08-10 18:09 ?6688次閱讀
    一文解析<b class='flag-5'>Vivado</b>的<b class='flag-5'>三種</b>封裝IP的方式

    FPGA應(yīng)用之vivado三種常用IP核的調(diào)用

    今天介紹的是vivado三種常用IP核:時(shí)鐘倍頻(Clocking Wizard),實(shí)時(shí)仿真(ILA),ROM調(diào)用(Block Memory)。
    發(fā)表于 02-02 10:14 ?3302次閱讀

    MCUXpresso IDE下在線聯(lián)合調(diào)試雙核MCU工程的三種方法

    大家好,我是痞子衡,是正經(jīng)搞技術(shù)的痞子。今天痞子衡給大家分享的是MCUXpresso IDE下在線聯(lián)合調(diào)試i.MXRT1170雙核工程的三種方法
    的頭像 發(fā)表于 08-08 15:18 ?444次閱讀
    MCUXpresso IDE下在線聯(lián)合<b class='flag-5'>調(diào)試</b>雙核MCU工程的<b class='flag-5'>三種方法</b>