在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
123
返回列表 发新帖
楼主: 冰馨若颜

[求助] nc verilog仿真时出现死循环

[复制链接]
发表于 2018-9-2 22:26:30 | 显示全部楼层

标题

回复 20# 冰馨若颜
检查两个地方,pli路径是否设置正确,debug编译选项有没有添加
 楼主| 发表于 2018-9-3 16:52:32 | 显示全部楼层
回复 21# 半机器蔡


  Nc 生成了fsdb 波形 用debussy -f run.f &编译了文件的内容然后打开波形窗口加载波形出来没有值 都是NF  请问这是怎么回事啊
发表于 2018-9-3 18:01:30 | 显示全部楼层
这个问题不是很好解决么?时间没有推进而一直在一个时间槽内步进,NCverilog(IUS)的gui上会显示Time+N step,然后经过很长时间打印出zero loop。这就是产生仿真的“组合逻辑环”,之所以加引号是因为不一定是真的组合逻辑环引起的,可能是你的代码中有些信号没有赋值而导致z态或x态(统称unknown态)引起了逻辑比对错误导致仿真无法继续进行,通常这在系统仿真的冒烟阶段在pll或osc仿真模型中会出现因为输入时unknown态导致仿真挂死。
如果你使用vcs作为仿真工具的话,你可以使用命令行: vcs -debug_all +vcs+loopreport+N xxx,N表示hit到得次数,通常这个N我们要取得稍微大一点,建议取1000000以上,取小了会把正常的hit误报。这样由于在一个时间槽内步进,会很快达到预设的N值,这时仿真会自动停止,并输出两个log文件,阅读这两个log文件,可以很方便的找出出问题的大概位置,稍加分析就能找到问题所在。
当然一般我们也不怀疑是RTL引起的zero loop,因为设计的代码交付的出口条件就是经过了代码质量检查,nlint也好,dc预综合也罢都可以。
发表于 2018-9-3 18:07:30 | 显示全部楼层




   加载了fsdb波形文件但是显示NF,那么你首先检查一下fsdb文件的大小,如果文件太小那么两种可能:其一,dump波形不成功,某些情况下vcs或ius调用verdi/debussy的pli创建波形文件失败只在初始化过程中创建了一个波形信号的符号表,而没有记录实时波形数据,通常这个时候我们把编译的中间文件simv*, csrc或者INCA_libs clean掉,重新编译仿真就解决掉了;其二,在仿真时刻0或者某个时刻遇到了zero loop,仿真时间不会步进,当然不会记录波形数据到fsdb文件中。
发表于 2018-9-4 01:24:06 | 显示全部楼层
interesting
 楼主| 发表于 2018-9-4 14:39:08 | 显示全部楼层
回复 24# saipolo


谢谢大神指点。
 楼主| 发表于 2018-9-4 14:41:07 | 显示全部楼层
回复 23# saipolo


    我现在用不了vcs。用nc 的单步调试一下 可是出来结果我有点懵 8BB58D38-0229-4032-8A7B-89DE9D5A2302.jpeg
不太明白 我这几个文件没有构成环路  不知怎么搞
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条

×

小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-12-23 22:06 , Processed in 0.020642 second(s), 7 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表