|  | 
 
| 
1.   基本的约束方法
x
EDA365欢迎您登录!您需要 登录 才可以下载或查看,没有帐号?注册  & @/ v- J% ^2 p6 M4 M为了保证成功的设计,所有路径的时序要求必须能够让执行工具获取。最普遍的三种路径为:
 - f" {- d, ^5 U( Z* \3 i( N输入路径(Input Path),使用输入约束0 _+ z" k1 p6 z: e) z. x# l# \) Y, D
 寄存器到寄存器路径(Register-to-Register Path),使用周期约束
 - s4 K* w, R6 P% F: ~/ r! D2 i输出路径(Output Path),使用输出约束
 ) P1 u' M2 A' J" @1 J具体的异常路径(Path specific exceptions),使用虚假路径、多周期路径约束
 ; w% j" R5 q4 l% W9 z
 ( y4 c+ w9 {! M- d1.1.  输入约束Input Constraint1 T: _# x1 x/ u3 Z* q3 q
 OFFSET IN约束限定了输入数据和输入时钟边沿的关系。
 + U$ Q1 G2 Q, T7 _% w- _- N5 u3 _0 z
 1.1.1.   系统同步输入约束System Synchronous Input) w9 F7 _& L/ e( R/ l4 `
 在系统同步接口中,同一个系统时钟既传输数据也获取数据。考虑到板子路径延时和时钟抖动,接口的操作频率不能太高。
 4 I% L* Z3 c6 F' r# S
  9 `  D3 A) q" V 上述时序的约束可写为:
 5 n9 t. i- A0 j/ H( J2 y7 p, xNET "SysClk" TNM_NET = "SysClk";
 0 S* v$ k5 d& S9 C( x* RTIMESPEC "TS_SysClk" = PERIOD "SysClk" 5 ns HIGH 50%;- o5 C9 t: K9 w' n
 OFFSET = IN 5 ns VALID 5 ns BEFORE "SysClk";
 ! Y) E0 ^& n2 b, v8 D1 s/ e' D
 % v/ A& P" a0 D- M% f1.1.2.   源同步输入约束Source Synchronous Input: V" u' Q) u% p: E5 m1 v/ f8 c
 在源同步接口中,时钟是在源设备中和数据一起产生并传输。
 / o: w+ V. [9 t
   4 V/ R8 k( ]6 W; [+ `! l' [上图的时序约束可写为:
 6 j* s0 b7 P1 d& |  _1 d2 B0 L  NET "SysClk" TNM_NET = "SysClk";
 " y) E' c" _: V  TIMESPEC "TS_SysClk" = PERIOD "SysClk" 5 ns HIGH 50%;7 m" _4 U! X7 n% @
 OFFSET = IN 1.25 ns VALID 2.5 ns BEFORE "SysClk" RISING;' f7 B6 l% b8 u6 Z5 G; [
 OFFSET = IN 1.25 ns VALID 2.5 ns BEFORE "SysClk" FALLING;
 / b- b' q& w& q; S$ K9 M" s; O- }: t' ]# N
 1.2.  寄存器到寄存器约束Register-to-Register Constraint& n1 c6 V9 l, o5 Q
 寄存器到寄存器约束往往指的是周期约束,周期约束的覆盖范围包括:
 ' N  m, H$ z9 G-覆盖了时钟域的时序要求
 : e1 N& c7 j2 h0 v, W7 A) U, D-覆盖了同步数据在内部寄存器之间的传输
 + G" d% Y# q! B: _! d) F. Q-分析一个单独的时钟域内的路径& S+ m) P- n8 ?% n) i  H
 -分析相关时钟域间的所有路径
 ! s( t$ P3 Z( X4 a-考虑不同时钟域间的所有频率、相位、不确定性差异
 # {- G& G8 P0 P4 T3 p. \2 n7 u- A* O; c9 \
 1.2.1.   使用DLL, DCM, PLL, and MMCM等时钟器件自动确定同步关系
 5 X1 C# N% I& C7 J使用这一类时钟IP Core,只需指定它们的输入时钟约束,器件将自动的根据用户生成IP Core时指定的参数约束相关输出,不需用户手动干预。9 {* O% {/ x# B. p1 g) Q
 2 A4 U; m( }" [
 1.2.2.   手动约束相关联的时钟域
 + d5 \/ |! p5 Q$ z8 j' S' U在某些情况下,工具并不能自动确定同步的时钟域之间的时钟时序关系,这个时候需要手动约束。例如:有两个有相位关系的时钟从不同的引脚进入FPGA器件,这个时候需要手动约束这两个时钟。
 - c2 B9 v! z' \2 b7 I" c% k0 y0 u0 I3 A8 {% M
 
 4 M' W( {5 s# Q3 u( R" H
 | 
 |