您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > FPGA 时钟设计――DLL
FPGA时钟设计——DLL随着FPGA器件规模的不断增大,时钟时延和相位偏移等已经成为影响FPGA设计的关键因素。正确的时钟设计和使用至关重要。下面以Xilinx公司的产品为例介绍时钟设计与使用的一些技巧。7.5.1数字延迟锁相环(DLL)应用设计在Virtex-E、Spartan-Ⅱ和Spartan-ⅡE系列器件中,Xilinx公司采用数字延迟锁相环(DLL,DelayLockedLoop)技术进行FPGA内部的时钟控制。通过使用FPGA内部的DLL,可以消除时钟相位偏移、变换时钟频率(倍频或分频)和调整时钟输出相位。DLL基本原理见2.1.2节1.标准的CLKDLL符号图7.5.1标准的CLKDLL符号图中:(1)CLKIN:源时钟输入(SourceClockInput),DLL的输入时钟信号。(2)CLKFB:反馈时钟输入(FeedbackClockInput),DLL的时钟反馈信号。(3)RST:复位输入(ResetInput),DLL初始化控制信号。(4)CLK0/CLK90/CLK180/CLK270:CLKIN相移0°/90°/180°/270°的输出信号,DLL输出的时钟信号。(5)CLK2X:CLKIN的2倍频时钟信号(2xClockOutput),DLL输出的时钟信号。在CLKDLLHF模式时,该输出时钟信号无效。(6)CLKDV:CLKIN的分频时钟信号(ClockDivideOutput),DLL输出的时钟信号。分频系数为1.5、2、2.5、3、4、5、8和16。(7)LOCKED:DLL锁定输入时钟信号的锁定输出信号(LockedOutput),DLL的状态信号。在Spartan-Ⅱ系列器件中,每个DLL可以驱动两个全局时钟网络,通过全局时钟网络可以消除输入时钟的相位偏移。DLL除了具有消除时钟相位偏移的功能外,还具有倍频、分频和移相的功能。另外,DLL还可以实现时钟镜像(ClockMirror),即通过DLL的片外输出和反馈输入,消除多芯片之间的板级时钟偏移。2.DLL设计时需要注意的问题在Spartan-Ⅱ系列器件中,为保证DLL正常工作,需要注意以下几点:(1)DLL输入时钟:DLL的输入时钟信号应满足器件数据手册上的相关要求。在低频情况下,输入时钟抖动应小于300ps,高频时应小于150ps。在输入时钟锁定后,应避免输入时钟的大幅度变化。(2)DLL输出时钟:DLL的输出时钟可以驱动OBUF、BUFG或目标逻辑单元的时钟输入端。在LOCKED变为有效前,DLL的输出时钟信号无效。在DLL设计过程中,应特别注意设定以下属性:(1)DUTY_CYCLE_CORRECTION设为TRUE时,CLK0、CLK90、CLK180和CLK270将输出占空比为50%的时钟信号。设为FALSE时,CLK0、CLK90、CLK180和CLK270的输出时钟信号将保持与输入时钟信号相同的占空比。默认值为TRUE。(2)CLKDV_DIVIDE决定分频系数,默认值为2,可设定值为1.5、2、2.5、3、4、5、8和16。(3)STARTUP_WAIT设置TRUE时,配置过程将等待DLL锁定后完成。默认值为FALSE。(4)LOC指定DLL的位置编号,编号为0、1、2、3。DLL在器件中的位置如图7.5.2所示。图7.5.2DLL在器件中的位置3.DLL的应用设计例DLL的一些应用设计例如图7.5.3~图7.5.5所示。其中,图7.5.3为标准的DLL应用电路。图7.5.4为DLL无时钟偏移和2倍频输出电路。图7.5.5为DLL4倍频输出电路。图7.5.3标准的DLL应用电路图7.5.4DLL无时钟偏移和2倍频输出电路图7.5.5DLL4倍频输出电路7.5.2全局时钟网络(GlobalClockNetworks)应用设计在Xilinx的Virtex-Ⅱ和Virtex-ⅡPro等系列产品中,全局时钟网络(GlobalClockNetworks)是一种全局布线资源,它可以保证时钟信号到达各个目标逻辑单元的时延基本相同。不同类型的器件,全局时钟网络在数量、性能等方面略有差异。下面以Virtex-Ⅱ系列器件为例介绍全局时钟网络的特性和用法。在Virtex-Ⅱ系列器件中的全局时钟网络分布如图7.5.6所示,共含有16个全局时钟网络。Virtex-Ⅱ系列器件中的全局时钟网络不仅可以提供全局时钟信号的最小时延,还可以实现全局时钟信号的控制输出和选择输出。图7.5.6Virtex-Ⅱ系列器件全局时钟网络分布示意图7.5.2全局时钟网络(GlobalClockNetworks)应用设计(a)(b)图7.5.7Virtex-Ⅱ系列器件全局时钟网络应用电路图在Virtex-Ⅱ系列器件中,全局时钟网络与时钟信号的连接方法,如图7.5.7所示。在图7.5.7(a)中,全局时钟信号(GCLK)通过时钟输入(ClockInput)引脚端(PAD)输入,经过输入缓冲器IBUFG和内部缓冲器BUFG到达时钟分布网络(ClockDistribution)。在图7.5.7(b)中,差分全局时钟信号(GCLKS和GCLKP)通过差分时钟输入端(DifferentialClockInput)输入,经过输入缓冲器IBUFG和内部缓冲器BUFG到达时钟分布网络(ClockDistribution)。在图7.5.7(c)中,全局时钟信号(GCLK)通过时钟输入(ClockInput)引脚端(PAD)输入,经过输入缓冲器IBUFG、DCM(数字时钟管理器,DigitalClockManager)和内部缓冲器BUFG到达时钟分布网络(ClockDistribution)。7.5.3数字时钟管理器(DCM)应用设计如图7.5.8所示,FPGA器件内部逻辑电路时钟也可以通过内部缓冲器BUFG或者DCM(数字时钟管理器,DigitalClockManager)到达时钟分布网络(ClockDistribution)。Xilinx公司提供了全局时钟网络VHDL和Verilog应用程序编程模板,可以通过编程控制全局时钟信号的工作方式。7.5.2全局时钟网络(GlobalClockNetworks)应用设计图7.5.8FPGA器件内部逻辑电路时钟到达时钟分布网络7.5.3数字时钟管理器(DCM)应用设计Xilinx公司在Virtex-Ⅱ和Virtex-ⅡPro等系列产品中采用DCM(数字时钟管理器,DigitalClockManager).在时钟控制和管理方面,DCM比DLL功能更强大、使用更灵活。DCM的主要功能包括消除时钟时延、频率合成和时钟相位调整。DCM可以工作在高频或低频模式,主要参数有:输入时钟频率范围、输出时钟频率范围、输入时钟允许抖动范围,输出时钟抖动范围等。在Virtex-Ⅱ和Virtex-ⅡPro等系列产品中,DCM的设计和使用方法基本相同,下面以Virtex-Ⅱ系列器件中的DCM为例,介绍DCM的设计和使用。Virtex-Ⅱ系列器件型号不同,具有4-12个DCM。Virtex-Ⅱ的DCM结构示意图如图2.1.17所示。在图2.1.17所示DCM中的端口信号(PortSignals):(l)CLKIN:源时钟信号输入(SourceClockInput—CLKIN),DCM的输入时钟信号,来自IBUFG、IBUF或BUFGMUX。(2)CLKFB:反馈时钟输入信号(FeedbackClockInput—CLKFB),DCM的时钟反馈信号,CLK0或CLK2XDCM输出通过IBUFG、IBUF或BUFGMUX反馈到CLKFB引脚端。(3)RST:复位输入信号(ResetInput—RST),DCM的控制信号,高电平有效。(4)PSINCDEC:相移增量/减量控制信号(PhaseShiftIncrement/Decrement-PSINCDEC),DCM的控制信号,控制输出时钟的相位动态调整方向。(5)PSEN:相移使能信号(PhaseShiftEnable-PSEN),DCM控制信号,输出时钟相位动态调整的使能信号。(6)PSCLK:相移时钟信号(PhaseShiftClock-PSCLK),DCM参考时钟信号,输出时钟相位动态调整的参考时钟。(7)CLK0/CLK90/CLK180/CLK270:CLKIN相移0°/90°/180°/270°的输出信号,DCM输出的时钟信号。(8)CLK2X:2倍频时钟输出信号(2xClockOutput—CLK2X),DCM的输出时钟信号,是CLKIN的2倍频时钟信号。(9)CLK2X180:与CLK2X相位差180°的DCM输出时钟信号。(10)CLKDV:CLKIN的时钟分频输出信号(ClockDivideOutput—CLKDV),DCM的输出时钟信号。分频系数由CLKDV-DIVIDE设定。(11)CLKFX:频率合成时钟输出信号(FrequencySynthesizedClockOutput-CLKFX),DCM的输出时钟信号,是CLKIN经过频率合成后的时钟信号。(12)CLKFX180:频率合成时钟相移180°的输出信号(FrequencySynthesizedClockOutput180°PhaseShifted-CLKFX180),该时钟信号与CLKFX有180°的相位差。(13)LOCKED:DCM锁定输出信号(LockedOutput—LOCKED),DCM状态信号,显示DCM是否锁定CLKIN。LOCKED为高电平时,DCM的输出时钟信号有效。(14)STATUS:状态信号(Status-STATUS),DCM状态信号,8位,用于显示DCM的工作状态。(15)PSDONE:相移完成信号(PhaseShiftDONE-PSDONE),DCM的状态信号,用于显示输出时钟相位动态调整是否正常。在Virtexll系列器件中,DCM主要有如下工作模式:①BUFG_CLK0_SUBM②BUFG_CLK2X_SUBM③BUFG_CLK0_FB_SUBM④BUFG_CLK2X_FB_SUBM⑤BUFG_CLKDV_SUBM⑥BUFG_DFS_SUBM⑦BUFG_DFS_FB_SUBM⑧BUFG_PHASE_CLKFX_FB_SUBM⑨BUFG_PHASE_CLK0_SUBM⑩BUFG_PHASE_CLK2X_SUBM⑾BUFG_PHASE_CLKDV_SUBMXilinx公司提供了DCMVHDL和Verilog应用程序编程模板,可以通过编程控制DCM的工作模式。例如:BUFG_CLK0_FB_SUBM工作模式电路如图7.5.9所示。BUFG_DFS_FB_SUBM工作模式电路如图7.5.10所示。图7.5.9BUFG_CLK0_FB_SUBM工作模式电路图7.5.10BUFG_DFS_FB_SUBM工作模式电路
本文标题:FPGA 时钟设计――DLL
链接地址:https://www.777doc.com/doc-3879459 .html