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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
1.   基本的约束方法
" A0 E- z5 A- ^/ t$ r/ M( q8 y为了保证成功的设计,所有路径的时序要求必须能够让执行工具获取。最普遍的三种路径为:* y0 N% P4 e# T0 g# z% }9 e# {
输入路径(Input Path),使用输入约束
6 g$ q, U/ u( J2 h+ i. _寄存器到寄存器路径(Register-to-Register Path),使用周期约束* Q' e( g: q5 g1 h* Q
输出路径(Output Path),使用输出约束
/ L! x, L- o* N' K, T具体的异常路径(Path specific exceptions),使用虚假路径、多周期路径约束
. i4 `3 U9 r. @9 Z
. v3 Z1 y  j. v% i1.1.  输入约束Input Constraint: C0 u. t6 s5 @5 E8 o) }  d
OFFSET IN约束限定了输入数据和输入时钟边沿的关系。
& N3 [8 \9 f. n, _4 {4 G& S& b
; L' r+ `2 x9 e4 T1.1.1.   系统同步输入约束System Synchronous Input
  t6 N2 a0 v' E) D/ U在系统同步接口中,同一个系统时钟既传输数据也获取数据。考虑到板子路径延时和时钟抖动,接口的操作频率不能太高。8 Y2 U2 d& x$ f% o. K
1 u7 E4 Y: f3 I% ~4 ?5 a
上述时序的约束可写为:
2 ~* S" u* E7 q9 N$ ENET "SysClk" TNM_NET = "SysClk";
! q5 s& R* X  ^; B+ ?9 W8 ^) g% O/ tTIMESPEC "TS_SysClk" = PERIOD "SysClk" 5 ns HIGH 50%;
" |4 z# h9 c3 ]OFFSET = IN 5 ns VALID 5 ns BEFORE "SysClk";% M  f# L" ^' ?+ Y; v) X

1 T2 `9 l; [. U$ @; r# O: a1.1.2.   源同步输入约束Source Synchronous Input( e, P% o3 r& M9 p6 C- D
在源同步接口中,时钟是在源设备中和数据一起产生并传输。
3 g  M, y  O' p8 q$ o' X0 U! u / A% P; `5 j4 E- Q
上图的时序约束可写为:
2 M8 ^/ D8 D$ p" h( S4 l( E! j. T  NET "SysClk" TNM_NET = "SysClk";
; \9 K. {1 S6 ]4 t; d) v# s8 u' c+ ]  TIMESPEC "TS_SysClk" = PERIOD "SysClk" 5 ns HIGH 50%;! G& r- W5 I5 x+ X! ]7 S5 \
  OFFSET = IN 1.25 ns VALID 2.5 ns BEFORE "SysClk" RISING;7 I; w4 h1 t: I6 n, f' Q& }
  OFFSET = IN 1.25 ns VALID 2.5 ns BEFORE "SysClk" FALLING;
  e/ U7 {9 ?1 k( H! ?+ f
& d( R% K8 U! R1.2.  寄存器到寄存器约束Register-to-Register Constraint
, q% L, S/ X1 q寄存器到寄存器约束往往指的是周期约束,周期约束的覆盖范围包括:
( ^# I8 D4 b6 y: X( B# y-覆盖了时钟域的时序要求
- A7 ^  B0 T8 y+ B& B/ w1 I* I-覆盖了同步数据在内部寄存器之间的传输7 M, D/ |/ m# Q# U
-分析一个单独的时钟域内的路径
5 r4 x/ ^' g9 r2 x-分析相关时钟域间的所有路径
, ]6 G  ?% y! \2 Q" s: m3 u-考虑不同时钟域间的所有频率、相位、不确定性差异  F8 v" L9 A. ^5 K; C7 q' `

8 z% W; g5 v( r" e$ g  u( g1.2.1.   使用DLL, DCM, PLL, and MMCM等时钟器件自动确定同步关系. w; o% ]# _9 L* @- N
使用这一类时钟IP Core,只需指定它们的输入时钟约束,器件将自动的根据用户生成IP Core时指定的参数约束相关输出,不需用户手动干预。. c" B" B0 U( {2 p) G6 g

+ X9 I* I) ?! H1 P1 ~# O: B7 d4 K1.2.2.   手动约束相关联的时钟域$ ]/ n& X& Z0 H' q" t
在某些情况下,工具并不能自动确定同步的时钟域之间的时钟时序关系,这个时候需要手动约束。例如:有两个有相位关系的时钟从不同的引脚进入FPGA器件,这个时候需要手动约束这两个时钟。
( s6 g0 J( U- o* W1 \8 U% G# R+ z3 j
0 E% M3 b) A7 _5 f

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

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

该用户从未签到

2#
发表于 2022-9-14 10:56 | 只看该作者

% o# n" G3 V8 f正需要这个资料呢,这种资料多分享,收获很大。

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-7-25 20:57 , Processed in 0.109375 second(s), 26 queries , Gzip On.

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

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

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