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

    文章

    1710

    浏览量

    88389
  • VCS
    VCS
    +关注

    关注

    0

    文章

    78

    浏览量

    9572
  • Verdi
    +关注

    关注

    0

    文章

    22

    浏览量

    8754
  • GUI
    GUI
    +关注

    关注

    3

    文章

    634

    浏览量

    39463

原文标题:当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 3524次阅读
    诺基亚n70白屏<b class='flag-5'>怎么办</b>

    显示桌面没了怎么办

    显示桌面没了怎么办 我的windows xp的显示桌面的图标没有了怎么办。下载一个放到系统目
    发表于 01-18 19:00 3835次阅读

    本本发热导致“发烧” 那怎么办呢?

    本本发热导致“发烧” 那怎么办呢? 焦点:怎样让我们可爱的本本保持正常的“体温”呢?   你是否曾经听说过,瑞典的
    发表于 01-26 11:40 1564次阅读

    NTDETECT失败怎么办

    NTDETECT失败怎么办    问:我的电脑有时闪存或光驱拷贝一些文件或安装程序后,电脑就自动关机了。当再启动时就进不了系
    发表于 02-25 11:08 1998次阅读

    若忘记了Linux系统的root密码,怎么办

    很多朋友经常会忘记Linux系统的root密码,linux系统忘记root密码的情况怎么办呢?
    的头像 发表于 10-15 16:49 1.2w次阅读

    电池换新无法可依怎么办

    电池坏了怎么办?修。修不好怎么办?换。
    发表于 03-19 11:23 1376次阅读

    日常运营中网站受到安全威胁时怎么办

    很多站长辛辛苦苦做站,却因为安全措施不到位导致网站被挂马,点进去都是灰色链接,如果不及时处理,很容易招致搜索引擎惩罚,那么网站被挂马怎么办?出现这种棘手的问题怎么处理?
    发表于 11-16 11:17 551次阅读

    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 5145次阅读
    锡浆(锡膏)干了<b class='flag-5'>怎么办</b>?<b class='flag-5'>用</b>什么稀释?

    电机过热怎么办

    电机过热怎么办?WAYON维安PPTC有方案
    的头像 发表于 11-01 15:08 653次阅读
    电机过热<b class='flag-5'>怎么办</b>?

    pcb钻孔偏孔了怎么办

    pcb钻孔偏孔了怎么办
    的头像 发表于 11-22 11:10 3105次阅读
    pcb钻孔偏孔了<b class='flag-5'>怎么办</b>?

    风机轴磨损怎么办

    电子发烧友网站提供《风机轴磨损怎么办.docx》资料免费下载
    发表于 01-07 11:04 0次下载

    工控主板发生故障怎么办

    工控主板发生故障怎么办?前几天有个客户问了我这个问题,大部分情况下出现的故障并不可怕,主要是用户粗心大意造成的。那今天小编就来讲解一下工控主板一般会出现故障的主要原因及判断方法:
    的头像 发表于 04-11 18:19 799次阅读