时序分析(3):IO接口时序分析
一、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教程