|
关于DCM的作用: 5 R D" \' Q4 v/ u+ v! }
顾名思义DCM的作用就是管理,掌控时钟的专用模块。能完成分频,倍频,去skew,相移等功能。 关于DCM的结构&组成:
' A. K+ X2 F6 I/ w$ O. XDCM由四个独立的功能单元组成:
6 U* k% u: j, n) y
1、Delay-Locked Loop(DLL) ;, ^* D& h8 a, {6 [7 f# ^8 G8 p
2、Digital Frequency$ t4 V( K! B' f0 c" d) k6 ?% v: t
Synthesizer (DFS);
8 A! O5 o( G" Z 3、Phase Shift(PS) ;0 @, F7 q, G6 T9 p
4、Status Logic(SL);# s( S5 R' H [
如图1所示
关于外部反馈&内部反馈的作用以及区别: 用反馈的目的类似于锁相环的原理,就是为了保证通过DCM调整后的时钟相位与输入对齐(即消除由于DCM时钟调整过程中的偏斜(Skew))。 内部反馈是为了保证内部时钟与输入芯片的IO PAD上的时钟相位对齐,外部反馈是为了保证输出到外部的时钟(比如给SRAM)的相位与输入芯片的IO PAD上的时钟相位对齐。(内部反馈是不用自己连接的) FPGA内部的IBUFG和BUFG会给输入时钟带来延时,经过DCM后可以利用clk0输出(由于反馈的作用),这时输出相位与IPAD上的输入相位可以保持一致,相当于零延时BUF,在高速设计中很有用的。
8 r# p. z* |2 d B5 v# Z9 |, ~! H+ f; s' R& S9 c3 V
内部时钟就是FPGA内部用的,外部则是根据设计需求需要同时送到外部的时钟。 反馈的两者实现方式:一是CLK0反馈(即CLKIN的同频做为反馈信号),另一个是CLK2X反馈(即CLKIN的2倍频做为反馈信号)。 另外如果仅仅使用CLKFX&CLKFX180,可以不使用反馈。详见图2和3: 关于DCM中DLL的工作模式问题:4 d8 T8 ]5 H4 ^% Z
DCM中的DLL有两种工作模式: 高频&低频模式.低频模式24MHz~180MHz,高频模式48MHz~360MHz(不同的器件可能不同).) X, h+ H: q; k
在高频模式的时候,倍频使出管脚clk2X&clk2x180禁用,四相移位寄存器的输出CLK90&CLK270也被禁用,如果分频因子不是个整数,则输出时钟的占空比不是50%。, k5 o: i& [7 T* q' O
如果仅仅CLKFX作为输出的话,则输入时钟可以是1MHz~210MHz,但是输出最小应该大于24MHz. 关于DCM中的复位问题:
4 R( j) K. J5 F DCM的复位RST是高电平有效的(这和我们平时接触到的低电平复位是不同的), 而且在仿真时要求复位信号的持续时间最少为输入时钟周期的三倍. 关于频率合成:
0 p# g0 C2 Q% ~' d- X) H* K R; y1 ]* I8 J+ I3 U
频率合成的输出CLKFX=M/D×CLKIN(M由CLK_MULTIPLY确定,D由CLK_DIVIDE确定)。# }$ a0 |2 q. ~1 g! |5 F7 S i
两种设置方式:
/ l2 k& B5 d) T8 x! x+ t" V" n% ~3 Z: L. {
一:填写输出所要得到的输出时钟CLKFX的值,工具自动计算M&D的值。
0 x6 x0 P9 [& V0 N, S
# L% B) S+ O. K R4 z; f二:根据所需的输出设置M&D的值。 关于相移:
( b3 L8 R; m- j相移分为三种模式:一:NONE;二:固定相移;三:可变相移;6 k8 S* g0 t, k+ E+ w. O
NONE(缺省):没有相移输入&输出同相,相当于固定相移设置成0;: G7 M- p# t* A0 Y9 J+ @) U! v' r
固定相移:输出相对于输入延迟的相位值是固定的(相移值也是T/256,范围:-128~128);
, i( q% X/ o6 U1 s+ r3 q可变相移:如果相移使能管脚PSEN的值为高(PSEN每次只能是一个PSCLK周期),输出CLK0开始移相,并根据PSINCDEC的值判断是增加还是减小,CLK0会移动一个相位(相对于CLKIN的相位,移动的值为T/256,T是CLKIN的周期),同时PSDONE会产生一个脉冲表示一次移相完成,只有等到LOCKED的输出为高时才表明被锁定,输出时钟有效。移相的范围为-64~64(即-π/4~π/4),所以理论上可以得到与CLKIN任意相差的时钟信号,在产生信号延时方面可能会有用,有些具体的操作和要求可以参考用户手册。$ g- H! W: {3 ?) P4 B& t& [1 {
9 B/ c0 w1 i. b/ W$ Z: ^& N! O. p
从延迟周期的角度还可以分为: d& v$ P1 g- R" |; V/ G$ P* C
! z2 t4 r# a, c7 e" `
一:1/2周期相移(CLK0、CLK180);二:1/4周期相移(CLK0、CLK90、CLK180、CLK270);
R9 S; I8 B. [! M6 v3 |! `9 u* o- U
三:固定相移(T/256);
' g2 v* U" m S$ Q" {0 a四:动态可变相移(T/256);' P9 X* T: q/ `
_; d* z# I: T* N
关于偏斜(SKEW)调节:/ G+ @/ t; W* s( e s
: {1 X, Z# N0 r" M! g6 |2 U最主要的两种运用:一:系统时钟同步;二:源同步:' ?2 [0 }/ q2 n9 x2 V: o& G$ n
! d" A+ Q) Q- `5 k! K }
所谓系统时钟同步(即共同时钟系统):同一数据路径中的驱动时钟是同一时钟资源,
3 M$ g. K$ N; a. Q8 }" F1 a$ B: R
所谓源同步系统:数据&源同步时钟信号是同步传输的,保证了两个时钟信号的飞行时间(飞行时间包括传播延迟&上升沿变化的时间)是一致的,理论上对系统时钟的最高频率没有任何限制,是高速数据传输的通用方法。 默认值为系统时钟同步方式,该方式会自动增加一小点延迟,目的是捕获数据时具有零保持时间。
5 y7 ~1 ?& @/ T( q: Q4 y8 [
( Y9 y$ [, W- i1 F源同步系统的时钟&数据是同步的,在采样的时候一般把时钟采到数据的中间,一边满足建立&保持时间。+ p* d1 Y/ J1 I
|