STA分析(七) sdc
STA分析前的环境设置,包括:setup clocks,specifying IO characteristics
1)定义一个master clock:create_clock -name .. -period .. -waveform .. [get_ports .. ]
推荐clock的name与pin的名字相同,period的单位一般是ns,waveform的第一个参数表示上升沿的发生时间。默认是{0, period/2}.
关于clock_transition的定义,如果clock定义为PLL的output,通过set_clock_transition来定义。
如果clock定义为input pin,通过set_input_transition来定义。
用来在CTS之前,确定clock的delay,在CTS之后,不再具有参考意义。
关于clock_uncertainty的定义,一般由clock的jitter和slew来组成。对于-setup来说表示clock向前的偏移量,对于-hold来说表示clock向后的偏移量。
set_clock_uncertainty -setup 0.2 [get_clocks CLK] 都使的-setup和-hold的check,余量更少。
set_clock_uncertainty -hold 0.05 [get_clocks CLK]
关于clock_latency的定义,分为两部分:network latency和source latency。其中network latency表示从clock definition到FF的clock 的clock pin的
path,source latency 表示从clock source 到clock definition的path。其中在CTS之后,network latency由set_propagated_clock来代替。
总体的clock_latency等于network_latency+source_latency。
set_clock_latency 1.322 (-source) -max [get_clocks CFG_CLK]。
若有其他的clock,并没有相位差别的,最好定义为generated_clock,这样的好处,计算clock_latency时,source_latency也
能很好的继承下来。generated_clock的source_latency表示从master_clock的definition到generated clock的definition的path。
create_generated_clock -name PCLK2 -source [get_ports PCLK] -multiply_by(devided_by) 2 [get_pins UCLK/Q]
2)Timing path:valid start_point:input port和FF的clock input。
valid end_point:output port和FF的data input。
所以一个valid的data_path是:从input port到FF的data input。
从input port到output port。
从FF的clock input到FF的data input。
从FF的clock input到output port。
STA中所有的Timing path都由endpoint的clock来定义,如若没有,则为default path group。STA中的analysis和report都以clock为单位。
3)model external attributes:
对于input delay,需要定义set_driving或set_driving_cell来确定驱动能力,也就是interconnect或其他期间的电阻值。value越小,驱动能力越强。
set_driving_cell -lib_cell BUFFD4 -library tech90 [get_ports testmode3]
或者可以通过set_input_transition 0.25 [get_ports SD_DIN*]来定义。
以上三种方法都是为了定义在input path中,第一个cell的delay。
对于output delay,通过定义set_load ,来定义output ports的cap load,从而来确定output中的delay。
set_load -pin_load 0.007 [get_ports {shift_wire[31]}]
4)STA中的其他DRC:set_max_transition/set_max_capacitance/set_max_fanout/set_max_area。对象可以是pin/net/port
5)时序例外的分析:set_case_analysis:针对某个pin/port上的constant。应用在SCAN logic 和clock的 multiplexers中。
set_disable_timing:应用在clock的 multiplexers中。set_disable_timing -from S -to Z [get_cells UMUX0]
从select端到output端。
set_max_delay 1.2 -from [get_clocks SYS_CLK] -to [get_clocks CFG_CLK]:
set_max_delay 1.2 -from [get_clocks SYS_CLK] -to [get_clocks CFG_CLK]:规定特定path上的constraint,可以分割timing
arc。
对于multiplexer有两个clock的输入引脚,set_false_path在两个输入时钟间。
STA分析(七) sdc的更多相关文章
- 手机自动化测试:Appium源码分析之跟踪代码分析七
手机自动化测试:Appium源码分析之跟踪代码分析七 poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.poptest推出手机自 ...
- STA分析(六) cross talk and noise
在深亚微米技术(deep submicron)中,关于crosstalk和noise对design的signal integrate的影响越来越大.主要表现在glitch和对delay的影响. 1)m ...
- STA分析(一) setup and hold
timing check可以分为Dynamic Timing Analysis(Post_sim)和Static Timing Analysis STA:可以分析的很全面:仿真速度也很快:可以分析控制 ...
- ABP源码分析七:Setting 以及 Mail
本文主要说明Setting的实现以及Mail这个功能模块如何使用Setting. 首先区分一下ABP中的Setting和Configuration. Setting一般用于需要通过外部配置文件(或数据 ...
- SQLite入门与分析(七)---浅谈SQLite的虚拟机
写在前面:虚拟机技术在现在是一个非常热的技术,它的历史也很悠久.最早的虚拟机可追溯到IBM的VM/370,到上个世纪90年代,在计算机程序设计语言领域又出现一件革命性的事情——Java语言的出现,它与 ...
- phpcms 源码分析七: 模板引擎实现
这次是逆雪寒对模板引擎实现的分析: 1 /* 函数 template函数是在global.func.php 里面定义的. 在前面的phpcms 的首页 index.php 里就见到了. 用法: inc ...
- STA分析(五) parastics
互联线的寄生参数 一般一个cell或者block的连接pin就叫做一个net.在物理实现的时候,一条net可能会穿过几层metal,因为每个metal层的电阻,电容值都不一样.所以,在分析 net的寄 ...
- tiny4412 串口驱动分析七 --- log打印的几个阶段之内核启动阶段(earlyprintk)
作者:彭东林 邮箱:pengdonglin137@163.com 开发板:tiny4412ADK+S700 4GB Flash 主机:Wind7 64位 虚拟机:Vmware+Ubuntu12_04 ...
- vuex 源码分析(七) module和namespaced 详解
当项目非常大时,如果所有的状态都集中放到一个对象中,store 对象就有可能变得相当臃肿. 为了解决这个问题,Vuex允许我们将 store 分割成模块(module).每个模块拥有自己的 state ...
随机推荐
- Sass::SyntaxError related to active_admin/mixins
in active_admin.css.sass, change: @import "active_admin/mixins"; @import "active_admi ...
- 【CF884D】Boxes And Balls 哈夫曼树
[CF884D]Boxes And Balls 题意:有n个箱子和若干个球,球的颜色也是1-n,有ai个球颜色为i,一开始所有的球都在1号箱子里,你每次可以进行如下操作: 选择1个箱子,将里面所有的球 ...
- [右键]如何添加Sublime为右键菜单
Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\*\shell\Open with Sublime Text\command] @=&q ...
- Java秒杀简单设计四:service层设计
接上一篇 https://www.cnblogs.com/taiguyiba/p/9829191.html 封装了系统传递的数据类和异常类 本文继续设计service层设计: 1.SeckillSe ...
- 基于pandas python的美团某商家的评论销售(数据分析)
数据初步的分析 本文是该系列的第一篇 数据清洗 数据初步的统计 第二篇 数据可视化 第三篇 数据中的评论数据用于自然语言处理 from pyecharts import Bar,Pie import ...
- The end of the world
这首63年乡村及流行排行榜双料亚军的歌曲,(Cashbox 年终冠军)据说原是作者为怀念亡父写就,虽是流行曲风,但由Skeeter Davis演唱,却赋予其不同的生命,在键盘连绵的三连音中,少女诉说着 ...
- python----题库(一)
1.执行 Python 脚本的两种方式 答:1.>>python ../pyhton.py 2. >>python.py #必须在首行有 #!/usr/bin/env pyth ...
- 背包----Proud merchants
一件物品p,q,v 分别表示物品的价格,钱少于q时就不能买,和物品的价值 n表示物品数量,m表示初始有的钱 问最多能买多少东西 01背包 注意点是,因为有一个q作为限制条件,所以n件物品不是随意选的了 ...
- Numpy基础学习与总结
Numpy类型学习 1.数组的表示 import numpy as np In [2]: #numpy核心是高维数组,库中的ndarray支持多维数组,同时提供了数值运算,可对向量矩阵进行运算 In ...
- XTU 1261 - Roads - [最小割][2017湘潭邀请赛B题(江苏省赛)]
之前在网上搜了一个下午没搜到这道题的题解,然后同时又对着叉姐写的两行字题解看了一个下午: 虽然基本上已经知道了这题的思路,但愣是因为自己代码实现起来太繁复,外加不确定正确性,没敢码…… 但是一道题肝了 ...