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(仿真挂起);

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

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

审核编辑 :李倩

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

    关注

    462

    文章

    53569

    浏览量

    459382
  • 仿真器
    +关注

    关注

    14

    文章

    1048

    浏览量

    86778

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

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

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

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

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

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

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

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

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

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

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

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

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

    FMD仿真器烧录说明

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

    概伦电子电路类型驱动SPICE仿真器NanoSpice X介绍

    NanoSpice X是概伦电子推出的高精度、大容量并行SPICE仿真器,旨在解决电路仿真中的最具挑战性任务。相较于上一代NanoSpice仿真器,NanoSpice X将平均仿真速度
    的头像 发表于 04-23 15:30 990次阅读
    概伦电子电路类型驱动SPICE<b class='flag-5'>仿真器</b>NanoSpice X介绍

    概伦电子千兆级高精度电路仿真器NanoSpice Giga介绍

    。NanoSpiceGiga采用TrueSPICE精度级仿真引擎确保了先进工艺节点下芯片设计功耗、漏电、时序、噪声等的精度要求,并通过先进的并行仿真技术在不降低
    的头像 发表于 04-23 15:21 886次阅读
    概伦电子千兆级高精度电路<b class='flag-5'>仿真器</b>NanoSpice Giga介绍

    概伦电子先进数字仿真器VeriSim介绍

    VeriSim是一款先进的逻辑仿真器,提供全面的数字设计验证解决方案,特别适用于大型SoC设计。它配备高性能的仿真引擎和约束求解,旨在提高编译时效率,并确保设计的正确性和稳定性。
    的头像 发表于 04-22 10:19 1037次阅读

    使用AD2428时,通过主节点发现从节点的过程中遇到的问题求解

    在使用AD2428时,通过主节点发现从节点的过程中遇到以下问题: 按照手册中将0x9寄存配置成0x1,读回0x17寄存的值为0x29,且主节点未发现从节点。 但是当在此基础上,将
    发表于 04-15 07:14

    西门子EDA助力提升IC设计验证效率

    本文将简要概述使用 S-Edit 原理图输入环境的前端流程,然后更详细地描述 Analog FastSPICE (AFS) 平台仿真器以及使用该仿真器进行基本放大器设计验证的步骤。
    的头像 发表于 03-10 14:35 1683次阅读
    西门子EDA助力提升IC设计<b class='flag-5'>验证</b>效率

    使用TDA4仿真器遇到的几个疑问求解

    我现在在做TDA4的调研。使用TDA4的仿真器ti_cnnperfsim.exe来测试特定layer的正确性和Ti Cycle. 使用仿真器的时候遇到一些困惑的地方。 1. 我没有
    发表于 03-03 06:35

    使用DAC1282过程中遇到的参考电压问题求解

    在使用DAC1282过程中,VREF=+2.5V, AVSS=-2.5V,AVDD=+2.5V,在sine模式下,设置寄存0x0与0x1之分别为0x40和0x0;输出正弦波峰峰值为2.5V。 请问这个对吗?按照说明书上说峰峰值应该是5V才对,有谁知道这是为什么
    发表于 01-13 08:14

    如何在播放视频过程中插入音频

    ZDP14x0是一款基于开源GUI引擎的图像显示专用驱动芯片,可以通过串口或者SPI与其他芯片通信,且能播放视频。本文将介绍如何在播放视频过程中插入音频。
    的头像 发表于 12-26 11:13 1963次阅读
    如何在播放视频<b class='flag-5'>过程中</b>插入音频

    使用ADS1211U的过程中,采样值输出一直为0XFFFFFF,为什么?

    最近在使用ADS1211U的过程中遇到些问题,一个问题是采样值输出一直为0XFFFFFF,有时候跟换一块芯片就会好,有时候是一直是0;还有就是在CPU程序仿真
    发表于 12-25 06:22