资源描述
,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,*,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,符号,图,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,模式时,该输出时钟信号无效。,(,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,设计时需要注意的问题,在,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.2 DLL,在器件中的位置,3.DLL,的应用设计例,DLL,的一些应用设计例如图,7.5.3,图,7.5.5,所示。其中,图,7.5.3,为标准的,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,-,系列器件为例介绍全局时钟网络的特性和用法。,在,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,)通过时钟输入(,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 Manager,)和内部缓冲器,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.5.3,数字时钟管理器(,DCM,)应用设计,Xilinx,公司在,Virtex,-,和,Virtex,-Pro,等系列产品中采用,DCM,(数字时钟管理器,,Digital Clock Manager,),.,在时钟控制和管理方面,,DCM,比,DLL,功能更强大、使用更灵活。,DCM,的主要功能包括消除时钟时延、频率合成和时钟相位调整。,DCM,可以工作在高频或低频模式,主要参数有:输入时钟频率范围、输出时钟频率范围、输入时钟允许抖动范围,输出时钟抖动范围等。,在,Virtex,-,和,Virtex,-Pro,等系列产品中,,DCM,的设计和使用方法基本相同,下面以,Virtex,-,系列器件中的,DCM,为例,介绍,DCM,的设计和使用。,Virtex,-,系列器件型号不同,具有,4,12,个,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,),,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,的输出信号,,DCM,输出的时钟信号。,(,8,),CLK2X,:,2,倍频时钟输出信号(,2x Clock Output CLK2X,),,DCM,的输出时钟信号,是,CLKIN,的,2,倍频时钟信号。,(,9,),CLK2X180,:与,CLK2X,相位差,180,的,DCM,输出时钟信号。,(,10,),CLKDV,:,CLKIN,的时钟分频输出信号(,Clock Divide Output CLKDV,),,DCM,的输出时钟信号。分频系数由,CLKDV,DIVIDE,设定。,(,11,),CLKFX,:频率合成时钟输出信号(,Frequency Synthesized Clock Output-CLKFX,),,DCM,的输出时钟信号,是,CLKIN,经过频率合成后的时钟信号。,(,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 DONE-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,工作模式电路,
展开阅读全文