时钟复位约束_FPGA时序约束理论篇之两种时序例外

本文深入探讨FPGA时序约束中的两种特殊路径:多周期路径和伪路径。多周期路径涉及单时钟域、时钟相移、慢时钟到快时钟和快时钟到慢时钟的情况,通过设置num_cycles解决时序问题。伪路径用于指示不存在实际数据流或无需时序约束的路径,有助于优化工具运行时间和实现结果。
摘要由CSDN通过智能技术生成

两种时序例外

多周期路径

  上面我们讲的是时钟周期约束,默认按照单周期关系来分析数据路径,即数据的发起沿和捕获沿是最邻近的一对时钟沿。如下图所示。

cba1bda1a9a13de75a324130f2348804.png

  默认情况下,保持时间的检查是以建立时间的检查为前提,即总是在建立时间的前一个时钟周期确定保持时间检查。这个也不难理解,上面的图中,数据在时刻1的边沿被发起,建立时间的检查是在时刻2进行,而保持时间的检查是在时刻1(如果这里不能理解,再回头看我们讲保持时间章节的内容),因此保持时间的检查是在建立时间检查的前一个时钟沿。

  但在实际的工程中,经常会碰到数据被发起后,由于路径过长或者逻辑延迟过长要经过多个时钟周期才能到达捕获寄存器;又或者在数据发起的几个周期后,后续逻辑才能使用。这时如果按照单周期路径进行时序检查,就会报出时序违规。因此就需要我们这一节所讲的多周期路径了。

多周期约束的语句是:

set_multicycle_path <num_cycles> [-setup|-hold] [-start|-end][-from ] [-to <endpoints>] [-through <pins|cells|nets>]
参数 含义
num_cycles [-setup  -hold] 建立/保持时间的周期个数
[-start  -end] 参数时钟选取
-from 发起点
-to 捕获点
-through 经过点

对于建立时间,num_cycles是指多周期路径所需的时钟周期个数;对于保持时间,num_cycles是指相对于默认的捕获沿,实际捕获沿应回调的周期个数。

发起沿和捕获沿可能是同一个时钟,也可能是两个时钟,参数startend就是选择参考时钟是发送端还是接收端。

  • start表示参考时钟为发送端(发端)所用时钟,对于保持时间的分析,若后面没有指定startend,则默认为为-start;

  • end表示参考时钟为捕获端(收端)所用时钟,对于建立时间的分析,若后面没有指定startend,则默认为为-end;

上面这两句话也不难理解,因为setup-time是在下一个时钟沿进行捕获时的约束,因此默认是对接收端的约束;而hold-up-time是对同一个时钟沿的约束,目的是发送端不能太快,是对发送端的约束。

  对于单周期路径来说,setup的nu

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值