时序例外set_multicycle_path

建立检查

        Tmax = TCLK - Tsetup

保持检查

        Tmin = TCLK + Thold

当静态时序分析产生时序违规时,就需要用到时序例外

 1.多周期路径设置

        设计中存在时序路径延时比较长,并且设计允许信号在这类时序路径下的延时等于几个周期的时间,如下图所示。

由于发射时序单元和捕获时序单元中的逻辑电路延时有多个时钟,故需要设置几个时钟的建立时间,定义的命令如下。

set_multicycle_path <num cycles> -from <startpoints> -to <endpoints>   //setup

set_multicycle_path -hold <num cycles> -from <startpoints> -to <endpoints> //hold



set_multicycle_path  5  -from  [get_pins  DFF1/Q]  -to  [get_pins DFF2/D]

set_multicycle_path  4  -hold  -from  [get_pins  DFF1/Q]  -to  [get_pins  DFF2/D]

        以上命令定义触发器DFF1与DFF2之间时序路径建立时间的延时为第5个时钟周期检查,保持时间的延时为第4个周期检查,其延时波形如下图所示。

*若clk1和clk2相差0.3ns延迟则可能在时序检查时出现保持检查为-3.7ns的情况

对此应该添加多周期时钟约束

set_multicycle_path 2 -from [get_clocks CLK1] -to [get_clocks CLK2]

*从慢时钟到快时钟的多周期,假设CLK2频率是CLK1的3倍

此时应该建立一个乘3的多周期路径约束

set_multicycle_path 3 -start -from [get_clocks CLK1] -to [get_clocks CLK2]
set_multicycle_path 2 -hold -end -from [get_clocks CLK1] -to [get_clocks CLK2]

*从快时钟到慢时钟的多周期,假设CLK1频率是CLK2的3倍

set_multicycle_path 3 -start -from [get_clocks CLK1] -to [get_clocks CLK2]

set_multicycle_path -hold 2 -from [get_clocks CLK1] -to [get_clocks CLK2]

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
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命令非常重要,能够有效提高设计的时序性能。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值