目录

1 静态时序分析(Static Timing Analysis)

2 波形的压摆(Slew)

3 信号偏斜(Skew)

4 时序路径(Clock Path)

5 时序弧(Timing Arc)

6 时钟域(Clock Domain)

7 工作环境(Operating Condition)

8 时序模型(Timing Model)

9 时序检查(Timing Check)

10 功率(Power)

参考文献


1 静态时序分析(Static Timing Analysis)

  • 静态时序分析(Static Timing Analysis):静态执行对于数字设计时序的分析,不依赖于施加在输入端口上的激励,验证设计是否可以安全地运行在给定的时钟频率下且没有时序违例
  • 时序仿真(Timing Simulation):施加一组激励,观察在这组激励下电路行为是否符合要求,然后换一组激励再重复以上过程
  • 建立时间检查:保证数据可以在给定时钟周期内到达触发器
  • 保持时间检查:保证数据在被触发器采样后还能保持一定时间,不会漏采数据
  • STA的运行:
    • 在逻辑设计的逻辑综合后运行:确定最差或关键的时序路径
    • 在逻辑设计的逻辑优化后运行:查看是否有剩余的唏嘘违例路径需要优化,或确定关键路径
    • 在物理设计中:可以在每一部执行STA以确定最差路径
  • 不同阶段下,STA采用的模型:
    • 逻辑设计阶段:

      • 理想的互连线或基于线负载模型的互连线
      • 带有延迟和抖动估计值的理想时钟
    • 物理设计阶段(包括上面2种模型):
      • 具有近似估计值的全局布线的互连线、具有近似寄生参数提取值的实际布线的互连线、具有可以签核(Signoff)精度寄生参数提取值的实际布线的互连线
      • 实际的时钟树
      • 包括串扰的影响或者不包括串扰的影响
  • SDC(Synopsys Design Constraints):设计约束文件基于TCL(Tool Command Language)格式,由Synopsys公司开发定义,用于电路的逻辑综合,对电路的时序、功耗、面积等进行约束。

2 波形的压摆(Slew)

  • 波形(Waveform):定义时钟的高电平时间
  • 上升沿(Rising):时钟信号从0到1的转变时间
  • 下降沿(Falling):时钟信号从1到0的转变时间
  • 有效沿(Active):分为上升沿和下降沿
  • 转换时间(Transition Time):信号在两个特定电平之间转换所需要的时间
  • 压摆率(Slew Rate):电压转换速率
  • 下降压摆(Fall Slew):下降沿达到Vdd的slew_upper_threshold_pct_fall和slew_lower_threshold_pct_fall的时间之差
  • 上升压摆(Rise Slew):上升沿达到Vdd的slew_lower_threshold_pct_rise和slew_upper_threshold_pct_rise的时间之差
  • 压摆阈值点的选择对应的是波形的线性部分
  • 压摆降额系数(Slew Derate Factor):用slew_derate_from_library进行配置,压摆测量预置点为30%和70%且压摆降额系数为0.5,等效于测量阈值点为10%和90%,(70 - 30) / (90 - 10) = 0.5

3 信号偏斜(Skew)

  • 时钟延迟(Clock Latency):从时钟源到终点所花费的总时间,SDC中用set_clock_latency命令显式地指定时钟树的延迟
  • 时钟抖动(Jitter):信号时间与理想事件时间的偏差(Deviation)
  • 时钟偏斜(Clock Skew):到达不同时钟树终点的时间差,是最长时钟路径和最短时钟路径的延迟差,时钟偏斜在SDC中用set_clock_uncertainty命令显式指定时钟不确定度的值,该值包括时钟抖动、时钟偏斜估计值和额外悲观度

4 时序路径(Clock Path)

  • 路径延迟(Path Delay):逻辑通过逻辑路径传播的总延迟,包括逻辑路径中经过各个逻辑单元和网络走线的延迟
  • 最大时序:逻辑从时钟的根节点到达逻辑终点的最大延迟时间
  • 最小时序:逻辑从时钟的根节点到达逻辑终点的最小延迟时间
  • 最大时序路径:也称为晚路径(Late Path),延迟最大的路径
  • 最小时序路径:也称为早路径(Early Path),延迟最小的路径

5 时序弧(Timing Arc)

  • 时序敏感(Timing Sense):输出如何针对输入的不同跳变类型而变化
  • 时序弧(Timing Arc):每个输入引脚到每个输出引脚都存在一条时序弧
  • 正单边类型(Positive Unate):输入引脚上升沿跳变导致输出引脚电平上升(或不变),而输出引脚的下降沿跳变导致输出引脚电平下降(或不变),表示输出引脚电平跳变方向与输入引脚电平跳变方向相同
  • 负单边类型(Negative Unate):输入引脚上升沿跳变导致输出引脚电平下降(或不变),而输出引脚的下降沿跳变导致输出引脚电平上升(或不变),表示输出引脚电平跳变方向与输入引脚电平跳变方向相反
  • 非单边类型(Non-Unate):仅从一个输入引脚的跳变方向无法确定引脚电平将如何跳变,还取决于其他输入引脚的状态

6 时钟域(Clock Domain)

  • 时钟域:由同一时钟驱动的一组触发器
  • 时钟域独立:不存在从一个时钟域开始而在另一个时钟域结束的数据路径
  • 伪路径(False Path):将时钟同步器(Clock Synchronizer)逻辑明确放在两个时钟域之间,不是真实的时序路径,数据没有被约束要在一个时钟周期之内通过同步器逻辑传播,在SDC中用set_false_path命令指定时钟域之间的伪路径

7 工作环境(Operating Condition)

(1)静态时序分析3种标准的工作环境:

  • 最坏情况下的慢速WCS(Worst-Case Slow):工艺慢(Slow)、温度最高(如125°C)、电压最低(如1.2V x 90%)
  • 典型TYP(Typical):典型(Typical)工艺,温度是额定值(如25°C),电压是额定值(如1.2V)
  • 最佳情况下的快速BCF(Best-Case Fast):工艺快(Fast),温度最低(如-40°C),电压最高(如1.2V x 110%)

(2)功耗分析(Power Analysis)工作环境:

  • 最大漏电功耗ML(Maximal Leakage):工艺快,温度最高(如125°C),电压最高(如1.2V x 90%)
  • 典型漏电功耗TL(Typical Leakage):经典工艺,温度最高(如125°C),电压是额定值(如1.2V)

8 时序模型(Timing Model)

  • 时序模型:对设计中的单元实例(Instance)工作时的实际情况进行建模
  • 线性延迟模型(Linear Delay Model):D = D0 + D1 x S + D2 x C,D0、D1、D2为常数,D为逻辑单元的延迟,S为输入过渡时间,C为输出负载电容
    • 输入过渡时间(Input Transition Time):信号过渡时间越大,延迟越大
    • 输出负载电容(Output Load Capacitance):负载电容越大,延迟越大
  • 非线性延迟模型(NLDM,Non-Linear Delay Model):以二维形式表示,两个独立变量是输入过渡时间和输出负载电容,表中的数值表示延迟
    • 计算延迟:cell_rise、cell_fall
    • 计算逻辑单元输出引脚的过渡时间:rise_transition、fall_transition
  • 状态相关的时序模型(State-Dependent Model):取决于引脚状态的多个时序模型
    • 使用when来指定与状态有关的条件
    • 可以既使用状态相关的时序模型又使用非状态相关的时序模型来指定一些时序关系
  • 黑盒(Black Box)的接口时序模型:其可以具有以下时序弧:
    • 纯组合逻辑路径的输入到输出的时序弧
    • 从同步输入端口到相关时钟端口的建立时间和保持时间时序弧
    • 从异步输入端口到相关时钟端口的恢复时间和撤销时间时序弧
    • 从时钟端口到输出端口的输出传播延迟
  • CCS时序模型(Composite Current Source,复合电流源):使用随时间变化且依赖电压的电流源,为不同情况下的接收引脚电容和输出充电电流指定详细时序模型
    • 接收引脚电容(Receiver Pin Capacitance):在过渡波形的不同部分分别指定接收引脚电容,用receiver_capacitance_rise和receiver_capacitance_fall分别定义输入引脚上用于上升沿波形的接收电容及输入引脚上用于下降沿波形的接收电容
    • 输出充电电流(Output Charging Currents):根据输入过渡时间和输出负载电容的不同组合指定随时间变化的输出电流,用output_current_rise和output_current_fall来分别定义上升输出波形的输出电流及下降输出波形的输出电流
  • CCS噪声模型(CCSN,CCS Noise):对单元内不同的CCB进行表示
    • CCB(Channel Connected Block):沟道连接块,是单元的源极(Source)、漏极(Drain)的沟道(Channel)的连接块
    • du_current定义输出引脚上针对输入和输出引脚电压不同组合的直流电流
    • output_voltage_rise和output_voltage_fall定义CCB输出上升和下降的时序信息
    • propagated_noise_high和propagated_noise_low定义通过CCB的串扰噪声传播信息,包括输入噪声幅值和宽度

9 时序检查(Timing Check)

  • 同步时序检查(Synchronous):建立时间和保持时间检查

    • 建立时间(Setup Time):输入的数据必须在有效时钟沿之前保持稳定的最短时间
    • 保持时间(Hold Time):有效时钟沿之后输入的数据必须保持稳定的最短时间
    • timing_type决定该时序逻辑单元是上升沿触发还是下降沿触发,rise_constraint和fall_constraint决定时间约束
    • 负值保持时间表示触发器的数据引脚可以在时钟引脚之前改变,并且仍然满足保持时间的检查要求
    • 建立时间和保持时间的数值总和应为正值
  • 异步时序检查(Asynchronous):恢复时间和撤销时间检查
    • 异步恢复时间和撤销时间检查:验证异步引脚在下一个时钟有效边沿处是否已明确返回到了无效状态

      • 异步引脚无效状态(Inactive):有效时钟沿将开始锁存输入的数据
      • 异步引脚有效状态(Active):输出由异步引脚控制
    • 恢复时间(Recovery Time):异步输入被置为无效(De-asserted)后在下一个有效时钟沿之前需要保持稳定的最短时间
    • 撤销时间(Removal Time):一个有效时钟沿后,异步引脚必须保持有效状态的最短时间,即在有效时钟沿之后必须经过一段撤销时间才能将异步引脚置为无效状态
    • 脉冲宽度检查(Pulse Width Check):确保逻辑单元引脚上的脉冲宽度满足最低要求,timing_type为min_pulse_width
  • 对于触发器的同步输出,有着从时钟引脚(CK)到输出端口(Q或QN)传播延迟检查
    • 传播延迟(Propagation Delay):从时钟的有效沿到输出的上升沿或下降沿

10 功率(Power)

  • 有功功率(Active Power):与单元输入和输出引脚上的行为有关

    • 输出开关功率(Output Switching Power):与单元类型无关,取决于输出负载电容、开关频率和供电电源
    • 内部开关功率(Internal Switching Power):取决于单元类型,是当单元的输入或输出处于活动状态时单元内部的功耗
    • 触发器在每次时钟切换,都会消耗功率,通常是由触发器单元内部反相器的开关引起。即使触发器输出未切换,也会消耗由于时钟引脚切换引起的功率
  • 漏电功率(Leakage Power):与MOS器件的亚阈值电流和栅极氧化物隧穿电流有关
    • 高阈值电压单元漏电小,速度慢;低阈值电压单元漏电打,速度快
    • 温度越高,亚阈值电流越高

参考文献

[1]Bhasker, J.,Chadha, Rakesh著. 赵俊军译. Static Timing Analysis for Nanometer Designs: A Practical Approach. Springer US,2009.06;

[2]陈春章,艾霞,王国雄. 数字集成电路物理设计,[M]北京:科学出版社,2008.08;

芯片后端开发基础知识(二)相关推荐

  1. 芯片后端开发基础知识(一)

    目录 1 概要 2 术语和定义 3 网表和系统划分 4 布局布线 4.1 布图规划 4.2 电源规划 4.3 布局 4.4 布线 5 时钟树综合 参考文献 1 概要 1.物理设计包含哪些流程和阶段?每 ...

  2. IM开发基础知识补课(四):正确理解HTTP短连接中的Cookie、Session和Token

    1.前言 众所周之,IM是个典型的快速数据流交换系统,当今主流IM系统(尤其移动端IM)的数据流交换方式都是Http短连接+TCP或UDP长连接来实现.Http短连接主要用于从服务器读取各种持久化信息 ...

  3. FPGA开发基础知识

    FPGA开发基础知识 FPGA介绍 FPGA硬件内部结构 FPGA开发流程 数字信号和模拟信号的定义 常用数据类型 IP核的使用 Verilog HDL基本语法 注意点 结束语 FPGA介绍 FPGA ...

  4. SP 短信开发-基础知识篇

    SP 短信开发-基础知识篇 很土的话题,但是最近帮朋友做这个东西,所以写点东西出来给初学者参考. 一.准备资料 SP开发资料网站上有很多,但是主要是以下几个文档: 1.MISC1.6 SP订购通知接口 ...

  5. IM开发基础知识补课(三):快速理解服务端数据库读写分离原理及实践建议

    1.前言 IM应用从服务端数据的角度来看,它是一种很特殊的应用场景,抛开基础数据.增值业务和附属功能不谈,单从IM聊天工具的立身之本--聊天数据来说,理论上是不需要在服务端存储的(或者说只需要短暂存储 ...

  6. IM开发基础知识补课(一):正确理解前置HTTP SSO单点登陆接口的原理

    1.前言 一个安全的信息系统,合法身份检查是必须环节.尤其IM这种以"人"为中心的社交体系,身份认证更是必不可少. 一些PC时代小型IM系统中,身份认证可能直接做到长连接中(也就是 ...

  7. iOS开发基础知识--碎片27

     iOS开发基础知识--碎片27 1:iOS中的round/ceil/floorf extern float ceilf(float); extern double ceil(double); ext ...

  8. IM开发基础知识补课:正确理解前置HTTP SSO单点登陆接口的原理

    1.前言 一个安全的信息系统,合法身份检查是必须环节.尤其IM这种以"人"为中心的社交体系,身份认证更是必不可少. 一些PC时代小型IM系统中,身份认证可能直接做到长连接中(也就是 ...

  9. 【嵌入式Linux】嵌入式Linux驱动开发基础知识之Pinctrl子系统和GPIO子系统的使用

    文章目录 前言 1.Pinctrl子系统 1.1.为什么有Pinctrl子系统 1.2.重要的概念 1.3.代码中怎么引用pinctrl 2.GPIO子系统 2.1.为什么有GPIO子系统 2.2.在 ...

最新文章

  1. Leecode 1583.统计不开心的朋友
  2. http://blog.51cto.com/wbb827/1175634
  3. Linux 查看当前用户id和组id
  4. PlateSpin 完全复制由于LVM没有可用空闲空间导致失败
  5. python赋值语句的作用_Python之语句与函数
  6. python远程控制电脑_python如何实现远程控制电脑(结合微信)
  7. stanford sentiment treebank 数据集
  8. mysql数据库优化面试redis持久化_【大厂面试06期】谈一谈你对Redis持久化的理解?...
  9. 在powerDesigner中通过SQL生成pdm
  10. 28万个开源项目之番外篇
  11. c4d打开没反应_野分享:一大波C4D插件的测试以及分享
  12. MySQL学习2:表的创建和增删改
  13. pythonarcgis插件_【直播】基于Python开发ArcGIS插件:Python Add-in丨城市数据派
  14. 9款用HTML5/CSS3制作的动物、人物动画
  15. matlab中的sjy定义,sjy(sjy是什么缩写)
  16. 网络 | NAT、SNAT、DNAT
  17. gis影像格式img转为ecw_ecw格式遥感影像拼接时会有影像吗
  18. unity2D横版游戏教程8-音效
  19. 莫道君行早更有早来人(二)几点网络技术的想法
  20. “IND-”安全概念的简单解释(IND-CPA,IND-CCA等)

热门文章

  1. 泡mm手机短信大集合80条
  2. 清华计算机专业2020保研名单,清华大学2020届保研情况
  3. 从春节送祝福谈谈 IO 模型(二)
  4. 详细解析Java和PHP到底哪个好!!
  5. iOS自定义backBarButtonItem的点击事件
  6. dss_linkis(dataspherestudio-1.1.1、linkis-1.1.1)拓展工具安装——数据交换工具Exchangis
  7. 计算Π(圆周率)的近似值
  8. android:股票代码大全
  9. 前端Q线上年会活动邀请函(文中送现金红包等大量福利)
  10. 《CSS权威指南》--附录