clock sense和analysis mode
PrimeTime会自动track clock tree中的inverter和buffer,从而得到每个register的clock sense。
如果clock tree中,只有buffer和inverter,到达register clock的clock signal可以表示为"unate"。
positive unate:rising edge的clock source引起register clock pin的rising edge。
negative unate:rising edge的clock source引起register clock pin的falling edge。

clock被PT评断为non-unate的情况:
异或逻辑中,clock unate的极性跟另一个input有关,PT认为是一个non-unate的信号。

PrimeTime认为pulse generator的输出不是unate。
在non-unate的clock network中,可以通过命令set_clock_sense来设置需要分析的clock的sense。
如果对一个unate的clock,使用这个命令,sense与实际的sense不一致时,PrimeTime产生一个error。
set_clock_sense -positive -clock [get_clocks CLK] [get_pins mux1.z]----------只有positive sense的clock传递过去。
-clock来指定pin上的clock,一个pin上可能有多个clock source。
set_clock_sense -stop_propagation +timing arc 表示clock在这个timing arc上, physically上不会进行propagate。
set_clock_sense -logical_stop_propagation 表示clock可能会作为data继续进行propagate,但是不会作为
clock进行分析。
set_clock_sense -logical_stop_propagation -clocks CLK U3/A

pulse clock:一些短的pulse,它的rising和falling edge都由一个clock的同一个edge来trigger。
pulse clock的定义可以由一个pulse generator cell/create_generated_clock/set_clock_sense


-edge {1 1 3}表示第一个上升沿和下降沿都是1时刻,3时刻是下一个上升沿。
在半导体设备中,process/temperature/voltage对器件性能影响很大,在PrimeTime中,通过命令
set_operating_conditions来设置operate condition,(process, temperature, voltage)
PrimeTime提供的三种analysis mode;
1)single operating mode, launch clock,data基于该condition的max,capture clock基于该condition的min.
2)best-case/worst-case mode,对于setup check,使用worst case,对于hold check,使用bese-case
相同点:launch clock,data基于该condition的max,capture clock基于该condition的min.
不同点:使用两个condition。
3)On-Chip-Varient mode,允许同一个path在进行setup和hold check时,可以使用不同的PVT(operating mode)
相同点:对于setup mode,launch clock和data使用max delay,capture clock使用min delay。
不同点:但是max delay和min delay的condition是不同的
相同点:对于hold mode,launch clock和data使用min delay,capture clock使用max delay。
不同点:但是max delay和min delay的condition是不同的


在一个minimum-maximum的analysis中,这个minimum和maximum的值可以是:
1)Input and Output external delays
2)Port wire load model/Net wire load model
3)Delays annotated form Standard Delay Format(SDF)
4)Port Fanout number
5)Net capacitance/resistance
6)Clock latency and Clock transition time
7)Input port driving cell
在计算maximum时,PT使用longest path, worst-case operating conditions, longest transition times, maximum cell delays
Net delay value的值,可以直接通过两个sdf的文件来标识,也可以让PT基于不同的operating condition来计算。
Best-case/Worst-case相对于Single operating condition来说,只是节约了时间,并没有加强约束。
但是OCV的结果会更加悲观。
Worst-case(data delay最大),用于检查setup check,Best-case(data delay最小),用于检查hold check。
但是data端用Worst case,capture clock端用Best case只能用OCV来分析。
OCV(On chip varient):由于cell位置的不同,在制造过程中,而带来的cell/net的uncertainty。
OCV在CTS之前,ideal clock network中,可以用set_clock_uncertainty来建模
在CTS之后,用propagated clock latency来建模
使用bc-wc进行时序分析时的delay信息来源:
1)从两个SDF files中annotate delay; 读取两个sdf文件或者一个sdf文件中有min/max信息
read_sdf -analysis_type bc_wc my_design.sdf(读取sdf中的max/min两种数值)
2)让PrimeTime自己计算delay; 需要设置两个operating condition来进行计算
set_operating_conditions -min BCCOM -max WCCOM
OCV通过用两种极端的condition来计算最worst的情况,
还有一种set_derate的情况,也可以用来分析更worst的情况,人工增加某段延时,或者某个path的延时。
set_timing_derate -early 0.8 -late 0.2
-early设置path中的最短路径,-0.8表示减少20%的mergin,如setup check中的capture clock
hold check中的data path
-late设置path中的最短路径,-1.2表示增加20%的mergin,如setup check中的data path
hold check中的capture clock
set_timing_derate -net_delay -early 0.8 [get_cells hier_cell]
report_timing_derate -net -early 0.80
report_timing_derate [get_cells U*]
报告出design中derate的情况
set_operating_conditions -analysis_type on_chip_variation -min BEST -max WORST
report_timing -delay_type min
report_timing -delay_type max
Clock Reconvergence Pessimism removal(CRPR)
在OCV模式下的,更精确的一种限制,对于两条共享一段physical segment的path,同时被设置了min delay
path和max delay path。通过CRPR来消除这种不合理的path segment

在primetime中,通过timing_remove_clock_reconvergence_pessimism来设置。
这时的report,slack会更加合理。

通过set_pulse_clock_min_width和set_pulse_clock_max_width来对clock pulse的width进行约束。
对于level-high的pulse width check,Primetime用rising edge的max delay和falling edge的min delay来进行检查
在OCV模式下,也需要设置CPRP,来使得check更加合理。
clock sense和analysis mode的更多相关文章
- [zz] Principal Components Analysis (PCA) 主成分分析
我理解PCA应该分为2个过程:1.求出降维矩阵:2.利用得到的降维矩阵,对数据/特征做降维. 这里分成了两篇博客,来做总结. http://matlabdatamining.blogspot.com/ ...
- malware analysis、Sandbox Principles、Design && Implementation
catalog . 引言 . sandbox introduction . Sandboxie . seccomp(short for secure computing mode): API级沙箱 . ...
- 静态时序分析(static timing analysis)
静态时序分析(static timing analysis,STA)会检测所有可能的路径来查找设计中是否存在时序违规(timing violation).但STA只会去分析合适的时序,而不去管逻辑操作 ...
- Cluster analysis
https://en.wikipedia.org/wiki/Cluster_analysis Cluster analysis or clustering is the task of groupin ...
- Technical analysis of client identification mechanisms
http://www.chromium.org/Home/chromium-security/client-identification-mechanisms Chromium > Chro ...
- clock gating and PLL
一个gating的clock是指:clock network除了包含inverter和buffer外,还有其他logic. PrimeTime会自动的对gating input进行setup和hold ...
- PTPX中的clock tree与LP design
PTPX在加入CPF/UPF这样的文件后,可以分析multi-voltage,power-gating这样的设计. 针对某个power rail的cell,PTPX支持进行annotate. set_ ...
- PTPX的average power analysis
在average power analysis中,switching activity被分解为toggle rate和static probabilities两部分. annotation的sourc ...
- PTPX Power Analysis Flow
PrimeTime PX工具是PrimeTime工具内的一个feature. PTPX的功耗分析,可以报告出chip,block,cell的各个level的功耗. 使用PTPX可以分析的功耗的方式: ...
随机推荐
- C#中扩展方法
什么是扩展方法? 扩展方法顾名思义,就是允许向现有的“类型”添加方法,而无需创建派生类.重新编译或以其他方式修改原来类型. 扩展方法是一种特殊的静态方法,但可以像扩展类型上的实例方法一样进行调用. 扩 ...
- SQL 2008 RAISERROR语法在SQL 2012/2014不兼容问题
原文 旧的RAISERROR语法在SQL 2012不兼容问题 raiserror 写法: SQL 2008: raiserror 55030 'text error' SQL 2012: raiser ...
- iOS 应用内跳转到appstore里下载
SKStoreProductViewController类是UIViewController的子类, 如果你对view controller比较熟悉的话,那SKStoreProductViewCont ...
- LeetCode Binary Tree Upside Down
原题链接在这里:https://leetcode.com/problems/binary-tree-upside-down/ Given a binary tree where all the rig ...
- php常用转义字符‘ “ {} $ \n
php 单引号和双引号的区别: 双引号串中的内容可以被解释而且替换,而单引号串中的内容总被认为是普通字符. <?php $a = 'abc'; echo "<br>&quo ...
- ubuntu 更新 rtl8192cu 驱动
ubuntu 更新 rtl8192cu 驱动 手上有个 tplink wr823n 的 usb 无线网卡,在 windows 下工作正常,但在 linux 上的比较差,速度没有 windows 上的快 ...
- 快速理解Docker - 容器级虚拟化解决方案
是什么 简单的说Docker是一个构建在LXC之上的,基于进程容器(Processcontainer)的轻量级VM解决方案 拿现实世界中货物的运输作类比, 为了解决各种型号规格尺寸的货物在各种运输工具 ...
- 跳到下个View
nextWebView = [[ WEBViewController alloc ] initWithNibName : @"WEBViewController" bundle : ...
- 第二篇 SQL Server安全验证
本篇文章是SQL Server安全系列的第二篇,详细内容请参考原文. 验证是检验主体的过程.主体需要唯一标识,那样SQL Server可以确定主体有哪些权限.正确的验证是提供安全访问数据库对象的必要的 ...
- postgress Sql数据库的复制
1.保证本地可正常执行pg_dump,即就是本地有安装postgress数据库,最好把bin目录添加到环境变量path中2.在命令行中执行如下语句: pg_dump -U zhangsan -h 19 ...