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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
1.   基本的约束方法
1 m' g8 q; `* h6 h+ x$ ~6 K为了保证成功的设计,所有路径的时序要求必须能够让执行工具获取。最普遍的三种路径为:
' p) A2 N3 J" x9 L6 v$ ?输入路径(Input Path),使用输入约束6 H8 `' J3 \! ]+ |" c8 _- `
寄存器到寄存器路径(Register-to-Register Path),使用周期约束/ j5 o+ C2 M2 ~' M; A$ ?. ?
输出路径(Output Path),使用输出约束
. Y- F9 U6 k, a& U6 Z" ~具体的异常路径(Path SPECific exceptions),使用虚假路径、多周期路径约束
" ~: D% D5 A4 z6 Y. z2 ^" g0 Q" E$ m0 b, n: K
1.1.  输入约束Input Constraint
$ d* R5 x/ S2 v  A5 HOFFSET IN约束限定了输入数据和输入时钟边沿的关系。
& y6 @3 G- |# X  j6 S; G1.1.1.  系统同步输入约束System Synchronous Input3 Y. g* Q$ N- f2 ^' ~
在系统同步接口中,同一个系统时钟既传输数据也获取数据。考虑到板子路径延时和时钟抖动,接口的操作频率不能太高。- q7 i( t2 k' ^3 W2 `# n) _9 U

: S: K' G4 x! U  G# i& H上述时序的约束可写为:' \' s* Q6 m4 p

& Z: r8 J/ s2 x4 ~* B- KNET "SysClk" TNM_NET = "SysClk";
% f+ E/ L3 f) j, lTIMESPEC "TS_SysClk" = PERIOD "SysClk" 5 ns HIGH 50%;6 K3 m3 a( s( @1 o
OFFSET = IN 5 ns VALID 5 ns BEFORE "SysClk";/ W8 O5 z# O' b7 l
) X, p' b7 g' D1 K8 e; {) B
1.2.  寄存器到寄存器约束Register-to-Register Constraint8 V$ D' t! r* Q
寄存器到寄存器约束往往指的是周期约束,周期约束的覆盖范围包括:
! Z* k; p+ x# d覆盖了时钟域的时序要求
& _! l7 W6 V1 w1 b) p' c覆盖了同步数据在内部寄存器之间的传输
7 @( K8 e* S: i9 M% d) ~& T分析一个单独的时钟域内的路径
& b+ A% i' V( z4 p9 L% n- W分析相关时钟域间的所有路径
$ o7 z( W) S$ M& G( h考虑不同时钟域间的所有频率、相位、不确定性差异8 A/ H" ?% t7 y  v0 ]3 }

6 L9 ]! `" Q) F$ }* }1.2.1.   使用DLL, DCM, PLL, and MMCM等时钟器件自动确定同步关系2 e4 a0 w5 c; `" _
使用这一类时钟IP Core,只需指定它们的输入时钟约束,器件将自动的根据用户生成IP Core时指定的参数约束相关输出,不需用户手动干预。( T4 Z( W; d& ~" U! C

4 a- s" Q; R8 A( g$ ^; G3 Z上图的时序约束可写为:8 P1 k& t, V+ M, c4 O
NET “ClkIn” TNM_NET = “ClkIn”;" M  K/ _2 o$ |8 Y+ W) z# [5 B
TIMESPEC “TS_ClkIn” = PERIOD “ClkIn” 5 ns HIGH 50%;
& }5 p( S8 F# g
( z' r/ P8 m, G1 a1.2.2.   手动约束相关联的时钟域2 B6 e( q! G4 e' n
在某些情况下,工具并不能自动确定同步的时钟域之间的时钟时序关系,这个时候需要手动约束。例如:有两个有相位关系的时钟从不同的引脚进入FPGA器件,这个时候需要手动约束这两个时钟。0 B9 O3 d' f$ B+ X

' s) e7 ^5 g( V* j上图的时序约束可写为:* }& N! q- ~$ O' {' U) ~1 f! j0 }
NET“Clk1X"TNM_NET=“Clk1X";
2 e$ @4 K3 m, O5 u+ F& p9 p: ANET“Clk2X180"TNM_NET=“Clk2X180";+ Y: M) j; T- ]/ Z
TIMESPEC"TS_Clk1X"=PERIOD"Clk1X 7 5ns;
/ O+ e( r& Q' M8 T8 U' L9 NTIMESPEC"TS_Clk2X180"=PERIOD"Clk2X180“TS_Clk1X/2PHAS2 +1.25ns;
. X' @; w; o( s+ I$ H: g2 k  H; m) v" U5 a; f" }% c* _% C. c
( G' x. B3 d/ [) y8 p# F, d

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

400.76 KB, 下载次数: 3, 下载积分: 威望 -5

该用户从未签到

2#
发表于 2022-6-16 10:13 | 只看该作者
谢谢楼主慷慨分享

该用户从未签到

3#
发表于 2022-6-16 14:03 | 只看该作者
谢谢楼主慷慨分享
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-10-6 21:01 , Processed in 0.156250 second(s), 26 queries , Gzip On.

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

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

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