《FPGA 时钟设计――DLL》由会员分享,可在线阅读,更多相关《FPGA 时钟设计――DLL(33页珍藏版)》请在金锄头文库上搜索。
1、FPGA 时钟设计DLL,随着FPGA器件规模的不断增大,时钟时延和相位偏移等已经成为影响FPGA设计的关键因素。正确的时钟设计和使用至关重要。下面以Xilinx公司的产品为例介绍时钟设计与使用的一些技巧。,7.5.1数字延迟锁相环(DLL)应用设计,在 Virtex-E、Spartan-和 Spartan-E系列器件中,Xilinx公司采用数字延迟锁相环(DLL,Delay Locked Loop)技术进行FPGA内部的时钟控制。通过使用 FPGA内部的 DLL,可以消除时钟相位偏移、变换时钟频率(倍频或分频)和调整时钟输出相位。DLL基本原理见2.1.2节,1. 标准的CLKDLL符号,图
2、7.5.1 标准的CLKDLL符号,图中: (1)CLKIN :源时钟输入(Source Clock Input),DLL的输入时钟信号。 (2)CLKFB:反馈时钟输入(Feedback Clock Input),DLL的时钟反馈信号。 (3)RST:复位输入(Reset Input),DLL初始化控制信号。 (4)CLK0/CLK90/CLK180/CLK270:CLKIN相移0/90/180/270的输出信号, DLL输出的时钟信号。,(5)CLK2X:CLKIN的2倍频时钟信号(2x Clock Output), DLL输出的时钟信号。在CLKDLLHF模式时,该输出时钟信号无效。 (
3、6)CLKDV :CLKIN的分频时钟信号(Clock Divide Output),DLL输出的时钟信号。分频系数为1.5、2、2.5、3、4、5、8和16。 (7)LOCKED : DLL锁定输入时钟信号的锁定输出信号(Locked Output),DLL的状态信号。,在Spartan-系列器件中,每个DLL可以驱动两个全局时钟网络,通过全局时钟网络可以消除输入时钟的相位偏移。DLL除了具有消除时钟相位偏移的功能外,还具有倍频、分频和移相的功能。另外,DLL还可以实现时钟镜像(Clock Mirror),即通过DLL的片外输出和反馈输入,消除多芯片之间的板级时钟偏移。,2. DLL设计时需
4、要注意的问题,在 Spartan-系列器件中,为保证 DLL正常工作,需要注意以下几点: (1)DLL输入时钟:DLL的输入时钟信号应满足器件数据手册上的相关要求。在低频情况下,输入时钟抖动应小于300ps,高频时应小于150ps。在输入时钟锁定后,应避免输入时钟的大幅度变化。,(2)DLL输出时钟:DLL的输出时钟可以驱动OBUF、BUFG或目标逻辑单元的时钟输入端。在LOCKED变为有效前,DLL的输出时钟信号无效。 在DLL设计过程中,应特别注意设定以下属性: (1)DUTY_CYCLE_CORRECTION 设为 TRUE时,CLK0、CLK90、CLK180和 CLK270将输出占空
5、比为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.2 DLL在器件中的位置,3. DLL的应用设计例,DLL的一些应用设计例如图7.5.3图7.5.5所示。其中,图7.5.3
6、为标准的DLL应用电路。图7.5.4为DLL无时钟偏移和2倍频输出电路。图7.5.5为DLL 4倍频输出电路。,图7.5.3 标准的DLL应用电路,图7.5.4 DLL无时钟偏移和2倍频输出电路,图7.5.5 DLL 4倍频输出电路,7.5.2 全局时钟网络(Global Clock Networks)应用设计,在Xilinx的Virtex-和 Virtex- Pro等系列产品中,全局时钟网络(Global Clock Networks)是一种全局布线资源,它可以保证时钟信号到达各个目标逻辑单元的时延基本相同。不同类型的器件,全局时钟网络在数量、性能等方面略有差异。下面以Virtex-系列器件
7、为例介绍全局时钟网络的特性和用法。,在Virtex-系列器件中的全局时钟网络分布如图7.5.6所示,共含有16个全局时钟网络。 Virtex-系列器件中的全局时钟网络不仅可以提供全局时钟信号的最小时延,还可以实现全局时钟信号的控制输出和选择输出。,图7.5.6 Virtex-系列器件全局时钟网络分布示意图,7.5.2 全局时钟网络(Global Clock Networks)应用设计,(a),(b),图7.5.7 Virtex-系列器件全局时钟网络应用电路图,在Virtex-系列器件中,全局时钟网络与时钟信号的连接方法,如图7.5.7所示。在图7.5.7(a)中,全局时钟信号(GCLK)通过时
8、钟输入(Clock Input)引脚端(PAD)输入,经过输入缓冲器IBUFG和内部缓冲器BUFG到达时钟分布网络(Clock Distribution)。在图7.5.7(b)中,差分全局时钟信号(GCLKS 和GCLKP)通过差分时钟输入端(Differential Clock Input)输入,经过输入缓冲器IBUFG和内部缓冲器BUFG到达时钟分布网络(Clock Distribution)。在图7.5.7(c)中,全局时钟信号(GCLK)通过时钟输入(Clock Input)引脚端(PAD)输入,经过输入缓冲器IBUFG、DCM(数字时钟管理器,Digital Clock Manage
9、r)和内部缓冲器BUFG到达时钟分布网络(Clock Distribution)。,7.5.3 数字时钟管理器(DCM)应用设计,如图7.5.8所示,FPGA器件内部逻辑电路时钟也可以通过内部缓冲器BUFG或者DCM(数字时钟管理器,Digital Clock Manager)到达时钟分布网络(Clock Distribution)。 Xilinx公司提供了全局时钟网络VHDL和 Verilog应用程序编程模板,可以通过编程控制全局时钟信号的工作方式。,7.5.2 全局时钟网络(Global Clock Networks)应用设计,图7.5.8 FPGA器件内部逻辑电路时钟到达时钟分布网络,7
10、.5.3 数字时钟管理器(DCM)应用设计,Xilinx公司在Virtex-和 Virtex- Pro等系列产品中采用 DCM(数字时钟管理器,Digital Clock Manager).在时钟控制和管理方面,DCM 比DLL功能更强大、使用更灵活。DCM的主要功能包括消除时钟时延、频率合成和时钟相位调整。DCM可以工作在高频或低频模式,主要参数有:输入时钟频率范围、输出时钟频率范围、输入时钟允许抖动范围,输出时钟抖动范围等。,在 Virtex-和 Virtex- Pro等系列产品中,DCM的设计和使用方法基本相同,下面以Virtex-系列器件中的DCM为例,介绍DCM的设计和使用。Virt
11、ex-系列器件型号不同,具有412个DCM。Virtex-的DCM结构示意图如图2.1.17所示。在图2.1.17所示DCM中的端口信号(Port Signals):,(l)CLKIN :源时钟信号输入(Source Clock Input CLKIN),DCM的输入时钟信号,来自IBUFG、IBUF或BUFGMUX。 (2)CLKFB:反馈时钟输入信号(Feedback Clock Input CLKFB),DCM的时钟反馈信号, CLK0或 CLK2X DCM输出通过IBUFG、IBUF或 BUFGMUX反馈到CLKFB引脚端。 (3)RST:复位输入信号(Reset Input RST)
12、,DCM的控制信号,高电平有效。,(4)PSINCDEC :相移增量/减量控制信号(Phase Shift Increment/Decrement - PSINCDEC),DCM的控制信号,控制输出时钟的相位动态调整方向。 (5)PSEN:相移使能信号(Phase Shift Enable - PSEN),DCM控制信号,输出时钟相位动态调整的使能信号。 (6)PSCLK:相移时钟信号(Phase Shift Clock - PSCLK),DCM参考时钟信号,输出时钟相位动态调整的参考时钟。,(7)CLK0/CLK90/CLK180/CLK270: CLKIN相移0/90/180/270的输出
13、信号, DCM输出的时钟信号。 (8)CLK2X:2倍频时钟输出信号(2x Clock Output CLK2X),DCM的输出时钟信号,是CLKIN的2倍频时钟信号。 (9)CLK2X180 :与CLK2X相位差180的DCM输出时钟信号。,(10)CLKDV:CLKIN的时钟分频输出信号(Clock Divide Output CLKDV),DCM的输出时钟信号。分频系数由CLKDVDIVIDE设定。 (11)CLKFX:频率合成时钟输出信号(Frequency Synthesized Clock Output - CLKFX) ,DCM的输出时钟信号,是CLKIN经过频率合成后的时钟信号
14、。 (12)CLKFX180:频率合成时钟相移180的输出信号(Frequency Synthesized Clock Output 180 Phase Shifted - CLKFX180),该时钟信号与CLKFX有180的相位差。,(13)LOCKED:DCM锁定输出信号(Locked Output LOCKED),DCM状态信号,显示DCM是否锁定CLKIN。LOCKED为高电平时,DCM的输出时钟信号有效。 (14)STATUS :状态信号(Status - STATUS),DCM状态信号,8位,用于显示DCM的工作状态。 (15)PSDONE:相移完成信号(Phase Shift D
15、ONE - 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_SUBM Xilinx公司提供了DCM VHDL和 Verilog应用程序编程模板,可以通过编程控制DCM的工作模式。,例如: BUFG_CLK0_FB_SUBM 工作模式电路如图7.5.9所示。BUFG_DFS_FB_SUBM工作模式电路如图7.5.10所示。,图7.5.9 BUFG_CLK0_FB_SUBM 工作模式电路,图7.5.10 BUFG_DFS_FB_SUBM工作模式电路,