公式的推导如下:
定义:TSTABLE = TLOGIC + TINPUT + TSETUP
从前面介绍的周期(Period)公式,可以得到(其中 TCLK_SKEW = TCLK1 - TCLK2):
TCLK = TCKO + TOUTPUT + TLOGIC + TINPUT + TSETUP + TCLK_SKEW
将 TSTABLE 的定义代入到周期公式,可以得到:
TCLK = TCKO + TOUTPUT + TSTABLE + TCLK_SKEW
所以:TCKO + TOUTPUT + TSTABLE < TCLK
这个公式就是 TSTABLE 必须要满足的基本时序关系,即本级的输出应该保持怎么样的 稳定状态,才能保证下级芯片的采样稳定。有时我们也称这个约束关系是输出数据的保持时 间的时序约束关系。只要满足上述关系,当前芯片输出端的数据比时钟上升沿提早 TSTABLE 时间稳定下来,下一级就可以正确地采样数据。其中 TOUTPUT 为设计中连接同步元件输出端的组合逻辑、网线和 PAD 的延迟之和,TCKO 为同步元件时钟输出时间。
下面阐述的是上面的时序概念对应于 Altera 中的几个重要的时序问题。
下面主要介绍 Altera 对应的这些时序概念和约束方法。前面首先介绍的第一个时序概念周期(Period),这个概念是 FPGA/ASIC 通用的一个概念,各方的定义相当统一,至多是描 述方式不同罢了,所有的 FPGA 设计都首先要进行周期约束,这样做的好处除了在综合与 布局布线时给出规定目标外,还能让时序分析工具考察整个设计的 Fmax 等。
Altera 的周期定义如图 6 所示,公式描述如下:
图 6 Altera-clock period
Clock Period = Clk – to – out + Data Delay + Setup Time - Clk Skew,
即: Tclk = Tco + B + Tsu - (E-C) Fmax =1/Tclk
对比一下前面的介绍,只要理解了 B 包含了两级寄存器之间的所有 logic 和 net 的延时 就会发现与前面公式完全一致。
其他一些重要的概念:
1、Clock Setup Time(tsu)
要想正确采样数据,就必须使数据和使能信号在有效时钟沿到达前就准备好,所谓时钟建立时间就是指时钟到达前,数据和使能已经准备好的最小时间间隔。如图 7 所示:
图 7 tsu 示意图
这里定义Setup时间是站在同步时序整个路径上的,需要区别的是另一个概念Micro tsu。Micro tsu 指的是一个触发器内部的建立时间,它是触发器的固有属性,一般典型值小于1~2ns。在 Xilinx 等的时序概念中,称 Altera 的 Micro tsu 为 setup 时间,用 Tsetup 表示,请 大家区分一下。
回到 Altera 的时序概念,Altera 的 tsu 定义如下:
tsu = Data Delay – Clock Delay + Micro tsu
2、Clock Hold Time(tH)
时钟保持时间是只能保证有效时钟沿正确采用的数据和使能信号的最小稳定时间。其定 义如图 8 所示:
图 8 tH示意图
时钟保持时间是只能保证有效时钟沿正确采用的数据和使能信号的最小稳定时间。其定 义如下图所示:定义的公式为:tH = Clock Delay – Data Delay + Micro tH 注:其中 Micro tH 是指寄存器内部的固有保持时间,同样是寄存器的一个固有参数, 典型值小于 1~2ns。
3、Clock-to-Output Delay(tco)
这个时间指的是当时钟有效沿变化后,将数据推倒同步时序路径的输出端的最小时间间隔。如图 9 所示:
图 9 tco 示意图
定义:tco = Clock Delay + Micro tco + Data Delay
注:其中 Micor tco 也是一个寄存器的固有属性,指的是寄存器相应时钟有效沿,将数 据送到输出端口的内部时间参数。它与 Xilinx 的时序定义中,有一个概念叫 Tcko 是同一个概念。
4、Pin to Pin Delay(tpd)
tpd 指输入管脚通过纯组合逻辑到达输出管脚这段路径的延时,特别需要说明的是,要求输入到输出之间只有组合逻辑,才是 tpd 延时。
5、Slack
Slack 是表示设计是否满足时序的一个称谓,正的 Slack 表示满足时序(时序的余量),负的 Slack 表示不满足时序(时序的欠缺量)。
Slack 的定义和图形如图 10 所示:
图 10 Slack 示意图
Slack = Required clock period – Actual clock period Slack = Slack clock period – ( Micro tCO + Data Delay + Micro tSU )
6、始终偏斜
Clock Skew 指一个同源时钟到达两个不同的寄存器时钟端的时间偏移,如图 11 所示:
图 11 clock skew 示意图