分享

Innovus教程 - Timing报告详细解读

 mzsm 2022-06-26 发布于湖北

本文选自知识星球。整个Innovus Timing相关教程分为下面三个部分,这里分享的是第一部分,其他的部分在知识星球里面有完整说明(三个部分一共25页、4千4百字)。同时星球专属QQ群上传了里面有长达5.7万字,316页500页、8.5万字的Innovus教程,欢迎大家加入(二维码见文末)。

report_timing时序报告详细解读

report_timing命令选项说明

report_timing报告格式如何个性化设置

report_timing时序报告解读我最初接触数字IC设计时,用的绝大部分都是S家的工具,比如DC/PT/ICC,当时学习的时候感觉report_timing的报告挺容易理解的,非常直观,如果对这个有疑问或者想知道怎么根据Timing report来判断这个Path是否好修,该如何修,可以看下面的推文:《应邀长文- DC/ICC/ICC2/PT中的report_timing报告如何看,如何找出问题修复Timing违反》星球链接(干货内容):https://t./3feYrzf

可是自从PR工具切到了C家的工具Innovus之后,感觉一脸懵,直接看上面的report,很多地方都搞不懂到底是啥,所以这里写篇推文来专门讲解一下。比如:1、什么是“Trailing edge”、什么是“Leading edge”?Innovus:

图片

S家的工具挺直观的,懂点英语的话应该很容易看懂(就是直接写的上升下降沿):

图片

2、什么是“Other end arrival time”3、报告中的required time怎么来的,它和other end arrival time之间关系,slack是怎么计算的?4、S家的工具报hold使用-delay_type min,那么Innovus怎么报hold timing?5、还有就是一个非常大的不同,为啥很多地方看到的clock后边的arrival time是从负值开始的。

图片

经过这些年的学习,这些问题已经全部搞清楚了,这里对report_timing的结果做一个完整的讲解,上面提到的这些困惑也会一一解答。

Manual与Help首先man report_timing可以看这个命令的详细manual,不过非常长…

图片

report_timing -help可以看它的所有option和相应的意思(具体每个Option是什么意思,星球Timing第二篇推文有详细讲解):

图片

如何展开Clock path首先讲一个option:-path_type {end summary full full_clock end_slack_only summary_slack_only}# The path_type option lets you choose the format of the report by path type (enum, optional)Path_type指定成full_clock的话可以将launch clock和capture clock的部分展示出来,否则默认情况下是不显示clock path的.加-path_type full_clock之前:

图片

加上-path_type full_clock之后,红色部分的内容是多出来的:

图片

Timing report详细讲解首先,我们来看一条简单的timing path report

图片

在讲解详细报告之前,先普及一下Setup的基本计算公式:

图片

Setup Slack = Data Require Time - Data Arrival TimeData Arrival Time = Clock Launch Edge + Network latency + Tck-q + Tdata_path_min

Data Require Time = Capture Clock Arrival Time - Tsetup - Setup uncertaintyCapture Clock Arrival Time = Clock Capture Edge + Network latency

Hold与之相似,不过使用arrival time减去required time,并且Hold是同沿Check:Hold Slack = Data Arrival Time - Data Require Time

1. 头部一#开头的注释信息最上面的是用#开头的注释信息,里面的Command后边是报这个Timing path用的完整命令和option。如果想将报告导出的一个文件中,我们可以在后边加上管道符>,图中的command就是这样,并且报出了完整的Clock path。

2. Path 1也就是第一条Path,它后边的信息显示的是这条path的Slack情况是Met(满足)还是Violate(违反),后边接的是Setup check还是hold check,这里的话是Setup,如果想报hold的话,可以report_timing -early,会给出类似于下面的结果:Path 1: MET Hold Check with Pin ff1/CKNEndpoint: ff1/D (^) checked with trailing edge of 'CLK2'Beginpoint: in1 (^) triggered by leading edge of 'CLK'

3. Endpoint和Beginpoint是介绍了这条path的Endpoint和Beginpoint(S家的工具叫startpoint)。这里问题来了,checked by后边的leading edge和trailing edge是什么意思呢?是上升沿和下降沿么?其实不是的!!…(完整内容见知识星球)

4. Path group就是path group,如果有创建path group就会显示,没有的话一般就是指该条path的clock信息关于Path group的详细内容,比如为啥要创建Path group,如何查看/报告Path group,什么是Critical Range,如何利用Path group和Critical Range以及Weight来优化Timing可以查看下面的推文:《精华长文-Path Groups 与Critical Range 、 Weight》星球链接:https://t./yvNr3Zz

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多