0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

芯片验证过程中遇到的仿真器挂死的情形

路科验证 来源:路科验证 作者:路科验证 2022-06-02 14:39 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

本文主要分析总结芯片验证过程中遇到的仿真器挂死(就是通常所说的hang)的情形。给出的解决方案都是基于Cadence仿真工具incisive(当然利用xcelium也是没有问题的)和debug工具simvision(当然利用更强大的indago也是没问题的),需要指出来的一点是如果利用xcelium和indago联合调试,需要注意版本兼容问题,利用simvision来debug就不存在这个问题,因为simvision是位于incisive或xcelium的安装目录下的,并不需要单独的license。由于这类问题比较普遍,而且scenario也比较复杂,所以我打算把它做成一个系列。今天是开篇,先列出所有的场景和类型,后续有对应的具体的解决方案。

一、仿真器卡在无限循环或者hang住的场景有很多,原因也各不相同。但大致可以分为如下几类:

1.1:rtl/netlist(网表)无限循环;

1.1.1signal glitches(信号毛刺)

使用irun/xrun的-delay_trigger这个option可以过滤掉毛刺,能够使得仿真进行下去。

1.1.2无限deltacycles

当仿真时间不能往前推进,但是delta cycle无限增加的情形下。可以在仿真开始时,使用如下tcl命令,可以使得delta cycle增加到一定数量后,让仿真自动停下来(注意这时候仿真并未中断,这时候可以继续操作仿真器)。它跟gateloopwarn这个option有点类似。

stop -delta 5000 -timestep -delbreak 1

一旦仿真停下来,我们就可以使用以下tcl命令debug该循环了:

>run -step//单步调试,注意这有一个前提就是要确保-linedebug这个option是事先打开的

>drivers -active //对应跨越verilog和VHDL边界的网络就该使用drivers -effective命令

1.1.3zero-delay gate level无限循环

如果是gate level的仿真,注意要用-gateloopwarn这个option,其他参考1.1.2的做法

1.1.4错误的使用timescale/time-precision

可以使用

>xrun -timescale 1ns/1ps -override_timescale//在elaborate阶段使用即可

1.1.5设计中有组合逻辑环

可以使用toggle coverage来检测是否有组合逻辑环。当然也可以用HAL, 还可以用profiler,甚至还可以用高大上的JasperGold,工具如此之多,是不是有点懵逼,哈哈

1.2与仿真器(incisive)接口的C/C++代码内部的无限循环,比如PLI/VPI/DPI等;

这个足够展开成一个专题了,这里就不展开了。

1.3仿真环境中的复杂随机约束导致的仿真器挂死(hang)

简单来讲就是启用仿真器的心跳功能,

如果使用命令行启用是这样的

>xrun -xceligen heartbeat

如果通过Tcl命令启用是这样的:

xcelium>xceligen -heartbeat

如果通过环境变量启用是这样的

Setenv XCELIGEN_HEARTBEAT=[value]

BTW,如果想看求解器是如何迭代或被stuck的,可以使用-utrace这个选项。

1.4for循环的最大值不确定导致的无限循环

类似这种:for(int i=0; i!=var;i++) //如果var是X的话for循环就会进入死循环(循环终止条件不确定)

1.5low power仿真中的hang(仿真挂起);

这也可以展开成一个专题了,在这里就不展开了。

二、上面说的如此抽象,有装逼的嫌疑,那到底该如何实现呢?别急后续结合具体的小例子慢慢展开,保证有图有真相,敬请期待……

审核编辑 :李倩

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 芯片
    +关注

    关注

    463

    文章

    54413

    浏览量

    469199
  • 仿真器
    +关注

    关注

    14

    文章

    1052

    浏览量

    88186

原文标题:如何debug设计中的无限循环(仿真器hang)系列(1)开篇

文章出处:【微信号:Rocker-IC,微信公众号:路科验证】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    RENESAS E1/E20 仿真器使用指南

    MCU 支持 R8C 家族的 R8C/3x 系列和 R8C/Lx 系列。 仿真器规格 文档虽未详细给出具体的规格参数,但明确了其适
    的头像 发表于 04-22 17:00 280次阅读

    Renesas H8S、H8SX 家族 E10A - USB 仿真器使用指南

    Renesas H8S、H8SX 家族 E10A - USB 仿真器使用指南 在电子设计领域,仿真器是开发过程中不可或缺的工具。Renesas 的 H8S、H8SX 家族 E10A - USB
    的头像 发表于 04-13 15:40 250次阅读

    Renesas E1/E20 仿真器:全面解析与使用指南

    Renesas E1/E20 仿真器:全面解析与使用指南 在嵌入式开发领域,仿真器是调试和开发过程中不可或缺的工具。Renesas E1/E20 仿真器以其强大的功能和广泛的适用性,成
    的头像 发表于 04-13 14:40 161次阅读

    Renesas E1/E20 仿真器使用指南:从入门到精通

    和广泛的适用性,成为了众多电子工程师的首选。今天,我们就来深入探讨一下这款仿真器的使用方法、调试功能以及使用过程中的注意事项。 文件下载: R5F104LLAFB#30.pdf 一、E1/E20
    的头像 发表于 03-15 17:20 1041次阅读

    Renesas E1/E20 仿真器:设计与调试的全方位指南

    Renesas E1/E20 仿真器:设计与调试的全方位指南 在电子设计领域,仿真器是调试和验证微控制(MCU)程序不可或缺的工具。Renesas 的 E1/E20
    的头像 发表于 02-28 15:45 306次阅读

    Renesas E1/E20仿真器:全面解析与应用指南

    Renesas E1/E20 仿真器:全面解析与应用指南 引言 在嵌入式系统开发领域,仿真器是不可或缺的工具之一。Renesas的E1/E20仿真器凭借其强大的功能和广泛的适用性,在开发过程中
    的头像 发表于 02-28 11:30 674次阅读

    瑞萨E1/E20仿真器:设计、调试与使用全解析

    瑞萨E1/E20仿真器:设计、调试与使用全解析 在嵌入式系统开发仿真器是不可或缺的工具,它能帮助工程师高效地进行硬件调试和程序开发。瑞萨的E1/E20仿真器就是这样一款强大的工具,
    的头像 发表于 02-11 17:05 854次阅读

    Renesas E1/E20 仿真器:设计与调试全解析

    Renesas E1/E20 仿真器:设计与调试全解析 在嵌入式系统开发的广阔领域中,仿真器扮演着至关重要的角色,它是工程师们调试和优化代码的得力助手。Renesas E1/E20 仿真器作为一款
    的头像 发表于 02-09 10:30 748次阅读

    CW32仿真器是什么?

    CW32仿真器是什么
    发表于 01-05 08:04

    请问JTAG仿真器可以通过串口给芯片下载程序吗?

    JTAG仿真器可以通过串口给芯片下载程序吗?如果可以是必须要特定的UART口还是任何的UART口都可以? 另外JTAG仿真器能不能通过串口对芯片进行
    发表于 11-24 07:07

    程序加载过程中遇到的问题及其解决方法

    。重新启动Nuclei Studio,该问题解决。 (2)遇到的问题2:下载程序显示未连接到开发板,报错界面如下图所示。 解决方法:在配套文档,只要求安装
    发表于 10-30 07:59

    芯片研发过程中的两种流片方式

    芯片在研发过程中一般包含4个阶段:芯片设计、生产样片、测试验证和大规模量产。在完成芯片设计后,工程师们需要先拿到一些
    的头像 发表于 09-09 15:04 2507次阅读
    <b class='flag-5'>芯片</b>研发<b class='flag-5'>过程中</b>的两种流片方式

    静力水准仪在测量过程中遇到误差如何处理?

    静力水准仪在测量过程中遇到误差如何处理?静力水准仪在工程沉降监测中出现数据偏差时,需采取系统性处理措施。根据实际工况,误差主要源于环境干扰、设备状态、安装缺陷及操作不当四类因素,需针对性解决。静力
    的头像 发表于 08-14 13:01 1049次阅读
    静力水准仪在测量<b class='flag-5'>过程中</b><b class='flag-5'>遇到</b>误差如何处理?

    固定式测斜仪在测量过程中遇到误差如何处理?

    在岩土工程与结构物安全监测,固定式测斜仪是捕捉位移变化的核心设备。然而,实际应用可能因环境、操作或设备因素导致测量误差。很多人想要了解固定式测斜仪在测量过程中遇到误差如何处理?下面
    的头像 发表于 06-13 12:10 775次阅读
    固定式测斜仪在测量<b class='flag-5'>过程中</b><b class='flag-5'>遇到</b>误差如何处理?

    FMD仿真器烧录说明

    FMD仿真器烧录,离线烧录说明
    发表于 04-30 17:27 2次下载