多周期路径的约束与设置原则

本节将回顾工具检查建立保持时间的原则,接下来介绍设置多周期后的检查原则。多周期命令是设计约束中常用的一个命令,用来修改默认的建立or保持时间的关系。基本语法如下

默认的建立时间与保持时间的检查方式

DC工具计算默认的建立保持时间关系是基于时钟的活动沿(Active edges),数据必须要在活动沿的前或后可以安全使用,以满足建立或保持时间的要求。

  • 在起始点,活动沿是寄存器的打开沿
  • 在结束点,活动沿是寄存器的关闭沿
  • 对边沿触发的寄存器而言,其上升沿即是它的打开沿,又是它的关闭沿

对高电平有效的latch而言,上升沿是其打开沿,下降沿是其关闭沿,如下图所示

一些建立时间和保持时间的检查举例:

建立时间:5

保持时间:0

建立时间:10

保持时间:0

建立时间:1

保持时间:0

建立时间:20

保持时间:10

由于使用了最严格(最大)保持关系,因此该路径的最小延迟要求为10 ns。这是一个保守的检查,可能不适用于某些设计。可以使用以下命令修改此默认保持关系:

set_multicycle_path 1 -hold -end -from ff1/CP -to ff2/D

设置后保持时间:0

单时钟同向位设计

单时钟多相位设计

多时钟设计

多频时钟设计(一定是同步时钟,相位关系确定)的模型关系如下图所示:

工具默认的检查关系如下所示

  • 对建立时钟的检查是从发起时钟的上升沿起,到距离其最近的捕获时钟的上升沿
  • 对保持时间的检查是从发起时钟到捕获时钟的上升沿

情况1——相对于CLKB

在设置FFA1到FFB2的多周期路径后,工具的检查逻辑如下:

工具会将捕获沿向后推一个时钟周期进行建立时间检查,即在原本的10units 的基础上向后推迟TCLKB,对保持时间的检查同样会向后推一个时钟周期,即60units

情况2——相对于CLKA

在设置FFA1到FFB2的多周期路径后,工具的检查逻辑如下:

工具会设置新的建立时间检查约束为20units(原始的10加上一个额外的clkA周期)。保持时间的检查约束为是10个单位时间,因为clkA的下一条边是20,clkB的同一条边是30。

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

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

相关文章

Python实战:拥有设闹钟功能的可视化动态闹钟的实现

✨✨ 欢迎大家来访Srlua的博文(づ ̄3 ̄)づ╭❤~✨✨ 🌟🌟 欢迎各位亲爱的读者,感谢你们抽出宝贵的时间来阅读我的文章。 我是Srlua小谢,在这里我会分享我的知识和经验。&am…

6-5,web3浏览器链接区块链(react+区块链实战)

6-5,web3浏览器链接区块链(react区块链实战) 6-5 web3浏览器链接区块链(调用读写合约与metamask联动) 6-5 web3浏览器链接区块链(调用读写合约与metamask联动) 这里就是浏览器端和智能合约的交…

高职Web全栈式开发实训室解决方案

一、专业背景 随着网络普及和发展,网站作为一种很强大的工具和平台愈来愈融入了人们的生活,而与用户关系最密切的前端技术也逐渐获得应有的重视。咱们能够看到前端重构的行业发展潜力巨大,各大知名的网络公司对前端人才的求饥若渴。近年来HT…

DID差分模型案例集(传统DID、队列DID、渐近DID、空间DID、PSM-DID)

双重差分(DID)模型是一种广泛应用于经济学、社会学等领域的统计方法,主要用于评估政策或事件的因果效应。以下是DID模型几个重要变体的简要介绍: 1、传统DID(Traditional DID):这是DID模型的基…

【Qt 从基础】创建一个 Qt 项目后,自动生成的代码和文件分析

文章目录 1. Sources 目录下,main.cpp 文件的分析🐧2. Headers 目录下,widget.h 文件的分析🐧3. Sources 目录下,widget.cpp 文件的分析🐧4. Forms 目录下,widget.ui 文件的分析🐧5.…

目标检测基本标注工具-labelImg安装与使用

🍉一、安装 1.1 打开conda创建虚拟环境🎈 conda create -n labelImg python3.8 -y 1.2 激活labelImg虚拟环境🎈 activate labelImg1.3 安装labelImg🎈 pip install -i https://pypi.tuna.tsinghua.edu.cn/simple lab…

Protobuf: 大数据开发中的高效数据传输利器

作为一名大数据开发者,我经常需要处理海量的数据传输和存储。在这个过程中,选择一个高效、可靠的数据序列化工具至关重要。今天,我想和大家分享一下我在项目中使用 Protobuf 的经历。 目录 故事背景Protobuf 简介优点: 实战案例示…

uView、ColorUI与Vant框架的深入分析与案例实践

摘要: 随着移动开发技术的不断发展,框架的选择对于项目的成功至关重要。本文将对uView、ColorUI和Vant这三个主流移动端框架进行深入分析,探讨它们的优缺点,并通过实际案例展示如何根据项目需求选择合适的框架。 一、引言 在移动…

【人工智能】-- 受限玻尔兹曼机

个人主页:欢迎来到 Papicatch的博客 课设专栏 :学生成绩管理系统 专业知识专栏: 专业知识 文章目录 🍉引言 🍉受限玻尔兹曼机 🍈RBM的结构 🍍RBM的架构图 🍍RBM的经典实现 &…

Python中对asyncio的实际使用

前言:一般涉及异步编程我都无脑用celery,但是最近在做一个项目,项目不大,也不涉及定时任务,所以就用了asyncio。 asyncio是python自带的模块,比celery轻量,使用起来也简单。以前学习过&#xf…

论文阅读【时空+大模型】ST-LLM(MDM2024)

论文阅读【时空大模型】ST-LLM(MDM2024) 论文链接:Spatial-Temporal Large Language Model for Traffic Prediction 代码仓库:https://github.com/ChenxiLiu-HNU/ST-LLM 发表于MDM2024(Mobile Data Management&#xf…

ArrayList----源码分析

源码中的简介: List接口的可调整数组实现。实现所有可选列表操作,并允许所有元素,包括null。除了实现List接口之外,这个类还提供了一些方法来操作内部用于存储列表的数组的大小。(这个类大致相当于Vector,只是它是不同…

TC软件许可优化解决方案

TC功能说明 Teamcenter 软件是西门子面向全球范围开发的数字化全生命周期管理(PLM)系统,将人员、产品、流程、知识有机联系在一起,以帮助企业实现数字化协同、数字化赋能、 数字化转型,从而推动企业产品创新与效率提升…

Java链表LinkedList经典题目

一.LinkedList的方法 首先先看一下链表的方法: 方法解释boolean add(E e)尾插void add(int index, E element)将 e 插入到 index 位置boolean addAll(Collection c)尾插 c 中的元素E remove(int index)删除 index 位置元素boolean remove(Object o)删除遇到的第一…

【EIScopus稳检索-高录用】第五届大数据与社会科学国际学术会议(ICBDSS 2024)

大会官网:www.icbdss.org 大会时间:2024年8月16-18日 大会地点:中国-上海 接受/拒稿通知:投稿后1-2周内 收录检索:EI,Scopus *所有参会者现场均可获取参会证明,会议通知(邀请函)&…

2022 RoboCom省赛题目解析

题目解析&#xff1a;这就是一题很简单的模拟&#xff0c;直接上代码&#xff1b; #include<iostream> using namespace std; const int N 10010; int arr[N]; int main() {int n , m;cin >> n >> m;int sum 0;int res 0;for(int i 0; i < n;i ) cin…

系统服务综合作业01

题目&#xff1a; 现有主机 node01 和 node02&#xff0c;完成如下需求&#xff1a; 1、在 node01 主机上提供 DNS 和 WEB 服务 2、dns 服务提供本实验所有主机名解析 3、web服务提供 www.rhce.com 虚拟主机 4、该虚拟主机的documentroot目录在 /nfs/rhce 目录 5、该目录由 no…

程序使用多进程,打包.exe后,程序陷入死循环

最近写了一个深度学习程序&#xff0c;用cxfreezee打包exe后&#xff0c;在本地运行突然出现死循环&#xff0c;明明在pycharm运行一切正常。 排查了问题&#xff0c;怀疑是多进程的原因&#xff0c;解决办法&#xff1a; 在你的主程序前添加一行代码&#xff1a; if __name_…

Pandas数学函数大揭秘:让数据处理变得如此简单高效,轻松玩转数据分析新纪元!

1.导包 # 导包 import numpy as np import pandas as pd2.聚合函数 df pd.DataFrame(datanp.random.randint(0,100,size(5,3))) df01203550281552376231419335895434679917 # 列非空元素的数量 df.count()0 5 1 5 2 5 dtype: int64# 行非空元素的数量 df.count(ax…

多输入多输出 | Matlab实现Transformer多输入多输出预测

多输入多输出 | Matlab实现Transformer多输入多输出预测 目录 多输入多输出 | Matlab实现Transformer多输入多输出预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 多输入多输出 | Matlab实现Transformer多输入多输出预测&#xff08;完整源码和数据&#xff09; 1.da…