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

2023-11-13

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

静态时序分析——多周期、半周期和伪路径 的相关文章

  • Linux多线程:线程分离

    第三方的线程库 Compile and link with pthread The pthread detach function marks the thread identified by thread as detached When
  • python14异常处理

    1 错误 有的错误是程序编写有问题造成的 比如本来应该输出整数结果输出了字符 串 这种错误我们通常称之为 bug bug 是必须修复的 有的错误是用户输入造成的 比如让用户输入 email 地址 结果得到一个空字 符串 这种错误可以通过检查
  • 克鲁斯卡尔算法(kruskal)

    我自己感觉 克鲁斯卡尔算法比普利姆算法更好理解 它就两个要点 排序和判断是否成环 排序 我们把两两相邻的边根据边的权值 从小到大依次排序 这个十大排序算法可以自己选一个去实现下 刚好还可以回忆下以前的算法 下面我们使用冒泡来实现边的排序 是
  • CentOS8搭建Web服务器笔记1 Nginx+Php8基础环境

    CentOS8搭建Web服务器笔记1 Nginx Php8基础环境 1 Nginx 1 1 Yum工具安装 1 1 1 查询Yum默认安装源版本 1 1 2 配置最新安装源 1 1 3 yum安装nginx 1 1 4 启动nginx服务
  • 4.4 Go语言中的单元测试

    基本概念 上一节提到 代码完成的标准之一还包含了单元测试 这部分也是很多开发流程中不规范的地方 写过单元测试的开发人员应该理解 单元测试最核心的价值是为了证明 为什么我写的代码是正确的 也就是从逻辑角度帮你检查你的代码 但是另外一方面 如果
  • 谈谈古典的《拆掉思维里的墙》

    写在前面 这是考完高考 拿到深圳大学录取通知书之后 年级发布的第一个作业 就是看一篇年级推荐的书写一篇读后感 不过写完回校之后年级居然把这事给忘记了 写了文章没人看不是很好 于是就放上C站呆着 留点痕迹 也许算正文 距离上一次写读后感已经不
  • 决策树(Decision Tree)

    文章目录 1 决策树简介 2 决策树原理 2 1 引例 2 2 生成算法 2 2 1 ID3 信息增益 2 2 2 C4 5 信息增益率 2 2 3 CART 基尼指数 2 3 三种算法的对比 2 4 剪枝处理 2 4 1 预剪枝 2 4
  • 怎么让VSCode标签栏只展示一个窗口

    怎么让VSCode标签栏只展示一个窗口 问题 解决方法 参考 问题 我们希望VSCode窗口的标签栏是这么分开显示标签的 但是 偶尔重启该应用 会突然发现变成了只显示一个标签 不会再分开展示了 变成了一个文件名加路径了 这种情况下原来的标签
  • Oracle 表空间、段、区、块概述

    文章目录 图示 表空间 tablespace 数据段 segment 区 extent 数据块 block 图示 修改中 请稍等 段 存在于 表空间 中 段 是 区 的集合 区 是 数据块 的集合 数据块 会映射到 磁盘块 以实体 关系图的
  • Request_获取请求参数通用方式介绍

    1 获取请求参数通用方式 不论get还是post请求方式都可以使用下列方法来获取请求参数 1 String getParameter String name 根据参数名称获取参数值 username zs password 123 2 St
  • 除了Midjourney和Stable Diffusion,还有哪些AI模型可以使用

    Midjourney是一款广受设计师和艺术家欢迎的人工智能图像生成器 然而 最近它停止提供免费试用 让许多用户开始寻找替代品 在本文中 我们为您编制了一个2023年可尝试的十大Midjourney替代品列表 我们包括了免费和付费选项 让您可
  • [台服公主链接]修改ROOT检测

    类路径 Project smali jp co cygames androidroot CheckApp smali 原始代码 method public static isRootUser Z locals 7 prologue cons

随机推荐

  • CSS Flex相关属性(自我总结)

    把容器做成flex弹性盒 display flex 容器属性 1 flex direction 项目排列方向 主轴方向 row 左对齐 横向排列 默认 row reverse 右对齐 反转横向排列 column 纵向排列 column re
  • JAVA 计算日期属于当月第几周(日期周计算)

    JAVA 计算日期属于当月第几周 日期周计算 本文周计算时间方式为 当月第一个周一为第一周 计算 获取月第一个周一 从当月第一天开始找 第一个周一时间与 sourceTime 传入时间对比 sourceTime在第一个周一时间之前 表示属于
  • Twitter开发者账号及开发者APPs的创建 2019.05

    转自 https towardsdatascience com access data from twitter api using r and or python b8ac342d3efe Access Data from Twitter
  • screen / nohup 实现后台运行程序

    通常我们在运行程序时 会通过终端登录服务器 然后使用shell命令运行程序 这种方式对于运行时长较短的程序没问题 但是对于深度学习中训练网络等耗时较长的程序来说很容易出问题 例如一旦机器死机 断网 不小心关闭终端等种种情况都会导致程序终止运
  • JSP中include指令的功能简介说明

    转自 JSP中include指令起什么用呢 下文讲述JSP中include指令的功能简介说明 如下所示 JSP中include指令的功能说明 用于将不同的文件插入到当前JSP页面的指定位置 JSP指令的语法 相关说明 include指令 用
  • 现代大学英语精读第二版(第四册)学习笔记(原文及全文翻译)——1A - Thinking as a Hobby(把思考作为爱好)

    Unit 1A Thinking as a Hobby Thinking as a Hobby William Golding While I was still a boy I came to the conclusion that th
  • @RefreshScope详解

    要说清楚RefreshScope 先要了解Scope Scope org springframework beans factory config Scope 是Spring 2 0开始就有的核心的概念 RefreshScope org s
  • React 性能优化

    React 的工作流程是什么 我们可以在哪些阶段进行性能优化呢 如果 React 项目中出现了卡顿 我们可以采用哪些性能优化技巧 如何通过 React Profiler 定位性能问题 React Profiler 包含哪些阶段的信息 大纲
  • 信息熵、条件熵、信息增益率

    1 1 数学分布 分布可能指代不同的东西 比如数据分布或概率分布 这两种分布其实没有本质的区别 可以将x看做随机点 某一数据分布P为目标分布 概率分布f为x落在P上的概率值 形式化表示为f x 假设我们是一组正在广袤无垠的太空中进行研究的科
  • imx6 reboot指令无法重启 & kernel 停留在start kernel ......

    reboot指令无法重启 log root imx6dlsabresd reboot Thesystem is going down for reboot NOW d ttymxc0 Tue Oct 11 06 41 03 2016 INI
  • UE4中实现鼠标拖动游戏中的物体

    一 显示鼠标光标 启用鼠标点击事件 可以在关卡蓝图中或者游戏模式中加入下面代码 二 点击物体进入选中状态 三 根据通道获取命中结果 通过这个函数可以获取当前鼠标光标下接触的actor 重新设定actor位置即可 这里可以将类型转换去掉 就可
  • VBS中WScript.Shell对象的run和exec的使用及区别

    VBS中WScript Shell对象的run和exec的使用及区别 方法声明 Function Exec ByVal Command As String As WshExec Function Run ByVal Command As S
  • YARN 删除所有ACCEPTED任务的命令

    删除所有ACCEPTED任务的命令 for i in yarn application list grep w ACCEPTED awk print 1 grep application do yarn application kill i
  • 方差、协方差和协方差矩阵

    上次写了相关系数 其实很类似的一个概念是协方差 要说协方差 先复习下基本的统计内容 1 均值 2 方差 标准差 标准方差 或者写为 简单来说 标准差是一组数值自平均值分散开来的程度的一种测量观念 一个较大的标准差 代表大部分的数值和其平均值
  • SPA(单页应用)知多少

    单页面应用程序将所有的活动局限于一个Web页面中 在该Web页面初始化时加载相应的HTML JavaScript 和 CSS 一旦页面加载完成 单页面应用不会因为用户的操作而进行页面的重新加载或跳转 取而代之的是利用 JavaScript
  • JAVA JBDC连接MySql数据库示例心得一

    gt 下载MySql数据库驱动解压获得JAR文件导入编写的Java程序中 下图中1是复制过来的驱动文件 2是导入的文件 要导入才可以用 gt 连接数据库 数据查询 数据更新 A是数据库对应的数据类如下 package com jdbc pu
  • 反转字符串

    题目来源 力扣 LeetCode 链接 https leetcode cn com problems reverse words in a string iii 给定一个字符串 s 计算具有相同数量0和1的非空 连续 子字符串的数量 并且这
  • GD32F303 Keil 5.33 开发环境搭建流程

    目录 1 资源准备 2 Keil5安装流程 第一步 解压缩包 第二步 安装Keil5 第三步 安装GD32芯片支持包环境 总结 1 资源准备 Keil 5 33安装包 注册机 支持包 固件库 这里作者已经帮大家准备好了 见链接 百度网盘ht
  • 常用的el-input文本正则限制

    1 只能输入英文字母和数字 不能输入中文
  • 静态时序分析——多周期、半周期和伪路径

    一 多周期 multicycle paths 在一些情况下 如下图所示 两个寄存器之间的组合电路传输的逻辑延时超过一个时钟周期 在这样的情况下 这个组合路径被定义为多周期路径 multicycle path 尽管后一个寄存器会在每一个的时钟