EXCEPTION篇 - 附MCP电路实现方法及命令优先级实例

本篇继续讲述SDC中的各式各样的Exception,大体上可以分为“加严”和“放松”两种类型,如下面几个命令:
##更严格##
set_max_delay
set_min_delay
set_data_check

##更放松##
set_false_path
set_multicycle_path
set_case_analysis
set_disable_timing

需要强调的是需要加严的部分,对于异步路径,往往需要通过set_max_delay来约束,防止路径过长。而且有些跨时钟域(CDC)的路径,为了保证握手时的数据一致性,需要用到格雷码(Gray Code),约束时更加需要注意。

多周期路径

之前的文章有提到多半周期路径,是为了加快数据的处理速度。这里的多周期路径则是针对那些不需要太快的处理速度,一定程度上节省面积和功耗。多周期路径常常发生在memory读写路径,某些复位路径,从慢时钟域到快时钟域的路径等等。

当然,多周期路径是需要电路结构配合实现的,但总体思路有两个:

(1)通过Enable信号控制Clock的采样时刻

(2)通过Enable信号控制Data的变化时刻

下面举一个通过方法(2)实现n-1个周期路径的例子:
在这里插入图片描述
上图主体上是从D1寄存器到D2寄存器的一条路径,中间经过了很长的组合逻辑。特殊之处在于D1/D2的数据变化是受FSM状态机控制的,其中D1数据变化发生在第1个时钟周期后(FF1的输出信号使能),D2数据变化发生在第n的时钟周期后(FFn的输出信号使能)。从下面的波形图可以看出,D1_OUT到D2_OUT经过了n-1个周期。
在这里插入图片描述
对于多周期路径约束的变数很多,需要注意细节也太多。
优先级顺序

对于几个常见的exception命令,使用时要特别注意优先级顺序,避免出现想要的约束不起作用的情况。
在这里插入图片描述
假设有一条从UFF1(CLKA)到UFF2(CLKB)的路径,想通过以下命令进行约束,最终的效果是怎样的呢?

CMD1

set_multicycle_path 2 -from CLKA -to CLKB

CMD2, 优先级比CMD1高,覆盖

set_multicycle_path 3 -from UFF1/CP

CMD3,优先级更高,覆盖

set_max_delay 6.6 -from UFF1/CP -to UFF2/D

CMD4,优先级比CMD3低,忽略

set_max_delay 5 -from CLKA -to CLKB

CMD5,优先级最高,覆盖

set_false_path -to UFF2/D
可以看出,最终的效果还是false path,设置的max_delay不起作用。

版权声明:本文为graymount原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/graymount/article/details/106110865

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值