4>创建虚拟时钟
虚拟时钟通常用于设定对输入输出的延迟约束,没有与之绑定的物理管脚。主要用在三个场景:
*外部IO的参考时钟并不是设计的时钟
*FPGA I/O路径参考时钟来源于内部衍生时钟,但与主时钟的频率关系并不是整数倍
*针对I/O指定不同的jitter和latency
如下图所示,在FPGA的A和B端口分别有两个输入,其中捕获A端口的时钟是主时钟,而捕获B端口的时钟是MMCM输出的衍生时钟,而且该衍生时钟与主时钟的频率不是整数倍关系。
这种情况下时序约束如下:
创建虚拟时钟用的也是create_clock约束,但是后面没有加get_ports参数,因此被称为虚拟时钟。注意,虚拟时钟必须在约束I/O延迟之前被定义
5>最大最小虚拟延迟约束(nax/min delay)
主要应用场景有两个:
*输入管脚的信号经过组合逻辑后直接输出到管脚
*异步电路之间的最大最小延迟
设置方式为:
max/min delay的约束平时用的相对少一些,因为在跨异步时钟域时,我们往往会设置asynchronous或者false_path。对于异步时钟,我们一般都会通过设计来保证时序能够收敛,而不是通过时序约束来保证。
**
**
1>多周期路径
以上讲述按照但周期关系来分析数据路径,也就是数据的发起沿和捕获沿是最邻近的一对时钟沿,如下图所示:
多周期约束语句是:
2>伪路径
伪路径指的是该路径存在,但该路径的电路功能不会发生或者无须时序约束。如果路径上的电路不会发生,那Vivado综合后会自动优化掉,因此我们无需考虑这种情况。
伪路径一般用于:
*跨时钟域
*一上电就被写入数据的寄存器
*异步复位或测试逻辑
*一步双端口RAM
伪路径的约束为:
**
**
在xdc文件中,按约束的先后顺序依次被执行,因此,针对同一个时钟的不同约束,只有最后一条约束生效。
时序例外的优先级从高到低为:
…(待补充)
本文发布于:2024-01-28 07:36:04,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/17063985705833.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |