对Vivado多周期路径约束的诠释

FPGA/ASIC技术

190人已加入

描述

我们先看看单时钟周期的情形,如下图所示。红色标记为默认情况下的建立时间检查,蓝色标记为默认情况下的保持时间检查,且注意保持时间的检查是以建立时间的检查为前提,即总是在建立时间检查的前一个时钟周期确定保持时间检查。

时钟

如果是多周期,如下图所示,此时两个寄存器之间尽管使用同一个时钟但因为使能信号的作用,使得两者数据率变为时钟频率的一半,意味着发起沿和捕获沿相隔2个时钟周期。

时钟

此时新的建立时间检查如下图中的红色实线所示,红色虚线为默认情况下的建立时间检查。

时钟

在此基础上,保持时间的检查变为下图中的蓝色实线(建立时间检查前移一个时钟周期)。

时钟

但显然,此时的保持时间检查是不对的,可想象一下,如果是一个时钟频率为原始时钟频率的一半的时钟,保持时间检查应该如下图中的蓝色实线所示。

时钟

多周期路径的约束我们会用到set_multicycle_path,这里我们结合上述分析重点介绍一下相应参数的含义:

*语句中数字的含义:
对于-setup:表示该多周期路径所需要的时钟周期个数;
对于-hold:表示相对于缺省捕获沿(图中的Default hold),实际捕获沿(图中的New hold)应回调的时钟周期个数;

*参考时钟周期的选取:
-end表示参考时钟为捕获端(收端)所用时钟,对于-setup缺省为-end;
-start表示参考时钟为发送端(发端)所用时钟,对于-hold缺省为-start;
setencells [get_cells -of_objects [get_pins -leaf –filter\
{IS_ENABLE==1} -of_objects [get_nets CE]]]

set_multicycle_path-from $encells -to $encells -setup 2

set_multicycle_path-from $encells -to $encells -hold 1

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分