|
关于DCM的作用:
/ X% }7 c# D7 L& V* }顾名思义DCM的作用就是管理,掌控时钟的专用模块。能完成分频,倍频,去skew,相移等功能。
关于DCM的结构&组成:
- I3 B p* V' X$ O) d4 Q+ ODCM由四个独立的功能单元组成:
, W+ w) w$ M/ e, C8 m# M7 a1、Delay-Locked Loop(DLL) ;
( N' g. f' ^8 s. Y0 @( {2、Digital Frequency S% J2 b2 @, o1 X! h' Z
Synthesizer (DFS);
( U) w' P! E+ h8 l; A# A
3、Phase Shift(PS) ;
0 M. g: O c- W4、Status Logic(SL);
# ~' s0 p5 Q0 d0 m/ Q$ v) k8 K如图1所示
关于外部反馈&内部反馈的作用以及区别: 用反馈的目的类似于锁相环的原理,就是为了保证通过DCM调整后的时钟相位与输入对齐(即消除由于DCM时钟调整过程中的偏斜(Skew))。 内部反馈是为了保证内部时钟与输入芯片的IO PAD上的时钟相位对齐,外部反馈是为了保证输出到外部的时钟(比如给SRAM)的相位与输入芯片的IO PAD上的时钟相位对齐。(内部反馈是不用自己连接的) FPGA内部的IBUFG和BUFG会给输入时钟带来延时,经过DCM后可以利用clk0输出(由于反馈的作用),这时输出相位与IPAD上的输入相位可以保持一致,相当于零延时BUF,在高速设计中很有用的。
; ?4 P& m4 K# J w4 T
, x0 v3 q6 \, a, c b6 i# _& p内部时钟就是FPGA内部用的,外部则是根据设计需求需要同时送到外部的时钟。 反馈的两者实现方式:一是CLK0反馈(即CLKIN的同频做为反馈信号),另一个是CLK2X反馈(即CLKIN的2倍频做为反馈信号)。 另外如果仅仅使用CLKFX&CLKFX180,可以不使用反馈。详见图2和3: 关于DCM中DLL的工作模式问题:
/ [2 S) |5 u6 b, l3 |* h# kDCM中的DLL有两种工作模式: 高频&低频模式.低频模式24MHz~180MHz,高频模式48MHz~360MHz(不同的器件可能不同).
5 p- @+ e, B' p. i* K, }在高频模式的时候,倍频使出管脚clk2X&clk2x180禁用,四相移位寄存器的输出CLK90&CLK270也被禁用,如果分频因子不是个整数,则输出时钟的占空比不是50%。
+ m; f3 G f9 a6 ?1 Y如果仅仅CLKFX作为输出的话,则输入时钟可以是1MHz~210MHz,但是输出最小应该大于24MHz. 关于DCM中的复位问题:8 o. l0 ^: p- }5 J7 E; g$ p, g& @3 X
DCM的复位RST是高电平有效的(这和我们平时接触到的低电平复位是不同的), 而且在仿真时要求复位信号的持续时间最少为输入时钟周期的三倍. 关于频率合成: m! o9 W/ W& v6 S& I
! {: r/ \, A s8 {$ R: e) B% O
频率合成的输出CLKFX=M/D×CLKIN(M由CLK_MULTIPLY确定,D由CLK_DIVIDE确定)。$ D& I' y2 ^2 u8 {' J
两种设置方式:
. u' j& o; I5 U9 x w; r
S/ H1 B1 q& G4 Z" k一:填写输出所要得到的输出时钟CLKFX的值,工具自动计算M&D的值。
* {* `% O2 M3 J0 p8 g! n$ L# V, [* t
二:根据所需的输出设置M&D的值。 关于相移:$ K- E' V- s! y3 D3 J% q* l/ m
相移分为三种模式:一:NONE;二:固定相移;三:可变相移;! n$ ^( j' f2 s3 V- B# q: o w
NONE(缺省):没有相移输入&输出同相,相当于固定相移设置成0;
* x, b) N" v: \+ l8 @8 c# v固定相移:输出相对于输入延迟的相位值是固定的(相移值也是T/256,范围:-128~128);
' p* R ^. y7 p3 A" W) l可变相移:如果相移使能管脚PSEN的值为高(PSEN每次只能是一个PSCLK周期),输出CLK0开始移相,并根据PSINCDEC的值判断是增加还是减小,CLK0会移动一个相位(相对于CLKIN的相位,移动的值为T/256,T是CLKIN的周期),同时PSDONE会产生一个脉冲表示一次移相完成,只有等到LOCKED的输出为高时才表明被锁定,输出时钟有效。移相的范围为-64~64(即-π/4~π/4),所以理论上可以得到与CLKIN任意相差的时钟信号,在产生信号延时方面可能会有用,有些具体的操作和要求可以参考用户手册。* p" ?; b" a+ O) l
K; k% z5 o6 x/ F9 N% ?从延迟周期的角度还可以分为:1 ~2 ?2 G3 B! e& b2 ^% Y$ V* K
1 Q+ V/ B6 m/ y; j5 z, g, H
一:1/2周期相移(CLK0、CLK180);二:1/4周期相移(CLK0、CLK90、CLK180、CLK270);
; R. J {! U: e" n* w- D4 X2 Y8 K# G: O7 z1 Z
三:固定相移(T/256); r6 |# P& Y# O2 T- z1 Q1 g
四:动态可变相移(T/256);
% V% f% w! ?) N9 H
% S. T/ y7 d& E/ ~. Q 关于偏斜(SKEW)调节:
3 `2 X' z3 W5 n2 N8 n, ?' s2 Y, F( o
最主要的两种运用:一:系统时钟同步;二:源同步:
2 O" T" Y6 F5 Y! K* p _% V/ D# p& b& O# b& D( |
所谓系统时钟同步(即共同时钟系统):同一数据路径中的驱动时钟是同一时钟资源,4 ]6 T9 g2 y1 z1 ?) N
& r% p. l& A9 E1 b z( S6 ?所谓源同步系统:数据&源同步时钟信号是同步传输的,保证了两个时钟信号的飞行时间(飞行时间包括传播延迟&上升沿变化的时间)是一致的,理论上对系统时钟的最高频率没有任何限制,是高速数据传输的通用方法。 默认值为系统时钟同步方式,该方式会自动增加一小点延迟,目的是捕获数据时具有零保持时间。
7 Z: w+ @1 L: o8 v, @! v9 [! `* \" g [3 z: i
源同步系统的时钟&数据是同步的,在采样的时候一般把时钟采到数据的中间,一边满足建立&保持时间。/ o( x1 o* r8 r: q' }
|