当前位置: 首页 > news >正文

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

本节将回顾工具检查建立保持时间的原则,接下来介绍设置多周期后的检查原则。多周期命令是设计约束中常用的一个命令,用来修改默认的建立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.lryc.cn/news/397932.html

相关文章:

  • 【算法】反转链表
  • DevEco Studio No device 无法识别 usb 设备 - 鸿蒙
  • WebRTC API接口教程:实现高效会议的步骤?
  • MinIO - 服务端签名直传(前端 + 后端 + 效果演示)
  • 使用getopt处理参数
  • 图像搜索技术在司法证据分析中的应用:思通数科大模型的创新实践
  • python使用多进程,传入多个参数?
  • 李彦宏: 开源模型是智商税|马斯克: OpenAI 闭源不如叫 CloseAI
  • 怎么参与场外期权?场外期权交易要注意什么?
  • Postman脚本炼金术:高级数据处理的秘籍
  • MySQL字符串相关数据处理函数
  • 最近查看了一些批处理文件的写法,整理了一些基础的命令符,大佬勿喷
  • 解决 Yarn 运行时的 Node.js 版本问题:一个详尽的指南
  • SQL基础-DQL 小结
  • 冒泡排序与其C语言通用连续类型排序代码
  • Python爬虫并输出
  • 交叉熵损失函数的使用目的(很肤浅的理解)
  • MySQL:TABLE_SCHEMA及其应用
  • 【MySQL】4.MySQL 的数据类型
  • STM32中断(NVIC和EXIT)
  • 哈弗架构和冯诺伊曼架构
  • Python实现动态迷宫生成:自动生成迷宫的动画
  • 大学生暑假“三下乡”社会实践工作新闻投稿指南请查收!
  • MySQL InnoDB存储引擎
  • 无头单向非循环链表实现 and leetcode刷题
  • Ubuntu系统上安装Apache和WordPress
  • Doze和AppStandby白名单配置方法和说明
  • 坑2.Date类型的请求参数
  • javaweb ajax maven mybatis spring springmvc 在项目中有什么用, 举例说明
  • Python编程学习笔记(4)--- 字典