ICC&InnovusTiming Report解析
为了让各位粉丝更方便查阅小编分享过的的历史技术文章,吾爱 IC 社区公众号历史技术文章合集第二版已经正式发布。各位知识星球用户,可以前往知识星球下载查阅。应部分非星球用户要求,本次更新的技术文章合集可以通过捐助社区来获取,捐助金额20元起,土豪请随意(添加小编微信ic-backend2018)。
作为一个数字 IC 后端工程师,你真的能看懂 Timing report 吗?小编曾经说过,如果数字 IC 后端工程师不懂 timing,等于人缺了一个手臂。更何况不能完全看懂 timing report 呢?那一定是非常可怕的一件事情。
今天小编将从基本概念出发,详细解析 ICC 和 Innovus 中 timing report 各大主要组成部分。
Timing Path
STA 中是基于 Timing Path 来进行时序分析的。每条 Timing Path 都有一个 Startpoint 和一个 Endpoint。那么 STA 中哪些点是 Startpoint,哪些点又是 Endpoint 呢?理解这个概念后就能够比较好理解 Timing Path 了。
Startpoint 可以是以下两种类型:
-
Input 输入端
-
时序单元的时钟端
Endpoint 可以是以下两种类型:
-
Output 输出端
-
时序单元的数据输入端
因此,在 STA 中有四种类型的 timing path。针对每条 timing path,工具也会分配一个 clock group。默认情况下,工具会根据 endpoint 挂的 clock 来定义对应的 group。
• CLKA group: Input port A to UFFA/D.
• CLKB group: UFFA/CK to UFFB/D.
• DEFAULT group: Input port A to output port Z, UFFB/CK to out
put port Z.
有了这个概念后,你就不会看不懂工具报的某些信息,比如某个点不是有效的 endpoint。
在数字 IC 后端实现阶段,为了优化 timing,往往会根据实现需求定义比较多的 group path,实现group path 的细化。
Timing Report (ICC)
ICC 的 timing report 相信大部分人应该都比较熟悉。今天主要介绍下 report 中表头部分。
-
此处列出报告这条 timing path 所用的命令和 option。这里的full_clock和 innovus 中的 full_clock 很像。这里需要提出的是,在报 timing report 时,一定要多加一些选项,这样才能更方便 debug timing。
-
这里是定义的 operating condition,这里是 SSG125C。
-
这里告诉你 Parasitic mode,它的值有RealRC,RealRVirtualC 等。这里显示是 RealRVirtualC,说明这是 CTS 后,Route 前的 report。如果一个 Route 后的设计,其 timing report 上显示的 RC 还不是真实的,那么一定是有问题的。
-
这里列出了该条 path 的 Beginpoint(Startpoint)和 Endpoint。
-
这里指出 Startpoint 和 Endpoint 都是上升沿触发的。
-
这里表明这条 timing report 是 max delay 的,是检查 setup 的 timing 的。
Timing Report (Innovus)
下面我们来看下 C 家的 Innovus timing report。
-
Path 1 后面有 “MET Setup Check” 字样,表明该条 path 的 setup 是满足 timing 要求的。
-
这里列出了该条 path 的 Beginpoint(Startpoint)和 Endpoint。
3.Other End Arrival Time是指capture path的 clock latency 值。这里跟 S 家的 timing report 是有所不同的。S 家是直接在 capture path 上直接展现出来的。当然这里的计算结果值,大家可以通过展开这条 path 的 full_clock 选项来查看具体计算过程。
- 这里的 setup 指为 library 中该寄存器的 setup time(通过查表来获取)。
思考题: 这个 setup time 值与哪些因素有关?
-
这里的 phase shift 很多人都把它理解成时钟周期 T。应该说这种叫法是不严谨的。对于 Multicycle path 和 Half cycle path,它就不是周期了。
-
小编相信 Slack Time 这个地方大家都看明白了,正值即 meet,反之则存在 timing violation。
-
这里又是跟 S 家不一样的地方。C 家引入 Leading Edge 和 Trailing Edge 两个概念。这两个概念千万不能与 Rising Edg 和 Falling Edge 搞混淆。Leading Edge 为 clock 在一个周期内第一个跳变的 edge,而 Trailing Edge 为 clock 第二次跳变的 edge。
涉及 setup 计算的一些公式:
Data Require Time = Clock Arrival Time - Tsetup - uncertainty
Clock Arrival Time = Clock Capture Edge + Network latency
Data Arrival Time = Clock Launch Edge + Network latency + Tck-q + Tcomb
Setup Slack = Data Require Time - Data Arrival Time
Phase Shift = (CE - LE) - (C1- L1)
其中 CE 为 Capture Clock Edge, LE 为 Launch Clock Edge,C1 为第一个 Capture Clock Edge,L1 为第一个 Launch Clock Edge。
这里以上面的 timing report 为例,计算下 Phase shift。
phase shift= (10 - 0)-(0 - 0)= 10。由于 Beginpoint 和 Endpoint 是 Leading Edge triggered 和 Leading Edge checked,而且都挂在同一个 clock 上。所以这里的 Phase Shift 即为周期。那么如果 Endpoint 是 Trailling Edge check,那么 Phase Shift 又是多少呢?
如果两个寄存器是跨 clock domain 的 timing check,phase shift 又该如何计算呢?从 phase shift 的计算公式得知,它的核心是找到 Launch Clock 和 Capture Clock 的 Edge,找对了结果自然就出来了。关于 setup 和 hold check 的 edge 选取,可以翻阅之前分享的内容。
好了,今天的内容分享就到这里。如果你喜欢小编的文章,帮忙点下**“在看”**并转发给你的朋友,算是鼓励支持下小编呗。
小编知识星球简介(如果你渴望进步,期望高薪,喜欢交流,欢迎加入 ****):
在这里,目前已经规划并正着手做的事情:
-
ICC/ICC2 lab 的编写
-
基于 ARM CPU 的后端实现流程
-
利用 ICC 中 CCD(Concurrent Clock Data)实现高性能模块的设计实现
-
基于 ARM 四核 CPU 数字后端 Hierarchical Flow 实现教程
-
时钟树结构分析
-
低功耗设计实现
-
定期将项目中碰到的问题以案例的形式做技术分享
吾爱 IC 社区知识星球星主为公众号” 吾爱 IC 社区” 号主,从事数字 ic 后端设计实现工作近八年,拥有55nm,40nm,28nm,22nm,14nm等先进工艺节点成功流片经验,成功tapeout 过三十多颗芯片。
这里是一个数字 IC 设计实现高度垂直细分领域的知识社群,是数字 IC 设计实现领域中最大,最高端的知识交流和分享的社区,这里聚集了无数数字 ic 前端设计,后端实现,模拟 layout 工程师们。
在这里大家可以多建立连接,多交流,多拓展人脉圈,甚至可以组织线下活动。在这里你可以就数字 ic 后端设计实现领域的相关问题进行提问,也可以就职业发展规划问题进行咨询,也可以把困扰你的问题拿出来一起讨论交流。对于提问的问题尽量做到有问必答,如遇到不懂的,也会通过查阅资料或者请教专家来解答问题。在这里鼓励大家积极发表主题,提问,从而促进整个知识社群的良性循环。每个月小编会针对活跃用户进行打赏。
最重要的是在这里,能够借助这个知识社群,短期内实现年薪百万的梦想!不管你信不信,反正已经进来的朋友肯定是相信的!相遇是一种缘分,相识更是一种难能可贵的情分!如若有缘你我一定会相遇相识!知识星球二维码如下,可以扫描或者长按识别二维码进入。目前已经有443位星球成员,感谢这443童鞋的支持!欢迎各位渴望进步,期望高薪的铁杆粉丝加入!终极目标**是打造实现本知识星球全员年薪百万的宏伟目标 **。
欢迎关注 “吾爱 IC 社区”
微信号:ic-backend2018
点击下方 “阅读原文” 下载技术文章合集。
https://mp.weixin.qq.com/s/yuEd8inn_KD-f__AgxN3yA