- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
IC 验证之怎样通过波形来发现和定位 Bug
根据海思验证大牛一文《总结我的思路,如何在验证中发现和定位 Bug》整理而得。
很多新晋的验证人员抱怨,这么多信号,这么复杂的连接关系,千头万绪,眼睛都看得长挑针
还是看不出东西。OK,我说,这是没办法的事情,看波形,追波形,是一个经验积累的过程
任谁都逃不掉。越是看,越是明白,越是不看,越是不懂。看得多了,自然就知道应该抓那些信
号,如何分类,如何追溯了。所以我奉劝某些希望通过全自动的 Log 和信息推导结果,或者每
次一有问题就找设计人员看波形的验证人员,回头是岸。波形,是逻辑运行的最真实的表现,逃
不掉的。
看波形首先有两个基本的看点。
先看 X 和 Z。
任何一个波形,无论是验证的前期、中期、后期,到手之后,先刷屏,找 X 和 Z,确认。某些 Z
和 X 是可以存在的,例如某些 IP 模型,或者未初始化的寄存器和 RAM,但芯片开始正常后 Z
和 X,都不应当存在。
OK,我承认这个经验非常简单,某些高层领导可能认为这简直就是幼稚。可惜,可惜的是,我
至今为止看的,所有项目的波形,都能够在这上面找到 Bug,甚至我可以预计下一个项目,我
继续看波形,还是能够找到。
以我自己设计的 L2 Cache 为例,一个多年验证经验的老员工负责验证的,至今已经在多个项目
中量产,还是在最近检查波形的时候发现有一个文件wire 声明时把信号名写错了,悬空了(因
为该信号是 input,隐含了 wire 声明,所以不影响功能)。
OK X 和 Z,一定会存在,第一时间找到它,可以节省非常多的验证定位时间,否则追波形半
天发现是 X,真是浪费青春。X 和 Z,所对应的 Bug,可能有如下几种:
1、IP (包括Memory、PLL、Serdes 等等)例化时,某些信号悬空未接。也许某些模型允许 Power
信号悬空,或者某些信号是悬空给 DFT 处理(当下给 DFT 处理的信号是接零),但大多数 IP
输入信号是不可悬空的;
2、信号位宽不匹配、信号多驱动、声明的信号名称写错、TB 级互联错误或TB 中遗漏的Force (额
外小心隐藏的 Force),不要相信 nLint,特别是在芯片顶层或
3、后仿真时序不满足时的 X 态传递;
4、功能错误,某些模拟 IP 未能正确操作;
5、功能错误,导致管脚冲突;
6、功能错误,未能合理使用无复位端的寄存器和未初始化的 Memory。
再看时钟。
很多验证人员不看时钟。经过我反复的证明,这是一个非常普遍的现象(经常在项目验证后期协
助定位时钟不对齐导致的环境问题)。只要 TC 能够打印 Pass,很多验证人员不关心时钟是否
有问题(甚至很多新验证人员,根本不明白∆ Delay 的概念)。大多数情况下,时钟不会有问
题?No,大多数情况下,系统验证,时钟都有问题。
记得以前在一个项目中推动 CRG 设计定义了一个规范,时钟分频寄存器,延迟 0.2ns,其他寄
存器,延迟 0.3ns,分频的原时钟,在输出前延迟 0.2ns 对齐,不知道看到本文的,数字平台
部的验证人员,有多少能明白其中的用意?不解释,不明白的请自行蹲墙角反省。
再想起一个以前海思的设计规范,要求寄存器赋值,不可加延迟,也是让人在风中凌乱啊。下面
这个逻辑,寄存器赋值没有延迟,仿真能正常工作否?答案是可以!如果上帝比较仁慈,或者验
证人员对仿真器的 always 执行顺序无限了解。
always@(posedge clkx2) clk = ~clk;
always@(posedge clkx2) b= a;
always@(posedge clk) if(clken) c = b;
所以,在看完 X 和 Z 后,要将所有时钟拉到波形中 Check,看是否所有同步时钟(包括 1:N
倍频)的时钟沿是否严格对齐 CLKEN 时钟能够正确将倍频时钟上升沿罩住,关键地方寄存器
赋值是否有 Delay (如果时钟间不存在∆ Delay ,寄存器赋值可以没有 Delay)。
OK,上面两种情况说完,我们进入正题,怎样看波形。
如何在一个看似无限复杂的挂死波形中定位根因?
如何在后仿波形中发现可能的问题?
如何在表面上没有问题的波形中发现问题?
面对波形 首先要端正心态,不要认为看波形是浪费时间,也不要因为一时无法发现其中的问题
而焦虑烦躁,更不要盲目乐观,认为已经没有任何问题。要执着、坚定,充满勇气。
先不要看波形,对,先不要看,这是我很重要的经验之一。要先思考,我的做法是对照架构图
虚拟一个芯
您可能关注的文档
最近下载
- 17J008 挡土墙(重力式、衡重式、悬臂式)(最新).pdf VIP
- 中华人民共和国行业标准_土地复垦技术标准.pdf VIP
- 王阳明传习录.doc VIP
- 专升本《政治》考试题及答案(3套).pdf VIP
- (人教版五年级下册字帖-直接打印版).doc VIP
- TJGT F3001-2025 灌入式半柔性抗车辙沥青路面技术规范.pdf
- 2026秋招:黑龙江农业投资集团试题及答案.doc VIP
- 重大事故根源分析与系统防范策略.pptx
- 深度解析(2026)《LYT 1679-2006森林火灾扑救技术规程》.pptx VIP
- 小学劳动教育评价体系中的学生行为表现评价方法研究教学研究课题报告.docx
原创力文档


文档评论(0)