找回密码
 注册
关于网站域名变更的通知
查看: 157|回复: 2
打印 上一主题 下一主题

Xilinx FPGA编程技巧:常用时序约束详解

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2022-9-14 10:35 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
1.   基本的约束方法
4 f/ r+ T- a; c# {  n为了保证成功的设计,所有路径的时序要求必须能够让执行工具获取。最普遍的三种路径为:! Z! E1 v* O2 D' G3 _
输入路径(Input Path),使用输入约束
  ~/ p, v9 O& N$ W6 E2 \寄存器到寄存器路径(Register-to-Register Path),使用周期约束- f% {+ J5 b- H& W- l2 `" X$ P. ^! v3 [, p
输出路径(Output Path),使用输出约束5 Q5 k* F' C! Q" Q4 |. @$ ?" y5 Z
具体的异常路径(Path specific exceptions),使用虚假路径、多周期路径约束  i8 e) N* k  V3 J+ \  M
9 i4 p1 I( E7 Q" S: ^  j" Q
1.1.  输入约束Input Constraint
1 ]0 W* P4 Y" ^2 SOFFSET IN约束限定了输入数据和输入时钟边沿的关系。
! V# Q, E  p; ~  ]) S1 z# V+ Q7 O+ e2 j. y3 ~2 M
1.1.1.   系统同步输入约束System Synchronous Input
. @+ o  p& G+ j: J在系统同步接口中,同一个系统时钟既传输数据也获取数据。考虑到板子路径延时和时钟抖动,接口的操作频率不能太高。8 o8 V: I2 P5 z$ C# z
0 d9 q/ w4 ]+ [& Y) l  Z
上述时序的约束可写为:
& @+ B: h- O/ I; h% C) f' O3 H8 YNET "SysClk" TNM_NET = "SysClk";2 b7 E# N* Z# V2 m& K
TIMESPEC "TS_SysClk" = PERIOD "SysClk" 5 ns HIGH 50%;- E: X$ v; N; t4 R8 Z
OFFSET = IN 5 ns VALID 5 ns BEFORE "SysClk";5 i, r4 }; d6 F+ x* q$ g
; B8 q& M2 h7 C: S
1.1.2.   源同步输入约束Source Synchronous Input6 P- I7 c! C) [, P
在源同步接口中,时钟是在源设备中和数据一起产生并传输。
1 j+ M3 t1 x# ^ $ K4 R9 r! w5 u; B. W! B8 \7 Q
上图的时序约束可写为:
/ |7 M0 p4 Z3 p" j' _  NET "SysClk" TNM_NET = "SysClk";- H/ D5 ^: q( k
  TIMESPEC "TS_SysClk" = PERIOD "SysClk" 5 ns HIGH 50%;" u, p( E: [6 Y& q+ m
  OFFSET = IN 1.25 ns VALID 2.5 ns BEFORE "SysClk" RISING;
1 L& p/ N9 v2 |( q" G, }  OFFSET = IN 1.25 ns VALID 2.5 ns BEFORE "SysClk" FALLING;
  g) }6 R: E6 {) S) w  C  N. ~, S, B$ V  G% ?
1.2.  寄存器到寄存器约束Register-to-Register Constraint
" ^) P/ h  ]& e; C6 h) T: P2 S寄存器到寄存器约束往往指的是周期约束,周期约束的覆盖范围包括:
7 p) ^/ e3 y; w7 }4 f: L' m" |-覆盖了时钟域的时序要求
0 n! F1 `0 z1 o/ R) a$ w-覆盖了同步数据在内部寄存器之间的传输
8 U* v  u4 W$ W% }0 C-分析一个单独的时钟域内的路径
8 e- {5 R2 ^  k4 [: X-分析相关时钟域间的所有路径: {; |, _- z- z; o, _7 U
-考虑不同时钟域间的所有频率、相位、不确定性差异
4 }* h6 N* t- T4 E
; \0 d5 a: U0 R) n) e) b1.2.1.   使用DLL, DCM, PLL, and MMCM等时钟器件自动确定同步关系+ E: }8 U' e9 p' G# x" S
使用这一类时钟IP Core,只需指定它们的输入时钟约束,器件将自动的根据用户生成IP Core时指定的参数约束相关输出,不需用户手动干预。
9 s& w& `8 N+ A
. }, d: Y, d( T/ T, [1.2.2.   手动约束相关联的时钟域% E  L1 F& ^# O) J2 j
在某些情况下,工具并不能自动确定同步的时钟域之间的时钟时序关系,这个时候需要手动约束。例如:有两个有相位关系的时钟从不同的引脚进入FPGA器件,这个时候需要手动约束这两个时钟。, o$ y: d8 e; K0 L2 z
8 E; v* c% C# y1 H0 _, m4 {+ h* b
0 N& f2 Y; _% H; q8 C' e1 v

Xilinx FPGA编程技巧:常用时序约束详解.pdf

237.28 KB, 下载次数: 1, 下载积分: 威望 -5

该用户从未签到

2#
发表于 2022-9-14 10:56 | 只看该作者
) c& j' [) N/ j' n$ e% C! ~) ?
正需要这个资料呢,这种资料多分享,收获很大。

该用户从未签到

3#
发表于 2022-9-14 14:01 | 只看该作者
文章资料很丰富,特别的专业
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-10-6 03:27 , Processed in 0.140625 second(s), 26 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表