1 引 言
锁相环是一种能使输出信号在频率和相位上与输入信号同步的电路,即系统进入锁定状态(或同步状态)后,震荡器的输出信号与系统输入信号之间相差为零,或者保持为常数。传统的锁相环各个部件都是由模拟电路实现的,一般包括鉴相器(PD)、环路滤波器(LF)、压控振荡器(VCO)三个环路基本部件。
随着数字技术的发展,全数字锁相环ADPLL(AllDigital Phase-Locked Loop)逐步发展起来。所谓全数字锁相环,就是环路部件全部数字化,采用数字鉴相器、数字环路滤波器、数控振荡器构成锁相环路,并且系统中的信号全是数字信号。与传统的模拟电路实现的锁相环相比,由于避免了模拟锁相环存在的温度漂移和易受电压变化影响等缺点,从而具备可靠性高、工作稳定、调节方便等优点。全数字锁相环的环路带宽和中心频率编程可调,易于构建高阶锁相环,并且应用在数字系统中时,不需A/D及D/A转换。在调制解调、频率合成、FM立体声解码、图像处理等各个方面得到广泛的应用。
随着电子设计自动化(EDA)技术的发展,可以采用大规模可编程逻辑器件(如CPLD或FPGA)和VHDL语言来设计专用芯片ASIC和数字系统。本文完成了全数字锁相环的设计,而且可以把整个系统嵌入SoC,构成片内锁相环。
2全数字锁相环的体系结构和工作原理
74XX297 是出现最早,应用最为广泛的一款全数字锁相环,在本文中以该芯片为参考进行设计、分析。ADPLL基本结构如图1所示,主要由鉴相器、K变模可逆计数器、脉冲加减电路和除N计数器4部分构成。K变模计数器和脉冲加减电路的时钟分别为Mfc和2Nfc。这里fc是环路中心频率,一般情况下M和N都是2的整数幂。
2.1 鉴相器
常用的鉴相器有两种类型:异或门(XOR)鉴相器和边沿控制鉴相器(ECPD)。异或门鉴相器比较输入信号Fin相位和输出信号Fout相位之间的相位差 θe,并输出误差信号Se作为K变模可逆计数器的计数方向信号。环路锁定时,θe=0,Se为一占空比50%的方波。当θe=+π/2时,Se等于1;当 θe=-π/2时,Se等于0。因此异或门鉴相器相位差极限为±π/2,边沿控制鉴相器相位差极限为±π。
2.2 K变模可逆计数器
K 变模可逆计数器消除了鉴相器输出的误差信号Se中的高频成分,保证环路的性能稳定。K变模可逆计数器主要是根据鉴相器的输出作为方向脉冲,输出加减脉冲信号。当Se为低电平时,计数器进行加运算,如果相加的结果达到预设的模值,则输出一个进位脉冲信号CARRY;当Se为高电平时,计数器进行减运算,如果减的结果达到零,则输出一个借位脉冲信号BORROW。
2.3脉冲加减电路
K变模可逆计数器的CARRY和BORROW信号分别接到脉冲加减电路的INC和DEC信号。脉冲加减电路实现了对输入信号频率和相位的跟踪和调整,最终使输出信号锁定在输入信号的频率和相位上,可以称之为数控振荡器。
2.4除N计数器
除N计数器对脉冲加减电路的输出IDOUT进行N分频,得到整个环路的输出信号Fout。同时,因为fc=IDCLOCK/2N,因此通过改变分频值N可以得到不同的环路中心频率fc。
3全数字锁相环的实现与仿真
本设计在Altera公司的Max+PlusⅡ开发软件平台上,利用VHDL语言运用自顶向下的系统设计方法,完成ADPLL的设计。首先根据系统中各个功能模块的要求分别设计环路各个部件的逻辑电路,并进行仿真验证,然后再将各部件组合起来,进行系统仿真和验证。
异或门鉴相器和除N计数器的实现较为简单,不再进行详细说明。
3.1 K变模可逆计数器
K 变模可逆计数器由两个独立的计数器"UPCOUNTER","DOWN COUNTER"组成,分别对应设计中的q0,q1。K为计数器的模值,总是2的整数幂,可由输入a[3..0]控制改变。计数器的操作由DN/UP信号控制。时钟clk频率为数字锁相环中心频率的M倍,clk上升沿计数。K计数器首先预置模数,然后把鉴相器的输出信号作为方向脉冲,控制内部计数器进行加、减计数。如果这个信号为高,"DOWN COUNTER"有效进行递减计算,"UP COUNTER"保持为零;相反,"UP COUNTER"有效进行累加计算,"DOWN COUNTER"保持为预置模数。"UP COUNTER"计数值超过K时,increase输出为1,计数器清零。"DOWN COUNTER"计数值为0时,decrease输出为1,计数器恢复为预置模数。
a[3..0]=1时,设定K值为4。K变模可逆计数器仿真波形如图2所示。
3.2脉冲加减电路
脉冲加减电路需要利用多个触发器配合产生时序,其输出为IDOUT。当没有进位或借位脉冲信号时,他把外部参考时钟进行二分频;当有进位脉冲信号inc 时,则在输出的二分频信号中插入半个脉冲,以提高输出信号的频率;当有借位脉冲信号dec时,则在输出的二分频信号中减去半个脉冲,以降低输出信号的频率。VHDL设计代码如下,图3为其仿真波形。
3.3全数字锁相环的实现与仿真