文章目录

  • 时序优化
  • 1.优化建立时间和时序设计规则
    • 1.1 改变单元位置
    • 1.2 改变单元的大小
    • 1.3 插入缓冲单元
    • 1.4删除缓冲单元
    • 1.5 重分配负载
    • 1.6 时钟有用偏斜
  • 2.优化保持时间

更多知识参考:详解建立时间和保持时间

时序优化

解决时序收敛的问题也是静态时序分析中的主要任务。静态时序分析中可以通过自动和手动两种方式完成物理上和时序上的优化工作,其优化时序的类型主要分为建立时间、保持时间和时序设计规则3种。

解决建立时间不满足的方法:

  • 加强约束,重新进行综合,对违规的路径进行进一步的优化,但是一般效果可能不是很明显
  • 降低时钟频率,但是这个一般是在项目最初的时候决定的,这个时候很难再改变
  • 拆分组合逻辑,插入寄存器,增加流水线,这个是常用方法
  • 优化布局布线,减小传输的延时

解决保持时间不满足的方法:

  • 增加组合逻辑的处理时间,一般就是在后端的时候插入buffer
  • 减少时钟的延时

1.优化建立时间和时序设计规则

1.1 改变单元位置

不合理的单元物理位置会使信号线过长而导致线负载和线延时变大,从而影响时序收敛。

可以通过优化单元的物理位置来达到提高时序性能的目的

1.2 改变单元的大小

通常标准单元库提供了多种驱动能力的单元。延时随驱动能力增大而递减,因此把由于负载过大导致延时恶化的单元调整为驱动能力更大的同类型单元,可以改变时序性能。
同样,驱动能力小的同类型单元对前级驱动单元所表现的负载电容也较小,将驱动能力大的负载单元换成驱动力小的负载单元,可以减小前级驱动单元的输出负载,从而改善前级驱动单元的时序性能。
总而言之,前级驱动单元可以换成驱动能力大的单元,负载可以换成驱动能力小的单元。

1.3 插入缓冲单元

随着工艺尺寸的不断缩小,其线延时增加与线长近似成正比指数性关系,而增加缓冲单元个数与延时近似成正比线性关系
在单元位置比较合理,同时单元驱动力已经达到最大时的情况下,如果单元驱动信号线负载仍然过大而导致延时过大的情况,可以通过在长距离信号线中间增加合适的缓冲单元来提高延时性能。

1.4删除缓冲单元

如果设计中存在插入缓冲器单元不合理的情况,那么可以通过删除导致降低时序性能的缓冲单元,来达到优化时序性能的目的。

1.5 重分配负载

在设计中存在扇出(fanout)负载不合理的情况。
可以通过插入缓冲单元重新分配扇出负载来优化时序的目的。

1.6 时钟有用偏斜

现如今用的较多的useful skew,称为有用偏差。skew会恶化timing结果,但如果合理使用,那skew也可以起到修复timing的作用,从而提高设计的频率。
工作原理就是在两个串行的时序路径中,通过借用其中一条时序路径的延时余量的方法来修复另一条时序路径上时序违反的问题
如下图:时钟周期为4ns,各时钟路径延迟如下:可以看到有一条路径的slack为-1ns,说明路径违规。可以看到与这条路径相关的skew是t3-t2=-1ns。

下面我们利用useful skew向前面一个slack比较充裕的路径(slack=2ns)借用1ns的时间,这两条path都meet了时序要求。如下图:

这就是useful skew的作用,可以向前或者向后借time来修正violation
在Aguda工具中,需要设置以下参数:

2.优化保持时间

优化保持时间的方法相对简单。主要通过插入延时单元(delay cell)来显著增加时序路径整体延时来达到满足保持时间要求的目的

参考:
https://blog.csdn.net/qq_39507748/article/details/122071160
集成电路静态时序分析与建模——刘峰

静态时序分析-时序违例解决方法相关推荐

  1. 织梦php调用出来的是乱码,织梦标签array runphp静态生成乱码BUG解决方法

    这篇文章主要为大家详细介绍了织梦标签array runphp静态生成乱码BUG解决方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,有需要的朋友可以收藏方便以后借鉴. 在织梦模板的开发过程中,我 ...

  2. IOS7 IOS8设置静态壁纸闪退解决方法(不越狱通用)

    越狱之后无意间设置静态壁纸发现闪退,提供如下解决方法. 1.PC端安装itunes 2.安装pp.itools等电脑端手机管理助手 (本例以itools为例) 3.删除如下文件,见下图 4.重启手机, ...

  3. 静态时序分析—时序借用(Timing Borrow)

    时序借用(timing borrow)又称周期窃用(cycle stealing),利用的是锁存器(latch)电平触发的特性,当锁存器信号未锁存时,锁存器进入透明状态相当于缓冲器(buffer),这 ...

  4. 静态时序分析-建立时间和保持时间违例分析

    文章目录 单一分析模式 setup公式 hold公式 1.建立时间分析 2.保持时间分析 单一分析模式 时序分析模式分别为:单一分析模式(single mode).最好-最坏分析模式(BC_WC mo ...

  5. 静态时序分析(一):基本概念

    时序分析时FPGA设计中永恒的话题,也是FPGA开发人员设计进阶的必由之路.慢慢来,先介绍时序分析中的一些基本概念. 1. 时钟相关 时钟的时序特性主要分为抖动(Jitter).偏移(Skew).占空 ...

  6. 静态时序分析(STA)基本概念

    STA(Static Timing Analysis,静态时序分析)是时序分析方法中的一种,另一种叫时序仿真(Timing Simulation),不仅能验证时序还可以验证功能,时序分析通常指的就是这 ...

  7. TCL与STA静态时序分析----邸志雄课程

    一.TCL语言 1. TCL概述 1.1 启动TCL 1.2 置换 1.2.1 变量置换 1.2.2 命令置换 1.2.3 反斜杠置换 1.3 变量.数组和列表 1.3.1 变量 脚本语言的变量可以存 ...

  8. cgo+gSoap+onvif学习总结:5、获取profileToken、rtsp流地址、快照地址及cgo程序signal SIGSEGV: segmentation violation解决方法

    cgo+gSoap+onvif学习总结:5.获取profileToken.rtsp流地址.快照地址及cgo偶发signal SIGSEGV: segmentation violation分割违例解决方 ...

  9. 关于springboot访问不到static里面的js文件解决方法(仅供参考)

    关于springboot访问不到static里面的js文件解决方法(仅供参考) 遇到的问题 1.在html页面中引入jQuery文件后使用$符号会提示未被定义 2.静态资源无法访问 解决方法 1.$符 ...

最新文章

  1. 第八周项目实践6 KMP算法(串的模式匹配)
  2. java高级应用:线程池全面解析
  3. python画代码流程图_Python使用graphviz画流程图过程解析
  4. qq分享提示设备未授权_QQ帐号已经可以注销了,过去几天,第一批尝试的人已经放弃了!...
  5. MyEclipse9安装Checkstyle5.5插件(图解)
  6. Hologres揭秘:优化COPY,批量导入性能提升5倍+
  7. JavaOne 2012 – 2400小时! 一些建议
  8. objective-c 语法快速过(4)
  9. excel python插件_如何利用Excel与Python制作PPT
  10. 【 ORA-27102: out of memory处理】
  11. Windows 2000服务器安全配置精华技巧
  12. css整张背景 多边形,JS/CSS3 低多边形大红绸缎全屏背景图(无图片)
  13. python怎么读写文件-一文看懂Python文件的读取写入操作,建议收藏-bak文件怎么打开...
  14. 一个删除文件的批处理
  15. 深入研究ActivityMQ
  16. 网页制作html新手代码,网页制作HTML基础标签代码大全
  17. 计算机网络-DHCP的工作原理,IP地址如何获取
  18. UI设计(用户界面设计)的好处
  19. java和jdbc操作数据库MySQL
  20. 一文吃透MySQL面试八股文

热门文章

  1. R语言data.table简介
  2. 开源会是SD-WAN的发展方向吗?
  3. 查看交换机每个端口连接的mac从而知道连接的IP计算机
  4. 压缩感知与临近点算子
  5. 从几个方面制作网站seo优化整体方案
  6. 所有程序中的java在哪里设置密码_关于安全性:如何在桌面客户端应用程序(Java)中存储密码和敏感数据?...
  7. 想要实验结果准确?玻璃器皿清洗方法和要点你可得知道!
  8. 稠密集和疏朗集_稠密集与疏朗集
  9. 第八章 win10+gsoap+onvif+ffmpeg
  10. 微型计算机室内太干燥,暖气屋里太干燥怎么办 七种方法增加室内湿度