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

本文介绍ICC2中的Debug方法,如check_bufferability和analyze_design_violations,帮助解决timing report中的问题,包括net优化、driver属性、buffer电压等,以及如何分析maxtransition和setup约束违规。

mark

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

check_bufferability

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

是因为dont touch?

是因为dont touch network?

是因为buffer电压不对?

是因为没有driver?

driver是inout?

...

不要猜了!

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

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

使用方法

来举个例子:

例1:multiple drivers

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

例2:dont touch

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

例3:其他

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。

分析setup

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

analysis_design_violations -end_points $endpoints -type setup

自己试试吧。

end

延伸阅读:

TCL技巧,如何更优雅的报出cell的面积

TCL技巧, 一个超级实用的Debug方法

ICC2, 更换图形界面主题

ICC2, 玩转polygon

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值