三部分:表头/launch path /capture path

1.表头

1)

  • 工具版本信息:如示例中的18.10-p001,对某个具体项目timing signoff 工具的版本最好保证一致;

  • 操作系统信息:这一项无关紧要。

  • 生产日期:这一项还是有看一下的必要,避免低级错误,哼哧哼哧debug 了半天,结果report 看错了的事情是时有发生的。

  • 设计:确定是你的设计。

  • 命令:确定report 的时候都加了哪些option, 因为极有可能原始脚本不是你自己写的。

2)

  • Timing path 的起点和驱动时钟及时钟的有效沿:示例中分别为my_start_point, clk,  上升沿。

  • Timing path 的终点和驱动时钟及时钟的有效沿:示例中分别为my_end_point, clk,  上升沿。

  • Timing path 所在的path group:示例中为clk, 大多数工具默认会为每一个clock 定义一个path group,用户可以根据需求自定义path group, 如无用户自定义的path group 某条path 会被归为该path endpoint 驱动时钟对应的group.

  • Analysis View:STA 中一个view = 一组具有相同PVT 的std/macro cell + 一个RC corner, 要确定当前View 是否正确。

  • Other end arrival time: capture path 的delay。

  • Setup: 从capture 寄存器对应的std cell lib 中查表得到。
  • Phase shift: 如果没有MCP ( multi cycle path ) 设置, 该值即为单个clock 的周期。
  • CPPR: 在考虑OCV 的STA 分析中,会分别对launch clock path 跟capture clock path 设不同的derate 值,如setup check: launch clock path 会设一个late 的derate, capture clock path 会设一个early 的derate. 而对于同一段path 在实际中不可能会有不同方向的variation 所以为了剔除悲观度,工具会将common path 上的这部分影响减除即CPPR; 对于0 沿check ( 如hold check) 除了Variation, CPPR 还会减除common path 上SI 的影响。这也是为什么common path 越长越好的原因。
  • Uncertainty: 该值来自SDC, 通常signoff uncertainty = foundry requirest margin + PLL jitter + IR-drop modeling.
  • Required time: 在此时间内到达时序即能满足 = clock period + capture clock path delay + CPPR - Setup - Uncertainty.
  • Arrival time: launch data 实际到达时间 = launch clock path delay + data path delay.
  • slack: 最终检验值,为正该path pass 为负该path 违规 = required time - arrival time.

2.

check RC 的反标:在Tempus 的report 中有一列 "Arc annotation" 会标明每一条net RC 的来历,如果RC 来自SPEF, 则值为SPEF. 如果有net 没有正确反标,首先要找出未反标的原因。如果所有net 都已正确反标,再进行下一步

check clock skew: 可分别从launch clock path 跟cpature clock path 中得到到start point clock pin 的clock network delay 和到endpoint clock pin 的clock network delay, 如果skew 过大需要找后端确认是有意为之还是给了一版垃圾数据,至于『大』的定义每家公司每个项目都有自己衡量的标准,有的人认为12已经算大了,但有的人认为18才是真的大,所以请根据自己的需求定义大。如果clock skew 也正常

check derate: std cell 是否有用AOCV, 如果有check derate 的值是否合理,Depth 的值是否合理,是否对net 有设flat OCV, 如果有分别check launch 跟capture path 的derate 值是否合理

check cross talk 引入的delta delay: 先看clock path 上的SI, 如果有较大较多的SI 要去找后端确认,clock path 的SI 要尽量修掉;再看data path 上的SI, 最好把大于某个值的SI 对应的net 都抓出来在layout 上看一下,然后再确定fix 的方向

check clock common point: 确认时钟分叉点,是不是时钟分叉太早,如果common path 非常短需要跟后端确认是否可以做长。

如果以上都合理,就需要详细check 每一级的cell 跟net delay, 最好在layout 上把该条path highlight 出来,先check 是否有cell 堆叠的情况尤其是buffer 跟inverter 的堆叠,如果有,需要找后端确认;再check delay 较大的某些cell 的输入transition 跟fanout 是否合理,如果transition 太大需要确认是由于前一级的驱动能力太弱还是输入net 太长造成的,如果fanout 太大需要找后端确认;再check delay 大的net, 在layout 上量一下该net 的距离,对于什么类型的cell 能驱动多长的net 自己心里要有数,而这个数是由对所用工艺研究得到的,如果某个cell 驱动了超出其能力所及的net 如果不能通过cell swap 解决,就找后端。

读懂timing report的更多相关文章

  1. 读懂UI设计的心理学

    好文转载,版权归原作者 作为UI设计师,对待用户就像对待婴儿,知道如何通过界面设计诱导用户非常重要,这就需要了解心理学方面的知识了.今天分享一篇日本设计师的好文,结合心理学与设计,教你读懂心理学,提高 ...

  2. 一文读懂UGC:互联网上的生态秘密

    转载自近乎: UGC(User- Generated Content)用户原创生产内容,它是相对于PGC(Professionally-produced Content)专业生产内容的一种内容来源,简 ...

  3. 读懂IL代码就这么简单(三)完结篇

    一 前言 写了两篇关于IL指令相关的文章,分别把值类型与引用类型在 堆与栈上的操作区别详细的写了一遍 这第三篇也是最后一篇,之所以到第三篇就结束了,是因为以我现在的层次,能理解到的都写完了,而且个人认 ...

  4. 读懂IL代码就这么简单(二)

    一 前言 IL系列 第一篇写完后 得到高人指点,及时更正了文章中的错误,也使得我写这篇文章时更加谨慎,自己在了解相关知识点时,也更为细致.个人觉得既然做为文章写出来,就一定要保证比较高的质量,和正确率 ...

  5. 读懂IL代码就这么简单 (一)

    一前言 感谢 @冰麟轻武 指出文章的错误之处,现已更正 对于IL代码没了解之前总感觉很神奇,初一看完全不知所云,只听高手们说,了解IL代码你能更加清楚的知道你的代码是如何运行相互调用的,此言一出不明觉 ...

  6. 一张图读懂https加密协议

    搭建CA服务器和iis启用https:http://blog.csdn.net/dier4836/article/details/7719532 一张图读懂https加密协议 https是一种加密传输 ...

  7. Gradle学习系列之三——读懂Gradle语法

    在本系列的上篇文章中,我们讲到了创建Task的多种方法,在本篇文章中,我们将学习如何读懂Gradle. 请通过以下方式下载本系列文章的Github示例代码: git clone https://git ...

  8. 如何快速读懂大型C++程序代码

    要搞清楚别人的代码,首先,你要了解代码涉及的领域知识,这是最重要的,不懂领域知识,只看代码本身,不可能搞的明白.其次,你得找各种文档:需求文档(要做什么),设计文档(怎么做的),先搞清楚你即将要阅读是 ...

  9. 读懂diff

    作者: 阮一峰 日期: 2012年8月29日 diff是Unix系统的一个很重要的工具程序. 它用来比较两个文本文件的差异,是代码版本管理的基石之一.你在命令行下,输入: $ diff <变动前 ...

随机推荐

  1. appium+android测试环境安装

    1. jdk配置 一.背景 JDK已经更新到12了,但是由于很多工具仍然未及时更新,故推荐最稳定的JDK版本1.8.x: JDK需要配置通常情况下,JDK配置分为三项: JAVA_HOME:某些软件仍 ...

  2. python之路set

    一.set和其他集合的区别: list :允许重复的集合,修改 tuple:允许重复的集合,不修改 dict:字典 set:不允许重复的集合,set不允许重复的,列表是无序的 1.创建一个set s= ...

  3. 0003 配置完整的url访问路径

    本文本以OrgsAndUser APP为例,每增加一个url都需要做以下步骤: 1 创建模板 在OrgsAndUsers/Templates目录下创建一个名为org-home.html的文件,内容如下 ...

  4. SigXplorer设置延时及Local_Global

    通过SigXplorer设置绝对延时和相对延时及对Local-Global的理解 一.基本理解 (感觉可能有偏差) 在于博士的教程第44和45讲中,分别对绝对延时和相对延时进行了设置,通过SigXpl ...

  5. Mike and Foam(位运算)

    English reading: bartender == barmaid:酒吧女招待 milliliter:毫升:千分之一毫升 foam:泡沫 a glass of beer with a good ...

  6. django 搭建一个投票类网站(一)

    写在最前,之前零零散散的看过django,但是由于比较杂,学的云里雾里的,所以就停了一段落,但是我最近找到了一个django的书,是李建编著的django入门与实践,于是,打算照着书上的步骤来写好一个 ...

  7. Safari 导航栏

    目录 引子 隐藏 Safari 导航栏 显示 Safari 导航栏 iPhone 系统占比 参考资料 引子 最近在 iPhone 的 Safari 查看 h5 页面时,发现有些平台的页面向下滚动时,顶 ...

  8. MySQL转译

    /* 案例3:查询员工名中第二个字符为 _ 的员工名 */ SELECT last_name, salary FROM employees WHERE last_name LIKE '_$_%' ES ...

  9. 将项目部署到linux环境下的Jetty

    1.将项目放到webapps文件夹下 2.进入到jetty/bin目录,有文件jetty.sh 3.运行  命令:./jetty.sh start 4.停止  命令:./jetty.sh stop

  10. 第k个数(排序)

    给定一个长度为n的整数数列,以及一个整数k,请用快速选择算法求出数列的第k小的数是多少. 输入格式 第一行包含两个整数 n 和 k. 第二行包含 n 个整数(所有整数均在1~109109范围内),表示 ...