专栏首页摸鱼范式【仿真技巧】 0:00 VCS+VERDI+reverse=败者食尘!!

【仿真技巧】 0:00 VCS+VERDI+reverse=败者食尘!!

不想错过我的推送,记得右上角-查看公众号-设为星标,摘下星星送给我

欢迎大家加入2022届数字IC交流群,QQ群号 1060380138

VCS+VERDI+reverse=败者食尘

背景

假设一种场景,在调试环境的时候,运行到15min的时候,环境出现bug,需要去debug。也许错误的第一现场并不是15min的时候,可能在14min30s-15min之间,那么如果正向执行就需要14min30s以上。所以这个时候如果能够直接反向运行到14min30s,就可以节省很多时间。就像jojo的奇妙冒险中吉良吉影的招式,败者食尘一样,逆转时间

编译选项

要实现这个功能,依赖于VCS和VERDI的联合调试,所以在编译的时候需要使用下面的指令

vcs -full64 -sverilog -ntb_opts uvm-1.2 -lca -kdb -debug_access+reverse

除了常规的选项以外,-kdb选项是用于生成kdb数据库,支持verdi的联合调试,而lca是kdb的依赖选项。

最后的-debug_access+reverse则是最关键的开关,需要加上这个选项才是实现反向运行。

编译完成以后,进行仿真的时候,需要使用./simv -verdi,启动仿真。这样就能够直接调用verdi进行联合仿真。

测试代码

本次的测试代码就是简单的4行打印。

module test ();
  import uvm_pkg::*;
  `include "uvm_macros.svh"

  initial begin
    `uvm_info("a","hello uvm!",UVM_NONE)
    `uvm_info("b","hello uvm!",UVM_NONE)
    `uvm_info("c","hello uvm!",UVM_NONE)
    `uvm_info("d","hello uvm!",UVM_NONE)
  end

endmodule

reverse

启动verdi之后,注意图中红色框框中的一排按钮,这就是reverse功能的按钮。从图标形状来开,和联合仿真的正向交互式仿真是一致,功能上他们其实也是对偶的。

reverse按钮

如果你开起了reverse选项,但是仍然没有出现这一排按钮,那么就需要在tools下的perferences中,开启reverse按钮。

perferences

在perferences中的interactive debug下,找到reverse debug

reverse

接下来可以在代码中设置两个断点进行测试。直接单击代码左侧即可甚至断点。和C的单步调试是一样的,直接run就能在断点处停止。

设置断点

我们跑到第九行的断点,可以看到中间在七行停止了一次,最后在第九行停下来,6 7 8行的信息都已经打印出来了。

前向运行

那么如果我们需要回到第七行,就可以直接进行点击下图中的run reverse按钮。

run reverse

然后就能够回到上一个断点处

败者食尘!

当然也可以,点击旁边的next reverse按钮进行反向单步运行

反向单步

就能够从第九行回到第八行

败者食尘!!

其他按钮和这两个类似,但是正向调试的反向版本。

总结,文章开头的视频是实操演示,可以关注一下

本次分享了VCS+VERDI的reverse反向运行功能,可以将整个仿真反向运行,从而减少正向仿真的时间消耗。

当然,这必须在VCS+VERDI的联合调试下才可以,如果是VCS单独仿真,dump波形,再使用VERDI离线调试就不能使用。而联合仿真也会大幅度降低运行速度,所以推荐在早期debug验证环境的时候使用。

END

本文分享自微信公众号 - 摸鱼范式(icparadigm),作者:空白的贝塔

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2021-08-20

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 当我们做后仿时我们究竟在仿些什么(补充)

    自从上次关于后仿的文章发布以后,又陆续收集到了一些关于后仿的其它小技巧。这次整理出来作为前文的补充,希望对大家有所帮助。文中提到的仿真器默认是VCS.

    icsoc
  • 你的case真的pass了吗?

    动态仿真是芯片前端验证最常见的手段,通过给DUT施加激励,然后检查输出结果或者内部行为,确保DUT功能和性能的正确性。

    IC验证
  • 摆脱Vivado单独建仿真环境的终极解决方案

    )中就曾提到,隔行如隔山,做芯片的人永远无法理解只做FPGA样机的人在某些情况下不做仿真就直接上板的做法,非芯片设计出身只做FPGA样机的人也不知道这个世界上还...

    网络交换FPGA
  • IC技术圈期刊 2021年第3期

    IC技术圈期刊内容涵盖FPGA、前端、验证、后端、自动化、模拟、求职、管理等IC技术领域,欢迎阅读,欢迎投稿。

    碎碎思
  • CES2015快报:前所未见的新奇机器人应有尽有

    作为全球最大、影响最为广泛的消费类电子产品展,CES一向是电子行业的风向标,各大厂商都会使尽浑身解数对外展出各种全新的技术和产品,同时也会吸引众多的专业观众前往...

    机器人网
  • Isim你不得不知道的技巧(整理)

    来源:电子产品世界;   注:本文由NingHeChuan本人多出整理所得,原文章图片不清晰,自己整理配图后重新发表   安装好ISE,系统已经自带了ISim仿...

    NingHeChuan
  • 如何从零开始设计一颗芯片?

    在各方助力下,集成电路成了时代热点,有大量文章在写芯片设计之复杂之困难,本文从EDA使用角度捋一遍芯片设计流程。

    老秃胖驴
  • 【技术】通过梯度下降逆向工程获取食品中不同成分的含量

    这是一个外国人突发奇想(xiande danteng),用技术去了解包装食品各种成分含量的记录文章,文末附代码链接。 为了学习新的东西,我产生了一些奇怪的想法并...

    AiTechYun
  • 拔刺 | 智慧城市的标准是什么?

    智慧城市这个词语追根溯源要到2008年了。2008年11月,纽约召开了外国关系理事会,IBM(国际商业机器公司)在会上提出了“智慧的地球” 这一理念后,引起了很...

    镁客网
  • 使用python爬虫分析《我不是药神》豆瓣一千条短评

    Zip
  • 苹果正式推出iOS 12系统;微信扶微视,腾讯:仍有所限制;亚马逊推出Storefronts,针对美国中小企业

    今天苹果正式向用户推送iOS 12正式版系统更新。相比于此前的iOS 11系统,iOS 12对于老款苹果设备非常友好,在速度和流畅性上都有显著的提高,延长了老款...

    齿轮易创说互联网
  • 不会改造房屋?试试智能家居

    导读:当下年轻人越来越追求生活品质的提高,通过对房屋的改造来满足美好生活的向往。如今智能家居市场火热,各类产品也层出不穷。利用智能家居改造房屋成了许多年轻人的...

    钱塘数据
  • 如何使虚拟特技人模仿的动作流畅自然?Berkeley实验室利用RSI结合ET技术另辟蹊径

    AiTechYun 编辑:chux ? 运动控制问题作为强化学习的基准,深度强化学习方法无论对操纵还是运动型任务都十分有效。然而,经过深度强化学习训练的人体模型...

    AiTechYun
  • 中国汽车工业离世界有多远?

    本文谈及的是中国汽车工业的问题,进而扩大至整个基础工业。其实不管对于汽车工业,还是机器人产业,中国工业普遍存在这样的问题,在此将本文与诸君共享,以期为中国机器人...

    机器人网
  • “风味人间”与计算机程序设计艺术《禅与计算机程序设计艺术》 / 陈光剑

    浮华随风去,一菜一江湖。无论置身繁华闹市,还是身居乡野陋巷,世上的滋味,就这样流转于方寸餐桌,交织在冷暖人间。我们说五味杂陈,这五味就是酸、苦、甘、辛、咸。

    一个会写诗的程序员
  • OpenAI机械手单手轻松解魔方,背靠强化学习+新技术ADR

    【导读】10月15日,人工智能研究机构OpenAI发布了一条机械手单手解魔方的视频。这个自学式的类人机器人手臂名为 Dactyl,不仅可以单手解魔方,甚至能在外...

    AI科技大本营
  • 【周末分享】你未必是人好,你只是没机会放荡

    大数据文摘
  • DàYé首席路 | 模仿之道

    笔者曲健,1024生人,天选程序员,浆糊人送外号“大爷Dà Yé”,目前在奥琪科技担任首席架构师一职。

    曲水流觞
  • 验证仿真提速系列--SystemVerilog编码层面提速的若干策略

    随着设计复杂度和规模增加,验证平台复杂度跟着增加。验证平台的仿真速度问题成为验证过程中一个重要问题。

    IC验证

扫码关注云+社区

领取腾讯云代金券