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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
1.   基本的约束方法
) [3 Q. U0 O# i/ C4 p' f, Q为了保证成功的设计,所有路径的时序要求必须能够让执行工具获取。最普遍的三种路径为:
2 \3 I) I+ M5 N. L3 ~3 y: E9 ]输入路径(Input Path),使用输入约束5 p, G9 v# N  ?
寄存器到寄存器路径(Register-to-Register Path),使用周期约束- `! B  k3 k0 t8 p% L( k4 v  e/ V
输出路径(Output Path),使用输出约束- X' d: b  U7 @% N8 B, U1 r
具体的异常路径(Path SPECific exceptions),使用虚假路径、多周期路径约束
4 i- X* E" x. m) v4 U4 A
3 [5 O4 s' w* g0 \/ e; V1.1.  输入约束Input Constraint
  ^9 D. _2 L' m* w1 q0 JOFFSET IN约束限定了输入数据和输入时钟边沿的关系。
8 V* a: F# ^- A# f1.1.1.  系统同步输入约束System Synchronous Input" S& ?2 N) I0 ]7 b3 K: z& h
在系统同步接口中,同一个系统时钟既传输数据也获取数据。考虑到板子路径延时和时钟抖动,接口的操作频率不能太高。
" u) y, o; \9 O; E% z! Q: F: z2 Y% B$ {  H) {9 x& Y
上述时序的约束可写为:+ m: ]5 @! Z$ \0 D. E3 n

: Y1 U3 V# j/ s0 b5 f- P. yNET "SysClk" TNM_NET = "SysClk";
# \* Y- t7 d2 A- j6 QTIMESPEC "TS_SysClk" = PERIOD "SysClk" 5 ns HIGH 50%;
5 Y# E+ ]2 I3 v4 `6 g4 P. b: j/ `OFFSET = IN 5 ns VALID 5 ns BEFORE "SysClk";! ^- g2 _! j% `- ~3 }& W
! k; l7 O; t$ U! Y" t
1.2.  寄存器到寄存器约束Register-to-Register Constraint
6 A6 p, O+ P% Y( ?2 h$ m, P1 j寄存器到寄存器约束往往指的是周期约束,周期约束的覆盖范围包括:
4 A# R% \4 K) e覆盖了时钟域的时序要求+ c) Q; j7 [2 X1 i. B* g3 [: y3 @/ L
覆盖了同步数据在内部寄存器之间的传输, D7 b* p" ]7 \+ U, R* f
分析一个单独的时钟域内的路径8 y9 L; h. r, c) f0 b
分析相关时钟域间的所有路径
! @- o5 j* e7 p, `8 }1 e: ~考虑不同时钟域间的所有频率、相位、不确定性差异: J3 B: d3 Y( m" y; Y! L

- \4 \$ O; H3 t* B  {* V' v$ c7 L1.2.1.   使用DLL, DCM, PLL, and MMCM等时钟器件自动确定同步关系% J* i4 q0 z* v
使用这一类时钟IP Core,只需指定它们的输入时钟约束,器件将自动的根据用户生成IP Core时指定的参数约束相关输出,不需用户手动干预。8 S9 b0 V1 S8 P- S, w
& Y3 K5 y; }- }1 a& a; D
上图的时序约束可写为:
, W: v- X  n$ O3 Y% hNET “ClkIn” TNM_NET = “ClkIn”;
4 \! \4 ]  \# tTIMESPEC “TS_ClkIn” = PERIOD “ClkIn” 5 ns HIGH 50%;/ }" C1 P8 z; D- H( V, l- t/ N
' Z3 c# `* Y# Z8 j5 U0 _4 E+ b" P3 Y! k
1.2.2.   手动约束相关联的时钟域5 m& c- ~( i$ |. G( n/ X) P, R
在某些情况下,工具并不能自动确定同步的时钟域之间的时钟时序关系,这个时候需要手动约束。例如:有两个有相位关系的时钟从不同的引脚进入FPGA器件,这个时候需要手动约束这两个时钟。
& d5 Y9 o$ f6 u+ s8 k
) O6 D3 l% `# I0 o  H上图的时序约束可写为:
6 W2 J0 V) C! kNET“Clk1X"TNM_NET=“Clk1X";
6 g) [9 H& M& M) ?NET“Clk2X180"TNM_NET=“Clk2X180";. N- @- e) |9 [- @. E. j+ n
TIMESPEC"TS_Clk1X"=PERIOD"Clk1X 7 5ns;1 C6 M/ R+ r7 J+ v' l
TIMESPEC"TS_Clk2X180"=PERIOD"Clk2X180“TS_Clk1X/2PHAS2 +1.25ns;3 x  ?4 ^$ N6 |6 U. h7 g

$ x, E- F, ]) h3 a/ M5 |
* D- N9 ~& K4 z- p

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-7-25 23:07 , Processed in 0.125000 second(s), 26 queries , Gzip On.

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

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

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