首页/文章/ 详情

白山头讲ICC2: ICC2中的那些debug神器

1年前浏览461
 

青铜和王者的区别,在于遇到问题时的debug能力。本文盘点ICC2中debug的方法,进阶之路上助你一臂之力。

check_bufferability

看timing report,发现,net没优化。什么原因?

是因为dont touch?

是因为dont touch network?

是因为buffer电压不对?

是因为没有driver?

driver是inout?

...

不要猜了!

直接用check_bufferability(感觉像广告),

顾名思义,就是check这个net为什么加不了buffer。使用方法:

 

来举个例子:

 

常见于io_pad, 由于pad是inout属性,而与该net相连的port也是inout,则会出现多驱动的问题。

 

当然,其他的原因也会报出来,例如:

 

analyze_design_violations

Timig为啥没修掉?分析之前先用工具分析一下,仅仅是max transition一项,就有这么多可能性:

  • Entire net is dont touch

  • Net between pad cell and port

  • Tristate nets

  • Nets with multiple drivers

  • Nets with port far from the core area

  • Nets are highly blocked

  • Net is partially blocked

  • Net is crossing high density area

  • Large input transition of driver

  • Nets in read-only sub blocks

  • Connect to excluded cell of XMB

  • Connect to excluded cell of HMB

  • Nets across different exclusive MBS

  • Nets across different hard MBS

  • Nets on clock network

  • Some segments of the net are dont_ touch

  • High fanout nets(> 80)

  • Nets C rossing different voltage areas

  • Nets with small violation(> -0. 005)

  • Nets are too short

  • Nets are long(> 400. 0um)

当然这些仍然不能把原因全部包含,所以,还有一个原因叫“UNKNOWN”。

这个命令,默认是检查transition。

你还可以分析其他的constraint violation,例如setup。

 

也可以针对于我们关系的具体的endpoint进行分析

analysis_design_violations -end_points $endpoints -type setup

自己试试吧。

end


来源:白话IC
理论科普
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2023-09-07
最近编辑:1年前
白山头
签名征集中
获赞 12粉丝 3文章 180课程 0
点赞
收藏
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈