时序分析、约束总结

  1. 时序分析

start point: 时序路径起点,为launch clock或input port

end point: 时序路径终点,为寄存器D端或output port

时序路径为一条数据在其上传播不受其它因素影响(不等待时钟到来)的路径。

以endpoint的对应时钟可将timing path分为不同group,相同clock在同一group。

时序分析:

  1. data arrival time = T(source clock path) + T(data path)  实际数据到达endpoint时间
  2. data required time = T(destination clock path) - Ts(or +Th) 基于setup/hold的数据需要在endpoint有效的时间

slack = data required time - data arrival time  (setup)

= data arrival time - data required time   (hold)

时间裕量,应大于零,说明实际时序符合setup/hold要求且有富裕。

若约束该路径为max_delay/min_delay(通常为异步路径),则data_required_time中的T(destination clock path)将被替换为max_delay/min_delay值。

若该路径的startpoint为input且约束了input delay,则data_arrival_time中的T(data path)需再加上input_delay值;若该路径的endpoint为output且约束了output delay,则data_required_time中的Ts或Th将被替换为output_delay值。

2. 常见时序约束

2.1 false_path

时序伪路径,常用于不需要进行Timing Check(没有时序要求)的timing path,如:异步路径、逻辑互斥路径、无实际信号到达路径等。

与set_disable_timing的区别:false_path设置后仍会计算timing path的延时,只是没有了约束;disable_timing设置后会直接取消该timing arc,对其不会有任何时序分析。

与set_clock_group -asynchronous的区别:直接设置异步时钟组更直观,且在计算timing window时不会按照同步关系计算,这样对串扰现象的影响计算更准确。

(串扰:类似相邻信号线的互感,若两个信号线在近乎同一时刻跳变且方向相反,那么受影响的信号线可能会出现逻辑错误)

2.2 max_delay/min_delay

指定timing path的最大延迟,常用于异步路径。

若仅设置max_delay(后不加任何选项),则实际的data_required_time还会考虑Launch Clk的latency,Capture Clk的Latency和Uncertainty和Cap DFF的setup time,若在其后面加上-ignore clock latency,则Launch Clk的latency,Capture Clk的Latency和Uncertainty均不会考虑,相当于加严了要求。

2.3 input_delay/output_delay

input_delay:外部寄存器时钟发送沿到input port的延迟

output_delay:output port到外部寄存器D端的延迟

set_input_delay/output_delay的时钟,均为外部寄存器对应时钟,以区分时序路径。

input_delay对应data_arrival_time,output_delay对应data_required_time。

input_delay如果同时设置了max和min delay,那么max值是用在对setup timing的分析中的,而min值用在对hold timing的分析中。如果只设置了一个值,那么同时供两者使用。

output_delay如果同时设置了max和min delay,那么data_required_time的区间即为{-min, Tclk-max} (若min<=0)

​​​​​​​​​​​​​​2.4 muticycle

多个周期采一次数据,常用于同步高低频数据交互。

默认情况下,时序路径都是在最近的沿分析setup,在最近的沿的前一个沿分析hold。即setup=1,hold=0。常用的设置MCP的setup和hold的值时,一般是会使用setup 为n,则hold为n-1的方式,此时setup check的时钟边沿是n个cycle后的cap clk,hold的check时钟有效沿是当前toggle的cap clk(若不指定hold,则默认hold的check时钟沿为setup check的前一个时钟沿,即n-1个cycle)。

 

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值