跳转到主要内容

时序分析的基本概念和术语

demi 提交于

<font size="4" color="red"><strong>1、发起沿和捕获沿</strong></font>(Launch edge & Capture edge)

① <img width="600" src="http://xilinx.eetrend.com/files/2019-09/wen_zhang_/100045283-80979-1.pn…; alt=""><br>

② Launch edge是发送数据的时钟边沿,通常选择上升沿。

③ Capture edge是捕获段捕获到该数据的时钟边沿。

④ 通常情况下这两个边沿会有一个时钟周期的差别。

<font size="4" color="red"><strong>2、时序路径</strong></font>(Timing path典型时序路径有四种)

① <img width="600" src="http://xilinx.eetrend.com/files/2019-09/wen_zhang_/100045283-80980-2.pn…; alt=""><br>

② 第一类时序路径(红色)
&nbsp; &nbsp; - &nbsp;从device A的时钟到FPGA的第一级寄存器的输入端口。

③ 第二类时序路径
&nbsp; &nbsp; - &nbsp;两个同步元件之间的路径(rega到regb蓝色)

④ 第三类时序路径
&nbsp; &nbsp; - &nbsp;最后一集寄存器到device B数据端口的路径(黄色)

⑤ 第四类时序路径
&nbsp; &nbsp; - &nbsp;端口到端口的路径(dinb到dinb绿色)

⑥ 我们要关注的是这些路径的
&nbsp; &nbsp; - &nbsp;起始点(start point)记作S
&nbsp; &nbsp; - &nbsp;终止点(end point)记作E
&nbsp; &nbsp; - &nbsp;<img width="600" src="http://xilinx.eetrend.com/files/2019-09/wen_zhang_/100045283-80981-3.pn…; alt="">
&nbsp; &nbsp; - &nbsp;前三条路径的起始点,都是发送寄存器的时钟端口,终止点都是接收寄存器的数据端口。

⑦ 常规时序路径的组成
&nbsp; &nbsp; - &nbsp;我们给出基本模型(可看出rega 和 regb时钟是不同的)
&nbsp; &nbsp; - &nbsp;<img width="600" src="http://xilinx.eetrend.com/files/2019-09/wen_zhang_/100045283-80982-4.pn…; alt="">
&nbsp; &nbsp; - &nbsp;源端时钟路径(红色) 数据路径(蓝色) 和目的段时钟路径(黄色)
&nbsp; &nbsp; - &nbsp;<img width="600" src="http://xilinx.eetrend.com/files/2019-09/wen_zhang_/100045283-80983-5.pn…; alt=""><br>

<font size="4" color="red"><strong>3、数据到达时间和数据需求时间</strong></font>

① 数据到达时间
&nbsp; &nbsp; - &nbsp;<img width="600" src="http://xilinx.eetrend.com/files/2019-09/wen_zhang_/100045283-80984-6.pn…; alt="">
&nbsp; &nbsp; - &nbsp;数据在发送沿发送之后,经过多长时间会到达接收寄存器的数据端口,即到达regb的D端口的时刻,这个时刻就是数据到达时间。
&nbsp; &nbsp; - &nbsp;我们需要选择一个参考(基准)时间点。通常选择launch edge作为零时刻基准点。
&nbsp; &nbsp; - &nbsp;数据经过Tco时间,到达Q端口。
&nbsp; &nbsp; - &nbsp;数据从Q端口,要经过组合逻辑,以及布线的线延时才能到达接收短的D端口(Tdata)。
&nbsp; &nbsp; - &nbsp;故有公式如下:
&nbsp; &nbsp; - &nbsp;<img width="600" src="http://xilinx.eetrend.com/files/2019-09/wen_zhang_/100045283-80985-7.pn…; alt="">
&nbsp; &nbsp; - &nbsp;选择launch edge作为零时刻基准点。

② 时钟到达时间(clock Arrival Time)
&nbsp; &nbsp; - &nbsp;观察捕获寄存器的时钟。
&nbsp; &nbsp; - &nbsp;<img width="600" src="http://xilinx.eetrend.com/files/2019-09/wen_zhang_/100045283-80986-8.pn…; alt="">
&nbsp; &nbsp; - &nbsp;选择launch edge作为零时刻基准点。其实是launch edge加上一个时钟周期。

<font size="4" color="red"><strong>4、建立时间的裕量和保持时间的裕量</strong></font>(Setup slack & Hold Slack)

① 建立时间(数据需求时间:Tsu)
&nbsp; &nbsp; - &nbsp;<img width="600" src="http://xilinx.eetrend.com/files/2019-09/wen_zhang_/100045283-80987-9.pn…; alt="">
&nbsp; &nbsp; - &nbsp;数据可以被稳定的捕获到的最小时间。
&nbsp; &nbsp; - &nbsp;我们仍然关注捕获寄存器。
&nbsp; &nbsp; - &nbsp;数据需要在时钟捕获沿到达之前的一段时间,必须到达。相当于是数据到达regb的时钟端口 和 regb的时钟处于capture edge这两个情况同时满足的时候,才可以进行接收数据。
&nbsp; &nbsp; - &nbsp;换句话就是说,数据至少提前时钟Tsu的时间到达捕获寄存器的数据端口。
&nbsp; &nbsp; - &nbsp;数据所需要的时间是
&nbsp; &nbsp; - &nbsp;<img width="600" src="http://xilinx.eetrend.com/files/2019-09/wen_zhang_/100045283-80988-10.p…; alt="">
&nbsp; &nbsp; - &nbsp;其中Set up Uncertainty(一般是时间抖动造成的Uncertainty时间)。

② 保持时间情况下的数据需求时间(Data Request Time-Hold)
&nbsp; &nbsp; - &nbsp;<img width="600" src="http://xilinx.eetrend.com/files/2019-09/wen_zhang_/100045283-80989-11.p…; alt="">
&nbsp; &nbsp; - &nbsp;当我们捕获到数据之后,数据还应该稳定的存在一定时间。
&nbsp; &nbsp; - &nbsp;除了有Tlckb的时钟延时之外,还要看到捕获寄存器本身的保持时间需求。
&nbsp; &nbsp; - &nbsp;Tclkb时钟延时,然后数据到达后,至少还需要Th的保持时间。
&nbsp; &nbsp; - &nbsp;<img width="600" src="http://xilinx.eetrend.com/files/2019-09/wen_zhang_/100045283-80990-12.p…; alt=""><br>

③ Tsu和Th确定了数据的有效窗口。
&nbsp; &nbsp; - &nbsp;数据有效窗口的起始沿就是Tsu
&nbsp; &nbsp; - &nbsp;终止端口就是Th。

④ 建立时间裕量(Setup Slack)
&nbsp; &nbsp; - &nbsp;在做时序分析时,我们的建立时间的需求可以满足,那么这条路径上发送的数据,就可以被目的寄存器稳定的捕获到。
&nbsp; &nbsp; - &nbsp;我们来看一下我们的模型:
&nbsp; &nbsp; &nbsp; &nbsp; - &nbsp;<img width="600" src="http://xilinx.eetrend.com/files/2019-09/wen_zhang_/100045283-80991-13.p…; alt="">
&nbsp; &nbsp; &nbsp; &nbsp; - &nbsp;Tclka
&nbsp; &nbsp; &nbsp; &nbsp; - &nbsp;Tco
&nbsp; &nbsp; &nbsp; &nbsp; - &nbsp;Tdata
&nbsp; &nbsp; &nbsp; &nbsp; - &nbsp;Tclkb
&nbsp; &nbsp; &nbsp; &nbsp; - &nbsp;Tsu
&nbsp; &nbsp; &nbsp; &nbsp; - &nbsp;数据需求时间(Tsu)-当前数据到达时间
&nbsp; &nbsp; &nbsp; &nbsp; - &nbsp;<img width="600" src="http://xilinx.eetrend.com/files/2019-09/wen_zhang_/100045283-80992-14.p…; alt="">
&nbsp; &nbsp; &nbsp; &nbsp; - &nbsp;<img width="600" src="http://xilinx.eetrend.com/files/2019-09/wen_zhang_/100045283-80993-15.p…; alt=""><br>

⑤ 保持时间的裕量(Hold Slack)新的数据不能太早的到达,否则就破坏了原来的数据
&nbsp; &nbsp; &nbsp; &nbsp; - &nbsp;<img width="600" src="http://xilinx.eetrend.com/files/2019-09/wen_zhang_/100045283-80994-16.p…; alt="">
&nbsp; &nbsp; &nbsp; &nbsp; - &nbsp;Tclka
&nbsp; &nbsp; &nbsp; &nbsp; - &nbsp;Tco
&nbsp; &nbsp; &nbsp; &nbsp; - &nbsp;Tdata
&nbsp; &nbsp; &nbsp; &nbsp; - &nbsp;Tclkb
&nbsp; &nbsp; &nbsp; &nbsp; - &nbsp;Th
&nbsp; &nbsp; &nbsp; &nbsp; - &nbsp;新的数据到达时间-数据需求时间(Th)
&nbsp; &nbsp; &nbsp; &nbsp; - &nbsp;<img width="600" src="http://xilinx.eetrend.com/files/2019-09/wen_zhang_/100045283-80995-17.p…; alt="">
&nbsp; &nbsp; &nbsp; &nbsp; - &nbsp;<img width="600" src="http://xilinx.eetrend.com/files/2019-09/wen_zhang_/100045283-80996-18.p…; alt="">

⑥ 如果Slack为正,说明我们的时序是满足的。

⑦ 为什么会出现Slack为负的情况?
&nbsp; &nbsp; - &nbsp;对于Set up Slack为负的情况
&nbsp; &nbsp; &nbsp; &nbsp; - &nbsp;数据延时太大,导致数据建立时间Tsu不够了,见下图:
&nbsp; &nbsp; &nbsp; &nbsp; - &nbsp;<img width="600" src="http://xilinx.eetrend.com/files/2019-09/wen_zhang_/100045283-80997-19.p…; alt="">
&nbsp; &nbsp; - &nbsp;Hold Slack为负
&nbsp; &nbsp; &nbsp; &nbsp; - &nbsp;时钟的延迟太大,导致当前data的Capture time到来的时候,已经在传下一个data了。
&nbsp; &nbsp; &nbsp; &nbsp; - &nbsp;<img width="600" src="http://xilinx.eetrend.com/files/2019-09/wen_zhang_/100045283-80998-20.p…; alt="">

⑧ Tdata = Tlogic(组合逻辑,逻辑门的延时)+Tnet(布线,线的延时)
&nbsp; &nbsp; - &nbsp;Tlogic:主要和我们的代码风格有关。
&nbsp; &nbsp; - &nbsp;Tnet:可能跟我们的布局布线的策略有关。

⑨ 系统的时钟频率Ts &gt;= Tco + Tdata + Tsu这三者决定了系统的时钟的最高频率。

<font size="4" color="red"><strong>5、总结:</strong></font>

① 通常我们都是以Launch edge作为零时刻点(参考时刻点)

② 通常Capture edge time = Launch edge time + 1 clock  cycle

③ Tsu和Th是芯片决定的。

版权声明:本文为CSDN博主「Sea_Sand」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/zz_Caleb/article/details/84453792