时序约束——set_max_delay和set_min_delay用法

这篇具有很好参考价值的文章主要介绍了时序约束——set_max_delay和set_min_delay用法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

set_max_delay:最大延迟约束
set_min_delay:最小延迟约束

约束原语:
set_max_delay [-datapath_only] [-from <node_list>] [-to <node_list>] [-through <node_list>]

set_min_delay [-from <node_list>] [-to <node_list>] [-through <node_list>]

一般在约束异步信号时可以使用。针对跨时钟域的异步信号,常使用set_false_path或者set_clock_groups,但是这两种约束会导致跨时钟域的信号完全没有受到约束。而使用set_max_delay约束可以保证两个异步时钟域的路径延时收到约束。

在设计时我们不会主动去添加,因为在设计之前,我们一般不会知道具体哪条路径为异步信号之间的时序路径,并且对于异步信号之间的路径,我们一般不关心其时序要求,通常是设为伪路径处理,如果我们确实要对某条异步信号之间的时序路径提出时序要求时,我们才设定它的最大最小延时,因此进行set_max_delay、set_min_delay时,我们一般是对整个工程进行综合实现了,根据时序报告和我们的要求,再对相应的路径添加set_max_delay、set_min_delay。

set_max_delay与set_min_delay这两种约束,一般用于特定的异步路径上,并且这种异步路径又不能不分析,比如异步FIFO的读写地址传递,虽然是格雷码,但也只能保证在一个源时钟周期内只有一条线发送翻转,如果不对源时钟到目的时钟路径进行max_delay的约束,那么很有可能地址从源时钟传递到目的时钟时,其传播路径延时会超过两个源时钟周期,特别是源时钟周期很小的情况下。

又比如说,同一时钟内,当某条路径总是不能满足(即周期跑不过),可以先用set_max_delay将这条关键路径约束起来(它的优先级比周期约束高),这样vivado会优先将这条路径布了,然后再去布其他路径,加大了布线成功的概率:

一般应用场景有两个:
输入管脚的信号经过组合逻辑后直接输出到管脚设置
异步电路之间的最大最小延迟设置

本文为学习记录文档,内容大多为网上资料,如有侵权,请联系作者删除。文章来源地址https://www.toymoban.com/news/detail-404978.html

到了这里,关于时序约束——set_max_delay和set_min_delay用法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 浅谈时序:set_input_delay

    1、set_input_delay的本质 set_input_delay是对模块input信号在模块外部延迟的约束,本质上EDA工具会根据约束调整设计内部的器件类型,摆放的位置以及优化内部组合逻辑保证满足约束要求。 约束指导原则:尽量照顾设计外部逻辑延时 set_input_delay -max delay_vaule 中delay_vaule 数值尽量大

    2024年02月12日
    浏览(39)
  • 静态时序分析:SDC约束命令set_drive详解

    相关阅读 静态时序分析 https://blog.csdn.net/weixin_45791458/category_12567571.html         本章将讨论使用set_drive命令,它用于对输入端口的驱动能力建模。首先需要说明的是,默认情况下,DC在STA时默认输入端口的转换时间是0,这对于大多数情况来说过于理想。         set_drive命令设

    2024年02月22日
    浏览(50)
  • 静态时序分析:SDC约束命令set_clock_transition详解

    相关阅读 静态时序分析 https://blog.csdn.net/weixin_45791458/category_12567571.html?spm=1001.2014.3001.5482         在静态时序分析:SDC约束命令create_clock详解一文的最后,我们谈到了针对理想(ideal)时钟,可以使用set_clock_transition命令直接指定理想时钟到达各触发器时钟引脚的转换时间(这是

    2024年02月20日
    浏览(35)
  • FPGA设计时序约束三、设置时钟组set_clock_groups

    目录 一、背景 二、时钟间关系 2.1 时钟关系分类 2.2 时钟关系查看 三、异步时钟组 3.1 优先级 3.2 使用格式 3.3 asynchronous和exclusive 3.4 结果示例 四、参考资料     Vivado中时序分析工具默认会分析设计中所有时钟相关的时序路径,除非时序约束中设置了时钟组或false路径。使

    2024年02月02日
    浏览(46)
  • output delay 约束

    特别注意:在源同步接口中,定义接口约束之前,需要用create_generated_clock 先定义送出的随路时钟。 FPGA发送数据和时钟的关系是不是可以通过示波器测试得知?个人觉得方法一已知下游器件的建立和保持时间约束比较方便。 我怎么知道输出的skew?是预估一个值吗? output d

    2024年02月15日
    浏览(47)
  • Max-Min算法

    任务调度算法,随着多核处理器的发展,带来了新的挑战。如何利用高效的任务调度策略使得多核处理器充分发挥性能,是急需解决的问题。动态任务调度是根据运行时的情况动态的将任务分配到对应的资源上,但是需要实时的收集系统计算资源、存储资源以及网络资源等信

    2024年02月11日
    浏览(42)
  • 对set_input_delay和set_output_delay的理解

    前言 在FPGA设计中,端口约束分为两种,一种是管脚约束,及时把顶层模块的端口 port 与板卡上的物理引脚进行映射。另一种就是IO端口延时约束,目的是告诉时序分析工具信号在器件之外的延时,让它能够在一个完整的路径上进行分析,此外还要注意端口延时约束并不具有让

    2024年02月16日
    浏览(45)
  • C++ max() 、min() 函数进行多数比较

    很多人知道C++中max(),min(),函数的二数比较,即max(a, b),min(a, b)。但很多人不知道有多个数如何利用该自带的函数比较,这里给出方法:只需要在max(),min()函数内用一个大括号括住自己想要比较的数的集合即可, 同理,大括号内是自己提前定义的变量也能进行比较 运行结果

    2024年02月06日
    浏览(40)
  • 组合数学——Min-Max容斥

    Min-Max 容斥,即 $$max(S)=sum_{Tin S,Tneqemptyset}(-1)^{|T|-1}min(T)$$ 接下来证明上面那个式子是对的。定义 (S) 中共有 (N) 个元素,由大到小分别为 (s_1,s_2,dots,s_N) , (T_i) 为所有 (S) 大小为 (i) 的子集。 所有元素都大于 (s_i) 且大小为 (j) 的子集有 (tbinom{i-1}{j}) 个;则最

    2024年04月08日
    浏览(39)
  • Flink学习20:聚合算子(sum,max,min)

    常见的聚合算子 sum,max,min等 聚合算子可以在在keyedStream 流上进行滚动的聚合(即累计的操作),而且同一个 keyedStream 流上只能调用一次 聚合算子      

    2024年02月07日
    浏览(64)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包