Innovus/Encounter时序报告解读

2024-03-18 22:18

本文主要是介绍Innovus/Encounter时序报告解读,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

640?wx_fmt=gif

最近在学report_timing这个命令,发现自己对timing report的认知只停留在看slack和delay数值上。于是,决定研究一下这个report。Innovus/Encounter的report格式确实有点不按套路出牌,初看有点凌乱。以下只是我的一些简单认识,各位timing大神可以直接忽略,希望对新人会有帮助:

首先,我们来看一条简单的timing path report

640?wx_fmt=jpeg

前面的比较简单. 按行来解读吧

1. 最顶上的是报这条path用的完整命令和option, 我们可以采用full_clock的type将clock path上的具体情况也报出来来

2. Path 1: 是指报出这条path的Slack情况是Met还是Violate.

3. Endpoint和Beginpoint是介绍了这条path的End point和Begin point。这里问题来了,小编第一次碰到两个陌生单词,leading edgetrailing edge。起初以为是上升沿和下降沿的意思。查看了doc后,发现不是这么看的。

我们可以按照其字面理解:

leading edge: 主导的边沿,在每个周期中,第一个出现的边沿就是leading edge

trailing edge: 拖尾的边沿,在每个周期中,最后一个出现的边沿就是trailing edge

所以说,leading edge不一定代表rising edge。反之,trailing edge也不一定就是falling edge.

总结一下,有以下规律:

如果你生成的clock是positive clock,clock的rising edge就是leading edge,falling edge就是trailing edge

如果你生成的clock是negative clock,clock的rising edge就是trailing edge,falling edge就是leading edge

4. Path group就是path group,如果有创建path group就会显示,没有的话一般就是指该条path的clock信息

5. Other End Arrival Time: 这个其实就是clock capture path上的Arrival time,对应着就是下面第二张表格的最终Arrival time值,我用红圈圈出来那一个。

640?wx_fmt=jpeg

6. setup就是cell的setup值,这个值是根据该cell的constrained pin的transition和related pin的transition,在lib中查表得到。

7. Phase Shift: 这个是最难懂的东西,太抽象。

Phase shift is the time added to timing calculations to account for the relationships between ideal clock domains.

我的理解是这样:由于我们定义的clock都是ideal clock。而实际需要check的时钟沿和理想时钟沿有一定偏移,因此,工具需要根据自己的算法加上phase shift,才能得到它真正要去check的时钟沿。其实大部分情况下,我们可以直接把phase shift理解为周期。

8. uncertainty:时钟的不确定性,可能提前,也可能延后。提前到来是为setup uncertainty,所以是减。延后到来是为hold uncertainty,所以是加。

9. Require Time:就是data path上的require time,等于上述几个数字相加减

10. Arrival Time:就是data path上的arrival time,就是下面第一张表格的最终arrival time

640?wx_fmt=jpeg

11. 最终的slack值就是前面两个Require time和Arrival time的差值

12. 后面两张表格前面都有介绍过了,就是具体path上每个cell以及net的delay情况,对于Begin point arrival time,还需要算上insertion delay的情况。

写得好长,有点乱,但是应该会对大家理解timing report会有帮助,懂了基本概念之后,我们才能往深入的东西去研究。


640?wx_fmt=jpeg

往期回顾

简历请戳邮箱:taozhang3260@163.com

觉得有用的话,给我点个好看吧640?wx_fmt=gif

这篇关于Innovus/Encounter时序报告解读的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/823836

相关文章

MySQL中时区参数time_zone解读

《MySQL中时区参数time_zone解读》MySQL时区参数time_zone用于控制系统函数和字段的DEFAULTCURRENT_TIMESTAMP属性,修改时区可能会影响timestamp类型... 目录前言1.时区参数影响2.如何设置3.字段类型选择总结前言mysql 时区参数 time_zon

MySQL中的锁和MVCC机制解读

《MySQL中的锁和MVCC机制解读》MySQL事务、锁和MVCC机制是确保数据库操作原子性、一致性和隔离性的关键,事务必须遵循ACID原则,锁的类型包括表级锁、行级锁和意向锁,MVCC通过非锁定读和... 目录mysql的锁和MVCC机制事务的概念与ACID特性锁的类型及其工作机制锁的粒度与性能影响多版本

Redis过期键删除策略解读

《Redis过期键删除策略解读》Redis通过惰性删除策略和定期删除策略来管理过期键,惰性删除策略在键被访问时检查是否过期并删除,节省CPU开销但可能导致过期键滞留,定期删除策略定期扫描并删除过期键,... 目录1.Redis使用两种不同的策略来删除过期键,分别是惰性删除策略和定期删除策略1.1惰性删除策略

Redis与缓存解读

《Redis与缓存解读》文章介绍了Redis作为缓存层的优势和缺点,并分析了六种缓存更新策略,包括超时剔除、先删缓存再更新数据库、旁路缓存、先更新数据库再删缓存、先更新数据库再更新缓存、读写穿透和异步... 目录缓存缓存优缺点缓存更新策略超时剔除先删缓存再更新数据库旁路缓存(先更新数据库,再删缓存)先更新数

C#反射编程之GetConstructor()方法解读

《C#反射编程之GetConstructor()方法解读》C#中Type类的GetConstructor()方法用于获取指定类型的构造函数,该方法有多个重载版本,可以根据不同的参数获取不同特性的构造函... 目录C# GetConstructor()方法有4个重载以GetConstructor(Type[]

【专题】2024飞行汽车技术全景报告合集PDF分享(附原数据表)

原文链接: https://tecdat.cn/?p=37628 6月16日,小鹏汇天旅航者X2在北京大兴国际机场临空经济区完成首飞,这也是小鹏汇天的产品在京津冀地区进行的首次飞行。小鹏汇天方面还表示,公司准备量产,并计划今年四季度开启预售小鹏汇天分体式飞行汽车,探索分体式飞行汽车城际通勤。阅读原文,获取专题报告合集全文,解锁文末271份飞行汽车相关行业研究报告。 据悉,业内人士对飞行汽车行业

MCU7.keil中build产生的hex文件解读

1.hex文件大致解读 闲来无事,查看了MCU6.用keil新建项目的hex文件 用FlexHex打开 给我的第一印象是:经过软件的解释之后,发现这些数据排列地十分整齐 :02000F0080FE71:03000000020003F8:0C000300787FE4F6D8FD75810702000F3D:00000001FF 把解释后的数据当作十六进制来观察 1.每一行数据

Java ArrayList扩容机制 (源码解读)

结论:初始长度为10,若所需长度小于1.5倍原长度,则按照1.5倍扩容。若不够用则按照所需长度扩容。 一. 明确类内部重要变量含义         1:数组默认长度         2:这是一个共享的空数组实例,用于明确创建长度为0时的ArrayList ,比如通过 new ArrayList<>(0),ArrayList 内部的数组 elementData 会指向这个 EMPTY_EL

计算机毕业设计 大学志愿填报系统 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试

🍊作者:计算机编程-吉哥 🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。 🍊心愿:点赞 👍 收藏 ⭐评论 📝 🍅 文末获取源码联系 👇🏻 精彩专栏推荐订阅 👇🏻 不然下次找不到哟~Java毕业设计项目~热门选题推荐《1000套》 目录 1.技术选型 2.开发工具 3.功能

Spring 源码解读:自定义实现Bean定义的注册与解析

引言 在Spring框架中,Bean的注册与解析是整个依赖注入流程的核心步骤。通过Bean定义,Spring容器知道如何创建、配置和管理每个Bean实例。本篇文章将通过实现一个简化版的Bean定义注册与解析机制,帮助你理解Spring框架背后的设计逻辑。我们还将对比Spring中的BeanDefinition和BeanDefinitionRegistry,以全面掌握Bean注册和解析的核心原理。