精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

用VCS跑simulation hang住了該怎么辦?

sanyue7758 ? 來源:處芯積律 ? 2023-05-10 09:30 ? 次閱讀

最近遇到一個棘手的問題,用VCS跑simulation hang住了。

遇到此類問題,我第一個想到的是去打印一些log看看,比如設置定時打印,調高UVM打印級別等。我在仿真環境里面設置定時打印log的信息,發現hang住之后不會打印了。由此猜測是環境里面存在0延時的死循環,導致仿真無法繼續推前。

VCS提供了ucli可以進行單步調試,如果遇到0延時的死循環,理論上進行單步調試的時候,會循環的執行某一段代碼。但是考慮到可能涉及到的循環邏輯比較多,單純用手工單步調試會非常困難。如果用腳本自動運行幾千行,然后將單步調試的結果保存在log文件中,將非常有助于分析出死循環的代碼。對于這種想法網友已經用tcl腳本實現。讓我們看看網友怎么用loop detect的方式尋找0延時的死循環。

第一步用vcs -debug_all 編譯文件。

第二步用simv -ucli 執行文件

第三步在ucli界面里面source loop_detect.tcl 這個 tcl文件

Loop_detect.tcl 的文件內容如下

#!/usr/bin/tclsh

proc loop_detect(args) {

set help"-help"

if{[stringequal $args $help] != 1} {

configfollowactivescope on

set i 0;

while {$i< $args} {

run_step

incr i

}

}

else {

puts"Usage: loop_detect "

}

}

proc run_step{} {

redirect -floop.txt -a {set x [step]};

redirect -floop.txt -a {set y [scope]};

puts $x;

puts $y;

}

第四步在ucli 里面用run {time} 執行到hang住的地方,比如simulation 是在1000ns的地方hang住了,可以用run1000ns 執行到此處。

第五步在ucli里面用loop_detect {number of steps} 檢查hang住的原因,比如我用loop_detect 1000 則表示單步執行了1000次,并將每步的結果存在loop.txt 中。然后從loop.txt 中查看是否有0延時的死循環。

我的問題用這種方法尋找到了0延時的死循環邏輯。如果通過上面五步,在loop detect中沒有看到死循環怎么辦,還有其他辦法嗎?這可能需要借助 Verdi和VCS進行聯合仿真了。怎么用Verdi和VCS進行單步調試呢?

第一步用vcs -debug_access+all -kdb -lca進行編譯

第二步用 simv -gui=verdi啟動聯合單步調試

8026c626-ee7a-11ed-90ce-dac502259ad0.png

通過verdi進行單步調試,讓debug變比較容易。

如果通過Verdi和VCS聯合單步調試還沒發現問題呢?各位同行們還有什么手段,歡迎各位留言討論。





審核編輯:劉清

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • TCL
    TCL
    +關注

    關注

    10

    文章

    1715

    瀏覽量

    88480
  • VCS
    VCS
    +關注

    關注

    0

    文章

    78

    瀏覽量

    9590
  • Verdi
    +關注

    關注

    0

    文章

    22

    瀏覽量

    8762
  • GUI
    GUI
    +關注

    關注

    3

    文章

    650

    瀏覽量

    39553

原文標題:當simulation hang住的時候該怎么辦?

文章出處:【微信號:處芯積律,微信公眾號:處芯積律】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    請問protuse8出現“fatal simulation error encounlered”應該怎么辦

    本帖最后由 燚元帥 于 2016-4-21 08:20 編輯 請問protuse8出現“fatal simulation error encounlered”應該怎么辦
    發表于 04-20 22:21

    諾基亞n70白屏怎么辦

    諾基亞n70白屏怎么辦
    發表于 09-01 15:58 ?3541次閱讀
    諾基亞n70白屏<b class='flag-5'>怎么辦</b>

    顯示桌面沒了怎么辦

    顯示桌面沒了怎么辦 我的windows xp的顯示桌面的圖標沒有了怎么辦。下載一個放到系統目
    發表于 01-18 19:00 ?3845次閱讀

    本本發熱導致“發燒” 那怎么辦呢?

    本本發熱導致“發燒” 那怎么辦呢? 焦點:怎樣讓我們可愛的本本保持正常的“體溫”呢?   你是否曾經聽說過,瑞典的
    發表于 01-26 11:40 ?1578次閱讀

    NTDETECT失敗怎么辦

    NTDETECT失敗怎么辦    問:我的電腦有時閃存或光驅拷貝一些文件或安裝程序后,電腦就自動關機了。當再啟動時就進不了系
    發表于 02-25 11:08 ?2001次閱讀

    若忘記了Linux系統的root密碼,怎么辦

    很多朋友經常會忘記Linux系統的root密碼,linux系統忘記root密碼的情況怎么辦呢?
    的頭像 發表于 10-15 16:49 ?1.2w次閱讀

    電池換新無法可依怎么辦

    電池壞了怎么辦?修。修不好怎么辦?換。
    發表于 03-19 11:23 ?1392次閱讀

    日常運營中網站受到安全威脅時怎么辦

    很多站長辛辛苦苦做站,卻因為安全措施不到位導致網站被掛馬,點進去都是灰色鏈接,如果不及時處理,很容易招致搜索引擎懲罰,那么網站被掛馬怎么辦?出現這種棘手的問題怎么處理?
    發表于 11-16 11:17 ?570次閱讀

    linux無法識別U盤怎么辦

    linux無法識別U盤怎么辦
    發表于 05-19 09:08 ?1.7w次閱讀
    linux無法識別U盤<b class='flag-5'>怎么辦</b>

    鍵槽滾鍵了怎么辦

    鍵槽滾鍵了怎么辦
    發表于 03-07 16:37 ?7次下載

    錫漿(錫膏)干了怎么辦什么稀釋?

    隨著焊接與植球技術的不斷成熟,人們開始嘗試獨自購買錫漿進行工作,問題,也隨之而來,錫漿(錫膏)干了怎么辦什么稀釋,大家應該都在嘗試各種辦法去解決,下面錫膏廠家來講解一下:錫漿(錫膏)干了怎么辦
    的頭像 發表于 05-31 15:16 ?5392次閱讀
    錫漿(錫膏)干了<b class='flag-5'>怎么辦</b>?<b class='flag-5'>用</b>什么稀釋?

    電機過熱怎么辦

    電機過熱怎么辦?WAYON維安PPTC有方案
    的頭像 發表于 11-01 15:08 ?686次閱讀
    電機過熱<b class='flag-5'>怎么辦</b>?

    pcb鉆孔偏孔了怎么辦

    pcb鉆孔偏孔了怎么辦
    的頭像 發表于 11-22 11:10 ?3344次閱讀
    pcb鉆孔偏孔了<b class='flag-5'>怎么辦</b>?

    風機軸磨損怎么辦

    電子發燒友網站提供《風機軸磨損怎么辦.docx》資料免費下載
    發表于 01-07 11:04 ?0次下載

    工控主板發生故障怎么辦

    工控主板發生故障怎么辦?前幾天有個客戶問了我這個問題,大部分情況下出現的故障并不可怕,主要是用戶粗心大意造成的。那今天小編就來講解一下工控主板一般會出現故障的主要原因及判斷方法:
    的頭像 發表于 04-11 18:19 ?844次閱讀