ICC&InnovusTiming Report解析

ICC&InnovusTiming Report解析

为了让各位粉丝更方便查阅小编分享过的的历史技术文章,吾爱 IC 社区公众号历史技术文章合集第二版已经正式发布。各位知识星球用户,可以前往知识星球下载查阅。应部分非星球用户要求,本次更新的技术文章合集可以通过捐助社区来获取,捐助金额20起,土豪请随意(添加小编微信ic-backend2018)。

ICC&InnovusTiming Report解析

作为一个数字 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.

ICC&InnovusTiming Report解析

有了这个概念后,你就不会看不懂工具报的某些信息,比如某个点不是有效的 endpoint。

在数字 IC 后端实现阶段,为了优化 timing,往往会根据实现需求定义比较多的 group path,实现group path 的细化

Timing Report (ICC)

ICC 的 timing report 相信大部分人应该都比较熟悉。今天主要介绍下 report 中表头部分。

ICC&InnovusTiming Report解析

  1. 此处列出报告这条 timing path 所用的命令和 option。这里的full_clock和 innovus 中的 full_clock 很像。这里需要提出的是,在报 timing report 时,一定要多加一些选项,这样才能更方便 debug timing。

  2. 这里是定义的 operating condition,这里是 SSG125C。

  3. 这里告诉你 Parasitic mode,它的值有RealRC,RealRVirtualC 等。这里显示是 RealRVirtualC,说明这是 CTS 后,Route 前的 report。如果一个 Route 后的设计,其 timing report 上显示的 RC 还不是真实的,那么一定是有问题的。

  4. 这里列出了该条 path 的 Beginpoint(Startpoint)和 Endpoint。

  5. 这里指出 Startpoint 和 Endpoint 都是上升沿触发的。

  6. 这里表明这条 timing report 是 max delay 的,是检查 setup 的 timing 的。

Timing Report (Innovus)

下面我们来看下 C 家的 Innovus timing report。

ICC&InnovusTiming Report解析

  1. Path 1 后面有 “MET Setup Check” 字样,表明该条 path 的 setup 是满足 timing 要求的。

  2. 这里列出了该条 path 的 Beginpoint(Startpoint)和 Endpoint。

3.Other End Arrival Time是指capture path的 clock latency 值。这里跟 S 家的 timing report 是有所不同的。S 家是直接在 capture path 上直接展现出来的。当然这里的计算结果值,大家可以通过展开这条 path 的 full_clock 选项来查看具体计算过程。

  1. 这里的 setup 指为 library 中该寄存器的 setup time(通过查表来获取)。

思考题: 这个 setup time 值与哪些因素有关?

  1. 这里的 phase shift 很多人都把它理解成时钟周期 T。应该说这种叫法是不严谨的。对于 Multicycle path 和 Half cycle path,它就不是周期了。

  2. 小编相信 Slack Time 这个地方大家都看明白了,正值即 meet,反之则存在 timing violation。

  3. 这里又是跟 S 家不一样的地方。C 家引入 Leading Edge 和 Trailing Edge 两个概念。这两个概念千万不能与 Rising Edg 和 Falling Edge 搞混淆。Leading Edge 为 clock 在一个周期内第一个跳变的 edge,而 Trailing Edge 为 clock 第二次跳变的 edge。

ICC&InnovusTiming Report解析

涉及 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

原来电路最高工作频率是这么算出来的(STA 基础篇)

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童鞋的支持!欢迎各位渴望进步,期望高薪的铁杆粉丝加入!终极目标**是打造实现本知识星球全员年薪百万的宏伟目标 **。

ICC&InnovusTiming Report解析

欢迎关注 “吾爱 IC 社区

微信号:ic-backend2018

ICC&InnovusTiming Report解析

点击下方 “阅读原文” 下载技术文章合集。

https://mp.weixin.qq.com/s/yuEd8inn_KD-f__AgxN3yA

上一篇:flutter开发语言,程序员工作2年月薪12K,聪明人已经收藏了!


下一篇:程序员工作2年月薪12K,我先收藏为敬