时序分析(二):input delay分析

一、IO接口分析基本模型

        数据按照同步方式可分为系统同步源同步方式两种。所谓系统同步指发送端和接收端共用一个时钟源;源同步指发送端提供数据同步时钟,接收端根据该时钟进行数据接收。现在多数通信中使用源同步方式,例如以太网、ADC等。

        此外还有自同步方式,在这不做介绍。

IO时序分析基本模型(源同步)

二、input delay分析 

         首先进行input delay分析。既然分析“input”,那么FPGA就是接收端,接收来自外部芯片(发送端)的数据和同步时钟,这里我们把发送端称为上游器件。input delay分析模型如下图:

input delay分析模型

       图中不同颜色的虚线表示不同的信号传输路径,对应传输延时含义如下:

       

        Tco                     

Tco指上游器件中的数据延时,包括时钟到reg1的延时Tco1、数据从reg1的D端到Q端的延时Tco2以及数据从reg1的Q端到上游器件pad的延时
Tc_d时钟在上游器件内部的延时
Td_bd数据信号的PCB板级延时
Tc_bd时钟信号的PCB板级延时
Td_fi数据信号在FPAG内部的延时
Tc_fi时钟信号在FPAG内部的延时
Tsu\ThFPGA接收(输入)寄存器的建立时间门限\保持时间门限

        根据分析模型可以得到时序图:

时序图

        图中各波形的含义从他们的名字就可以看出,其中Fpga data in指数据到达FPGA的输入引脚,Fpga clock in指时钟信号到达FPGA的输入引脚,这两个信号波形很重要,后边会讲为什么。

        画出时序图,很容易就可以得到:

  • 数据达到FPGA中reg2D端的实际时间Data Arrival time = Tco + Td_bd + Td_fi
  • 数据达到FPGA中reg2D端的要求时间Data Required time = Tcycle + Tc_d + Tc_bd + Tc_fi – Tsu
  • 建立时间裕量Setup Slack = Data Required time - Data Arrival time

        同样可得:

  • 数据达到FPGA中寄存器D端的实际结束时间Data End time = Tcycle +Tco + Td_bd + Td_fi
  • 数据达到FPGA中寄存器D端的要求结束时间Data Required  End time = Tc_d + Tc_bd + Tc_fi + Tcycle + Th
  • 保持时间裕量Hold Slack = Data End time - Data Required  End time

         知道了建立时间裕量和保持时间裕量,我们就可以做时序分析了,即要想不发生时序违例,必须满足建立时间裕量Setup Slack > 0,保持时间裕量Hold Slack > 0

        但是以上计算为通用公式,我们知道实际数据信号传输是以总线的方式,数据到达FPGA输入引脚的延时可能大也可能小,称作数据skew

        观察图中波形,Fpga in data延时变大时会压缩建立时间裕量,因此在延时最大时分析建立时间时序。如果延时最大时仍旧没有发生时序违例,那么延时小时更不会。同理,Fpga in data延时变小时会压缩保持时间裕量,因此在延时最小时分析保持时间时序。如果延时最小时仍旧没有发生时序违例,那么延时大时更不会。

        现在我们以分析建立时间为例,要想分析时序是否违例,根据上文必须要知道Tco max、Td_bd max和Td_fi_max。对于FPGA来说或者对于编译器来说,Td_fi和Tc_fi是已知的(因为他们在FPGA内部),而Tco、Tc_d、Tc_bd和Td_bd是未知的。因此我们要告诉编译器输入到FPGA管脚的时钟和数据的关系(Tco、Td_bd),也就是上文提到的Fpga data in和Fpga clock in之间的关系,这也是input delay约束的目的所在。                

        现在计算Setup Slack = Data Required time - Data Arrival time

            = cycle + Tc_d + Tc_bd + Tc_fi – Tsu - (Tco max + Td_bd max + Td_fi max),结合时序图可知,input delay约束的就是发射沿lunch到数据有效的延时,即时序图中的:

        LrMax = Tco max + Td_bd max -(Tc_d + Tc_bd) ------分析建立时间时序

        LrMin   = Tco min + Td_bd min -(Tc_d + Tc_bd)  ------分析保持时间时序

       

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值