|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
1. 基本的约束方法, N/ j% o) z* W
为了保证成功的设计,所有路径的时序要求必须能够让执行工具获取。最普遍的三种路径为:
# h0 [, b0 h8 _8 D# a! U输入路径(Input Path),使用输入约束
- g- O) z" ?# ?寄存器到寄存器路径(Register-to-Register Path),使用周期约束( w3 I- k# `; X
输出路径(Output Path),使用输出约束
! k* o8 X% L3 e1 w具体的异常路径(Path SPECific exceptions),使用虚假路径、多周期路径约束
1 e9 P8 K0 G. A' r
' C. N: s! N" l+ Z+ C. p1.1. 输入约束Input Constraint
9 W; y" m0 h) n! U. w' w. w2 ROFFSET IN约束限定了输入数据和输入时钟边沿的关系。
6 K% o) j9 f& t3 X; r2 {3 u. Z/ U1.1.1. 系统同步输入约束System Synchronous Input0 W5 ^( m" z- w3 E
在系统同步接口中,同一个系统时钟既传输数据也获取数据。考虑到板子路径延时和时钟抖动,接口的操作频率不能太高。
. c% F& K# i& Z* F# c. X, n8 t7 H" S+ ^! S N
上述时序的约束可写为:
, w0 n6 D$ ^5 O- T
: O- d) u/ ^, r4 Z
NET "SysClk" TNM_NET = "SysClk";
( m9 S) h/ e/ Q& R+ kTIMESPEC "TS_SysClk" = PERIOD "SysClk" 5 ns HIGH 50%;
0 d2 v$ Q4 t7 s8 P0 K# n$ ?OFFSET = IN 5 ns VALID 5 ns BEFORE "SysClk";
4 H$ b8 x- M# H# c0 x4 ~# Z: V8 @2 I% {; j8 A
1.2. 寄存器到寄存器约束Register-to-Register Constraint! F5 P6 ]2 D7 E' d: p, P
寄存器到寄存器约束往往指的是周期约束,周期约束的覆盖范围包括:5 H6 T* G: |: H0 B# O' ^; w! f) r- K
覆盖了时钟域的时序要求1 v. g" l& L0 R/ n! ]; Y
覆盖了同步数据在内部寄存器之间的传输
/ E' F+ b$ C/ U( Z Z分析一个单独的时钟域内的路径0 l5 a" ?1 H2 E7 b- o: P: l
分析相关时钟域间的所有路径- k4 X( Y( [0 A) X. T$ y) g; p
考虑不同时钟域间的所有频率、相位、不确定性差异
/ ^, b2 }0 a$ @" l# }: ]2 E6 c
6 G9 ?% C9 D8 v4 P X) \# }1.2.1. 使用DLL, DCM, PLL, and MMCM等时钟器件自动确定同步关系
2 I1 P' C* ]8 Z9 F3 V- M使用这一类时钟IP Core,只需指定它们的输入时钟约束,器件将自动的根据用户生成IP Core时指定的参数约束相关输出,不需用户手动干预。$ T/ s0 \& k) r
0 c2 O( v+ B9 J7 d
上图的时序约束可写为:
2 f/ N2 w$ d$ s6 d( S1 ^* g! s1 U; CNET “ClkIn” TNM_NET = “ClkIn”;1 _. n9 N) Z2 P3 X
TIMESPEC “TS_ClkIn” = PERIOD “ClkIn” 5 ns HIGH 50%;
# j4 P! [! g9 k$ K" U7 D# @$ r* Q4 b( z) t& C" ^
1.2.2. 手动约束相关联的时钟域
" l* g- I/ ]. a' ^在某些情况下,工具并不能自动确定同步的时钟域之间的时钟时序关系,这个时候需要手动约束。例如:有两个有相位关系的时钟从不同的引脚进入FPGA器件,这个时候需要手动约束这两个时钟。1 y3 b$ w# _% d7 C
: C/ f7 B. x5 `& s* |3 e$ T1 a
上图的时序约束可写为:
y% i5 p& ~4 oNET“Clk1X"TNM_NET=“Clk1X";
" d2 B4 \# q9 ~3 R; G$ T9 ?NET“Clk2X180"TNM_NET=“Clk2X180";9 O! [9 q9 r- n4 X! F7 t
TIMESPEC"TS_Clk1X"=PERIOD"Clk1X 7 5ns;
) ^1 o5 _8 S5 Z2 l3 @2 n; |, cTIMESPEC"TS_Clk2X180"=PERIOD"Clk2X180“TS_Clk1X/2PHAS2 +1.25ns;
! F" F$ u! ^5 E! q' p# W q- i* c1 F4 j5 N+ k
T6 `) b! g; _0 C7 s1 s' a |
|