multicycle path的概念和用法

2023-11-09

通常情况下,两个同步的reg进行timing check时,组合逻辑的delay必须在一个时钟周期内到达,才能满足setup的时序。但是在某些情况下,从一个寄存器输出到另外一个寄存器的data端需要不止一个cycle的时间,而且又不影响逻辑的功能。我们将这样的path约束为multicycle path。

set_multicycle_path path_multiplier [-setup|-hold]

                    [-start|-end]

                    -from <StartPoint>

                    -through <ThroughPoint>

                    -to <EndPoint>

default值,也就是说什么都不设,这个path\_multiplier对于setup来说是1hold0,也就是我们上面单周期的约束情况。我们在设计multicycle的时候,重点就是调整这个path\_multiplier

-setup-hold是让你分别来指定setuphold的多周期值,注意,如果你只设了setup的值而没有设hold的值,那么hold的值也会相应的进行改变

startend只在不同频率的clock分析中会用到,即launch pathclockcapture pathclock是不同频率,不同频率的时钟也可以是同步电路,即时钟沿是对齐的。另一方面,同一频率的两个clock也可能是异步电路,关键看时钟沿对齐没有。

from/through/to就是指定的timing path的起始。经过和终止的路径,一般在约束特定路径的时候有用。

下图所示为一个3cycle的multicycle path的电路结构图和波形图。

因此,我们可以用下面命令来定义约束:

create_clock -name CLKM -period 10 [get_ports CLKM]

set_multicycle_path 3 -setup -from [get_pins UFF0/Q] -to [get_pins UFF1/D]

setup检查:

默认情况下,当UFF0/CK作为launch clock时(T=0ns时),在T=10na时UFF1/CK采集到前一级过来的数据。

 

但是当我们通过以上的命令设置了3个cycle的multicycle path的约束后,launch clk的沿推到了T=30ns。因此,两个寄存器之间那段组合逻辑的delay要求就放松到了近三个时间cycle。这种情况下setup是比较容易满足的。对应的setup检查时序报告如下图:

 

hold检查:

通常情况下,hold检查的沿应该是在T=20ns时刻(较setup capture edge早一个cycle)。这种hold检查方式,会导致hold可能过度悲观,很难满足hold time的要求。

 

因此,我们需要像单cycle check的情况一样,即hold检查的沿应该和launch clk的edge一致(T=0时刻)。这样hold time check比较容易满足。命令如下:

set_multicycle_path 2 -hold -from [get_pins UFF0/Q] -to [get_pins UFF1/D]

这里的数字2是将默认的hold check edge往前推两个时钟周期,即从原来的T=20ns时刻往前移到T=0ns时刻。对应的hold时序检查报告如下图所示。

 

因此。在我们给设计写约束文件时(定义multicycle path时),需要同时定义如下命令:

set_multicycle_path N -setup -from [get_pins UFF0/Q] -to [get_pins UFF1/D]

set_multicycle_path N-1 -hold -from [get_pins UFF0/Q] -to [get_pins UFF1/D]

如果只定义了-setup 3而没有定义-hold时,工具hold时,工具hold check时,默认的clock edge为capture edge(setup timing check时)前一个cycle的那个edge。

不同频率的clock的设计,先看从慢时钟到快时钟,假设慢时钟是快时钟的3分频。默认情况下,如果不设multicycle pathsetup/hold是这样分析的。

 

setup就是下一个沿,hold就是对齐那个沿,如果就是用multucycle path写出来。

set_multicycle_path 1 -setup -end -from CLK1 -to CLK2

set_multicycle_path 0 -hold -start -from CLK1 -to CLK2

这里-endstart的用法。-end是指capture flopclockstart是指launch flopclock。默认的,setup是对end,也就是上面clk21个周期之后,而-hold是对start,也就是clk10时刻的上升沿。在调整周期数的时候一定要分清针对哪一个clk来调整。

 

setup要变成clk2的两个周期,所以约束写成:

set_multicycle_path 2 -setup -end -from CLK1 -to CLK2

如果不写hold的约束,那么hold会自动根据setup调整。

 

想要这样的约束还需要调整hold,要根据CLK2的周期来调整,要加end选项。

set_multicycle_path 2 -setup -end -from CLK1 -to CLK2

set_multicycle_path 1 -hold -end -from CLK1 -to CLK2

hold默认的是start clock,如果写成下面命令,实际上是相对于CLK1移了一个周期。

set_multicycle_path 1 -hold -from CLK1 -to CLK2

那么实际check就会变成

 

从慢时钟到快时钟的写法,以3分频为例。

先看默认的check是什么

 

要把hold的沿对齐,就要用下面的约束。

 

set_multicycle_path 2 -setup -start -from CLK1 -to CLK2

set_multicycle_path 1 -hold -start -from CLK1 -to CLK2

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

multicycle path的概念和用法 的相关文章

  • linux显存与gpu利用率都很低

    data label data cuda label cuda model cuda
  • 浏览器的存储方案

    浏览器的存储方案 认识Storage WebStorage主要提供了一种机制 可以让浏览器提供一种比cookie更直观的key value存储方式 localStorage 本地存储 提供的是一种永久性的存储方法 在关闭掉网页重新打开时 存

随机推荐

  • Genymotion推送2.6.0后几个问题自己解决的办法

    先上结果 注意版本号 Genymotion 2 6 0 VirtualBox 5 0 10 其实我用了官方的几种历史版本尝试组合了下没能解决最后是都单独更新解决的 到各自官网直接下载即可 反正vbox开了也是推送新版 Genymotion单
  • redis总结

    Redis redis视频链接 概述 Redis是什么 Redis是一个使用ANSI C编写的开源 支持网络 基于内存 分布式 可选持久性的键值对存储数据库 Redis能做什么 内存存储 持久化 rdb aof 效率高 可以用于高速缓存 订
  • 光线追踪算法—镜面反射

    1 镜面 镜面光线传输计算 只涉及主光线计算而渲染出来的图像无法真实表现现实中的光线照射 通过增加能够反射光线的材质 进行空间中具有反射材质的对象之间的反射光线的追踪 可以更好地体现真实感 2 光线镜面反射的计算 当光线与包含反射材质的物体
  • Shell脚本之函数

    前言 接上回分析 关于shell脚本最后一节和拐友们讲一下最后的函数 因为shell函数经常会使用 目录 一 Shell函数 1 1Shell函数的基本格式 1 2 Shell函数的案例 1 3 函数返回值 1 4函数的传参 1 5函数变量
  • 完整的模糊推理系统介绍以及matlab中从零实现(上篇)

    模糊推理系统建模 在matlab中 通过调用文档命令doc fuzzy可以得到一个模糊工具箱的完整介绍 我也是因为工作需要 在看完师姐论文后 仍然迷迷糊糊地 相信有许多人和我一样 在网上查了一堆论文 博客 可能也没有搞得太明白 通过几天的认
  • jetty的安装和启动

    Jetty是当下非常流行的一款轻量级Java Web服务器和Servlet容器实现 它由Eclipse基金会托管 完全免费而且开放源代码 因此所有人均可以从其官网下载最新源代码进行研究 由于其轻量 灵活的特性 Jetty被广泛用于一系列知名
  • 树型结构(二叉树的基础)

    对于树型结构 想必刚开始看见这个词的时候 大家的第一想法一定会是 二叉树吧 但是 笔者所讲的这篇文章不是二叉树 但是 又与二叉树有着关系 树型结构是二叉树的基础 所谓的树型结构是指 树是一种非线性的数据结构 它是由n n gt 0 个有限结
  • 《自然语言处理》第二次实验:机器翻译(Transformer中英文翻译实验)

    文章目录 任务三 按照实验手册进行Transformer中英文翻译实验 步骤 1 OBS创建项目文件夹 步骤 2 下载自然语言处理包 步骤 3 上传实验源码及数据 步骤 4 进入ModelArts开发环境 步骤 1 上传源码和数据至本地容器
  • 微信小程序如何被微信搜索收录?开启页面收录功能,被评定为达标

    微信小程序的内容也跟我们个人博客网站的文章一样 需要被搜索引擎收录后才能吸引自然流量 而微信小程序对应的搜索引擎其实就是微信搜索 所以想要提高收录率 除了发布优质的内容外 还需要确保小程序后台没有关闭 页面收录 功能 同时努力让我们的小程序
  • eslint 报错解决 ,关闭语法检测 vue-admin-template

    关闭eslint语法检测 在 eslintrc js文件中 注释掉 eslint recommended vue config js 里的warnings 和errors 都设为false 找到 eslintignore文件 末尾 加 就好
  • STM32F103使用内部Flash保存参数

    在我们应用开发时 经常会有一些程序运行参数需要保存 如一些修正系数 这些数据的特点是 数量少而且不需要经常修改 但又不能定义为常量 因为每台设备可能不一样而且在以后还有修改的可能 将这类数据存在指定的位置 需要修改时直接修改存储位置的数值
  • L3-005 垃圾箱分布 (30 分)

    题目 题目链接 题解 对每个垃圾箱进行一次队列优化的Dijskra 每算出一个垃圾箱到其余各个居民点的最短距离后 计算这些距离中的最大距离 最短距离 如果最大距离大于要求的距离则直接忽略这个位置放垃圾桶的情况 否则 如果最短距离小于已经记录
  • opencv——颜色识别

    颜色识别 文章目录 颜色识别 前言 一 颜色识别是什么 二 图像处理中对颜色的转换 三 HSV的相关函数和应用流程 步骤展示 实例操作 总结 前言 这段时间一直在弄有关机器视觉识别的问题 在比赛中用到了很多关于颜色识别的视觉算法 感觉在开始
  • java通过poi模板导出excel

    java通过poi来读写excel目前很方便 支持xls和xlsx格式 目前代码支持按照sheet模板导出 并且支持sheet页级的模板复制功能 附上poi的maven配置 Java代码
  • mysql group by失效

    在MySQL5 7之后 sql mode中默认存在ONLY FULL GROUP BY SQL语句未通过ONLY FULL GROUP BY语义检查所以报错 检查代码也都是正确无误那么可以用any value函数解决 例子 select a
  • 图神经网络(1):图卷积神经网络GCN ICLR 2017

    图卷积神经网络GCN ICLR 2017 是曾经在美国加州大学UCI教授 现在荷兰阿姆斯特丹大学教授 Max Welling团队的大作 Max是图灵奖获得者Hinton的弟子 第一作者T N Kipf已经成为这个领域有名的学者和工程师 如果
  • DHCP协议详细解析

    一 DHCP定义 DHCP 动态主机配置协议 是一个应用层的网络协议 指的是由服务器控制一段IP地址范围 客户机登录服务器时就可以自动获得服务器分配的IP地址和子网掩码 当我们将客户主机ip地址设置为动态获取方式时 DHCP服务器就会根据D
  • Java学习--- MySQL多表查询与自连接

    目录 一 多表查询 二 笛卡尔集 三 非等值连接 四 自连接 五 练习 一 多表查询 基于两个和两个以上的表查询 在实际应用中 单表查询不能满足需求 当在多表查询的条件不能少于表的个数 1 不然会出现笛卡尔集 二 笛卡尔集 多表查询 查询员
  • 在多个浏览器中添加IDM插件

    许多朋友下载了IDM Internet Download Manager 不知如何使用 把包含视频的链接放到软件新建任务 下载下来的的却是网页而不是视频 该软件下载视频的其中一个方法 需安装浏览器插件 通过插件抓取视频下载源 正常来说 我们
  • multicycle path的概念和用法

    通常情况下 两个同步的reg进行timing check时 组合逻辑的delay必须在一个时钟周期内到达 才能满足setup的时序 但是在某些情况下 从一个寄存器输出到另外一个寄存器的data端需要不止一个cycle的时间 而且又不影响逻辑