关于DCM的作用:
/ k4 f( Y8 d0 \, W3 Z5 p顾名思义DCM的作用就是管理,掌控时钟的专用模块。能完成分频,倍频,去skew,相移等功能。
关于DCM的结构&组成:
) k% f' }2 m/ z' a2 v7 ^DCM由四个独立的功能单元组成:
2 M) E% G% m0 D5 W1、Delay-Locked Loop(DLL) ;
7 ?$ N/ R* E" A4 I2、Digital Frequency
/ Y. H& f8 V1 ZSynthesizer (DFS);
' K; P! y4 W# H
3、Phase Shift(PS) ;9 S) ]) E' V. g' G8 D
4、Status Logic(SL);6 v9 |, c% p s* a+ W9 S
如图1所示
关于外部反馈&内部反馈的作用以及区别: 用反馈的目的类似于锁相环的原理,就是为了保证通过DCM调整后的时钟相位与输入对齐(即消除由于DCM时钟调整过程中的偏斜(Skew))。 内部反馈是为了保证内部时钟与输入芯片的IO PAD上的时钟相位对齐,外部反馈是为了保证输出到外部的时钟(比如给SRAM)的相位与输入芯片的IO PAD上的时钟相位对齐。(内部反馈是不用自己连接的) FPGA内部的IBUFG和BUFG会给输入时钟带来延时,经过DCM后可以利用clk0输出(由于反馈的作用),这时输出相位与IPAD上的输入相位可以保持一致,相当于零延时BUF,在高速设计中很有用的。/ y7 i8 p9 ~' M5 e1 \! [* }" Z
; I# e2 e3 D8 B! I内部时钟就是FPGA内部用的,外部则是根据设计需求需要同时送到外部的时钟。 反馈的两者实现方式:一是CLK0反馈(即CLKIN的同频做为反馈信号),另一个是CLK2X反馈(即CLKIN的2倍频做为反馈信号)。 另外如果仅仅使用CLKFX&CLKFX180,可以不使用反馈。详见图2和3: 关于DCM中DLL的工作模式问题:
: G8 j' a/ _4 K$ I( O; r/ S/ PDCM中的DLL有两种工作模式: 高频&低频模式.低频模式24MHz~180MHz,高频模式48MHz~360MHz(不同的器件可能不同).
! J) P6 u2 V) B3 N+ K. }在高频模式的时候,倍频使出管脚clk2X&clk2x180禁用,四相移位寄存器的输出CLK90&CLK270也被禁用,如果分频因子不是个整数,则输出时钟的占空比不是50%。
: c6 H6 f: L ~9 r+ i' G/ W如果仅仅CLKFX作为输出的话,则输入时钟可以是1MHz~210MHz,但是输出最小应该大于24MHz. 关于DCM中的复位问题:
) x* v/ Z9 ~% W7 T1 V$ B DCM的复位RST是高电平有效的(这和我们平时接触到的低电平复位是不同的), 而且在仿真时要求复位信号的持续时间最少为输入时钟周期的三倍. 关于频率合成:
) X* d. b# O) \' q4 Z+ n
) `) c" T6 }2 I( N! N9 f/ i$ r频率合成的输出CLKFX=M/D×CLKIN(M由CLK_MULTIPLY确定,D由CLK_DIVIDE确定)。
7 ] j6 S; k- U2 I两种设置方式:
9 S3 z$ e! F3 ~( \$ d! Y. _* A J. W/ j) C, j1 c* K! `% p6 E; g! O8 C) S' ?! t
一:填写输出所要得到的输出时钟CLKFX的值,工具自动计算M&D的值。1 |3 W! z# {% Y7 @
- v8 K z4 y3 C) \% ~6 S2 v二:根据所需的输出设置M&D的值。 关于相移:' T6 c( K0 e* E: x! O
相移分为三种模式:一:NONE;二:固定相移;三:可变相移;3 W( y7 b/ N. N3 I
NONE(缺省):没有相移输入&输出同相,相当于固定相移设置成0;2 ]* E8 q1 o5 T9 P
固定相移:输出相对于输入延迟的相位值是固定的(相移值也是T/256,范围:-128~128);4 P) E0 i- {5 R: U @
可变相移:如果相移使能管脚PSEN的值为高(PSEN每次只能是一个PSCLK周期),输出CLK0开始移相,并根据PSINCDEC的值判断是增加还是减小,CLK0会移动一个相位(相对于CLKIN的相位,移动的值为T/256,T是CLKIN的周期),同时PSDONE会产生一个脉冲表示一次移相完成,只有等到LOCKED的输出为高时才表明被锁定,输出时钟有效。移相的范围为-64~64(即-π/4~π/4),所以理论上可以得到与CLKIN任意相差的时钟信号,在产生信号延时方面可能会有用,有些具体的操作和要求可以参考用户手册。
3 U- A+ P: u0 t2 R
# [" M9 d7 [, [5 P" h: i) a从延迟周期的角度还可以分为:; s4 E W3 K! W- a
' \; T* r# ]/ |, ?6 N8 v/ a" M一:1/2周期相移(CLK0、CLK180);二:1/4周期相移(CLK0、CLK90、CLK180、CLK270);
2 J) }, t6 t: ]$ h6 D" f1 [# s( U
: Y+ N2 [ L) }; u& U三:固定相移(T/256);
1 v* D- x$ C3 b0 u$ x( g( q四:动态可变相移(T/256);
3 {4 B o: p7 x7 H5 Y
# W6 s/ {: h; n8 T; Y: r: c; z 关于偏斜(SKEW)调节:; v( j. s$ D5 m6 I4 z- P4 {/ K" P
7 L1 z1 g" T+ u ]/ Q. ~2 l最主要的两种运用:一:系统时钟同步;二:源同步:
) ]+ S9 Q4 |. F- x& r v1 r+ t4 ?3 e9 H7 c' n8 G0 A) \, P
所谓系统时钟同步(即共同时钟系统):同一数据路径中的驱动时钟是同一时钟资源,6 d3 W) K1 X: m, s `3 x' \
8 l7 u. v' [7 Z* g所谓源同步系统:数据&源同步时钟信号是同步传输的,保证了两个时钟信号的飞行时间(飞行时间包括传播延迟&上升沿变化的时间)是一致的,理论上对系统时钟的最高频率没有任何限制,是高速数据传输的通用方法。 默认值为系统时钟同步方式,该方式会自动增加一小点延迟,目的是捕获数据时具有零保持时间。
1 H+ D ^+ U; @" C
& w( o) A* ]% Y源同步系统的时钟&数据是同步的,在采样的时候一般把时钟采到数据的中间,一边满足建立&保持时间。
6 o9 h* B0 s' r" s5 ^ |