在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

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

UVM環(huán)境的看門(mén)狗沒(méi)看住超時(shí)是怎么回事?

jf_GctfwYN7 ? 來(lái)源:IC修真院 ? 2023-12-05 10:15 ? 次閱讀

uvm驗(yàn)證環(huán)境里一般通過(guò)objection機(jī)制來(lái)控制仿真的結(jié)束,不過(guò)在機(jī)制之外,有時(shí)還需要通過(guò)看門(mén)狗來(lái)watchdog避免仿真環(huán)境掛死,watchdog配合objection一起來(lái)控制仿真的進(jìn)行與結(jié)束。我一直自詡為對(duì)環(huán)境watchdog這件事?tīng)€熟于心了,不過(guò)沒(méi)想到這天還是被傷害到了。

事故背景

一個(gè)中規(guī)中矩的watchdog是怎么組織的呢?要明確一下watchdog發(fā)揮的作用,就是在objection的基礎(chǔ)上進(jìn)行補(bǔ)充,在環(huán)境長(zhǎng)時(shí)間沒(méi)有動(dòng)靜的情況下能夠使環(huán)境報(bào)錯(cuò)推出并打印此時(shí)阻止仿真結(jié)束的罪魁禍?zhǔn)住?/p>

基于這個(gè)認(rèn)識(shí),watchdog應(yīng)該是base_test的run_phase()中進(jìn)行調(diào)用,這樣既從時(shí)間全程參與又從空間上統(tǒng)攬全局。當(dāng)然了,因?yàn)榄h(huán)境的主要行為集中在main_phase()中,所以把watchdog放在main_phase()中我覺(jué)得也是可以的。

task base_test::run_phase(uvm_phase phase): super.run_phase(phase); phase.raise_objection(this); this.watchdog(phase); phase.drop_objection(this); endtask: run_phasewatchdog上下的objection還是很有必要的,畢竟你要保證watchdog無(wú)論在哪里調(diào)用都可以執(zhí)行起來(lái),別這個(gè)phase沒(méi)有objection就直接略過(guò)了。watchdog內(nèi)部邏輯就是幾個(gè)并行的線程,簡(jiǎn)單來(lái)說(shuō)可以這樣寫(xiě):

task base_test::watchdog(uvm_phase phase): #1000; if(this.cfg.watchdog_en == 0) return; while(1)begin bit vr_reached; fork: timeout begin //normal finish phase.phase_done.wait_for_total_count(null, 1); vr_reached = 1; end begin //timeout #this.cfg.watchdog_th; `uvm_fatal(“watchdog”, $psprintf(“watchdog timeout(%s_phase):: %s”, phase.get_name(), phase.phase_done.convert2string())) end #100 @prj_scoreboard::feed_watchdog; #100 @harness.dut.hand_en; #100 wait(this.env.num != 0); join_any disable timeout; #10; if(vr_reached && phase.phase_done.get_objection_tatal == 1)begin `uvm_info(“watchdog”, $psprintf(“watchdog timeout(%s_phase) normal reached”, phase.get_name()), UVM_LOW) break; end end `uvm_note(“watchdog”, “watchdog Finished!”, UVM_LOW) endtask代碼的主體就是一個(gè)大的while(1)循環(huán),循環(huán)內(nèi)以fork - join_any的形式起多個(gè)喂狗線程,根據(jù)fork - join_any的機(jī)制,只要任何一個(gè)線程完成了都會(huì)觸發(fā)喂狗機(jī)制。

線程1:正常結(jié)束的線程,因?yàn)楸旧韜atchdog占著一個(gè)raise_objection,所以只要等待wait_for_total_count(null, 1)就可以了,為1說(shuō)明其他的objection都已經(jīng)drop了,那么就可以正常結(jié)束程序,和uvm本身的objection機(jī)制完全一樣;

線程2:超時(shí)線程,如果很長(zhǎng)的時(shí)間里都沒(méi)有喂狗,那么報(bào)fatal推出仿真。注意這里必須是fatal使方正立即結(jié)束,報(bào)error的話環(huán)境還是會(huì)掛死狀態(tài);

線程3:所有的scoreboard都可以喂狗,因?yàn)閟cb里比對(duì)的一方是可以信任的環(huán)境預(yù)期,如果比對(duì)還在進(jìn)行那么就說(shuō)明仿真不應(yīng)該結(jié)束;

線程N(yùn):可以喂狗的其他線程,使用rtl線程需要萬(wàn)分謹(jǐn)慎,很有可能rtl里做錯(cuò)了一致重復(fù)出數(shù)據(jù)導(dǎo)致仿真無(wú)法結(jié)束;

當(dāng)喂狗一次后,就可以殺掉timeout這個(gè)線程了,然后根據(jù)情況看看是否重新回到看門(mén)狗循環(huán)中。

事故現(xiàn)場(chǎng)

看門(mén)狗的核心起始就是,確定仿真在“動(dòng)”,能動(dòng)就是還活著不能結(jié)束仿真,所以在fork-join_any里除了超時(shí)線程以外,其他的都是證明系統(tǒng)還活著的“喂狗”線程。這些線程里如果使用rtl的信號(hào)作為系統(tǒng)還活著的參照,一定要萬(wàn)分的小心,萬(wàn)分的小心,萬(wàn)分的小心。第一點(diǎn)小心是該停止但是停不下來(lái),取材自上個(gè)月的bug。

場(chǎng)景很簡(jiǎn)單,#100 @harness.dut.hand_en這個(gè)線程里hand_en做錯(cuò)了,進(jìn)入了無(wú)限發(fā)包無(wú)限握手的死循環(huán),帶著環(huán)境也一直停不下來(lái)看門(mén)狗直接失效了。第二點(diǎn)小心是該仿真但是挺下來(lái)了,這個(gè)事我以前就沒(méi)想過(guò)能出現(xiàn)。

事故現(xiàn)場(chǎng)是這樣的還是#100 @harness.dut.hand_en這個(gè)線程(就是這么頭鐵,出過(guò)錯(cuò)了還繼續(xù)用),這次確實(shí)是RTL正常的發(fā)包握手,但是,性能模式下外部沒(méi)有反壓拍拍握手成功,hand_en起來(lái)之后就沒(méi)見(jiàn)到下降沿!這就導(dǎo)致了什么問(wèn)題呢,導(dǎo)致@harness.dut.hand_en線程根本就觸發(fā)不了!這就涉及到@和wait的區(qū)別了,@捕捉的是event trigger是信號(hào)的跳變,harness.dut.hand_en恒1不跳導(dǎo)致看門(mén)狗直接超時(shí)了。簡(jiǎn)直目瞪口呆,只要每天比別人多碰到3個(gè)bug,兩年能積累別人五年經(jīng)驗(yàn)。

事故解決我把@harness.dut.hand_en改成wait harness.dut.hand_en了

審核編輯:黃飛

聲明:本文內(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)投訴
  • 看門(mén)狗
    +關(guān)注

    關(guān)注

    10

    文章

    580

    瀏覽量

    71608
  • UVM
    UVM
    +關(guān)注

    關(guān)注

    0

    文章

    182

    瀏覽量

    19448
  • 線程
    +關(guān)注

    關(guān)注

    0

    文章

    507

    瀏覽量

    20102

原文標(biāo)題:犄角旮旯的bug:UVM環(huán)境的看門(mén)狗怎么沒(méi)看住超時(shí)了?

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

收藏 人收藏

    評(píng)論

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

    獨(dú)立看門(mén)狗(IWDG)的基礎(chǔ)知識(shí)

      STM32F10xxx系列內(nèi)置兩個(gè)看門(mén)狗(獨(dú)立看門(mén)狗和窗口看門(mén)狗),提供了更高的安全性、時(shí)間的精確性和使用的靈活性。兩個(gè)看門(mén)狗設(shè)備(獨(dú)立看門(mén)狗
    發(fā)表于 10-19 17:10 ?4646次閱讀
    獨(dú)立<b class='flag-5'>看門(mén)狗</b>(IWDG)的基礎(chǔ)知識(shí)

    STM32中的獨(dú)立看門(mén)狗和窗口看門(mén)狗是什么

    在早期的MCU中是沒(méi)有看門(mén)狗這種東西的,所以產(chǎn)品就很容易出現(xiàn)死機(jī),跑飛的情況。為了避免這種情況的出現(xiàn),后期的MCU都集成了看門(mén)狗的功能。但是目前看門(mén)狗發(fā)展到今天基本上分為兩大類(lèi):獨(dú)立看門(mén)狗
    的頭像 發(fā)表于 02-20 17:47 ?3326次閱讀
    STM32中的獨(dú)立<b class='flag-5'>看門(mén)狗</b>和窗口<b class='flag-5'>看門(mén)狗</b>是什么

    UVM環(huán)境看門(mén)狗怎么沒(méi)看住超時(shí)了?

    uvm驗(yàn)證環(huán)境里一般通過(guò)objection機(jī)制來(lái)控制仿真的結(jié)束,不過(guò)在機(jī)制之外,有時(shí)還需要通過(guò)看門(mén)狗來(lái)watchdog避免仿真環(huán)境掛死,watchdog配合objection一起來(lái)控制
    的頭像 發(fā)表于 12-04 11:42 ?1476次閱讀

    啥叫看門(mén)狗?如何合理的使用看門(mén)狗

    啥叫看門(mén)狗看門(mén)狗的工作原理是什么?看門(mén)狗看住哪些錯(cuò)誤呢?看門(mén)狗叫后該咋整?具體咋喂看門(mén)狗呢?
    發(fā)表于 07-07 07:01

    STM32芯片的模擬看門(mén)狗怎么回事

    什么是看門(mén)狗?STM32芯片的模擬看門(mén)狗怎么回事呢?與獨(dú)立看門(mén)狗有關(guān)系嗎?它是怎么工作的?
    發(fā)表于 09-18 08:41

    stm32看門(mén)狗時(shí)間計(jì)算 獨(dú)立看門(mén)狗和窗口看門(mén)狗的特性是什么

    本文為您講解STM看門(mén)狗時(shí)間計(jì)算(時(shí)限)與頻率計(jì)算,獨(dú)立看門(mén)狗和窗口看門(mén)狗的特性、區(qū)別與聯(lián)系。
    發(fā)表于 10-10 10:41 ?8972次閱讀

    看門(mén)狗定時(shí)器的作用

    看門(mén)狗復(fù)位,重新開(kāi)始倒計(jì)數(shù)。如果看門(mén)狗減到0就認(rèn)為程序沒(méi)有正常工作,強(qiáng)制整個(gè)系統(tǒng)復(fù)位。 看門(mén)狗定時(shí)器的操作過(guò)程 使用時(shí),WDT將遞增,直到溢出,或稱(chēng)超時(shí)。除非處于休眠或空閑模式,WD
    發(fā)表于 10-20 14:41 ?6916次閱讀

    什么是stm32看門(mén)狗?獨(dú)立看門(mén)狗和窗口看門(mén)狗工作原理解析

    stm32有兩個(gè)看門(mén)狗,獨(dú)立看門(mén)狗和窗口看門(mén)狗,其實(shí)兩者的功能是類(lèi)似的,只是喂狗的限制時(shí)間不同。 獨(dú)立看門(mén)狗
    的頭像 發(fā)表于 11-06 11:48 ?2.8w次閱讀
    什么是stm32<b class='flag-5'>看門(mén)狗</b>?獨(dú)立<b class='flag-5'>看門(mén)狗</b>和窗口<b class='flag-5'>看門(mén)狗</b>工作原理解析

    STM32看門(mén)狗配置(獨(dú)立看門(mén)狗IWDG和窗口看門(mén)狗WWDG)

    stm32自帶兩個(gè)看門(mén)狗模塊,獨(dú)立看門(mén)狗IWDG和窗口看門(mén)狗WWDG。看門(mén)狗主要作用是可用來(lái)檢測(cè)和解決由軟件錯(cuò)誤引起的故障;當(dāng)計(jì)數(shù)器達(dá)到給定的超時(shí)
    發(fā)表于 11-09 17:17 ?8577次閱讀
    STM32<b class='flag-5'>看門(mén)狗</b>配置(獨(dú)立<b class='flag-5'>看門(mén)狗</b>IWDG和窗口<b class='flag-5'>看門(mén)狗</b>WWDG)

    stm32看門(mén)狗復(fù)位技巧編輯

    本文主要介紹了stm32看門(mén)狗復(fù)位技巧,包括三個(gè)方面:判斷是否需要使用、保證看門(mén)狗工作正常、保證看門(mén)狗復(fù)位時(shí)不會(huì)引起系統(tǒng)異常。stm32自帶兩個(gè)看門(mén)狗模塊:獨(dú)立
    發(fā)表于 01-14 15:51 ?1.6w次閱讀
    stm32<b class='flag-5'>看門(mén)狗</b>復(fù)位技巧編輯

    STM32:獨(dú)立看門(mén)狗、窗口看門(mén)狗的配置

    STM32單片機(jī)的看門(mén)狗有獨(dú)立看門(mén)狗和窗口看門(mén)狗之分,這兩者的工作原理卻完全不同。
    發(fā)表于 02-08 16:15 ?18次下載
    STM32:獨(dú)立<b class='flag-5'>看門(mén)狗</b>、窗口<b class='flag-5'>看門(mén)狗</b>的配置

    STM32中的獨(dú)立看門(mén)狗和窗口看門(mén)狗

    一、前言 在早期的MCU中是沒(méi)有看門(mén)狗這種東西的,所以產(chǎn)品就很容易出現(xiàn)死機(jī),跑飛的情況。為了避免這種情況的出現(xiàn),后期的MCU都集成了看門(mén)狗的功能。但是目前看門(mén)狗發(fā)展到今天基本上分為兩大類(lèi):獨(dú)立
    的頭像 發(fā)表于 12-22 16:58 ?2505次閱讀

    STM32中的獨(dú)立看門(mén)狗和窗口看門(mén)狗

    在早期的MCU中是沒(méi)有看門(mén)狗這種東西的,所以產(chǎn)品就很容易出現(xiàn)死機(jī),跑飛的情況。為了避免這種情況的出現(xiàn),后期的MCU都集成了看門(mén)狗的功能。但是目前看門(mén)狗發(fā)展到今天基本上分為兩大類(lèi):獨(dú)立看門(mén)狗
    的頭像 發(fā)表于 01-30 14:38 ?1657次閱讀
    STM32中的獨(dú)立<b class='flag-5'>看門(mén)狗</b>和窗口<b class='flag-5'>看門(mén)狗</b>

    窗口看門(mén)狗增強(qiáng)了μP監(jiān)控器

    看門(mén)狗定時(shí)器提高了基于微處理器的系統(tǒng)的可靠性。引腳可選的看門(mén)狗定時(shí)器允許看門(mén)狗超時(shí)周期可調(diào),從而提供更大的靈活性,以滿足不同的處理器時(shí)序要求。窗口
    的頭像 發(fā)表于 05-08 11:23 ?1480次閱讀
    窗口<b class='flag-5'>看門(mén)狗</b>增強(qiáng)了μP監(jiān)控器

    TPS3435 納米靜態(tài)電流精密超時(shí)看門(mén)狗定時(shí)器數(shù)據(jù)手冊(cè)

    TPS3435 是一款超低功耗 (典型值為 250nA) 器件,提供可編程超時(shí)看門(mén)狗定時(shí)器。 TPS3435 提供高精度超時(shí)看門(mén)狗定時(shí)器,具有適用于各種應(yīng)用的一系列功能。
    的頭像 發(fā)表于 04-09 15:49 ?300次閱讀
    TPS3435 納米靜態(tài)電流精密<b class='flag-5'>超時(shí)</b><b class='flag-5'>看門(mén)狗</b>定時(shí)器數(shù)據(jù)手冊(cè)
    主站蜘蛛池模板: 亚洲一区二区色 | 美女免费视频色在线观看 | 天天爽夜夜爽8888视频精品 | 国产精品色婷婷在线观看 | 免费人成网ww44kk44 | 亚洲欧美国产高清va在线播放 | 国产精品偷伦费观看 | 亚洲男人的天堂成人 | 亚洲黄页网站 | 国产永久免费爽视频在线 | 香港经典a毛片免费观看爽爽影院 | 久久国产香蕉视频 | 中文字幕一二三四区 | 大又大粗又爽又黄少妇毛片 | 亚洲伦理中文字幕一区 | 欧美视频精品一区二区三区 | 国产大乳孕妇喷奶水在线观看 | 亚洲热热久久九九精品 | a免费网站 | 亚洲理论片 | 亚洲性一区| 美女 免费 视频 黄的 | 国产精品国产三级国产在线观看 | 尤物蜜芽福利国产污在线观看 | 99久久免费中文字幕精品 | 久久精品30 | 国产做a爰片久久毛片a | 爽好舒服快给老师 | 久草一本| 四虎影院免费在线播放 | 丁香婷婷激情五月 | 天天艹| 亚洲黄色三级 | 婷婷六月久久综合丁香一二 | 国产最好的精华液网站 | 啪啪黄色| 国产综合在线视频 | 伊人久久大香线蕉电影院 | 美脚连裤袜老师正在播放 | 色狠狠色综合吹潮 | 亚洲 欧美 丝袜 制服 在线 |