• 锁相环verilog > 全数字锁相环的设计
  • 全数字锁相环的设计

    免费下载 下载该文档 文档格式:DOC   更新时间:2007-01-08   下载次数:0   点击次数:1
    文档基本属性
    文档语言:Simplified Chinese
    文档格式:doc
    文档作者:lhy
    关键词:
    主题:
    备注:
    点击这里显示更多文档属性
    全数字锁相环的设计
    摘要:本文在说明全数字锁相环的基础上,提出了一种利用FPGA设计一阶全数字锁相环的方法,并给出了关键部件的RTL可综合代码,并结合本设计的一些仿真波形详细描述了数字锁相环的工作过程,最后对一些有关的问题进行了讨论.
    关键词:全数字锁相环;DPLL;FSK;FPGA
    引言
    锁相环(PLL)技术在众多领域得到了广泛的应用.如信号处理,调制解调,时钟同步,倍频,频率综合等都应用到了锁相环技术.传统的锁相环由模拟电路实现,而全数字锁相环(DPLL)与传统的模拟电路实现的PLL相比,具有精度高且不受温度和电压影响,环路带宽和中心频率编程可调,易于构建高阶锁相环等优点,并且应用在数字系统中时,不需A/D及D/A转换.随着通讯技术,集成电路技术的飞速发展和系统芯片(SoC)的深入研究,DPLL必然会在其中得到更为广泛的应用.
    这里介绍一种采用VERILOG硬件描述语言设计DPLL的方案.
    DPLL结构及工作原理
    一阶DPLL的基本结构如图1所示.主要由鉴相器,K变模可逆计数器,脉冲加减电路和除N计数器四部分构成.K变模计数器和脉冲加减电路的时钟分别为Mfc和2Nfc.这里fc是环路中心频率,一般情况下M和N都是2的整数幂.本设计中两个时钟使用相同的系统时钟信号.
    鉴相器
    常用的鉴相器有两种类型:异或门(XOR)鉴相器和边沿控制鉴相器(ECPD),本设计中采用异或门(XOR)鉴相器.异或门鉴相器比较输入信号Fin相位和输出信号Fout相位之间的相位差Фe=Фin-Фout,并输出误差信号Se作为K变模可逆计数器的计数方向信号.环路锁定时,Se为一占空比50%的方波,此时的绝对相为差为90°.因此异或门鉴相器相位差极限为±90°.异或门鉴相器工作波形如图2所示.
    图1 数字锁相环基本结构图
    图2 异或门鉴相器在环路锁定及极限相位差下的波形
    图3 脉冲加减电路工作波形
    图4 FSK解调
    K变模可逆计数器
    K变模可逆计数器消除了鉴相器输出的相位差信号Se中的高频成分,保证环路的性能稳定.K变模可逆计数器根据相差信号Se来进行加减运算.当Se为低电平时,计数器进行加运算,如果相加的结果达到预设的模值,则输出一个进位脉冲信号CARRY给脉冲加减电路;当Se为高电平时,计数器进行减运算,如果结果为零,则输出一个借位脉冲信号BORROW给脉冲加减电路.
    脉冲加减电路
    脉冲加减电路实现了对输入信号频率和相位的跟踪和调整,最终使输出信号锁定在输入信号的频率和信号上,工作波形如图3所示.
    除N计数器
    除N计数器对脉冲加减电路的输出IDOUT再进行N分频,得到整个环路的输出信号Fout.同时,因为fc=IDCLOCK/2N,因此通过改变分频值N可以得到不同的环路中心频率fc.
    DPLL部件的设计实现
    了解了DPLL的工作原理,我们就可以据此对DPLL的各部件进行设计.DPLL的四个主要部件中,异或门鉴相器和除N计数器的设计比较简单:异或门鉴相器就是一个异或门;除N计数器则是一个简单的N分频器.下面主要介绍K变模可逆计数器和脉冲加减电路的设计实现.
    K变模可逆计数器的设计实现
    K变模可逆计数器模块中使用了一个可逆计数器Count,当鉴相器的输出信号dnup为低时,进行加法运算,达到预设模值则输出进位脉冲CARRY;为高时,进行减法运算,为零时,输出借位脉冲BORROW.Count的模值Ktop由输入信号Kmode预设,一般为2的整数幂,这里模值的变化范围是23-29.模值的大小决定了DPLL的跟踪步长,模值越大,跟踪步长越小,锁定时的相位误差越小,但捕获时间越长;模值越小,跟踪步长越大,锁定时的相位误差越大,但捕获时间越短.
    K变模可逆计数器的VERILOG设计代码如下(其中作了部分注释,用斜体表示):
    module KCounter(Kclock,reset,dnup,enable, Kmode,carry,borrow);
    input Kclock; /*系统时钟信号*/
    input reset; /*全局复位信号*/
    input dnup; /*鉴相器输出的加减控制信号*/
    input enable; /*可逆计数器计数允许信号*/
    input [2:0]Kmode; /*计数器模值设置信号*/
    output carry; /*进位脉冲输出信号*/
    output borrow; /*借位脉冲输出信号*/

    下一页

  • 下载地址 (推荐使用迅雷下载地址,速度快,支持断点续传)
  • 免费下载 DOC格式下载
  • 您可能感兴趣的
  • 数字锁相环verilog  verilog  verilog语言  状态机verilog  veriloghdl软件下载  verilog计数器  veriloghdl编写实例  systemverilog  verilog模块调用