时序分析基础(Vivado)

本文参考《vivado从此开始—to learn vivado from here》高亚军编著

Vivado综合后的时序报告是可信的,也可在综合后添加时序约束后直接查看时序报告。

一、时序模型

一般时序模型由三部分组成,分别为:

  1. 发起寄存器
  2. 组合逻辑
  3. 捕获寄存器

由上述的时序分析模型的三个部分,构建出3部分时序路径,从而组成一个完整的时序分析路径。

  1. 源时钟路径(Source Clock Path)
  2. 数据路径(Data Path)
  3. 目的时钟路径 (Destination Clock Path)

所以,这个模型如下图所示:
时序模型

二、时序分析中的基本概念

1、发起沿与捕获沿

发起沿与捕获沿通常差一个时钟(大概时序分析工具默认发起沿的下一个时钟捕获数据),发起沿和捕获沿共用一个时钟的的时序模型如下图所示:
在这里插入图片描述

  1. T c o T_{co} :时钟输出时间,发起沿有效至数据出现在发起沿寄存器Q端所需时间。
  2. T s u T_{su} :捕获寄存器建立时间需求。
  3. T h T_{h} :捕获寄存器保持时间需求。

2、数据到达时间

以发起沿为时间基准点(通常定义是0时刻),数据达到时间为:
D a t a A r r i v a l T i m e = L a u n c h E d g e + T c l k a + T c o + T d a t a Data Arrival Time = Launch Edge +T_{clka} +T_{co}+T_{data}
如下图所示:
在这里插入图片描述

3、时钟到达时间

时钟到达时间是指捕获寄存器的时钟:
C l o c k A r r i v a l T i m e = C a p t u r e E d g e + T c l k b Clock Arrival Time = Capture Edge + T_{clkb}

4、建立时间的数据需求时间

数据必须提前一定时间在捕获寄存器之前稳定存在于数据端口。
D a t a R e q u i r e d T i m e ( S e t u p ) = C l o c k A r r i v a l T i m e T s u C l o c k U n c e r t a i n t y Data Required Time(Setup) = Clock Arrival Time -T_{su} -Clock Uncertainty

5、保持时间的数据需求时间

数据必须在时钟捕获沿之后依然稳定一段时间:
D a t a R e q u i r e d T i m e ( H o l d ) = C L o c k A r r i v a l T i m e + T h C l o c k U n c e r t a i n t y Data Required Time(Hold) = CLock Arrival Time +T_h - Clock Uncertainty

6、建立时间裕量

建立时间裕量指的是:数据在 T s u T_{su} 之前的一段时间已经稳定
S e t u p S l a c k = D a t a R e q u i r e d T i m e ( s e t u p ) D a t a A r r i v a l T i m e ( S e t u p ) Setup Slack = Data Required Time(setup) - Data Arrival Time (Setup)
如下图所示:
在这里插入图片描述

7、保持时间裕量

保持时间裕量是指当前数据保持时间之后,下一数据到达之前的时间。
H o l d S l a c k = D a t a A r r i v a l T i m e ( H o l d ) D a t a R e q u i r e d T i m e ( H o l d ) Hold Slack = Data Arrival Time(Hold)-Data Required Time(Hold)
如下图所示:
在这里插入图片描述

三、总结

将建立时间裕量和保持时间裕量放在一起分析:
在这里插入图片描述建立时间决定了数据的最大延迟:
M a x D e l a y = T T s u MaxDelay = T-T_{su}
保持时间决定了数据的最小延迟:
M i n D e l a y = T h MinDelay = T_h
所以,建立时间和保持时间共同决定了数据的有效窗口。
进一步分析,系统时钟周期T需要满足:
T > = T c o + T l o g i c + T r o u t i n g + T s u T s k e w T >= T_{co}+T_{logic}+T_{routing}+T_{su}-T_{skew}
一旦芯片确定( T c o T_{co} T s u T_{su} 由工艺决定),那么只能修改 T d a t a = T l o g i c + T r o u t i n g T_{data}=T_{logic}+T_{routing} 来提系统频率。 T l o g i c T_{logic} 取决于代码风格; T r o u t i n g T_{routing} 和布局布线有很大关系。(同步设计不考虑时钟偏移)。

猜你喜欢

转载自blog.csdn.net/Chi_Hong/article/details/85243146