基于VHDL 的全数字锁相环的设计.docx

上传人:b****6 文档编号:3255840 上传时间:2022-11-21 格式:DOCX 页数:6 大小:220.09KB
下载 相关 举报
基于VHDL 的全数字锁相环的设计.docx_第1页
第1页 / 共6页
基于VHDL 的全数字锁相环的设计.docx_第2页
第2页 / 共6页
基于VHDL 的全数字锁相环的设计.docx_第3页
第3页 / 共6页
基于VHDL 的全数字锁相环的设计.docx_第4页
第4页 / 共6页
基于VHDL 的全数字锁相环的设计.docx_第5页
第5页 / 共6页
点击查看更多>>
下载资源
资源描述

基于VHDL 的全数字锁相环的设计.docx

《基于VHDL 的全数字锁相环的设计.docx》由会员分享,可在线阅读,更多相关《基于VHDL 的全数字锁相环的设计.docx(6页珍藏版)》请在冰豆网上搜索。

基于VHDL 的全数字锁相环的设计.docx

基于VHDL的全数字锁相环的设计

基于VHDL的全数字锁相环的设计

摘要:

叙述了全数字锁相环的工作原理,提出了应用VHDL技术设计全数字锁相环的方法,并用复杂可编程逻辑器件CPLD予以实现,给出了系统主要模块的设计过程和仿真结果。

0 引言

       全数字锁相环(DPLL)由于避免了模拟锁相环存在的温度漂移和易受电压变化影响等缺点。

从而具备可靠性高、工作稳定、调节方便等优点。

在调制解调、频率合成、FM立体声解码、图像处理等各个方面得到广泛的应用。

随着电子设计自动化(EDA)技术的发展,采用大规模可编程逻辑器件(如CPLD或FPGA)和VHDL语言来设计专用芯片ASIC和数字系统,而且可以把整个系统集成到一个芯片中,实现系统SOC,构成片内锁相环。

下面介绍采用VHDL技术设计DPLL的一种方案。

1 DPLL的基本结构

      全数字锁相环结构框图如图1所示,由数字鉴相器、数字环路滤波器和数控振荡器3部分组成。

 

      设计中数字鉴相器采用了异或门鉴相器;数字环路滤波器由变模可逆计数器构成(模数K可预置);数控振荡器由加/减脉冲控制器和除N计数器构成。

      可逆计数器和加/减脉冲控制器的时钟频率分别为Mf0和2Nf0。

这里f0是环路的中心频率,一般情况下M和N为2的整数幂。

时钟2Nf0 经除H(=M/2N)计数器得到。

2 数字锁相环的原理与实现

       全数字锁相环原理如图2所示,其中:

clk为时钟频率,等于32f 0;U1为输入,频率为f0;j为异或门鉴相器的输出,它作为变模可逆计数器的方向控制信号;out为加/减脉冲控制器的输出;U2为DPLL的输出,在相位锁定的频率为f0,相位与输入U1相差Π/2;D、C、B、A可预置变模可逆计数器的模数,它在0001—1111范围内变化,相应的模数在2.3—2.17范围内变化;En为可逆计数器使能端。

 

图2数字锁相环原理图

2.1 鉴相器的设计

     异或门鉴相器用于比较输入信号u1与数控振荡器输出信号u2的相位差,其输出信号ud作为可逆计数器的计数方向控制信号。

当ud为低电平时(u1和u2有同极性时),可逆计数器作"加"计数。

反之,当ud为高电平时,可逆计数器作"减"计数。

     当环路锁定时,fi和fo正交,鉴相器的输出信号Ud为50%占空比的方波,此时定义相位误差为零,在这种情况下,可逆计数器"加"和"减"的周期是相同的,只要可逆计数器只对其时钟的k值足够大(k>M/4),其输出端就不会产生进位或借位脉冲,加/减脉冲控制器只对其时钟2Nfo进行二分频,使fi和fo的相位保持正交。

在环路未锁定的情况下,若Ud=0时它使可逆计数器向上加计数,并导致进位脉冲产生,进位脉冲作用到加/减脉冲控制器的"加"控制端i,该控制器便在二分频过程中加入半个时钟周期,即一个脉冲。

反之,若Ud=1时,可逆计数器进行减计数,并将反出解围脉冲到加/减脉冲控制器的"减"输入端d,于是,该控制器便在二分频过程中减去半个时钟周期,即一个脉冲。

这个过程是连续发生的。

加/减脉冲控制器的输出经过除N计数后。

使得本地估算信号U2的相位受到调整控制,最终达到锁定的状态。

      异或门鉴相器在环路锁定时和相位误差达到极限时的相应波形如图3所示:

 

图3 异或门鉴相器工作波形

2.2 数字环路滤波器的设计

     数字环路滤波器是由变模可逆计数器构成的。

该计数器设计为一个17位可编程(可变模数)可逆计数器,计数范围是,由外部置数DCBA控制。

假设系统工作无相位差,由锁相环原理知,u1和u2的相位差0,异或门鉴相器输出是一个对称的方波,如图4(a)所示。

因此可逆计数器在相同的时间间隔内进行加或减计数,只要k足够大,那么从零开始的计数就不会溢出或不够。

 

      若u1开始落后u2,异或门输出不对称,那么计数器加计数时间比减计数时间长,其结果计数器随着时间的增长将溢出,产生一个进位脉冲。

相反,若U1开始滞后U2,计数器将产生一个借位脉冲。

进位和借位脉冲可用来控制DCO,使得DCO输出的脉冲数根据进位和借位来加上或者是删除一些脉冲,实际上也就改变了DCO的输出频率。

变模可逆计数器的设计由VHDL完成,程序如下:

libraryieee;

useieee.std_logic_1164.all;

useieee.std_logic_unsigned.all;

entityliis

port(clk,j,en,d,c,b,a:

instd_logic;

  r1,r2:

outstd_logic);

endli;

architecturebehaveofliis

signalcq,k,mo:

std_logic_vector(16downto0);

signalcao1,cao2:

std_logic;

signalinstruction:

std_logic_vector(3downto0);

begin

   instruction<=d&c&b&a;

 withinstructionselect

 mo<="00000000000000111"when"0001",

"00000000000001111"when"0010",

"00000000000011111"when"0011",

"00000000000111111"when"0100",

"00000000001111111"when"0101",

"00000000011111111"when"0110",

"00000000111111111"when"0111",

"00000001111111111"when"1000",

"00000011111111111"when"1001",

"00000111111111111"when"1010",

"00001111111111111"when"1011",

"00011111111111111"when"1100",

"00111111111111111"when"1101",

"01111111111111111"when"1110",

"11111111111111111"when"1111",

"00000000000000111"whenothers;

process(clk,en,j,k,cq)

begin

ifclk'eventandclk='1'then

   k<=mo;

  ifen='1'then

   ifj='0'then

    ifcq

     elsecq<=(others=>'0');

    endif;

  else

   ifcq>0thencq<=cq-1;

    elsecq<=k;

   endif;

  endif;

  elsecq<=(others=>'0');

  endif;

endif;

endprocess;

process(en,j,cq,k)

begin

  ifen='1'then

   ifj='0'then

    fcq=kthencao1<='1';

     elsecao1<='0';

    endif;

    cao2<='0';

    else

     ifcq="00000000000000000"then

cao2<='1';

        elsecao2<='0';

        endif;

        cao1<='0';

   endif;

  elsecao1<='0';cao2<='0';

  endif;

endprocess;

     r1<=cao1;r2<=cao2;

endbehave;

变模可逆计数器(取k=24)的仿真波形图如图4所示。

图4 变模可逆计数器(取k=24)的仿真波形图

2.3 数控振荡器的设计

      数控振荡器由加/减脉冲控制器和除N计数器组成的。

加/减脉冲控制器其实是一个增量—减量计数器式DCO。

它和环路滤波器连用。

如果在环路滤波器无进位、错位的时候,加/减脉冲控制器对时钟2NFo进行二分频。

当加/减脉冲控制的增量输入端(I=1)输入一个进位脉冲时,输出脉冲中通过该计数器内部加上一个时钟脉冲。

反之,当加/减脉冲控制的减量输入端(D=1)时输入一个借位脉冲输出脉冲中就减去一个时钟脉冲。

因此通过借位和进位脉冲可以使输出频率得到改变,输出频率能被进位和借位脉冲的最高频率控制在一个给定的范围内。

加/减脉冲控制器由D触发器和JK触发器构成,根据功能分析,可以设计出相应的VHDL程序。

其运行后仿真波形如图5所示:

 

图5 加/减脉冲控制器仿真波形图

3 实验仿真结果与分析

      本设计中全数字锁相环路采用软件来实现的,通过用VHDL语言编写模块,然后仿真,例化,逐渐由下而上的实现整个电路,最终达到整体仿真下载成功。

     环路锁定(k=2^5),DPLL系统仿真波形如图6所示。

 

图6 环路锁定(取k=2^5)时的仿真波形

    由仿真波形可以看出,u1和u2达到锁定状态时的仿真时间是70us。

     环路锁定(k=27)时,DPLL系统的仿真波形如图7所示:

 

图7 环路锁定(取k=27)时的波形仿真图

在这种情况下,u1和u2达到锁定状态的仿真时间是180ms。

     显然,模k愈大,环路进入锁定状态的时间越长。

k取得过大,对抑制噪声、减少相位抖动有利,但是同时又加大了环路进入锁定状态的时间。

反之,k取得过小,可以加速环路的锁定,而对噪声的抑制能力却随之降低。

4 结语

     采用VHDL设计全数字锁相环路,具有设计灵活,修改方便和易于实现的优点,并能够制成嵌入式片内锁相环。

该类数字锁相环路中计数器的模数可以随意修改,这样,就能够根据不同的情况最大限度地、灵活地设计环路。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1