国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

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

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

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

介紹SystemVerilog幾種常用的調(diào)試功能

sanyue7758 ? 來(lái)源:芯片學(xué)堂 ? 2023-01-09 11:51 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

在工作日里,如果你問(wèn)驗(yàn)證工程師在干嘛,多半時(shí)間他/她會(huì)告訴你在Debug。換句話說(shuō),一般在驗(yàn)證周期內(nèi),工程師有超過(guò)一半的時(shí)間都消耗在了功能調(diào)試上,盡管這里面包含了驗(yàn)證工程師跟自己“作對(duì)”的時(shí)間,即驗(yàn)證環(huán)境或者測(cè)試用例本身存在bug。所以,調(diào)試這項(xiàng)工作還是很重要的!

調(diào)試這項(xiàng)工作除了要求工程師對(duì)設(shè)計(jì)規(guī)范(Specification)、DUT(Design Under Test)、測(cè)試環(huán)境(testbench)結(jié)構(gòu)和用例(test case)的測(cè)試意圖有一定的了解,掌握必要的工具、方法和技巧也十分重要,它能夠幫助工程師獲得更多有效的信息,加速問(wèn)題定位,提高工作效率。

方法4:可視化調(diào)試

可視化調(diào)試主要分為Post-process和Interactive這兩種模式。可視化調(diào)試工具是工程師在定位代碼問(wèn)題時(shí)的有力工具,也是現(xiàn)在驗(yàn)證工程師主流的調(diào)試工具。工具的使用一般可以參考官方的用戶手冊(cè)(User Guide),也能夠在官網(wǎng)上找到相應(yīng)的培訓(xùn)鏈接和視頻。

常用的可視化調(diào)試工具有Synopsys家的Verdi,Siemens家的Visualizer,還有Cadence家的SimVision。對(duì)于個(gè)人用戶來(lái)說(shuō),可能沒(méi)有辦法去實(shí)操體驗(yàn),但通常所在公司會(huì)購(gòu)買至少一家的License。三家公司的工具的操作流程和基礎(chǔ)調(diào)試功能都差不多,然后又分別有自己調(diào)試的獨(dú)特功能。

2a8e2f5c-8d49-11ed-bfe3-dac502259ad0.jpg

先介紹下后處理調(diào)試模式(post-process,即在仿真結(jié)束之后再去可視化和處理仿真結(jié)果,有些地方會(huì)叫做PPE,post-processing environment)的使用,因?yàn)檫@種方式在實(shí)際工作中用的比較多。在使用可視化調(diào)試工具之前,通常需要將testbench和RTL編譯到同一個(gè)數(shù)據(jù)庫(kù)中,該數(shù)據(jù)庫(kù)包含了文件信息、RTL例化層次信息、信號(hào)連接關(guān)系等等,以供調(diào)試工具的追蹤和分析。

如果使用Verdi工具,需要使用VCS在編譯(Compilation=Analysis+Elaboration)的時(shí)候,通過(guò)加參數(shù)-kdb -lca來(lái)生成KDB庫(kù)(Knowledge Database),其中l(wèi)ca(Limited Customer Availability Features)參數(shù)是為了指定工具特性。KDB數(shù)據(jù)庫(kù)格式是Verdi專用的格式,所以KDB庫(kù)有時(shí)候也可以叫Verdi庫(kù)。打開verdi的時(shí)候使用命令verdi加參數(shù)-elab來(lái)選擇該KDB庫(kù)。

如果使用Visualizer工具,需要使用Questa/ModelSim在對(duì)設(shè)計(jì)完成編譯(vlog/vcom)之后,使用vopt命令加參數(shù)-debug -designfile design.bin來(lái)生成.bin文件,同樣該文件格式是Visualizer專用的。打開Visualizer的時(shí)候使用命令visualizer加參數(shù)-designfile來(lái)選擇該bin文件,使用參數(shù)-wavefile來(lái)選擇db波形文件。

如果使用SimVision工具,需要在仿真階段使用NC仿真器或者XCelium仿真器(具有更高的仿真性能,比如支持多核等)將設(shè)計(jì)和波形都導(dǎo)出成shm格式。在仿真結(jié)束之后,你可以看到名為example.shm的目錄,該目錄下會(huì)有兩個(gè)文件:.dsn文件和.trn文件,前者包含的是設(shè)計(jì)的信息(類似于我們上面說(shuō)的數(shù)據(jù)庫(kù)),后者包含的是波形信息。打開SimVision的時(shí)候使用命令simvision直接加example.shm來(lái)打開待調(diào)試的數(shù)據(jù)庫(kù)。

2a94671e-8d49-11ed-bfe3-dac502259ad0.jpg

再看看交互模式(interactive mode),交互模式相對(duì)于后處理模式增加了仿真控制的功能,即可以設(shè)置仿真斷點(diǎn)、控制仿真的暫停、運(yùn)行和重啟等,并實(shí)時(shí)地觀察到信號(hào)的行為。交互模式下,上述EDA工具的界面上會(huì)多出來(lái)一些調(diào)試控件。不過(guò)這種模式的仿真運(yùn)行速度比較慢,且在分發(fā)和重現(xiàn)代碼行為上不是很友好,所以在實(shí)際工作中也用的比較少,除非遇到非常棘手但卻摸不著頭腦的問(wèn)題。以上提到的幾家工具都支持交互模式調(diào)試,操作流程也都差不多,并且跟后處理模式一樣也需要先編譯出來(lái)一個(gè)數(shù)據(jù)庫(kù)。

如果使用Synopsys家的工具,在設(shè)置完必要的環(huán)境變量之后,比如VCS_HOME和VERDI_HOME,需要使用VCS命令vcs -kdb -lca -debug_access+all 編譯出KDB庫(kù)和simv可執(zhí)行的仿真文件,然后在執(zhí)行simv的時(shí)候加上參數(shù)-verdi就可以打開交互模式下的Verdi了,這個(gè)時(shí)候調(diào)試器和仿真器是關(guān)聯(lián)起來(lái)的。

如果使用Siemens家的工具,同樣在設(shè)置完必要的環(huán)境變量并使用命令vopt編譯出design.bin文件之后,可以使用命令vsim -visualizer=design.bin -qwavedb=+signal+class -f 打開交互模式下的Visualizer,便可以在調(diào)試工具界面去控制仿真器。

如果使用Cadence家的工具,那就相對(duì)復(fù)雜一點(diǎn),因?yàn)镃adence前前后后有幾個(gè)仿真器,比如verilog、ncsim、irun,并且進(jìn)交互調(diào)試模式的方法也比較多樣,但大致可以分兩種:一種是可以通過(guò)參數(shù)-gui直接開啟帶SimVision的仿真器,另一種方式是單獨(dú)啟動(dòng)SimVision,使用參數(shù)-connect host/pid連接到運(yùn)行在本地或者遠(yuǎn)端的仿真上。

以上命令只是展示大概的使用過(guò)程,實(shí)際應(yīng)以對(duì)應(yīng)版本的用戶手冊(cè)為準(zhǔn)哈。當(dāng)你打開可視化調(diào)試工具調(diào)試界面之后,有這么幾種常用的調(diào)試功能:

通過(guò)Hierarchy等窗口瀏覽源代碼的例化層次結(jié)構(gòu),類繼承關(guān)系等;

通過(guò)查找Driver和Load來(lái)定位信號(hào)的傳播通路(這個(gè)是用的最多的);

通過(guò)Filter來(lái)分類查看當(dāng)前文件包含的輸入輸出信號(hào)、參數(shù)、變量等;

通過(guò)查找來(lái)定位某一個(gè)module例化出來(lái)的所有模塊;

原理圖和狀態(tài)機(jī)跳轉(zhuǎn)圖可以有限地幫助你理解代碼行為;

配合波形文件查看各種信號(hào)隨時(shí)間變化的行為;

調(diào)試工具的功能還有很多,具體可以查看各個(gè)工具的官方介紹和培訓(xùn)視頻。

方法5:SVA斷言在調(diào)試中的應(yīng)用

概述:SystemVerilog Assertion(斷言)主要用于驗(yàn)證設(shè)計(jì)的行為,并且可以提供功能覆蓋率信息。Assertion可以應(yīng)用于兩種不同的驗(yàn)證方法中,一種是在動(dòng)態(tài)仿真中去動(dòng)態(tài)地檢查各個(gè)既定屬性(property)是否滿足,另一種測(cè)試用于Formal驗(yàn)證工具去證明設(shè)計(jì)是否符合規(guī)范。

作用:如果你剛接觸,可以把斷言簡(jiǎn)單理解成checker或者monitor,它指的是在設(shè)計(jì)中嵌入一些工程師根據(jù)待測(cè)特性自行定義的一些屬性,仿真的時(shí)候仿真工具會(huì)去判斷這些屬性是否成立,以此來(lái)判斷某個(gè)特性是否實(shí)現(xiàn)正確。SVA在本文中作為調(diào)試的方法來(lái)介紹,就是因?yàn)閿嘌钥梢詭椭覀儽O(jiān)測(cè)屬性,為我們報(bào)出來(lái)哪些時(shí)刻行為正常、哪些時(shí)刻行為異常,且這些行為可以是有時(shí)序的!

分類:在SystemVerilog中,斷言大致可以分為兩類:立即斷言(immediate assertion)和并發(fā)斷言(concurrent assertion)。立即斷言是基于仿真事件(simulation event)的,當(dāng)它被執(zhí)行到的時(shí)候就會(huì)立即對(duì)多定義的屬性做出判斷并給出結(jié)果;而并發(fā)斷言是基于時(shí)鐘的,斷言的評(píng)估(evaluate)發(fā)生在時(shí)鐘邊沿,這也使得并發(fā)斷言具有監(jiān)測(cè)的能力,這也是下面要主要介紹的。

結(jié)構(gòu):斷言的具體實(shí)現(xiàn)依賴于更基礎(chǔ)的元素,比如sequence和property。Sequence是最底層的元素,它可以復(fù)用和嵌套。Sequence可以用來(lái)定義簡(jiǎn)單的布爾表達(dá)式,也可以用來(lái)描述多周期的時(shí)序行為。Property則可以實(shí)現(xiàn)跟sequence一樣的內(nèi)容,也可以通過(guò)組合不同的sequence來(lái)構(gòu)造更加復(fù)雜的時(shí)序行為。為了規(guī)范化,建議將嵌入的時(shí)鐘信號(hào)@(posedge clk)放在property這一層,而將sequence跟時(shí)鐘獨(dú)立開來(lái),方便基礎(chǔ)sequence的復(fù)用。

調(diào)度:SystemVerilog的仿真基于事件驅(qū)動(dòng)模型,事件的調(diào)度機(jī)制在SV語(yǔ)言標(biāo)準(zhǔn)中有明確說(shuō)明。該調(diào)度機(jī)制將每個(gè)仿真時(shí)刻(time slot)再劃分成多個(gè)region,如下圖所示,每個(gè)region都有自己明確的操作。仿真調(diào)度算法的確定,可以使得仿真環(huán)境跟DUT交互時(shí)顯示出同步的效果。其中跟SVA相關(guān)的region有Preponed、Observed和Reactive。在Preponed中,SVA會(huì)對(duì)有關(guān)聯(lián)的變量完成采樣;在Observed中,多有的property完成評(píng)估,即判斷斷言描述是否成立;在Reactive中,執(zhí)行斷言評(píng)估結(jié)果需要采取的對(duì)應(yīng)的操作。

2a9f994a-8d49-11ed-bfe3-dac502259ad0.png

應(yīng)用:斷言的應(yīng)用主要可以分成四個(gè)步驟:1、構(gòu)造基礎(chǔ)布爾表達(dá)式;2、構(gòu)造sequence序列;3、構(gòu)造斷言屬性property;4、將屬性代碼插入或綁定(bind)到待測(cè)模塊中。SVA提供了一些好用又強(qiáng)大的功能:判斷信號(hào)邊沿和狀態(tài)、添加延時(shí)來(lái)構(gòu)造信號(hào)時(shí)序行為、支持構(gòu)造不定周期的時(shí)序窗口、判斷過(guò)去的信號(hào)狀態(tài)、支持?jǐn)嘌缘倪壿嬤\(yùn)算等等,本文篇幅顯然是不夠的了。

方法6:軟件調(diào)試方法的借鑒和應(yīng)用

這一節(jié)的內(nèi)容更像是討論,有哪些軟件開發(fā)中用到的調(diào)試方法,或者問(wèn)題定位策略是可以借鑒過(guò)來(lái)應(yīng)用到芯片驗(yàn)證中的。

有個(gè)前提需要明確的是,硬件仿真始終是基于事件驅(qū)動(dòng)的程序執(zhí)行過(guò)程,盡管仿真調(diào)度機(jī)制簡(jiǎn)潔明了,但往往待測(cè)設(shè)計(jì)規(guī)模龐大(具體表現(xiàn)為硬件行為具備并行性質(zhì),一個(gè)時(shí)鐘信號(hào)的翻轉(zhuǎn)事件關(guān)聯(lián)著成千上萬(wàn)的信號(hào)動(dòng)作),所以硬件仿真的運(yùn)行速度會(huì)非常的慢,這是跟單純軟件程序的一個(gè)顯著區(qū)別。

運(yùn)行速度上的差異帶來(lái)了調(diào)試方法上的一些不同。軟件調(diào)試中交互式的操作非常多,比如解釋執(zhí)行的腳本(比如Python)不需要編譯就可以馬上得到執(zhí)行的結(jié)果,又比如基于斷點(diǎn)的調(diào)試可以非常容易地檢查變量值和堆棧跟蹤。反觀硬件調(diào)試,工程師很難快速地知道在哪里設(shè)置斷點(diǎn),往往需要反復(fù)的嘗試,這會(huì)浪費(fèi)掉很多時(shí)間。因此硬件的調(diào)試更多依賴于信息的導(dǎo)出,其形式通常是仿真日志和波形文件。

如何提高硬件調(diào)試的交互性可能是軟件調(diào)試帶來(lái)的啟示,有這么一些不成熟的想法,比如是否可以增加調(diào)試信息(代碼、波形和仿真日志)之間的關(guān)聯(lián),實(shí)現(xiàn)自動(dòng)化跳轉(zhuǎn);是否可以增加工具對(duì)代碼的理解或者記錄調(diào)試過(guò)程來(lái)進(jìn)行自動(dòng)化分析;是否可以在增量編譯的概念上實(shí)現(xiàn)增量仿真;等等等等。







審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(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)投訴
  • EDA工具
    +關(guān)注

    關(guān)注

    5

    文章

    276

    瀏覽量

    33838
  • VCS
    VCS
    +關(guān)注

    關(guān)注

    0

    文章

    80

    瀏覽量

    10258
  • DUT
    DUT
    +關(guān)注

    關(guān)注

    0

    文章

    193

    瀏覽量

    13390

原文標(biāo)題:SystemVerilog | 這些Debug調(diào)試方法你都知道嗎?| Part II

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

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    【產(chǎn)品介紹】Questa One Sim軟件

    優(yōu)勢(shì)與平臺(tái)支持優(yōu)勢(shì)行業(yè)領(lǐng)先的高性能多語(yǔ)言仿真器用于可測(cè)性設(shè)計(jì)(DFT)向量驗(yàn)證的最快仿真器高性能、高容量的集成調(diào)試環(huán)境覆蓋率加速功能,助力更快實(shí)現(xiàn)覆蓋率收斂智能編譯(SmartCompile)和多核
    的頭像 發(fā)表于 11-17 10:39 ?267次閱讀
    【產(chǎn)品<b class='flag-5'>介紹</b>】Questa One Sim軟件

    shell基本介紹常用命令之shell基本介紹

    是“$”,在命令提示符后邊輸入命令即可和系統(tǒng)進(jìn)行交互操作。ubuntu默認(rèn)的Shell是Bash(Bourne Again Shell)。Linux命令有很多,功能比較強(qiáng)大,下節(jié)我們簡(jiǎn)單介紹一些常用的命令。
    發(fā)表于 09-28 09:05

    調(diào)試工具:Eclipse調(diào)試工具欄與窗口的深入分析

    摘要 :在嵌入式系統(tǒng)開發(fā)領(lǐng)域,高效的調(diào)試工具鏈對(duì)于項(xiàng)目的成功實(shí)施具有決定性意義。本文聚焦于 Eclipse 調(diào)試工具欄與窗口的功能特性,深入剖析其在嵌入式開發(fā)調(diào)試過(guò)程中的關(guān)鍵作用。以廈
    的頭像 發(fā)表于 07-07 11:32 ?662次閱讀
    <b class='flag-5'>調(diào)試</b>工具:Eclipse<b class='flag-5'>調(diào)試</b>工具欄與窗口的深入分析

    常用電子元器件介紹

    電子發(fā)燒友網(wǎng)站提供《常用電子元器件介紹.pptx》資料免費(fèi)下載
    發(fā)表于 06-24 16:54 ?42次下載

    遠(yuǎn)程日志errDump調(diào)試功能實(shí)戰(zhàn)教程:案例驅(qū)動(dòng)的故障排查!

    及Air8101開發(fā)板實(shí)操驗(yàn)證。 ? 一、errDump功能介紹 1.1 errDump有什么用? errDump是LuatOS系統(tǒng)中的錯(cuò)誤日志上報(bào)模塊,主要用于遠(yuǎn)程調(diào)試與故障診斷。 其原理是將模塊運(yùn)行過(guò)程中產(chǎn)生的錯(cuò)誤信息或者應(yīng)
    的頭像 發(fā)表于 06-09 16:51 ?552次閱讀
    遠(yuǎn)程日志errDump<b class='flag-5'>調(diào)試</b><b class='flag-5'>功能</b>實(shí)戰(zhàn)教程:案例驅(qū)動(dòng)的故障排查!

    喬鋒機(jī)床常用功能操作說(shuō)明

    電子發(fā)燒友網(wǎng)站提供《喬鋒機(jī)床常用功能操作說(shuō)明.pdf》資料免費(fèi)下載
    發(fā)表于 06-03 17:39 ?1次下載

    恩智浦分享Zephyr調(diào)試技巧

    前面幾期中,我們著重給大家介紹了如何搭建Zephyr開發(fā)環(huán)境,以及如何添加自己的應(yīng)用代碼。今天讓我們開始一個(gè)新的篇章:Zephyr調(diào)試技巧以及介紹Ozone進(jìn)行Zephyr的調(diào)試分享。
    的頭像 發(fā)表于 03-13 09:05 ?1937次閱讀

    前端調(diào)試實(shí)踐

    ,能在不同的前端場(chǎng)景應(yīng)用不同的調(diào)試方式,翻倍提高你解決問(wèn)題的效率 ? ? 1 sources面板概覽 source面板是我們斷點(diǎn)調(diào)試經(jīng)常用的到的地方,我們可以先大概認(rèn)識(shí)一下它長(zhǎng)什么樣子,大概有什么
    的頭像 發(fā)表于 03-11 15:41 ?565次閱讀
    前端<b class='flag-5'>調(diào)試</b>實(shí)踐

    常見網(wǎng)絡(luò)負(fù)載均衡的幾種方式

    常見網(wǎng)絡(luò)負(fù)載均衡的幾種方式包括:DNS負(fù)載均衡、反向代理負(fù)載均衡、IP負(fù)載均衡、應(yīng)用層負(fù)載均衡、鏈路層負(fù)載均衡。以下是小編對(duì)幾種常見的網(wǎng)絡(luò)負(fù)載均衡方式及其詳細(xì)展開介紹
    的頭像 發(fā)表于 03-06 11:14 ?1118次閱讀

    Cadence Verisium Debug:統(tǒng)一調(diào)試平臺(tái),加速SoC設(shè)計(jì)

    調(diào)試,旨在幫助用戶顯著縮短調(diào)試周期。 Verisium Debug不僅提供了常用調(diào)試功能,還引入了高級(jí)特性,以滿足不同設(shè)計(jì)階段的需求。其中
    的頭像 發(fā)表于 02-17 11:10 ?1323次閱讀

    樂(lè)鑫ESP32調(diào)試Wi-Fi常用調(diào)試API

    在使用ESP32調(diào)試Wi-Fi功能時(shí),由于場(chǎng)景和各種因素的影響,難免會(huì)遇到各種連接不上,Wi-Fi斷連等問(wèn)題。下面介紹一些API,方便新手調(diào)試Wi-Fi時(shí)更好的定位并解決問(wèn)題。常見問(wèn)題
    的頭像 發(fā)表于 02-07 18:10 ?4091次閱讀
    樂(lè)鑫ESP32<b class='flag-5'>調(diào)試</b>Wi-Fi<b class='flag-5'>常用</b><b class='flag-5'>調(diào)試</b>API

    洲明科技發(fā)布行業(yè)首個(gè)多功能路燈現(xiàn)場(chǎng)組裝調(diào)試國(guó)際標(biāo)準(zhǔn)

    近日,由洲明科技牽頭主導(dǎo)的行業(yè)首個(gè)多功能路燈現(xiàn)場(chǎng)組裝調(diào)試國(guó)際標(biāo)準(zhǔn)——《多功能路燈功能模塊現(xiàn)場(chǎng)組裝調(diào)試規(guī)范》(ISA-S-0020-2025)
    的頭像 發(fā)表于 01-08 09:49 ?845次閱讀

    嵌入式開發(fā)必備-RK3562演示Linux常用系統(tǒng)查詢命令

    本文介紹Linux系統(tǒng)查看硬件配置及常用調(diào)試命令,方便開發(fā)者快速了解開發(fā)板硬件信息及進(jìn)行相關(guān)調(diào)試
    的頭像 發(fā)表于 01-06 14:13 ?792次閱讀
    嵌入式開發(fā)必備-RK3562演示Linux<b class='flag-5'>常用</b>系統(tǒng)查詢命令

    嵌入式開發(fā)必備-RK3562演示Linux常用系統(tǒng)查詢命令(下)

    本文繼續(xù)介紹Linux系統(tǒng)查看硬件配置及常用調(diào)試命令,方便開發(fā)者快速了解開發(fā)板硬件信息及進(jìn)行相關(guān)調(diào)試。觸覺(jué)智能RK3562開發(fā)板演示
    的頭像 發(fā)表于 01-03 13:54 ?995次閱讀
    嵌入式開發(fā)必備-RK3562演示Linux<b class='flag-5'>常用</b>系統(tǒng)查詢命令(下)

    快速上手RK3588常用接口測(cè)試

    前言:在之前的幾期中,我們?cè)敿?xì)介紹了RK3588開發(fā)板的大部分基礎(chǔ)功能調(diào)試方法,本期是針對(duì)常用通信接口以及IO口的測(cè)試,主要包括的調(diào)試內(nèi)容有
    的頭像 發(fā)表于 12-26 08:33 ?4358次閱讀
    快速上手RK3588<b class='flag-5'>常用</b>接口測(cè)試