一、多周期 multicycle paths

在一些情况下,如下图所示,两个寄存器之间的组合电路传输的逻辑延时超过一个时钟周期。在这样的情况下,这个组合路径被定义为多周期路径(multicycle path)。尽管后一个寄存器会在每一个的时钟的上升沿尝试捕获(capture)数据,但我们会在STA中指定个时钟周期后的上升沿(relevant capture edge)去捕获数据。

以上图为例,组合路径的延时为三个周期,那么三个时钟周期的多周期setup check可以用以下语句进行约束

cerate_clock -name CLKM -period 10 [get_ports CLKM] // 设置时钟源
set_multicycle_path 3 -setup -from [get_pins UFF0/Q] -to [get_pins UFF1/D] //multicycle

这样,我们就达成了下面的图的效果,在第三个时钟沿进行建立时间的检查。

由于工具一般会在建立时间检查时钟沿(capture edge)的前一个时钟沿进行保持时间检查,而在多周期的情况下,这样进行保持时间检查较为严苛,以上图为例,在2nd时钟沿进行保持时间检查,那么,数据需要保持到2nd时钟之后才能变化。所以,在多时钟周期的情况下,我们如果在N个周期后进行简历时间检查,那么我们会将简历时间检查提前N-1个时钟周期。

同样以上面的的电路为例,多周期hold check可以用以下语句进行约束:

cerate_clock -name CLKM -period 10 [get_ports CLKM] // 设置时钟源
set_multicycle_path 2 -hold -from [get_pins UFF0/Q] -to [get_pins UFF1/D] //multicycle

二、半周期 half-cycle paths

如果一个电路设计中同时存在正时钟沿触发和负时钟沿触发的触发器,那么在这种电路中需要进行半周期的检查。

我们以下面的电路为例:

对其进行建立时间检查,那么其检查的时钟沿如下图:

其时序报告如下:

与一般的时序报告不同的是,需要注意startpoint和endpoint,其注明的触发沿是不同的。

由于时序路径中仅有半个时钟周期用来进行建立时间检查,那么我们有额外的半个时钟周期来进行保持时间检查,如下图:

其保持时间检查时序报告如下:

三、伪路径 false paths

某些情况下,一些时序路径可能在电路设计的真实功能中并不存在,我们会在STA中将将这些路径设置为伪路径,这样,工具(prime time)会忽略这些路径,不对其进行时序分析。

一般需要进行伪路径的处理情况有:

1.  从逻辑上考虑,与电路正常工作不相关的那些路径,比如测试逻辑,静态或准静态逻辑。
2.  从时序上考虑,我们在综合时不需要分析的那些路径,比如跨越异步时钟域的路径。

设置伪路径可以减少工具的分析工作,让工具更专注于分析真实的时序路径,而且能减少分析时间。但是,设置过多的伪路径会降低分析的效率,反而使分析速度减慢。

我们有以下几种方法来设置伪路径约束:

set_flase_path -from [get_clocks SCAN_CLK] -to [get_clocks CORE_CLK]
//任何从SCAN_CLK时钟域到CORE_CLK时钟域的时序路径都是伪路径set_false_path -through [get_pins UMUX0/S]
//所有通过这个pin的时序路径都是伪路径

建议减少使用-through,因为through命令会增加分析复杂度。

静态时序分析——多周期、半周期和伪路径相关推荐

  1. 静态时序分析——单周期

    一.建立时间的检查 建立时间的检查是指检查电路里每一个触发器的数据和时钟的关系是否满足建立时间的要求. 我们以上图为例进行建立时间检查.由图可知,我们主要针对第二个触发器UFF1进行检查.我们可以梳理 ...

  2. 免费课程推荐|数字集成电路静态时序分析基础

    讲师介绍: 邸志雄 博士,硕士研究生导师,西南交通大学信息学院电子工程系副系主任.CCF会员.中国图象图形学学会军民融合专委会成员.新工科联盟"可定制计算"专委会成员.研究方向为高 ...

  3. 《静态时序分析实用方法》翻译

    第1章 引言 解释了什么是静态时序分析以及它如何用于时序验证.还描述了功率和可靠性方面的考虑. 概述了纳米设计的静态时序分析程序.本章解决了诸如什么是静态时序分析.噪声和串扰的影响是什么.如何使用这些 ...

  4. 《静态时序分析实用方法》第七章翻译

    第 7 章 配置 STA 环境(Configuring the STA Environment) 第 7 章是后续章节的先决条件.它描述了如何配置时序分析环境.第 7 章描述了指定时钟.IO 特性.伪 ...

  5. 数字IC设计学习笔记_静态时序分析STA_ STA基本概念

    数字IC设计学习笔记 STA基本概念 1. STA基本概念 2. 时序弧概念 Timing Arc 3. 建立时间和保持时间概念 4. 时序路径概念Timing Path 5. 时钟域概念clock ...

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

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

  7. [静态时序分析简明教程(三)]备战秋招,如何看懂一个陌生的timing report

    备战秋招,如何看懂一个陌生的timing report 一.写在前面 1.1 快速导航链接· 二.Timing Report 2.1 起始点与终止点 2.2 路径时钟域的归属 2.2 建立时间检查与保 ...

  8. [静态时序分析简明教程(一)] 绪论

    静态时序分析简明教程一:绪论 一.写在前面 1.1 快速导航链接· 二.什么是静态时序分析 三.为什么需要时序约束 四.约束的第一步:综合 4.1 什么是综合 4.2 综合与时序约束的关系 4.2.1 ...

  9. 静态时序分析简明教程(七)]端口延迟

    端口延迟 一.写在前面 1.1 快速导航链接· 二.端口延迟 2.1 输入有效 2.2 输出有效 2.3 set_input_delay 2.3.1 -clock clock_name 2.3.2 - ...

最新文章

  1. 【248】◀▶IEW-Unit13
  2. 给研究思路就能推荐数据集,还能分析语料“毒性”,CMU博士后等人推出NLP数据处理神器...
  3. Redis快速扫描Scan
  4. mysql join 循环_MySQL的JOIN(三):JOIN优化实践之内循环的次数
  5. linux安装pdo mysql扩展_linux下php安装pdo_mysql扩展
  6. 这个游戏引擎开源了!
  7. MATLAB求解线性规划(含整数规划和0-1规划)问题
  8. px4讲解(一)历史起源
  9. oracle用exp定时备份数据库,oracle exp备份数据库
  10. python词组语义相似度_语义相似度
  11. 010-win10任务栏假死—重启“Windows资源管理器”。
  12. CSDN竞赛—第六期题解与感想
  13. 从阿里云下载centos的步骤
  14. 【九九归一|算法强化】HOT 算法①
  15. LINGO编程(基础)
  16. 同余 --算法竞赛专题解析(22):数论
  17. CSDN专家博客手机客户端分享使用
  18. Heat map(热力图)
  19. 北大和人大两年整理出来的书单(经济&管理&商业)
  20. 【锐捷路由】BGP配置

热门文章

  1. php四种基础算法:冒泡,选择,插入和快速排序法
  2. HDU 4631 Sad Love Story 平面内最近点对
  3. 架构师之路(1)---面向过程和面向对象
  4. zookeeper watch笔记
  5. Mysql中遇到的错误
  6. Unity 新手入门 如何理解协程 IEnumerator yield
  7. scroll-view——小程序横向滚动
  8. OpenCV人脸检测
  9. C#= 栈模仿堆的操作
  10. old header