FPGA时序约束笔记2

两个边沿,只是一种命名方式,不需要太在意其中的意义
中心思想是要以两个CLK为起点来进行计算。
在这里插入图片描述
在这里插入图片描述
数据到达时间,从launch edge开始,到第二个寄存器D有数据的时间
在这里插入图片描述
而时钟到达时间是capture edge到达的时间,仅和时钟延时有关
在这里插入图片描述
因此我们可已得到数据的要求时间(SETUP,HOLD),就是capture edge分别减去Tsu(SETUP);和加上Thd(HOLD)
在这里插入图片描述
数据要求时间(保持)
时钟要求时间减去我的时钟到达时间就是时钟余量(SETUP)
注意此时的数据要求时间是一个周期时间+capture时钟延时-Tsu。有一个时钟周期在里面。
在这里插入图片描述
而对于时钟HOLD的时间余量而言,按照上面这么算的话数据到达时间貌似要算两个周期,不如从第二个时钟到达开始算起,这样数据到达时间和SETUP计算方法保持一致,只要用数据到达时间减去数据要求时间(capture时钟的延时+Th,注意这里没有时钟周期)即可。
在这里插入图片描述
插一句,如果LAUNCH时钟和CAPTURE时钟同时到达,则系统的最小时钟周期是:
Ts=Tco+Tdata+Tsu
这样我们就能算出系统最大时钟频率。

关键路径:
建立时间根据最大延时路径来算
保持时间根据最小延时路径来算
保持时间不满足有可能是因为延时太小了,可以增加buffer,可是会被综合掉的,不如直接交给vivado重新综合,一般都可以解决的。

复位时钟
复位一般是采用异步复位的,这样大概率是无法满足时序要求的。
我们可以通过recovery关键词在报表中查找,也可以通过时序报告中两条路径最后寄存器的名字来分辨。
数据到达时间算到寄存器的D端,数据要求时间算到寄存器的C端,然后加/减FDCE时间要求算到该寄存器,可以看上文SLACK图,这就是一般情况:
一般情况SETUP
一般情况HOLD
而异步复位算数据到达时间会算到CLR端,这种情况虽然不满足时序需求,但是不需要考虑。
异步复位
RECOVERY关键词
OUTPUT DELAY
对于输出器件,软件将其当成capture寄存来处理。注意OUTPUT DELAY这个参数,本来可以作为线路延时来算,这样会影响工程师对线路延时的分析。vivado把它作为被减数转换成了数据时间要求,其实是一样的。
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值