FPGA时序分析建立松弛和保持松弛

最近在做TDC的时候算是把时序稍微了解了一下,也明白了时序报告里建立松弛(WNS)和保持松弛(WHS)的概念和计算过程,这里分享一下,也欢迎大家一起交流。

这里的建立松弛和保持松弛都是在FPGA内部的触发器之间的关系,并没有考虑到外部的输入输出延时。一般的模型为如下:

建立松弛指的是,在下一次时钟触发脉冲来时,第一级触发器输出数据到建立时间前之间的时间最大为多少,这个一般用来确定时钟最大的工作频率。

一个典型的二级触发器时序如上图所示,CLK为主时钟,CLK1为考虑走线延时的第一级触发器时钟,CLK2为考虑走线延时的第二级触发器时钟,他们相对于主时钟的延时分别是TC1和TC2,RGG1_Q为触发器的数据输出,经过了传播延时TCO,RGE2_D为第二级触发器的D端,经过了走线延时T_DELAY,Tsu为建立时间,Tsu_slack为建立松弛。所以很容易发现建立松弛直接决定了时钟的最大工作频率。

那么计算过程很简单,有如下关系:Tsu_slack=(TC2+T(一个时钟周期)-Tsu)-(TC1+TCO+T_DELAY)。对应于FPGA的时序报告如下:

可以发现FPGA给的公式也差不多,无非就是加上悲观度等用来保证最坏情况下可以工作。

那么保持松弛其实和建立松弛分析差不多 一般时序图如下:

很容易得到Th_slack=(TC1+TCO+T_DEALY+T(周期))-(TC2+Th+T) 这里说明一下,默认数据存在的时间为一个时钟周期。所以是不是很容易得到结果与时钟无关。说明保持松弛无法改变频率。

在FPGA中,公式也差不多 我就不贴图了。

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值