一个人的兴趣越广泛,他拥有属的快乐机会就越多,而受命运播弄的可能性也就越小,因为即使失去了某一种兴趣,他仍然可以转向另一种。 — —罗素

一、 STA

时序分析分为动态时序分析(DTA, Dynamic Timing Analysis)和静态时序分析(STA, Static Timing Analysis)。DTA的优点是准确(spice), 可以进行功能验证。缺点是需要激励,速度很慢。STA的优点是运算速度快,缺点是不能进行功能验证,并且会报出一些false的错误。因为DTA太慢,且需要激励,通常使用STA来进行时序分析。在synthesis和place and route时,都需要STA来保证时序正确。

静态时序分析:通过为synthesis计算cell和net组成的path的延时,判断path延时是否满足相应时序约束,然后基于path延时,工具从timing library中选择cells来创建一个满足timing要求的电路。之所以称为静态时序分析,是由于没有输入激励文件。

STA工具通过读入Netlist、constraints、Timing library、SDF/SPEF、产生report。SDF文件不能进行noise分析,而SPEF文件可以分析noise。SDF是计算好的pin to pin的delay值(according to spef or other parasitic files),SPEF是每一条net上的parasitic

当想参照noise的时候,除了需要知道driving cell的强弱,也需要知道每一条net上面的loading,而sdf只有一个delay值,所以资讯是不够的,SPEF是STA tools根据RC算一遍延迟等,再分析是不是满足constraint的要求。sdf是已经算好延迟,STA tools只是分析是不是满足要求而已。

静态时序分析需要计算时序路径的延时,时序路径包括两个基本元素:Timing arc in cells和Timing arcs in netsTiming arcs是一个假想的弧,用来表示输入变化导致输出变化的关系。Timing arc有三个特性分别是unateness、slew和delay。

二、 Timing library

Timing library通常指包含timing, power, noise, function信息的logic library。Timing library为STA提供cells和nets的延时信息。Timing arcs用来体现cells和nets的延时信息。工具通过不同的PVT(process voltage temperature)工作条件下,得到对应的时序信息。目前广泛使用的格式是library,以.lib作为扩展名。

Timing arcs中包含的unateness、slew和delay特性都可以从timing library中查到。

1. Unateness

表示信号的翻转和输入的关系,信号从1到1就是positive unate,从1到0就是negative unate,无关就是nonunate。

图1 从timing library中查到pin(Y)的unateness为positive_unate

2. Slew

指信号电平翻转的速度,即从1变0或从0变1的翻转速度,即是指信号的翻转率,通常slew=constant/(transition time)。

transition time是指信号从高电平转化到低电平或者低电平转化到高电平所花费的时间。Transition time的长短和输入信号input transition以及output的load有关。上升和下降transition时间都是timing arc的特性,输入信号和输出信号都有上升和下降的transition时间。STA工具是通过slew的阈值来计算输入的transition时间

Slew的阈值可以在timing library中定义,输入的上升和下降时间是通过slew的阈值来计算的。 如图2 lib中的index_1是指input transition时间,index_2是指output load值

图2 pin transtion

3. Delay

Delay分为cell delay和net delay,cell delay指信号从输入到输出的时间。Net delay指信号从net的起始点到终点的时间。

Cell delay:Cell中的晶体管需要一定的时间来开关,因此cell的input的改变需要一定的时间才能使得output改变。

Net delay:Net延时是指信号刚传到net上到信号到达这条net的loads的时间。

图3中threshold指从10%到90%或从90%到10%的时间,input_threshold到50%时认为信号到了input端,output_threshold到50%时认为信号到达output端,input_threshold 50%到ouput_threshold 50%之间既是cell delay

图3 delay calculation

Delay(power和timing checks也是使用查找表)和input transition(即slew)和load(即output capacitance)相关,并不是线性的而是离散的点,因此需要用查找表(look up table)查这些值,如图4。

图4 Two dimensional model

4. Timing Library内容

下面就是Timing library的内容,如图5,红框内表示library和delay model,这里是一个非线性的delay model即查找表table_lookup。篮筐表示各种单位,绿框表示threshold和slew的电路传输时间和信号转换时间的电压百分比,橙框表示PVT。

图5 timing libary

Library中也会有default_cell_leakage_power, fanout_load, inout_pin_cap, leakage_power_density等描述漏电功耗,扇出负载和端口电容。以及voltage_map(VDD,0.935), voltage_map(VSS,0)等表示电源和地的电压信息。

在operation_conditions中会描述实际应用中cell所处的工艺/温度/电压:如pross:1, temperature:125, voltage:0.765。也有查找表的二位时序延时模板,二维功耗模板,内部功耗模板等。

图6 power查找表模板

5.Cell部分的library

接下来是cell部分,每个cell都有一个footprint名对应,一个footprint代表一组cells,相同footprint不同cells间的驱动能力可能不同,在进行优化的时候,只有同一类的cell才能进行优化。

图7 cell library

图8、图9是输入输出pin的属性,包含capacitance,direction等信息。

图8 input pin属性
图9 output pin属性

如图10也可以查到cell的timing sense,type及cell delay、transition等。

图10 cell timing_sense、timing_type

三、 wire delay

1. wire delay和WLM

wire delay:互连线延时是由于互连线电阻电容引起的,互连线延时也叫wire delay和net delay。Wire delay分两种,一种是绕线后,由工具抽出互连线的R和C,计算出线的延时;另一种是绕线前,通过wire load model来估算出wire delay。在net中,所有的timing arcs都是positive unate,net delay的计算通常也是从input threshold的50%到output threshold的50%。

Wire load model:WLMs是基于net的fanout和长度来评估R和C(可以代表百分之九十的nets),为工具提供一个绕线前评估方法。Wire load models的特点:统计学的,基于最近的校准面积计算的,选择合适的wire load model过程非常繁琐,就算是定制的wire load model,精准度也是很难说的。

2. 如何计算WLM的wire delay?

首先看block的area,从wire load的table中,选择block的area包含net的area的WLM。基于net的fanout,使用WLM估算net的length。使用电容乘数(CM)和电阻乘数(RM)来决定net的实际RC值。

公式如下:Cnet=CM*length、Rnet=RM

互联线长度 = 扇出1对应的互联线长度+(3-1)x slope

互联线电容 = 互联线长度 x 互联线单位电容值

互联线电阻 = 互联线长度 x 互联线单位电阻值

互联线面积 = 互联线长度 x 互联线单位长度面积值

3. 计算net的delay:Delay=Rnet*Cnet

WLM in library:

WLM包含resistance/cap/area/slope/fanout_length等

图11 wire load lib

Wire load可以从lib中选择不同种类,一般有zero,small,medium,large,huge等。以Wire load small为例,计算net的RC:

CM=0.0001895、RM=0.009、Slope=5.1

对于length大于1,STA工具使用slope来线性计算对应的fanout的length值

Length=7.65+slope*(fanout-1)

Delay = length*0.009*0.0001895

4. 图12有capacitance、fanout与block size的关系

图12 block size与cap、fanout关系

5. SDF、SPEF、WLM何时使用

5.1 SDF工具抽出来的延时信息,可以直接反标到电路上,可以被工具读取,一般用于前端仿真。

5.2 SPEF抽取net的RC值,为STA计算net delay提供RC,一般用于timing signoff

5.3 WLM估算net的RC值,为STA计算net delay提供RC,用于实际绕线前

6. Setup、hold

Setup、hold基础知识就不介绍了。

对于SDC最后生成的report中有一些概念说明一下:

Endpoint:时序路径的信号接收的时序单元,一个endpoint可能对应多个startpoint点。

Startpoint: 时序路径的信号的发射单元,一个startpoint 点可以对应多个endpoint 点。

other End Arrival Time: 0.353,从clk到dff_out/ck的时间。

setup:0.063 ,library setup,可以从timing library 中直接查到,这个值和input transition有关。

Phase shift:1000.000,暂时理解为周期(capture clock 的时钟沿的调整)。

uncertainty: sdc 中通过set_clock_uncertainty 设置。

Required Time: 899.905,要求数据从clk到dff_Out/D 的最大时间。

Arrival Time: 0.503,从clk到dff_out/D的时间。

Slack Time: 899.786,Required Time - Arrival Time。

Hold:0.050 ,library setup,可以从timing library 中直接查到,这个值和input transition有关。

四、 SDC约束

SDC约束一般分为工作环境、设计规则、系统接口、时序例外、时序类、power 6类约束。

1. 工作环境约束

set_operating_conditions、set_wire_load_mode、set_wire_load_model、set_wire_load_selection_group

Set_operating_conditions:指定timing library

wire load mode是为跨层次互联线选择线负载模型的方法。对于多层次设计,注意不同层次的子设计可以与父设计有不同线负载模型,这时除了需要决定某一层次采用何种wire load model,还需要确定对跨越不同层次的net采用何种wire load model。Wire load mode共有三种:TOP、enclosed 和segmented,下图给出了三种模式比较示意,design A和design B间的互联线,且不同层级使用的WLM是不同的。在top模式下,选用50x50 model;在enclosed模式下,选用40x40 model;在segmented模式下,分段选用model。

图13 wire load mode

2. 设计规则约束包括set_max_capacitance、set_max_fanout、set_max_transition、set_min_capacitance。

3. 系统接口约束包括set_drive、set_driving_cell、set_load、set_fanout_load、set_input_transition。

4. 时序类约束包括create_clock、create_generated_clock、set_clock_latency/set_clock_groups/set_clock_sense、set_timing_derate、set_propagated_clock、set_clock_uncertainty(加入margin)、set_input_delay/set_output_delay等。

Timing_derate指人为的把一些timing path设快或设慢。

5. 时序例外约束包括set_false_path、set_min_delay/set_max_delay、set_multicycle_path、set_disable_timing、set_case_analysis。

6. power约束包括set_max_dynamic_power、set_max_leakage_pwer。

java时序图工具_时序分析之STA(1)相关推荐

  1. java时序图工具_每日学习:静态时序分析入门面面观

    关注并标星大同学吧 每天1次,打卡学习 积累1个新知识,增1分职场底气 作者称谓:Jack xu 个人介绍:不断学习的数字后端工程师 微信公众号:志芯 半导体知识分享第41期 技能升级,从这里开始 本 ...

  2. java时序图工具_快速学习时序图:时序图简介、画法及实例

    点击上方☝Java编程技术乐园,轻松关注!及时获取有趣有料的技术文章 做一个积极的人 编码.改bug.提升自己 我有一个乐园,面向编程,春暖花开! 一. 什么是时序图? 时序图(Sequence Di ...

  3. java时序图工具_开源在线绘图工具,界面美观,功能丰富,总有一款适合你

    俗话说,一图胜千言,一张小小的图片可以替代大段的文字说明,更可以形象直观地描述业务流程.展示算法...,下面给大家带来几款我最近收藏的开源在线绘图工具. Ant Design Pro 项目地址:htt ...

  4. java时序图工具_开发必备的小工具,你用过几个?

    今天就简单介绍一下平时用到的一些小工具.首先我平时是用IDEA开发的,所以下面的介绍都是和IDEA相关的.本文主要介绍我平时在哪些场景使用,使用了哪些功能,至于IDEA怎么安装插件和插件有哪些额外的功 ...

  5. java时序图工具_基于时序数据库,实现百亿级话单实时全景监控分析

    背景 随着流量业务的高速发展以及已经到来的5G时代,业务支撑系统的规模不断增大.服务不断增多,业务.应用和系统运行性能指标数据持续以指数级的速度增长,每日计费话单量已突破百亿.系统监控的实时性.准确性 ...

  6. 机械动作时序图怎么画_还在用Visio画时序图?赶紧试试这两款好用的时序图工具(修订版)...

    对于电路设计者来说,在写文档的时候有一款能快速上手又好用的画时序图工具太重要了.之前我们推荐了AndyTiming(详情 好物分享:画时序图利器AndyTiming),能解决不少日常应用.然而,And ...

  7. java反编译工具_如何保护Java程序 才能防止Java反编译

    简介:Java是一种跨平台的.解释型语言.Java 源代码编译中间"字节码"存储于class文件中.Class文件是一种字节码形式的中间代码,该字节码中包括了很多源代码的信息,例如 ...

  8. UML造型——使用EA时序图工具的开发实践和经验

    Enterprise Architect(下面简称EA)是一款基于OMG UML的可视化模型与设计工具.提供了对软件系统的设计和构建.业务流程建模和基于领域建模的支持,被企业和组织不仅应用于对系统的建 ...

  9. 【转】[完全免费] 在线UML Sequence Diagram 时序图工具 - 教程第3部分

    时序图教程 甲序列图描述了一组对象之间的相互作用参与协作(或情况),布置成按时间顺序; 它通过它们的"生命线"和它们发送给对方的消息来显示参与交互的对象. 什么是UML中的序列图? ...

最新文章

  1. Gradle project xxx refresh failed Error:Unable to tunnel through proxy. Proxy returns HTTP/...
  2. java安全(五)java反序列化
  3. 垃圾回收器如何确定哪些对象要回收---《深入理解java虚拟机》
  4. 为什么表格后面打不出0_同样的LOL游戏,为什么BO5和BO3的结局差距如此之大?...
  5. oracle plsql存储过程中out模式参数的用法
  6. Linux UIO 驱动模型
  7. 计算机教师辞职,(多篇)教师辞职报告汇总八篇
  8. sklearn做文本聚类分析
  9. python现在用哪个版本好_python哪个版本好用
  10. 一年月份大小月口诀_《认识年月日》大小月记忆法知识点教学设计
  11. Linux作为哑终端连接服务器,linux – TERM =哑终端必须具备的功能
  12. js切换图片会闪动_js 特效 当鼠标经过的时候 图片闪一下光
  13. 7个实用的Python自动化代码,技术改变生活,不再重复
  14. tomcat7的下载和安装配置
  15. 哈密顿插值c语言,哈密顿系统有限元方法的长时间性质研讨——冯康猜想的证明.pdf...
  16. 关于IOS7 AutoLayout的各种bug
  17. HDU 3234 Exclusive-OR
  18. H3C 小贝WA5320(云AP)瘦转胖版本操作
  19. 老毛桃软件制作U盘启动盘图文教案
  20. retrace 解析混淆代码

热门文章

  1. 用布尔运算去做icon音乐图标
  2. 调用手机闪光灯(项目遇到才写的)
  3. 南京邮电大学计算机自杀,南京邮电大学一研究生跳楼自杀:毕业论文不过关
  4. 量子和ai人工智能_人工智能公司为量子机器学习埋下了种子
  5. 互联网晚报 | 小黄车ofo创始人戴威赴美创业;格力员工称孟羽童考勤异常率超80%;OpenAI CEO在美国国会作证...
  6. 记录电子设计(温度控制器通过蓝牙同手机通信)
  7. fedora 14 安装ati显卡驱动
  8. 【人工智能】我与人工智能的100个问题
  9. Merlion应用:2. Models(forecast)
  10. 密码键盘原理与HTML5应用