2024年4月6日发(作者:游博文)
关于DCM的作用:
顾名思义DCM的作用就是管理,掌控时钟的专用模块。能完成分频,倍频,去skew,
相移等功能。
关于DCM的结构&组成:
DCM由四个独立的功能单元组成:
1、Delay-Locked Loop(DLL) ; 2、Digital Frequency Synthesizer (DFS);
3、Phase Shift(PS) ; 4、Status Logic(SL); 如图1所示
关于外部反馈&内部反馈的作用以及区别:
用反馈的目的类似于锁相环的原理,就是为了保证通过DCM调整后的时钟相位与输
入对齐(即消除由于DCM时钟调整过程中的偏斜(Skew))。
内部反馈是为了保证内部时钟与输入芯片的IO PAD上的时钟相位对齐,外部反馈是
为了保证输出到外部的时钟(比如给SRAM)的相位与输入芯片的IO PAD上的时钟相位
对齐。(内部反馈是不用自己连接的)
FPGA内部的IBUFG和BUFG会给输入时钟带来延时,经过DCM后可以利用clk0
输出(由于反馈的作用),这时输出相位与IPAD上的输入相位可以保持一致,相当于零延时
BUF,在高速设计中很有用的。
内部时钟就是FPGA内部用的,外部则是根据设计需求需要同时送到外部的时钟。
反馈的两者实现方式:一是CLK0反馈(即CLKIN的同频做为反馈信号),另一个是
CLK2X反馈(即CLKIN的2倍频做为反馈信号)。
另外如果仅仅使用CLKFX&CLKFX180,可以不使用反馈。详见图2和3:
关于DCM中DLL的工作模式问题:
DCM中的DLL有两种工作模式: 高频&低频模式.低频模式24MHz~180MHz,高频
模式48MHz~360MHz(不同的器件可能不同).
在高频模式的时候,倍频使出管脚clk2X&clk2x180禁用,四相移位寄存器的输出
CLK90&CLK270也被禁用,如果分频因子不是个整数,则输出时钟的占空比不是50%。
如果仅仅CLKFX作为输出的话,则输入时钟可以是1MHz~210MHz,但是输出最小应
该大于24MHz.
关于DCM中的复位问题:
DCM的复位RST是高电平有效的(这和我们平时接触到的低电平复位是不同的), 而且
在仿真时要求复位信号的持续时间最少为输入时钟周期的三倍.
关于频率合成:
频率合成的输出CLKFX=M/D×CLKIN(M由CLK_MULTIPLY确定,D由CLK_DIVIDE
2024年4月6日发(作者:游博文)
关于DCM的作用:
顾名思义DCM的作用就是管理,掌控时钟的专用模块。能完成分频,倍频,去skew,
相移等功能。
关于DCM的结构&组成:
DCM由四个独立的功能单元组成:
1、Delay-Locked Loop(DLL) ; 2、Digital Frequency Synthesizer (DFS);
3、Phase Shift(PS) ; 4、Status Logic(SL); 如图1所示
关于外部反馈&内部反馈的作用以及区别:
用反馈的目的类似于锁相环的原理,就是为了保证通过DCM调整后的时钟相位与输
入对齐(即消除由于DCM时钟调整过程中的偏斜(Skew))。
内部反馈是为了保证内部时钟与输入芯片的IO PAD上的时钟相位对齐,外部反馈是
为了保证输出到外部的时钟(比如给SRAM)的相位与输入芯片的IO PAD上的时钟相位
对齐。(内部反馈是不用自己连接的)
FPGA内部的IBUFG和BUFG会给输入时钟带来延时,经过DCM后可以利用clk0
输出(由于反馈的作用),这时输出相位与IPAD上的输入相位可以保持一致,相当于零延时
BUF,在高速设计中很有用的。
内部时钟就是FPGA内部用的,外部则是根据设计需求需要同时送到外部的时钟。
反馈的两者实现方式:一是CLK0反馈(即CLKIN的同频做为反馈信号),另一个是
CLK2X反馈(即CLKIN的2倍频做为反馈信号)。
另外如果仅仅使用CLKFX&CLKFX180,可以不使用反馈。详见图2和3:
关于DCM中DLL的工作模式问题:
DCM中的DLL有两种工作模式: 高频&低频模式.低频模式24MHz~180MHz,高频
模式48MHz~360MHz(不同的器件可能不同).
在高频模式的时候,倍频使出管脚clk2X&clk2x180禁用,四相移位寄存器的输出
CLK90&CLK270也被禁用,如果分频因子不是个整数,则输出时钟的占空比不是50%。
如果仅仅CLKFX作为输出的话,则输入时钟可以是1MHz~210MHz,但是输出最小应
该大于24MHz.
关于DCM中的复位问题:
DCM的复位RST是高电平有效的(这和我们平时接触到的低电平复位是不同的), 而且
在仿真时要求复位信号的持续时间最少为输入时钟周期的三倍.
关于频率合成:
频率合成的输出CLKFX=M/D×CLKIN(M由CLK_MULTIPLY确定,D由CLK_DIVIDE