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

一、多周期 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命令会增加分析复杂度。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/253853.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网络七层协议之物理层

我们以一个非常简单的例子开始: 两服务器通讯问题 如上图,有两台服务器,分别是 Server 1 和 Server 2 。 我们先做一个假设:计算机网络现在还没有被发明出来, 作为计算机科学家的你,想在这两台服务器间传递…

静态时序分析——On-chip Variation

OCV(on-chip variation)是指在同一个芯片上, 由于制造工艺和环境等原因导致芯片上各部分特征不能完全一样,从而造成偏差,对时序分析造成影响。这些偏差对互联线和cell的延时都是有影响的。 由于OCV对延时有影响,那么我…

[转载]IIS7报500.23错误的解决方法

原文出处: 原文作者:pizibaidu 原文链接:http://pizibaidu.blog.51cto.com/1361909/1794446 背景:今天公司终端上有一个功能打开异常,报500错误,我用Fiddler找到链接,然后在IE里打开&#xff0c…

关于用户空间和内核空间

当一个任务(进程)执行系统调用而陷入内核代码中执行时,我们就称进程处于内核运行态(内核态)。在内核态下,CPU可执行任何指令。当进程在执行用户自己的代码时,则称其处于用户运行态(用…

静态时序分析——Timing borrow

Timing Borrow技术又称为cycle stealing技术,主要是利用latch的电平敏感特性,通过有效电平获取数据,通过无效电平保持被锁存的数据,主要用于解决路径时序不满足电路要求的情况。 通过TimingBorrow可以对电路进行加速,当路径延迟较…

基于MTD的NAND驱动开发(二)

基于MTD的NAND驱动开发(二) 基于MTD的NAND驱动开发(三) http://blog.csdn.net/leibniz_zsu/article/details/4977853 http://blog.csdn.net/leibniz_zsu/article/details/4977869 四、基于MTD的NAND 驱动架构 1 、platform_device 和platform_driver 的定义和注册 对于我们的…

静态时序分析——Data to data check

setup和hold的检查也有可能发生在任意两个数据端口,其中不包括时钟端口。 我们将其中一个端口(pin)设置为约束端口(constrainted pin),就像触发器中的数据端口;将另一个一个端口(pin…

静态时序分析——Clock Gating check

门控时钟是RTL级进行低功耗设计的最常用方法,能够有效降低动态功耗。在实际使用中,一般用ICG(集成门控时钟单元)来完成clock gating。ICG电路和时序如下: 通常来说,工艺库已经集成了ICG,在做门控…

IC设计常见设计思想

速度与面积互换原则 所谓速度,是指整个工程稳定运行所能够达到的最高时钟频率,它不仅和电路内部各个寄存器的建立时间、保持时间以及外部器件接口的各种时序要求有关,而且还和两个紧邻的寄存器间的逻辑延时,走线延时有关。所谓面…

eclipse中如何配置tomcat

1.打开eclipse上面的Windows选项,选择Preferences>Server>Runtime Environments>Add 2.选择你电脑中安装的tomcat的版本我的是8所以我选的是Apache Tomcat v8.0 3,Next>Browse选择Tomcat的安装目录,选择jdk 4.Finish>OK tomcat配置完成。…

数字IC验证学习(一)

一、数据类型 1、logic logic类型只能有一个驱动。使用wire和reg的地方均可使用logic,但如双向总线等有多个驱动的地方,则不可使用logic。 2、二值逻辑 对于二值逻辑变量与DUT中的四值逻辑变量连接时,如果DUT中产生了X和Z,会被…

任意小数分频设计

对于任意小数分频,如果有PLL的话,直接倍频再分频即可;或常用的方法有双模前置小数分频和脉冲删除小数分频。前一种方法设计较为复杂,因此主要以第二种方式为主设计了一下。 任意小数均可以化为分数,例如要进行5.3分频即…

Bootstrap--圆角图片`圆形图

转载于:https://www.cnblogs.com/qiyiyifan/p/6159823.html

逻辑综合——概述与基本概念

逻辑综合系列主要说明以下问题: 为什么要逻辑综合逻辑综合的基本原理逻辑综合需要提供哪些文件逻辑综合过程中施加约束逻辑综合能产生那些结果 综合是前端设计的重要步骤之一,其过程是将行为描述的电路、RTL级的电路转换到门级,其目的在于&a…

Swoole 源码分析——Server模块之初始化

前言 本节主要介绍 server 模块进行初始化的代码,关于初始化过程中,各个属性的意义,可以参考官方文档: SERVER 配置选项 关于初始化过程中,用于监听的 socket 绑定问题,可以参考: UNP 学习笔记—…

linux下搭建git服务器

安装 Git Linux 做为服务器端系统,Windows 作为客户端系统,分别安装 Git 服务器端: #yum install -y git 安装完后,查看 Git 版本 [rootlocalhost ~]# git --version git version 1.7.1 客户端: 下载 Git for Windows&…

逻辑综合——工艺库

一、库文件的设置 运行DC时需要用到的库文件有:目标库(target library)、链接库(link library)、符号库(symbol library)、算术运算库(synthetic library)。 1、目标库…

[COGS 0065][NOIP 2002] 字串变换

65. [NOIP2002] 字串变换 ★★ 输入文件:string.in 输出文件:string.out 简单对比时间限制:1 s 内存限制:128 MB [问题描述] 已知有两个字串A\$, B\$及一组字串变换的规则(至多6个规则): A1\$ ->…