时序分析基础(2)----input_delay

input_delay时序分析模型分析模型

在这里插入图片描述
关于IO接口的时序分析模型如上图所示,可以将整个模型按照三个部分进行划分,分别是上游芯片,PCB板上走线和下游芯片。同前面介绍的寄存器的时序分析模型一致,对于IO接口的分析也是冲建立时间和保持时间来分析的。上图中的时序参数的含义分别如下:

时序参数含义
Tco上游芯片输出数据管脚相较于扇出节点时钟发射沿延时
Td_bd数据在PCB上的走线延时
Td_fi数据在进入FPGA内部的延时
Tc_d上游器件输出管脚处时钟,相较于扇出节点时钟延时
Tc_bd时钟在PCB上的走线延时
Tc_fi时钟在进入FPGA内部的延时
TsuFPGA内部的建立时间门限值
ThFPGA内部保持时间的门限值

同寄存器的时序分析一致,在分析IO接口的时序模型时也是根据建立时间和保持时间需要满足的关系来进行分析。从表格中列出的时序参数来看,FPGA内部时序参数在使用FPGA的时序分析工具时是已知的,而对上游芯片和PCB上走线的延时,是不确定的,为了解决由于这些FPGA未知的时序参数可能对FPGA时序造成的违例现象,因此需要对FPGA输入的信号就是约束,这就是input_dealy分析的必要性。

input_delay时序分析图

在这里插入图片描述
同寄存器的时序分析一直,在IO分析时,也是根据数据和时钟的对应关系来进行时序分析。

建立时间分析

数据从上游芯片到FPGA内部所经历的时间为数据实际到达时间:data_arrival_time根据时序分析图,可以很容易地推算出,数据到达时间。
data_arrival_time = Tco + Td_bd + Td_fi
数据要求到达的时间:data_require_arrval_time,还是根据时序图,可以很直观地推算出数据要求到达的时间。
data_require_arrval_time = Tcycle + Tcd + Tc_bd + Tc_fi - Tsu
因此建立时间余量slack_of_setup可以通过数据实际到达时间和数据要求到达时间之间的差值来计算。
slack_of_setup = data_require_arrval_time - data_arrval_time = (Tcycle + Tcd + Tc_bd + Tc_fi - Tsu) - (Tco + Td_bd + Td_fi)

将上计算公式中FPGA内部的已知量和未知量分别组合到一起,可以对公式进行如下变形:
slack_of_setup = Tcycle + Tc_fi - Tsu - Td_fi + (Tcd + Tc_bd - Tco - Td_bd) = (Tcycle + Tc_fi - Tsu - Td_fi) + (Tcd + Tc_bd - Tco - Td_bd)

其中Tsystem是由FPGA可以决定的一个参数。因此对于输入信号的建立时间分析就变成了对输入到FPGA接口的时钟和数据之间关系的分析。
由于数据总线的位宽通常都是多位位宽的,因此数据各个bit位到达FPGA输入管脚不可避免地存在差值,因此各个数据到达FPGA输入管脚处就存在最大延时和最小延时。由于时钟走线只有单bit位宽,因此时钟到达FPGA管脚的虽然有延时,但却是唯一的。在此基础上,再对建立时间的计算公式进行变形即可以得到input_delay的建立时间的关键参数。
slack_of_setup = (Tcycle + Tc_fi - Tsu - Td_fi) - (Tco + Td_bd - (Tcd + Tc_bd))
Lrmax = TcoMax + Td_bdMax - (Tcd + Tc_bd)
LrMin = TcoMin + Td_bdMin - (Tcd + Tc_bd)
因此建立时间余量的分析,就变成了对输入到FPGA管脚处的时钟和数据之间的延时的分析,也即LrMinLrMax的分析。
对于建立时间,需要关注的是LrMax,因为LrMax越大,建立时间的余量越小,越容易造成时序的违例。

保持时间分析

保持时间的分析和建立时间分析类似。
data_finish_time = Tco + Td_bd + Td_fi + Tcycle

data_require_finish_time = Tcycle + Tcd + Tc_bd + Tc_fi + Th

通过分析保持时间余量可以得到:
slack_of_hold = data_finish_time - data_require_finish_time = (Tco + Td_bd + Td_fi + Tcycle) - (Tcycle + Tcd + Tc_bd + Tc_fi + Th)
和建立时间类似的分析,也可以得到和建立时间相似的结论。
slack_of_hold = (Td_fi - Tc_fi - Th) + (Tco + Td_bd - ( Tcd + Tc_bd))
Lrmax = TcoMax + Td_bdMax - (Tcd + Tc_bd)
LrMin = TcoMin + Td_bdMin - (Tcd + Tc_bd)
因此保持时间的分析也就变成了输入到FPGA管脚处的时钟和数据之间的延时分析。对于保持时间需要关注的是LrMin,因为LrMin越小,保持时间的余量就越小,保持时间就更容易违例。


参考资料:
V3学院时序分析课程

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值