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