本文主要分析总结芯片验证过程中遇到的仿真器挂死(就是通常所说的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(仿真挂起);
这也可以展开成一个专题了,在这里就不展开了。
二、上面说的如此抽象,有装逼的嫌疑,那到底该如何实现呢?别急后续结合具体的小例子慢慢展开,保证有图有真相,敬请期待……
台积电7nm订单侧面解读 带领大陆半导体行业发展
华为P10“闪存门”被三星神补刀 华为且行且珍惜
最先进的光刻机多少nm 中国现在能做几nm芯片
猪瘟检测仪多少钱?厂家采购更便宜!
电子产品的抗干扰和电磁兼容性设计
芯片验证过程中遇到的仿真器挂死的情形
日本成功研发首颗自研5nm芯片
友达光电成功将Micro LED导入车载市场
手机基带电路设计20问(1)
亚马逊发布第三代神龙云服务器,并建立超级数据中心
制止大数据“杀熟”,是一件很必要的举措
情人节小米新闻直播:小米6,红米NOTE4X,小米直供
语音模块让化妆镜灯智能化升级
高性价比方案 红外温度传感器MLX90640的优势
飞兆为智能手机设计出了USB开关FSA2000可延长电池使用寿命
韩国CONTROLWORKS发布了首个基于5G移动通信的L4级自动代客泊车方案
“2019上海·国际区块链赋能传统产业峰会”在上海展览中心举行
戴尔XPS 13 9300笔记本评测,CPU性能“令人失望”
“智造”新征程 | 金升阳蝉联年度运动控制优秀器件奖
虚拟私有云如何替代原有计算方案