新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 基于Xilinx FPGA的DCM动态重配置方法研究及实现

基于Xilinx FPGA的DCM动态重配置方法研究及实现

作者:时间:2017-06-05来源:网络收藏

在复杂的电子系统应用中,系统的主时钟经常需要根据不同的应用环境,采用不同频率、不同相位的高速时钟,以满足系统的不同性能要求。在星载系统中,其不同接口的数据输入速率不同,为了实现对不同接口输入数据的实时复用处理,需要电子系统产生对应的时钟频率。DCM(Digital Clock Manager)被广泛应用于电子系统中以产生所需的各种时钟频率,所以在系统动态可变时钟的过程中,DCM的重配置设计很重要。

DCM的配置分为简单的静态配置和复杂的动态重配置两种:静态配置是指DCM的输出频率是事先确定好的,在系统的整个运行过程中不会改变,若要改变,必须停止系统对其进行重新手动设置,这对于星载系统而言,难度非常大;而动态重配置是指在系统运行过程中,通过发送指令便可以实时地通过改变DCM属性来产生特定需要的时钟频率,这对于星载系统而言,具有十分重要的实际意义。文中结合作者的项目研发体会,对Xilinx公司的Virtex-4系列(Field Programmable Gate Array)的数字时钟管理器DCM的性能特点作了介绍,并给出进行DCM动态重配置的方法,从而使系统时钟具有较高的灵活性和适应性。

本文引用地址:http://www.eepw.com.cn/article/201706/348961.htm

1 DCM概述

Virtex-4系列是Xilinx公司推出的新一代大容量、高性能FPGA。在Virtex-4系列FPGA内部最多集成了20个时钟管理器DCM模块,DCM提供了一个完整的可以供片内和片外使用的时钟发生器。DCM使用完全数字延迟线技术,允许高精度地控制时钟的相位和频率;使用完全的数字反馈系统,可以动态补偿由于温度和电压偏移引起的时钟相位和频率的偏差。DCM主要具有数字时钟同步、数字频率合成、数字相位移动和动态重配置4个基本功能。
Virtex-4的DCM基本单元分为DCM_BASE和DCM_ADV两种,如图1所示,而DCM_ADV具有时钟动态重配置功能。

DCM_BASE基本单元包含常用的DCM基本功能,简化了用户接口。使用DCM_BASE,可以完成对时钟去歪斜、进行频率合成和固定相移的功能。

DCM_ADV基本单元除包含DCM_BASE中所有DCM功能和可用端口之外,还包含具有动态重配置功能的端口。DCM_ADV基本单元是DCM_BASE基本单元的扩展。DCM_ADV包括所有DCM功能,包括时钟去歪斜、频率合成、固定或可变相移以及动态重配置。

2 DCM动态重配置的设计和实现

通过DCM的一组数据和地址总线,在不必重新配置器件其他部分的情况下,改变DCM的属性。用于动态重配置DCM功能的引脚有:输入引脚DADDR[6:0],DI[15:0],DWE,DEN和DCLK;输出引脚DO[15:0]和DRDY。动态重配置可以根据目前的配置设定实现修改DCM的属性,改变其相移、倍频系数M或分频系数D。

2.1 动态重配置DCM的原理

DCM的动态重配置功能通过动态重配置引脚(Dynamic Reconfiguration Ports,DRP)控制器完成,其不仅可以配置DCM,而且可以配置FPGA的其他逻辑。动态重配置逻辑块的重配置流程和配置信号接口如图2所示。

对于Virtex-4的DCM,倍频系数M的值是通过DRP往指定地址(DADDR[6:0])50h中写数DI[15:0]来实现的,分频系数D的值是通过DRP往指定地址(DADDR[6:0])52h中写数DI[15:0]来实现的。在写控制字的过程中,DCM必须保持Reset状态。地址(DADDR[6:0])41h的位6(DI[5])用于设置DFS的频率模式,0是低频工作模式,1是高频工作模式;地址58h的位7和位8(DI[7:6])用于设置DLL的频率模式,00是低频模式,11是高频模式;地址00h用于存储DCM的默认输出状态。

2.2 系统设计

如图3是系统设计的逻辑框图。它由动态重配置引脚控制器和DCM_ADV组成。其动态重配置引脚控制器的输入简单,包括时钟输入信号、使能信号以及两根时钟模式控制线,它可以控制DCM动态的输出最多4种不同频率的时钟。时钟模式控制线可以扩展为多位,从而产生多种不同频率的时钟,在这里只采用两根模式控制线产生4个时钟模式值。

该系统的工作原理:动态重配置引脚控制器不断地输入DCLK频率采样时钟等级值,当SPEED_MODE[1:0]有有效地输入并且SPEED_EN使能信号为高电平时,动态重置引脚控制器开始产生对应的DCM重配置输入参数。DCM根据重配置参数来动态的产生所需的时钟频率,并向动态重置引脚控制器反馈动态重配置就绪信号和动态重配置数据输出信号,从而为下一次的时钟配置做好就绪准备。DCM_ADV模块的CLKFX_OUT是动态重配置后DCM的输出时钟,LOCKED信号出指示DCM时钟输出是否有效,即是否输出正确的频率和相位。这样只需改变输入的时钟模式值而不需其他改动,便可产生所需的时钟频率,从而使得系统时钟具有较高的灵活性和适应性。

2.3 动态DCM重配置的时序设计

在整个系统中,配置接口的时序设计是最关键的。在ISE10.1软件设计环境下,使用VerilogHDL硬件描述语言以自顶向下的方式进行设计。图4是DCM模块接口动态重配置的写时序。

其中,DCLK是其他接口信号的驱动时钟,在上升沿同步工作;DEN是其他接口的使能信号;DWE是读/写控制信号,如果DWE是低电平,为读操作,否则就是写操作;DADDR是读/写地址总线;DI是数据输入总线,只有当DEN和DWE同时有效时数据输入有效,而且实际的写操作是在DRDY返回之前的某个时刻发生的;DO是数据输出总线;DRDY是与DEN对应的一个信号,标志着一个DRP操作周期的完成,DO总线数据要在DRDY有效时间内DCLK的上升沿读取才有效。

动态重配置引脚模块的总体设计包括DCLK产生、重配置引脚的产生、RST信号产生。DCLK的产生是通过对输入时钟100 MHz的晶振进行2.5分频得到,作为后一级DCM模块的动态重配置时钟40 MHz;重配置引脚的产生是根据输入的时钟等级值来产生的,在不同的时钟等级值下产生对应的DEN、DWE、DADDR[6:0]、DI[15:0];RST信号的产生是根据DEN来产生的,这里使它持续的时间比DEN稍长即可。由于对应的时钟等级值300 MHz是属于高频模式,而200 MHz、100 MHz、50 MHz是属于低频模式,故在改变其时钟等级值的同时还需要对对应时钟等级值的频率模式进行改变。

对于可重配置功能,在操作时要注意两点:一是需要动态改变的CLKFX的乘数M和除数D的值要先减去1,例如希望分频比是5/2,就需要载入M/D=4/1;在写入动态控制字时,要保持DCM处于复位状态,直到控制字写完后才释放复位状态。

3 在线采集波形

以上的各模块在ISE 10.1开发平台上进行设计输入,经综合、实现后下载到XC4VFX100中去。在动态配置300 MHz时钟频率时,通过ChipScope实际在线采集波形如图5所示,对应其他的频率等级的重配置类似。

在对300 MHz的频率进行时钟等级值配置时,先向地址50h中写入倍频系数0002h,再向地址52h中写入分频系数0000h;在对频率模式配置时,对地址(DADDR『6:0])41h的位6(DI[5])置为数1。在向地址中写数期间保持DEN、DWE的电平为高,并且在对时钟等级配置和频率模式配置时,保持DCM的复位信号处于复位状态。从图5中可以看出,在输入速度等级值时,被DCLK正确采样后,动态重配置控制器便产生相对应的引脚参数,这时对DCM开始重配置。DRDY信号反馈显示上次的动态重配置完毕,可以进行下一次的重配置。在配置完成后,CLKFX_OUT是动态重配置的输出时钟。通过ChipScope的实际在线采集,其动态重配置后的时钟频率CLKFX_OUT符合预期重配置结果。

系统时延和相移都默认设置为零,经实际测试,整个动态变频过程最多只需要20个DCLK周期就可以完成,DCLK采用的是40 MHz,所以只需要不到1μs的时间便可对DCM重配置完毕,体现了系统很强的实时性。

4 两种方法的分析比较

对于该系统而言,若想通过静态配置来产生300 MHz、200 MHz、100 MHz、50 MHz的输出时钟频率,由于300 MHz是高频模式,而200 MHz、100 MHz、50 MHz的时钟是低频模式。为得到这几种时钟频率,则需要两个DCM来实现,一个采用低频模式,另一个采用高频模式,通过DCM事先设定好的倍频和分频来实现,并且还需要根据输入数据频率的不同来选择对应的时钟频率。这种方法灵活性差,并且在数据分时复用处理时还需要根据输入时钟频率的情况进行时钟控制和选择,其可调节能力非常的弱,并且耗费的资源较多,在数据处理的分时复用时会有时钟闲置的情况,不利于系统节能的要求。此外对系统时钟的控制,其时钟频率稳定性较差,且时钟的质量较差。

通过DCM重配置生成的时钟频率,可以按需要成比例地调节,不必对时钟的控制和选择便可满足实际的需要,系统具体需要什么样的时钟频率便产生对应的时钟,这对于有多种时钟频率的产生更具有重要的实际意义,并且可以通过发送指令来改变时钟频率的相位情况,方便易操作。通过DCM的动态重配置,可以实现对FPGA资源的利用较少,资源的利用少有利于系统的节能,这对于星载系统而言是具有重要的实际意义。目前该系统已应用于某星载系统,其运行状态稳定且良好,具有较强的实时性和灵活性。

5 结束语

动态重配置DCM在FPGA电路设计领域有着广泛的应用,文中系统介绍了基于Virtex-4的DCM动态重配置设计方案,给出了一个在工程中可以广泛应用的实际系统实例。对该动态重配置系统在不同输入时钟等级值下的输出时钟信号频率进行了在线采集测试,信号的波形和频率达到系统要求的性能指标,并且对其性能做出了比较分析。



关键词: DCM配置 时钟源 FPGA

评论


相关推荐

技术专区

关闭