关于DCM的作用:
6 r3 c8 d: R) N5 J1 a0 G顾名思义DCM的作用就是管理,掌控时钟的专用模块。能完成分频,倍频,去skew,相移等功能。
关于DCM的结构&组成: & Z& Q9 \7 F/ | w+ @
DCM由四个独立的功能单元组成: 1 w! q" r1 J) U$ w$ t" z
1、Delay-Locked Loop(DLL) ;
0 h0 O3 P, l% E! L, ~4 N2、Digital Frequency
9 S, a6 V8 C$ JSynthesizer (DFS);
v |& D# Y4 U4 J; G) u' _$ n! C 3、Phase Shift(PS) ;: ^4 W) g1 ~4 f8 O
4、Status Logic(SL);% i& f& o) h8 h2 S
如图1所示
关于外部反馈&内部反馈的作用以及区别: 用反馈的目的类似于锁相环的原理,就是为了保证通过DCM调整后的时钟相位与输入对齐(即消除由于DCM时钟调整过程中的偏斜(Skew))。 内部反馈是为了保证内部时钟与输入芯片的IO PAD上的时钟相位对齐,外部反馈是为了保证输出到外部的时钟(比如给SRAM)的相位与输入芯片的IO PAD上的时钟相位对齐。(内部反馈是不用自己连接的) FPGA内部的IBUFG和BUFG会给输入时钟带来延时,经过DCM后可以利用clk0输出(由于反馈的作用),这时输出相位与IPAD上的输入相位可以保持一致,相当于零延时BUF,在高速设计中很有用的。+ r/ ?' {) z0 y; W
( P) G* w9 n( E5 E* r# ~内部时钟就是FPGA内部用的,外部则是根据设计需求需要同时送到外部的时钟。 反馈的两者实现方式:一是CLK0反馈(即CLKIN的同频做为反馈信号),另一个是CLK2X反馈(即CLKIN的2倍频做为反馈信号)。 另外如果仅仅使用CLKFX&CLKFX180,可以不使用反馈。详见图2和3: 关于DCM中DLL的工作模式问题:& g0 K1 C R( B. U
DCM中的DLL有两种工作模式: 高频&低频模式.低频模式24MHz~180MHz,高频模式48MHz~360MHz(不同的器件可能不同).9 a3 J+ h8 s5 k' c# r: l* e
在高频模式的时候,倍频使出管脚clk2X&clk2x180禁用,四相移位寄存器的输出CLK90&CLK270也被禁用,如果分频因子不是个整数,则输出时钟的占空比不是50%。
! M9 q; e5 `% s* S9 \$ x# e如果仅仅CLKFX作为输出的话,则输入时钟可以是1MHz~210MHz,但是输出最小应该大于24MHz. 关于DCM中的复位问题:" W; ^2 R2 t% Q9 c4 E3 i+ A3 w
DCM的复位RST是高电平有效的(这和我们平时接触到的低电平复位是不同的), 而且在仿真时要求复位信号的持续时间最少为输入时钟周期的三倍. 关于频率合成:
& n! W/ V" H( S7 v4 o
- P; {/ a( ^ f+ ?% b5 O F1 {% w频率合成的输出CLKFX=M/D×CLKIN(M由CLK_MULTIPLY确定,D由CLK_DIVIDE确定)。
, W8 T7 V! S1 p6 T# I- V0 w两种设置方式:! r0 F Y+ ^& D4 a M/ N: \- z
# }' i1 t+ c0 b0 Y1 O) ~
一:填写输出所要得到的输出时钟CLKFX的值,工具自动计算M&D的值。
* ]. r8 L0 I, O% k/ T" Y% j* q" L4 N4 V$ M$ @3 F- n% I! u5 A& Z7 ]
二:根据所需的输出设置M&D的值。 关于相移:. |" S9 T9 n( V" b9 k
相移分为三种模式:一:NONE;二:固定相移;三:可变相移;
& G% V3 ~4 ~2 F6 v9 j vNONE(缺省):没有相移输入&输出同相,相当于固定相移设置成0;; ^4 c: @) q& T, l
固定相移:输出相对于输入延迟的相位值是固定的(相移值也是T/256,范围:-128~128);
& F2 E$ P. m6 \4 G* u+ q: I# X可变相移:如果相移使能管脚PSEN的值为高(PSEN每次只能是一个PSCLK周期),输出CLK0开始移相,并根据PSINCDEC的值判断是增加还是减小,CLK0会移动一个相位(相对于CLKIN的相位,移动的值为T/256,T是CLKIN的周期),同时PSDONE会产生一个脉冲表示一次移相完成,只有等到LOCKED的输出为高时才表明被锁定,输出时钟有效。移相的范围为-64~64(即-π/4~π/4),所以理论上可以得到与CLKIN任意相差的时钟信号,在产生信号延时方面可能会有用,有些具体的操作和要求可以参考用户手册。
; B" Q1 B2 z# s4 i e
, z* v3 e$ ~+ F4 _' ~, `/ M5 i从延迟周期的角度还可以分为:7 _4 a: K H$ v5 p. C9 o! w
: ], [# I$ k, m2 ^3 q7 I一:1/2周期相移(CLK0、CLK180);二:1/4周期相移(CLK0、CLK90、CLK180、CLK270);
w* J2 D: n; U
- J$ l* q& ~% j三:固定相移(T/256);! Y6 P7 w$ _: C3 i+ E4 {7 W k
四:动态可变相移(T/256);
- V# |6 X- l0 v: y7 }) B
@6 X/ @" q0 K% n; r# A0 [! q' ~ 关于偏斜(SKEW)调节:
' } S# ^( p l+ ~- E' O2 O
+ i8 M! U) y! y最主要的两种运用:一:系统时钟同步;二:源同步:, \, _! y+ R3 Z9 c( T0 b7 G
% A; Q3 b ?/ Z
所谓系统时钟同步(即共同时钟系统):同一数据路径中的驱动时钟是同一时钟资源,
0 [9 \5 B' h* T& |! D/ o( E8 P% r/ c- y( A1 y) y! i
所谓源同步系统:数据&源同步时钟信号是同步传输的,保证了两个时钟信号的飞行时间(飞行时间包括传播延迟&上升沿变化的时间)是一致的,理论上对系统时钟的最高频率没有任何限制,是高速数据传输的通用方法。 默认值为系统时钟同步方式,该方式会自动增加一小点延迟,目的是捕获数据时具有零保持时间。0 p. ?: w, e5 `9 V
# G- P% Y$ t: R' Z/ `& ]9 T- c
源同步系统的时钟&数据是同步的,在采样的时候一般把时钟采到数据的中间,一边满足建立&保持时间。
& S" o; Y1 g+ v- V2 R |