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

默认情况下,保持时间的检查是以建立时间的检查为前提,即总是在建立时间的前一个时钟周期确定保持时间检查。这个也不难理解,上面的图中,数据在时刻1的边沿被发起,建立时间的检查是在时刻2进行,而保持时间的检查是在时刻1(如果这里不能理解,再回头看看时钟周期约束详细介绍),因此保持时间的检查是在建立时间检查的前一个时钟沿。
但在实际的工程中,经常会碰到数据被发起后,由于路径过长或者逻辑延迟过长要经过多个时钟周期才能到达捕获寄存器;又或者在数据发起的几个周期后,后续逻辑才能使用。这时如果按照单周期路径进行时序检查,就会报出时序违规。因此就需要我们这一节所讲的多周期路径了。
多周期约束的语句是:
set_multicycle_path <numcycles> [-setup|-hold] [-start|-end] [-from <startpoints>] [-to <endpoints>] [-through <pins/cells/nets>]

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

最低0.47元/天 解锁文章
2534

被折叠的 条评论
为什么被折叠?



