【芯片前端】所以说,一直以来我理解的set_multicycle_path -hold都是错的?

在前端设计中,对于放宽到多拍产生逻辑结果的运算路径,需要设置set_multicycle_path来放宽时序检查,加入要放宽到4拍检查的话,一般就是这样写(具体格式记不清了,大概是这个意思):

set_multicycle_path -setup 4 -from xxx -to xxx

set_multicycle_path -hold 3 -from xxx -to xxx

在我的认知中,当没有进行multicycle设置的时候,计算setup time vio和hold time vio分别是在第1拍和第0拍(以当前拍为第0拍):

因此呢对于multicycle的设置,我就一直认为,如上文所诉的设置方式,指的是在第4拍检查setup time vio,在第3拍检查hold time vio,直到我今天为下个项目的bes积累知识画书的时候才发现好像不是这样的:

 总结一下意思就是,如果只有一句:

set_multicycle_path -setup 4 -from xxx -to xxx

那么工具会在第4拍检查setup time vio,在第3拍检查hold time vio。而此时如果加上了

set_multicycle_path -hold 3 -from xxx -to xxx

那么就会由第3拍检查向前推3拍恢复到第0拍检查hold time vio!

所以说,一直以来我的认知都是错误的,我一直都以为-hold 3是把hold time vio也推后3拍检查的,就很迷。

set_multicycle_path命令用于设置时序约束中的多周期路径。在多周期设计中,某些信号不仅可以在一个时钟周期内到达目的地,而且可能需要多个时钟周期。在这种情况下,就需要使用set_multicycle_path命令来设置多周期路径的时序约束。 set_multicycle_path命令的语法格式如下: ``` set_multicycle_path -setup|-hold|-recrem <value> [-from <start_point>] [-to <end_point>] [-rise|-fall] [-through <through_point>] [-end [<max_paths>]] [-start [<max_paths>]] [-name <path_name>] [-setup_rising|-setup_falling|-hold_rising|-hold_falling] ``` 其中,选项明如下: - -setup: 设置多周期路径的setup时序约束。 - -hold: 设置多周期路径的hold时序约束。 - -recrem: 设置多周期路径的recovery/removal时序约束。 - <value>: 多周期路径的时序约束值。 - -from <start_point>: 指定多周期路径的起始点。 - -to <end_point>: 指定多周期路径的结束点。 - -rise|-fall: 指定多周期路径的信号变化类型。 - -through <through_point>: 指定多周期路径的中间点。 - -end [<max_paths>]: 限制最大终止点数。 - -start [<max_paths>]: 限制最大起始点数。 - -name <path_name>: 设置多周期路径的名称。 - -setup_rising|-setup_falling|-hold_rising|-hold_falling: 指定时序约束的时钟边沿类型。 需要注意的是,set_multicycle_path命令设置的多周期路径时序约束会在后续的时序分析中起作用,因此在设计中合理使用set_multicycle_path命令非常重要,能够有效提高设计的时序性能。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

尼德兰的喵

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值