|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
假设信号需要从输入到输出在FPGA 内部经过一些逻辑延时和路径延时。我们的系统要求这个信号在 FPGA 内部的延时不 能超过 15ns,而开发工具在执行过程中找到了如图 1 所示的一些可能的布局布线方式。! }$ a% z3 r8 T( i
5 Z0 b/ W5 ]' A" L7 K, }那么,怎样的布局布线能够达到我们的要求呢?仔细分析一番,发现所有路径的延时可能为 14ns、14ns、16ns、17ns、18ns,有两条路径能够满足要求,布局布线就会选择满足要求的两条路径之一。" k; w' M9 p6 D
3 |. f V' [8 t& r6 P, H
3 |3 d: o- C+ ^( D: C6 F
! H! I$ |: w8 ^! q2 U! ^图 1 静态时序分析模型
" R3 o$ x4 J% o/ s4 r
6 F" h& c3 _* e$ i9 X因此,有些说法是错误的,不分什么情况就说时序不收敛,其实在不加约束的情况下谈 时序约束是没有意义的。
6 e; V. d) v1 V
0 c& ?5 O: W6 h$ k9 A$ a1 w( t附加约束的基本作用:
. f W" Y5 S. L: n, U- v8 @. i H6 z# v
1、提高设计的工作频率# J9 x! n" @4 M- N8 O
- V' l Z3 R% T1 c对很多数字电路设计来说,提高工作频率非常重要,因为高工作频率意味着高处理能力。 通过附加约束可以控制逻辑的综合、映射、布局和布线,以减小逻辑和布线延时,从而提高 工作频率。
$ Y; ?6 c/ S# p, }- W! m
: f q0 @6 l$ M2、获得正确的时序分析报告
8 ~8 B# e' U6 j# G5 y, K
0 Z3 B+ A" d' a% D; [几乎所有的 FPGA 设计平台都包含静态时序分析工具,利用这类工具可以获得映射或 布局布线后的时序分析报告,从而对设计的性能做出评估。静态时序分析工具以约束作为判断时序是否满足设计要求的标准,因此要求设计者正确输入约束,以便静态时序分析工具输 出正确的时序分析报告。 ! e9 x' x& h1 m6 l, {) i' U! K
9 E7 p6 m% }$ a' Z5 j7 E
3、指定 FPGA/cpld 引脚位置与电气标准. F1 R9 y& @# u- {1 F* J
- v- [: Q4 O4 s1 l3 XFPGA/CPLD 的可编程特性使电路板设计加工和 FPGA/CPLD 设计可以同时进行,而不必等 FPGA/CPLD 引脚位置完全确定,从而节省了系统开发时间。这样,电路板加工完成后, 设计者要根据电路板的走线对 FPGA/CPLD 加上引脚位置约束,使 FPGA/CPLD 与电路板正确连接。另外通过约束还可以指定 IO 引脚所支持的接口标准和其他电气特性。为了满足日 新月异的通信发展,Xilinx 新型 FPGA/CPLD 可以通过 IO 引脚约束设置支持诸如 AGP、 BLVDS、CTT、GTL、GTLP、HSTL、LDT、LVCMOS、LVDCI、LVDS、LVPECL、LVDSEXT、 LVTTL、PCI、PCIX、SSTL、ULVDS 等丰富的 IO 接口标准。另外通过区域约束还能在 FPGA上规划各个模块的实现区域,通过物理布局布线约束,完成模块化设计等。
3 Y5 u& K8 [ O7 U
B8 Q: c$ |$ C+ V5 N静态时序分析中使用的各个模型分析:
8 s& s' x3 W% }' r
. ?" ~ G5 D, @' R& X3 U+ i% P5 r1、周期(PERIOD)的含义) x. f5 ?; r+ |5 e& i( S. g: h0 |
. f( W7 I3 e& \5 \
周期的含义是时序中最简单也是最重要的含义,其它很多时序概念会因为软件商不同略有差异,而周期的概念确是最通用的,周期的概念是 FPGA/ASIC 时序定义的基础概念。后面要讲到的其它时序约束都是建立在周期约束的基础上的,很多其它时序公式,可以用周期公式推导。周期约束是一个基本时序和综合约束,它附加在时钟网线上,时序分析工具根据PERIOD 约束检查时钟域内所有同步元件的时序是否满足要求。PERIOD 约束会自动处理寄存器时钟端的反相问题,如果相邻同步元件时钟相位相反,那么它们之间的延迟将被默认限制为 PERIOD 约束值的一半,如图 2 所示2 _3 b7 b( j( A. H( z( H
. [: Z: @% G; b) O0 u& x
- t6 L+ `6 V' G. j! K3 {5 ~
# m2 H3 }% S; V2 f% ~( j+ m图 2 周期定义
' h# A0 S6 G' |0 J( e0 v' k% B
* X7 c+ h" P4 x( q3 F时钟的最小周期为:
( s( T6 N( W& a. D9 b# x8 [, b4 O
" R$ }9 `- N6 ]% \: {TCLK = TCKO + TLOGIC + TNET + TSETUP - TCLK_SKEW ' n) c3 @* p# b# N, L
/ }9 l! c3 ?0 u; r! c: M7 E
TCLK_SKEW = TCD1 - TCD2(稳定时为负的)
% B4 W( C- U- _( z( c
9 c6 U, v2 D4 O其中 TCKO 为时钟输出时间,TLOGIC 为同步元件之间的组合逻辑延迟,TNET 为网线 延迟,TSETUP 为同步元件的建立时间,TCLK_SKEW 为时钟信号 TCD2 和 TCD1 延迟的差别。
" d. }& Y& T4 ?" J9 A8 ^$ s( R
2 Q" \& J. [# c% K+ [; M2、关于输入到达时间
& M, e/ P. o4 w
3 T d* K5 }# \. _3 A* L% {' n4 Z; I. [$ r) b: Y, J
- u( M: d! n0 K N# i+ Q7 L% r4 X
' a1 p+ n9 O ~: O
图 3 输入到达时间示意图" A5 h+ N9 W1 _* R4 {& r) |/ l" l
& e: K7 ~' w' r- I: e定义的含义是输入数据在有效时钟沿之后的 TARRIVAL 时刻到达。则
; ^$ V! C) @9 p6 j3 U# t1 @) H0 R2 d
! k w; m( ?6 ^5 LTARRIVAL = TCKO + TOUTPUT + TLOGIC(1)
. h3 }& @4 n% q" V. [: I% l1 _8 S+ Z# L4 R
根据上面介绍的周期(Period)公式,我们可以得到:% `7 w. u+ E" M" S* i
( ^. l% V: k4 N) E
Tcko + Toutput + Tlogic + Tinput + Tsetup - Tclk_skew = Tclk(2) & ~! }/ \4 I6 v3 t) J6 G2 d& l' c
0 [, v1 T. D. m2 E: Z$ Z) @
将公式 1 代入公式 2:Tarrival + Tinput + Tsetup - Tclk_skew = Tclk,而 Tclk_skew 满足时序关系后为负,所以 TARRIVAL + TINPUT + TSETUP < Tclk(3)。" b# y" c; P6 _0 b: g6 O9 L; c
- Z# f( U, A, l# f0 X( f0 U
这就是 Tarrival 应该满足的时序关系。其中 TINPUT 为输入端的组合逻辑、网线和 PAD的延迟之和,TSETUP 为输入同步元件的建立时间。 : d) |% ^1 }* s% C
' w [9 p3 l! p1 t
3、数据延时和数据到达时间的关系" f& a' Y# _, O5 J% w7 p
: r$ u$ U' d' Y# t' n V% i# I. }8 I. |
* l, g r6 v: U* \( d, I6 t# x8 Q1 c; u: C- y3 e1 f1 h
图 4 数据延时和数据到达时间的关系. h9 A( Q' N' X! A
# ^8 e5 T5 u: ^' Z: w: xTDELAY 为要求的芯片内部输入延迟,其最大值 TDELAY_MAX 与输入数据到达时间 TARRIVAL 的关系如图 4 所示。也就是说:0 ?/ C# K6 x. l: o6 }- r' J. `. h
7 j2 t! u$ r6 E4 ~# o! t/ jTDELAY_MAX + TARRIVAL = TPERIOD(4)
" ]* M1 o% f# E: s9 ^8 z% t( o" [2 w' e
所以:
' `6 w- t9 @3 v& U( p9 @; k# J1 V& F3 h/ O
TDELAY < TDELAY_MAX = TPERIOD - TARRIVAL(5) : e- h ]- Y" i1 Y4 }3 n
3 x' j# Y& ^, I. e' H7 o4 @$ K! H
4、要求输出的稳定时间: r8 V4 t/ S; @2 |4 J% K" T, L; v
2 S/ [+ Y2 k( l3 a3 x7 @
从下一级输入端的延迟可以计算出当前设计输出的数据必须在何时稳定下来,根据这个 数据对设计输出端的逻辑布线进行约束,以满足下一级的建立时间要求,保证下一级采样的 数据是稳定的。计算要求的输出稳定时间如图 5 所示:
9 e& q9 P' s/ {$ O( X1 L- U% }4 D) d; |) D
_2 L. c: u5 ?# f' ^! r& f! T. S1 \2 j1 \' o- [
图 5 要求的输出稳定时间示意图
, f1 a$ `9 Z4 w( l* `) V- Y/ |9 D7 v- m: ~9 e& K
公式的推导如下:
6 ~) L' Q% Y) t0 I1 V1 M" n# p& Y
9 M! J$ k0 Z0 M0 W& ?9 F定义:TSTABLE = TLOGIC + TINPUT + TSETUP
) e4 z) _" o$ M4 Y' b+ c4 v0 Y5 I8 Z% h6 F6 {" i4 x m8 @
从前面介绍的周期(Period)公式,可以得到(其中 TCLK_SKEW = TCLK1 - TCLK2):
; c8 i7 S( `! n4 {
, ]' u' d6 w$ rTCLK = TCKO + TOUTPUT + TLOGIC + TINPUT + TSETUP + TCLK_SKEW
+ m+ H$ _9 ^4 e; y2 K7 r3 V+ S! V$ v/ z; u
将 TSTABLE 的定义代入到周期公式,可以得到:
4 ^6 v& K5 [% r5 _
( C% d5 r+ H& hTCLK = TCKO + TOUTPUT + TSTABLE + TCLK_SKEW
_! X' b& r# e) W$ e) I1 t* u& D" W5 m2 [3 }; ~
所以:TCKO + TOUTPUT + TSTABLE < TCLK5 }& k Y- M# z' W
% I, @4 X$ a$ ^% g5 R# |7 s! d这个公式就是 TSTABLE 必须要满足的基本时序关系,即本级的输出应该保持怎么样的 稳定状态,才能保证下级芯片的采样稳定。有时我们也称这个约束关系是输出数据的保持时 间的时序约束关系。只要满足上述关系,当前芯片输出端的数据比时钟上升沿提早 TSTABLE 时间稳定下来,下一级就可以正确地采样数据。其中 TOUTPUT 为设计中连接同步元件输出端的组合逻辑、网线和 PAD 的延迟之和,TCKO 为同步元件时钟输出时间。
- X6 U8 `0 j+ o) J+ `7 e! F
+ M% @4 q$ u! T2 F. x下面阐述的是上面的时序概念对应于 Altera 中的几个重要的时序问题。
, H0 Y# ~9 r! n8 ^4 c8 |* H+ ?" r( Y. A) t& A0 T( s
下面主要介绍 Altera 对应的这些时序概念和约束方法。前面首先介绍的第一个时序概念周期(Period),这个概念是 FPGA/ASIC 通用的一个概念,各方的定义相当统一,至多是描 述方式不同罢了,所有的 FPGA 设计都首先要进行周期约束,这样做的好处除了在综合与 布局布线时给出规定目标外,还能让时序分析工具考察整个设计的 Fmax 等。
1 q* \) P) H N% l/ T5 i" @5 i4 M8 `5 ]- I) U; N% m! u- N, |/ H, o# v
Altera 的周期定义如图 6 所示,公式描述如下:7 [0 y z7 t4 A% ~. z4 N4 J0 V
" x* C4 ?2 ?& J0 T
! o# d& R" h( m+ M
5 ^! Z$ v3 V! T! H- s5 m x图 6 Altera-clock period
0 c/ u+ [' z: ^5 h+ p. |, E* N2 i! W/ p" H7 o2 C1 B: [2 ]
Clock Period = Clk – to – out + Data Delay + Setup Time - Clk Skew,; c' g& e' l) b; u& h. D
2 d$ O7 ]2 U6 W1 x. @% T+ e# O即: Tclk = Tco + B + Tsu - (E-C) Fmax =1/Tclk " G- C+ m6 H" g( N7 O& v" e/ \
! U5 \4 u5 U% h( n" A$ [对比一下前面的介绍,只要理解了 B 包含了两级寄存器之间的所有 logic 和 net 的延时 就会发现与前面公式完全一致。
7 N& {6 e$ E& I7 v: c5 u& j% p7 j# h( b' z+ G* P% M# t& |4 i6 k
2 R7 _* ]! H+ a3 g8 u5 C
. O! I7 U, ~- i( P% K5 \2 i" H: W* K2 V- W3 x- Z2 R! B
|
|