首页 > 技术文章 > 时序分析(3):IO接口时序分析

xianyufpga 2020-04-05 13:59 原文

一、IO接口时序概述

1、IO接口时序

  外部芯片和FPGA相关联,二者之间时钟和数据的对应关系。

2、IO接口时序分析的基本模型(源同步)

  • ① 系统同步:发送端只提供数据,时钟由外部另行提供。该模型很少使用,不作讨论。
  • ② 源同步:发送端提供数据和时钟,其对齐方式分为中心对齐和边缘对齐。

(3)Skew

① 信号传递不是一个数据线而是数据总线,因此数据的延迟会不一致。

② 上游芯片的寄存器位置不一致,因此 Tco 的延迟会不一致。

③ 由于只有一个时钟路径,所以时钟是不存在延迟的Skew

④分析建立时间和保持时间必须要考虑最差的情况来分析。

 

二、Input delay

  需要约束的是发射沿 【lunch 沿】到【数据有效】的延迟:

//(1)LrMax和LrMin
//----------------------------------------------------------------------------
LrMax = Tco max + Td_bd max – (Tc_d + Tc_bd) //Lunch到达数据最大延时的差,用于建立时间分析
      = (Tcyc/2) + DataSkew/2                //实际操作,不知道数据延时则DataSkew=0.2
      
LrMin = Tco min + Td_bd min – (Tc_d + Tc_bd) //Lunch到达数据最小延时的差,用于保持时间分析
      = (Tcyc/2) - DataSkew/2                //实际操作,双沿则为Tcyc/4

//(2)Arrival and Finish
//----------------------------------------------------------------------------
Data Arrival Time           = Tco max + Td_bd max + Td_fi max
Data Finish Time            = next Data Arrival Time = Tcycle + Tco min + Td_bd min + Td_fi min

Data Required Arrival Time  = Tcycle + Tc_d + Tc_bd + Tc_fi – Tsu
Data Required Finish Time   = Tcycle + Tc_d + Tc_bd + Tc_fi + Th

//(3)Setup and Hold
//----------------------------------------------------------------------------
Setup Slack =   Data Required Arrival Time - Data Arrival Time
Hold Slack  =   Data Finish Time - Data Required Finish Time

 

三、Output delay

//(1)dMax and dMin
//----------------------------------------------------------------------------
dMax = Td_bd Max + Tsu – Tc_bd      //数据起始最大位置到时钟的差,用于建立时间分析
     = Tcyc-aSkew                   //实际操作,双沿取 Tcyc/2

dMin = Td_bd Min – Th - Tc_bd       //数据结束最小位置到时钟的差,用于保持时间分析
     =  bSkew                       //实际操作

//(2)Arrival and Finish
//----------------------------------------------------------------------------
Data Arrival Time           = Tco+ Td_bd max
Data Finish Time            = next Data Arrival Time = Tcycle +Tco+ Td_bd min

Data Required Arrival Time  = Tcycle + Tc_d + Tc_bd – Tsu
Data Required Finish Time   = Tcycle + Tc_d + Tc_bd + Th

//(3)Setup and Hold
//----------------------------------------------------------------------------
Setup Slack = Data Required Arrival Time - Data Arrival Time 
Hold Slack  = Data Finish Time - Data Required Finish Time

 

四、Tsu/Th门限值未知的情况

  假定一个 Skew,如果落在Skew区间就出现时序违例,通过假定 Skew 的大小来调节时序。

//(1)dMax and dMin
//----------------------------------------------------------------------------
dMax = Tcycle - aSkew
dMin = bSkew

//(2)Arrival and Finish
//----------------------------------------------------------------------------
Data Arrival Time           = Tco+aSkew
Data Finish Time            = Tco + Tcycle - bSkew 

Data Required Arrival Time  = Tcycle + Tc_d
Data Required Finish Time   = Tcycle + Tc_d

//(3)Setup and Hold
//----------------------------------------------------------------------------
Setup Slack = Data Required Arrival Time - Data Arrival Time 
Hold Slack  = Data Finish Time - Data Required Finish Time

 

 

参考资料:V3学院FPGA教程

 

推荐阅读