|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
1、时序约束的概念和基本策略
6 P0 T7 y. u2 G% U8 i时序约束主要包括周期约束(FFS到FFS,即触发器到触发器)和偏移约束(IPAD到FFS、FFS到OPAD)以及静态路径约束(IPAD到OPAD)等3种。通过附加约束条件可以使综合布线工具调整映射和布局布线过程,使设计达到时序要求。例如用OFFSET_IN_BEFORE约束可以告诉综合布线工具输入信号在时钟之前什么时候准备好,综合布线工具就可以根据这个约束调整与IPAD相连的Logic Circuitry的综合实现过程,使结果满足FFS的建立时间要求。& ~8 f N" z" ^ w( T- `4 O
附加时序约束的一般策略是先附加全局约束,然后对快速和慢速例外路径附加专门约束。附加全局约束时,首先定义设计的所有时钟,对各时钟域内的同步元件进行分组,对分组附加周期约束,然后对FPGA/cpld输入输出PAD附加偏移约束、对全组合逻辑的PAD TO PAD路径附加约束。附加专门约束时,首先约束分组之间的路径,然后约束快、慢速例外路径和多周期路径,以及其他特殊路径。
/ e( X% k4 F8 T1 x' o
; s0 _& R, k& K) k1 v; a6 I2、附加约束的基本作用
9 x, K& m& j+ s5 a% ^( T -提高设计的工作频率( y4 C0 x5 z' O5 ~
对很多数字电路设计来说,提高工作频率非常重要,因为高工作频率意味着高处理能力。通过附加约束可以控制逻辑的综合、映射、布局和布线,以减小逻辑和布线延时,从而提高工作频率。
: h8 V. {" O) [. [9 T-获得正确的时序分析报告
5 s0 ]+ ^4 o& J, p1 L几乎所有的FPGA设计平台都包含静态时序分析工具,利用这类工具可以获得映射或布局布线后的时序分析报告,从而对设计的性能做出评估。静态时序分析工具以约束作为判断时序是否满足设计要求的标准,因此要求设计者正确输入约束,以便静态时序分析工具输出正确的时序分析报告。1 k$ i/ ?+ ^ n# ~+ v* |
-指定FPGA/CPLD引脚位置与电气标准& O7 Y2 _6 h+ C$ K9 P% p
FPGA/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上规划各个模块的实现区域,通过物理布局布线约束,完成模块化设计等。
% x+ z* ], N2 f5 j! p$ J0 A$ a
# u* k1 e8 Y; }6 @6 L" f3、周期(PERIOD)的含义+ G& Y! X/ Q/ {) C
周期的含义是时序中最简单也是最重要的含义,其它很多时序概念会因为软件商不同略有差异,而周期的概念确是最通用的,周期的概念是FPGA/ASIC时序定义的基础概念。后面要讲到的其它时序约束都是建立在周期约束的基础上的,很多其它时序公式,可以用周期公式推导。周期约束是一个基本时序和综合约束,它附加在时钟网线上,时序分析工具根据PERIOD约束检查时钟域内所有同步元件的时序是否满足要求。PERIOD约束会自动处理寄存器时钟端的反相问题,如果相邻同步元件时钟相位相反,那么它们之间的延迟将被默认限制为PERIOD约束值的一半。如下图所示:& w: w/ [% F8 E X0 S3 I# F$ B+ g; h
2 e. y* w3 ^; Q9 M时钟的最小周期为:( F& ]% G% H8 l, T
TCLK = TCKO +TLOGIC +TNET +TSETUP -TCLK_SKEW
+ D( @) k1 p8 I- w- O7 o' [" ETCLK_SKEW =TCD2 -TCD1( h/ j/ m0 m4 a( J) h
其中TCKO为时钟输出时间,TLOGIC为同步元件之间的组合逻辑延迟,TNET为网线延迟,TSETUP为同步元件的建立时间,TCLK_SKEW为时钟信号TCD2和TCD1延迟的差别。$ F) n. A6 t' {2 z4 {$ w9 M
6 v& p# i7 d7 T4 |: F
4、数据和时钟之间的约束/ t0 V) K. P5 x0 n S
为了确保芯片数据采样可靠和下级芯片之间正确地交换数据,需要约束外部时钟和数据输入输出引脚之间的时序关系(或者内部时钟和外部输入/输出数据之间的关系,这仅仅是从采用了不同的参照系罢了)。约束的内容为告诉综合器、布线器输入数据到达的时刻,或者输出数据稳定的时刻,从而保证与下一级电路的时序关系。
1 z+ b4 X# P0 v" k$ {2 {这种时序约束在Xilinx中用Setup to Clock(EDGE),Clock(edge) to hold等表示。在ALTEra里常用tsu (Input Setup Times)、th (Input Hold Times)、tco (Clock to Out Delays)来表示。很多其它时序工具直接用setup和hold表示。其实他们所要描述的是同一个问题,仅仅是时间节点的定义上略有不同。
8 m. f5 n: ~5 Y4 a! @0 x. Y7 H4 J/ @- n
9 k3 _% K% _$ d8 o( a3 W; W
|
|