story · 2020年09月09日

Exceptions,数字后端设计中出现的高频词


上篇文章谈到EDA工具在做时钟树综合的时候,在设计者正确定义create\_clockcreate\_generated\_clock,正确插入ICG cell的条件下能够自动识别出设计对时钟树的需求,即定义Implicit stop/nonstop/exclude pin。
1113060500-5f56f7296937c.png
事实上,EDA工具只是帮助完成了时钟树定义中非常简单的工作。

决定时钟树质量非常重要的工作还有user defineClock Tree Exceptions,即需要人为显式定义的explicit stop/nonstop/exclude/float pin。

我们知道数字后端Flow中存在大量需要人为定义的exception(timing exception、clock tree exception、、、)。这种exception存在两种原因

1、EDA工具或者Flow不完善,需要人为定义的exception太多,需要向更加智能化改进。最好是
1.一键执行define clock tree,
2.等待一杯咖啡的时间
3.“ding”提示时钟树clock tree define succeed
4.点击“OK”

2、提供用户接口,定制化设计需求

好了,进入正题Specifying Clock Tree Exceptions

可以使用set\_clock\_tree\_exceptions命令设置Clock Tree Exceptions。

在不指定-clocks选项的情况下,应用于当前scenario所有clock。

1.icc_shell> set_clock_tree_exceptions -stop_pins \
2.clocks CLK1 [get_pins pins_on_the_clock_path]

该设置可以通过remove\_clock\_tree\_exceptions命令删除。上述exceptions主要包括

Nonstop pins

Exclude pins
Float pins
Stop pins

Specifying Nonstop Pins

工具可以通过Nonstop Pins trace到时钟树的端点。例如之前可以隐式定义的generated clock和ICG cell

Specifying Exclude Pins

Exclude Pins是时钟树时序优化中排除的时钟树端点,只进行DRC优化。
02d4c6c51285d74a2c28485a40c0f96.png

1 icc_shell> set_clock_tree_exceptions -exclude_pins [get_pins U2/A]
2

Specifying Float Pins

Float Pins 具有特殊insertion delay要求的时钟引脚。设置Float Pins 时,工具在优化时钟树时会考虑这个延迟。

Float Pins的一个应用场景就是设计中存在没有时序库的hard mocro,但是该hard macro的clock pin对时序有要求。这是就可以使用Float Pins指定hard macro内部的insertion delay

Specifying Stop Pins

Stop Pins是时钟树的端点,在进行时钟树综合时需要进行skew、insertion delay和DRC的优化。在有需要的时候,同样可以显式指定StopPins。



本文转载自公众号:芯片数字实验室
原文链接:https://mp.weixin.qq.com/s/5iFxRiB\_PUKiIag\_2S79Kw
未经作者同意,请勿转载!

推荐阅读

想了解更多内容,欢迎关注芯片数字实验室专栏,由于工具,你可以专注在更重要的事情上。
推荐阅读
关注数
12320
内容数
221
前瞻性的眼光,和持之以恒的学习~
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息