数字锁相环设计
引言
锁相的概念是在19世纪30年代提出的,而且很快在电子学和通信领域中获得广泛应用。尽管基本锁相环的从开始出现几乎保持原样,但是使用不同的技术制作及满足不同的应用要求,锁相环的实现对于特定的设计还是蛮大的挑战。
锁相环在通信、雷达、测量和自动化控制等领域应用极为广泛,已经成为各种电子设备中必不可少的基本部件。随着电子技术向数字化方向发展,需要采用数字方式实现信号的锁相处理。锁相环技术在众多领域得到了广泛的应用。如信号处理,调制解调,时钟同步,倍频,频率综合等都应用到了锁相环技术。传统的锁相环由模拟电路实现,而全数字锁相环(DPLL)与传统的模拟电路实现的锁相环相比,具有精度高且不受温度和电压影响,环路带宽和中心频率编程可调,易于构建高阶锁相环等优点,并且应用在数字系统中时,不需A/D及D/A转换。随着通讯技术、集成电路技术的飞速发展和系统芯片(SoC)的深入研究,全数字锁相环必然会在其中得到更为广泛的应用。因此,对全数字锁相环的研究和应用得到了越来越多的关注。
传统的数字锁相环系统是希望通过采用具有低通特性的环路滤波器,获得稳定的振荡控制数据。对于高阶全数字锁相环,其数字滤波器常常采用基于DSP的运算电路。这种结构的锁相环,当环路带宽很窄时,环路滤波器的实现将需要很大的电路量,这给专用集成电路的应用和片上系统SOC(system on chip )的设计带来一定困难。另一种类型的全数字锁相环是采用脉冲序列低通滤波计数电路作为环路滤波器,如随机徘徊序列滤波器、先N后M序列滤波器等。这些电路通过对鉴相模块产生的相位误差脉冲进行计数运算,获得可控振荡器模块的振荡控制参数。由于脉冲序列低通滤波计数方法是一个比较复杂的非线性处理过程,难以进行线性近似,因此,无法采用系统传递函数的分析方法确定锁相环的设计参数。不能实现对高阶数字锁相环性能指标的解藕控制和分析,无法满足较高的应用需求。
由于数字电子技术的迅速发展,尤其是数字计算和信号处理技术在多媒体、自动化、仪器仪表、通讯等领域的广泛应用,用数字电路处理模拟信号的情况日益普遍。所以模拟信号数字化是信息技术的发展趋势,而数字锁相环在其中扮演着重要角色。近年来,随着VLSI技术的发展,随着大规模、超高速集成电路的飞速发展,数字系统的集成度和逻辑速度越来越高,这使得数字锁相环在数字通信、控制工程及无线电电子学的各个领域中的应用也越来越广泛。数字锁相环路已在数字通信、无线电电子学及电力系统自动化等领域中得到了极为广泛的应用。随着集成电路技术的发展,不仅能够制成频率较高的单片集成锁相环路,而且可以把整个系统集成到一个芯片上去。在基于FPGA勺通信
电路中,可以把全数字锁相环路作为一个功能模块嵌入FPGA中,构成片内锁相环。
锁相环最初用于改善电视接收机的行同步和帧同步,以提高抗干扰能力。20世纪50 年代后期随着空间技术的发展,锁相环用于对宇宙飞行目标的跟踪、遥测和遥控。但是基本都是以模拟锁相环为基础。60年代初随着数字通信系统的发展,出现数字锁相环其应用相当广泛,例如为相干解调提取参考载波、建立位同步等。具有门限扩展能力的调频信号锁相鉴频器也是在60年代初发展起来的。在电子仪器方面,锁相环在频率合成器和相位计等仪器中起了重要作用。数字锁相环也以其独特的优点在很多方面取代了模拟锁相环。数字锁相环具有以下优点:广泛采用逻辑门电路,触发电路和其它数字电路,因而受干扰影响的可能性小;可靠性高便于集成化和小型化,避免了模拟锁相环的一些固有缺点。锁相环路所以获得日益广泛的应用是因为它具有如下几个重要特性:
?跟踪特性。在环路锁定状态下,一旦输入频率发生变化,压控振荡器立即响应这个变化,迅速跟踪输入频率,最终使输入与输出同步。这种环路可用于锁相接收机。
?滤波特性。通过环路滤波器的作用,锁相环路具有窄带滤波特性,能够将混进输入信号中的噪声和杂散干扰滤除。而且通带可以做的很窄,性能远远优于任何Lc、RC石
英晶体、陶瓷滤波器。
?锁定状态无剩余频差存在。正是由于锁相环的这一理想频率控制特性,使它在自动频率控制、频率合成技术等方面获得广泛的应用。
?易于集成化。组成环路的基本部件都易于采用模拟集成电路实现。环路实现数字化之后,更易于采用数字集成电路。集成锁相环的体积不断减小,成本不断降低,而可靠性却不断增强,用途也越来越多。
因此,研究能够嵌入系统芯片内的全数字锁相环,提高其环路的工作性能,具有十分重要的意义。
1锁相环概述
我们所说的PLL,其实就是锁相环路,简称为锁相环。锁相环路是一种反馈控制电路。许多电子设备要正常工作,通常需要外部的输入信号与内部的振荡信号同步,利用锁相环路就可以实现这个目的。锁相环的特点是:利用外部输入的参考信号控制环路内部振荡信号的频率和相位。因锁相环可以实现输出信号频率对输入信号频率的自动跟踪,所以锁相环通常用于闭环跟踪电路。锁相环在工作的过程中,当输出信号的频率与输入信号的频率相等时,输出电压与输入电压保持固定的相位差值,即输出电压与输入电压的相位被锁住,这就是锁相环名称的由来。
目前锁相环主要有模拟锁相环,数字锁相环以及有记忆能力(微机控制)锁相环。
1.1模拟锁相环的基本结构及工作原理
1.1.1模拟锁相环的基本结构
锁相环路是一种反馈电路,锁相环的英文全称是Phase-Locked Loop,简称PLL=模
拟锁相环通常由鉴相器(PD、环路滤波器(LF)和压控振荡器(VCO三部分组成,锁相环组成的原理框图如图所示。
图1.1锁相环结构框图
锁相环中的鉴相器又称为相位比较器,它的作用是检测输入信号和输出信号的相位差,并将检测出的相位差信号转换成Ud(t)电压信号输出,该信号经低通滤波器滤波后形成压控振荡器的控制电压Uc(t),对振荡器输出信号的频率实施控制。
1.1.2模拟锁相环的工作原理
锁相环其作用是使得电路上的时钟和某一外部时钟的相位同步。因锁相环可以实现
输出信号频率对输入信号频率的自动跟踪,所以锁相环通常用于闭环跟踪电路。锁相环在工作的过程中,当输出信号的频率与输入信号的频率相等时,输出电压与输入电压保持固定的相位差值,即输出电压与输入电压的相位被锁住,这就是锁相环名称的由来。在数据采集系统中,锁相环是一种非常有用的同步技术,因为通过锁相环,可以使得不同的数据采集板共享同一个采样时钟。因此,所有各自的本地时基的相位都是同步的,从而采样时钟也是同步的。因为每块板卡的采样时钟都是同步的,所以都能严格地在同一时刻进行数据采集。
当压控振荡器的频率由于某种原因而发生变化时,必然引起相位的变化,该相位变化在鉴相器中与参考晶体的稳定相位相比较,使鉴相器输出一个与相位误差信号成比例的误差电压Ud,经过低通滤波器,取出其中缓慢变动数值,将压控振荡器的输出频率拉回到稳定的值上来,从而实现了相位负反馈控制。锁相环的工作原理:
a.压控振荡器的输出经过采集并分频;
b.和基准信号同时输入鉴相器;
c.鉴相器通过比较上述两个信号的频率差,然后输出一个直流脉冲电压;
d.控制VCO使它的频率改变;
e.这样经过一个很短的时间,VCO的输出就会稳定于某一期望值。
锁相环可以用来实现输出和输入两个信号之间的相位同步。当没有基准(参考)输入信号时,环路滤波器的输出为零(或为某一固定值)。这时,压控振荡器VCO按其固有频率fv 进行自由振荡。当有频率为fR的参考信号输入时,Ur和Uv同时加到鉴相器进行鉴相。如果fr和fv相差不大,鉴相器对Ur和Uv进行鉴相的结果,输出一个与Ur 和Uv的相位差成正比的误差电压Ud,再经过环路滤波器滤去Ud中的高频成分,输出一个控制电压Uc, Uc将使压控振荡器的频率fv (和相位)发生变化,朝着参考输入信号的频率靠拢,最后使fv=fr,环路锁定。环路一旦进入锁定状态后,压控振荡器的输出信号与环路的输入信号(参考信号)之间只有一个固定的稳态相位差,而没有频差存在。这时我们就称环路已被锁定。
环路的锁定状态是对输入信号的频率和相位不变而言的,若环路输入的是频率和相
位不断变化的信号,而且环路能使压控振荡器的频率和相位不断地跟踪输入信号的频率和相位变化,则这时环路所处的状态称为跟踪状态。锁相环路在锁定后,不仅能使输出信号频率与输入信号频率严格同步,而且还具有频率跟踪特性,所以它在电子技术的各个领域中都有着广泛的应用。
1.2全数字锁相环基本结构及工作原理
1.2.1全数字锁相环的基本结构
随着数字电路技术的发展,数字锁相环在调制解调、频率合成、FM立体声解码、
彩色副载波同步、图象处理等各个方面得到了广泛的应用。数字锁相环不仅吸收了数字电路可靠性高、体积小、价格低等优点,还解决了模拟锁相环的直流零点漂移、器件饱和及易受电源和环境温度变化等缺点,此外还具有对离散样值的实时处理能力,已成为锁相技术发展的方向。
所谓数字PLL,就是指应用于数字系统的PLL,也就是说数字PLL中的各个模块都是以数字器件来实现的,是一个数字的电路。数字锁相环的优点是电路最简单有效,可
采用没有压控的晶振,降低了成本,提高了晶振的稳定性。但缺点是和模拟锁相环一样,一旦失去基准频率,输出频率立刻跳回振荡器本身的频率;另外还有一个缺点,就是当进行频率调整的时候,输出频率会产生抖动,频差越大,抖动会越大于密,不利于某些场合的应用。随着大规模、超高速的数字集成电路的发展,为数字锁相环路的研究与应用
提供了广阔空间。由于晶体振荡器和数字调整技术的加盟,可以在不降低振荡器的频率稳定度的情况下,加大频率的跟踪范围,从而提高整个环路工作的稳定性与可靠性。
锁相环是一个相位反馈控制系统,在数字锁相环中,由于误差控制信号是离散的数字信号,而不是模拟电压,因而受控的输出电压的改变是离散的而不是连续的;此外,环路组成部件也全用数字电路实现,故而这种锁相环就称之为全数字锁相环(简称PLL)。
全数字锁相环主要由数字鉴相器、可逆计数器、频率切换电路及N分频器四部分组成。其中可逆计数器及N分频器的时钟由外部晶振提供。不用VCO可大大减轻温度及电源电压变化对环路的影响。同时,采用在系统可编程芯片实现有利于提高系统的集成度和可靠性。
一阶全数字锁相环的基本结构如图所示。主要由鉴相器、K变模可逆计数器、脉冲
加减电路和除N计数器四部分构成。K变模计数器和脉冲加减电路的时钟分别为Mfc和2Nfc。这里fc是环路中心频率,一般情况下M和N都是2的整数幕。本设计中两个时钟使用相同的系统时钟信号。
图1.2数字锁相环基本结构
1.2.2全数字锁相环的工作原理
当环路失锁时,异或门鉴相器比较输入信号(fin)和输出信号(fout)之间的相位差
异,并产生K变模可逆计数器的计数方向控制信号(dnup);K变模可逆计数器根据计数方向控制信号(dnup)调整计数值,dnup为高进行减计数,并当计数值到达0时,输出借位脉冲信号(borrow);为低进行加计数,并当计数值达到预设的K模值时,输出进位脉冲信号(carryo);脉冲加减电路则根据进位脉冲信号(carryo)和借位脉冲信号(borrow)在电路输出信号(idout)中进行脉冲的增加和扣除操作,来调整输出信号的频率;重复上面的调整过程,当环路进入锁定状态时,异或门鉴相器的输出se为一占空比50%勺方波,而K变模可逆计数器则周期性地产生进位脉冲输出carryo和借位脉冲输出borrow,
导致脉冲加减电路的输出idout周期性的加入和扣除半个脉冲。这样对于输出的频率没有影响,也正是基于这种原理,可以把等概率出现的噪声很容易的去掉。
环路滤波器的性能优劣会直接影响到跟踪环路的性能。而采用数字化的环路滤波器便
于调试参数和提高系统可靠性。环路滤波器的输出要直接控制频率合成器产生相应频率,使本地伪码能够准确跟踪发端信息。数字环中使用的数字环路滤波器与模拟环中使用的环路滤波器作用一样,都对噪声及高频分量起抑制作用,并且控制着环路相位校正的速度与精度。适当选择滤波器的参数,可以改善环路的性能。数字环路滤波器的设计原理是建立在模拟环路滤波器的基础上的。
1.3本次课题实现的方案
鉴相器采用异或门鉴相器(xormy),数字滤波器是一个模值可变的的加减计数器(Kcounter),数控振荡器是一个脉冲加减模块(IDCounter ),再用N分频器(div_N) 对脉冲加减模块(IDCounter)的输出idout分频,其中N分频器的参数N来自与N参数计数器(Counter_N),N 参数计数器(Counter_N)对输入信号给出相应的分频参数。
另外两个dac模块是为了把输入信号fin和输出信号fout转换成模拟波形来观察的验证模块。本次全数字锁相环的框图如下:
Kmode
图1.3全数字锁相环要实现的框图
1.4 FPGA简要介绍
Cyclone系列器件是ALTERA公司在2002年12月份推出的。从那以后,已向全球数千位不同的客户交付了数百万片,成为ALTERA历史上采用最快的产品。它采用
0.13um、全铜SRAM工艺,1.5V内核,容量从2910个逻辑单元到20060个逻辑单元,
并嵌入了4级最多为64个RAM块(128 X 36bit) 。CYCLON器件支持大量的片外数据传输的单端I/O 标准,包括LVTTL, LVCMOS,PCI,SSTL-2和SSTL-3。为满足设计者更快数据速率和信号传输能力的需要,Cyclone器件还设有高达311Mbps的低压差分信令(LVDS)兼容通道。由于采用了特殊的三级布线结构,其裸片尺寸大大降低。
Cyclone器件的性能可与业界最快FPGA芯片相抗衡,平衡了逻辑,存储器,锁相环(PLL) 和高级I/O接口,Cyclone器件具有以下特性:
(1)新的编程构架通过设计实现低成本;
(2)嵌入式存储资源支持各种存储器应用和数字信号处理(DSP)实施;
(3)专用外部存储接口电路集成了DDR FCRAM和SDRAM存储器件;
(4)支持串行、总线和网络接口及各种通信协议;
(5)使用PLLs管理片内和片外系统时序;
(6)采用新的串行配置器件的低成本配置方案;
(7)通过Quartus II 软件OpenCore评估特性,免费评估IP功能。
此外,Cyclone具有较高的性能价格比,Cyclone容量是以往低成本FPGA系列的四倍, 每千个LE 的批量价格低于1.50美元。低成本结构和Cyclone FPGA丰富的器件资源相结合,能够实现完整的。可编程芯片系统(SOPC方案,成为大批量应用的理想选择。鉴于Cyclone器件价格低廉,速度快,所以在全数字锁相环模块的设计中采用此器件进行设计开发。
2全数字锁相环具体模块的实现
2.1数字鉴相器的设计
常用的鉴相器有两种类型:异或门(XOR)鉴相器和边沿控制鉴相器(ECPD),本设计中采用异或门(XOR)鉴相器。异或门鉴相器比较输入信号fin相位和输出信号fout相位之间的相位差①se=?fin-①fout ,并输出误差信号se作为K变模可逆计数器的计数方向信号。环路锁定时,se为一占空比50%勺方波,此时的绝对相位差为90°。因此异或门鉴相器相位差极限为土90。。异或门鉴相器工作波形如图所示。
鉴相器模块:
fin
异或门鉴相器
fout
图2.1异或门鉴相器框图
模块端口设计说明如下:
module xormy(a,b,y);〃 异或门鉴相器。 in put a,b;
//
输入
output y; // 输出
其中fin 对应异或门的输入端a, fout 对应异或门输入端b ,se 对应异或门的输出 端y 。如下图给出图异或门鉴相器在环路锁定及极限相位差下的波形:
图2.4 b 滞后a 90
度时的异或门鉴相器输出的波形
图2.2环路锁定是异或门鉴相器输出的波形
40. 96 UE 163. 84 us 204.8
1
1 i ■ i i II
r I 1 ■ a
a II
1
1
1
.1 i i ■ i
i
■ 1
i
■
m
1 1 ■ 1
J
1
1 1
1
1
L
1
1
1
1
■ 1 1 I II ■ 1 1 I II ■ 1 1 I II ■
1 1
I II
1 1 1 1
a ci a ii a II
a
II
■ i ■ i
■
II
i ■ II
1 II 1 II 1 II 1 II
1 1 ■ ■
■ i ■ ii ■ i ■ ii ■ i ■ ii ■
i ■ ii
■ ■ ■ ■
■ 1 1 1 ■ 1 ■ 1
1 1 1 1 1 1 1 1
■ 1 ■ II ■ II ■ II
I ■ ■ 1
1! 1 1 I 1 1 II 1! 1 1 I 1 1 II I II 1
I
1 I
1
■ ii
i ■ i
■ ■
图2.3 b 超前a 90度时的异或门鉴相器输出的波形
2.2 数字环路滤波器的设计
基本原理如下,数字环路滤波器(DLF)作用是消除鉴相器输出的相位差信号se中的高频成分,保证环路的性能稳定,实际上可用一变模可逆计数器(设模数为K)来实现。K 变模可逆计数器根据相差信号SE来进行加减运算。当SE为高电平时,计数器进行加运算,如果相加的结果达到预设的模值,则输出一个进位脉冲信号CARR给脉冲加减电路;当SE为低电平时,计数器进行减运算,如果结果为零,则输出一个借位脉冲信号BORROW 给脉冲加减电路。当Fout同步于Fin 或只有随机干扰脉冲时,计数器加减的数目基本相等,计数结果在初始值处上下徘徊,不会产生进位和借位脉冲,滤除因随机噪声引起的相位抖动。计数器根据输出结果生成控制增减脉冲动作的控制指令。
数字滤波器的工作过程如下,将异或鉴相器产生的se信号加到环路滤波器的输入端,在环路滤波器模块内设置一个可逆计数器,计数器初始值设为kmode超前脉冲到来时,可逆计数器加1,滞后脉冲到来时,可逆计数器减1.经过一段时间的计数后,当可逆计数器为ktop时,表示本地信号超前,环路滤波器输出扣脉冲信号,可逆计数器复位为kmode; 当可逆计数器为0时,表示本地信号滞后,环路滤波器输出增脉冲信号,可逆计数器复位为kmode从而起到了环路滤波的作用。在DPLL的基本结构中,K变模可逆计数器始终起作用。当环路锁定后,如果模数kmode较小,则K变模可逆计数器会周期性输出超前脉冲和滞后脉冲,在脉冲加减电路中产生周期性的脉冲加入和扣除,其结果是在脉冲加减电路的输出信号中产生了周期性的误差,称为“波纹”;如果模数kmode足够大,这种“波纹”误差通过除N计数器后,可以减少到N个周期出现一次,即K模可逆计数器的超前脉冲和滞后脉冲的周期是N个参考时钟周期。kmode的大小决定了DPL的跟踪步,kmode 越大,跟踪步长越小,锁定时的相位误差越小,但捕获时间越长kmode i小,跟踪步长越大,锁定时的相位误差越大,但捕获时间越短。
K变模可逆计数器模值K寸DPLL勺性能指标有着很大的影响。计数器模值K的取值可根据输入信号的相位抖动而定,加大模值K,有利于提高DPLL的抗噪能力,但是会导致较大的捕捉时间和较窄的捕捉带宽。减小模值K可以缩短捕捉时间,扩展捕捉带宽,但是降低了DPLL的抗噪能力。本设计中选择Kmode=4在初始时刻,计数器被置初值为K/2=2,这样可以DPLL捕捉速度很快。
K变模可逆计数器模块端口设计说明如下:
module KCo un ter(Kclock,reset,d nup,e nable,Kmode,carryo,borrow);
in put Kclock; // 系统时钟信号
in put reset; // 全局复位信号,高电平复位
in put dn up; // 鉴相器输出的加减控制信号
in put enable; // 可逆计数器计数允许信号,高电平有效
in put [2:0]Kmode; // 计数器模值设置信号
output carryo; // 进位脉冲输出信号 output borrow; // 借位脉冲输出信号 wire carryo,borrow; reg [8:0]Cou nt; // 可逆计数器 reg [8:0]Ktop; //
预设模值寄存器
K 变模可逆计数器模块仿真如下图:
图2.5 K 变模可逆计数器的仿真
2.3
数控振荡器的设计
在全数字锁相环中,数控振荡器有别于以往的压空振荡器,数控振荡器由脉冲加减 电路实
现,根据数字滤波器的给出的进位脉冲信号 (carryo )和借位脉冲信号(borrow ) 进行输出脉冲的调整。当没有进位脉冲信号和借位脉冲信号是,脉冲加减信号就是对时 钟进行二分频输出,当有进位脉冲信号时,脉冲加减模块会增加一个脉冲,相当于减少 了脉冲周期,而增加了输出频率;同理,当有借位脉冲信号时,脉冲加减模块会减少了 一个脉冲,相当于增加了脉冲周期,而减少输出了频率;这样通过脉冲增减模块的对输 入信号频率和相位的跟踪和调整,最终使输出信号锁定在输入信号的频率和信号上,工 作波形如图所示。
9.025 r? ? ? | Pointer
ps
1.2B us
2. 56 us
3.8< HE
5.12 ias
6.4 UE
T. 63 UE
i
i
■
■
I I I I ■
I I l| H
I
2.67 us Interval'
Start:
iil>iiiiliiildihilii
*
am
图2.6 脉冲加减电路工作原理波形
脉冲增减模块模块端口设计说明如下:
module IDCou nter (IDclock,reset,i nc,dec,IDout);〃脉冲增减模块
in put IDclock,reset,i nc,dec;
output IDout;
reg IDout;
脉冲增减模块模块仿真如下图:
图2.7脉冲增减模块模块仿真图
2.4 N分频参数控制的设计
为了使锁定频率范围更宽,这里采用了动态N分频。原理就是对输入信号周期用高频时钟进行测量,得到高频时钟的长度之后再量化然后给出N值,N的值与高频时钟长
度比例关系,高频时钟长度越长,N值越大。
N分频参数控制模块端口设计说明如下:
module counter_N(clk, fin, reset, count_N);〃利用clk 对fin 脉冲的测量并给出N fi in put clk, fin, reset;
output [14:0] count_N; // 输出counter_N是输入信号fin周期长度的一半N分频参数控制模块仿真如下图:
2.5 N分频器的设计
N分频器则是一个简单的除N计数器。N分频器对脉冲加减电路的输出脉冲再进行N
分频,得到整个环路的输出信号fout。同时,因为fout=clk/2N=fc ,因此通过改变分频值N可以得到不同的环路中心频率fc。除N计数器对脉冲加减电路的输出IDOUT再进行N分频,得到整个环路的输出信号Fout。同时,因为fc=IDCLOCK/2N因此通过改变分频值N可以得到不同的环路中心频率fc。
N分频器模块端口设计什么如下:
module div_N (clki n,n ,reset,clkout); //N 分频模块
in put clk in ,reset;
in put [14:0] n;
output clkout;
N分频器模块仿真如下:
图2.9输入分频倍数为n=10时的输出波形图
图2.10输入分频倍数为n=20时的输出波形图
图2.11输入分频倍数为n=50时的输出波形图
2.6数模DAC转换模块的设计
这里使用数模转换模块是为了在仿真过程更好的直观的观察锁相的情况。把输入信
号和输出信号都经过一个数模转换模块,然后用经过软件的设置可以看到正弦波的图形,或者可以通过示波器来看图形。这样可以表征两个信号的频率和相位的差。
数模DAC转换模块端口设计说明如下:
module dac (clk,dout,dd); // 数模转换模块
in put clk; // 输入转换的信号
output[7:0] dout; // 位宽为八位的输出
output[7:0] dd;
reg [7:0] dout;
reg [7:0] dd;
数模DAC专换模块仿真如下:
可以看到clk经过dac模块可以用正弦波来显示,如下图 2.12
氏回翌i風Q礪肌务
2.7全数字锁相环的顶层模块
全数字锁相环的顶层模块主要是把前面设计的几个模块连接起来。全数字锁相环顶层模块端口设计如下:
module pll_top(fi n,fout,se,clk,reset,e nable,Kmode,fi n_dac,fout_dac);
in put fin ,clk; // 输入clk 时钟周期100 ns(10Mhz)
in put reset,e nable; //reset 高电平复位,en able 高电平有效
in put [2:0]Kmode; // 滤波计数器的计数模值设定
output fout; //fout 是锁频锁相输出
output [7:0]fi n_dac,fout_dac;
//fin _dac,fout_dac 分别是两个输入输出信号经过数模dac的输出
output se; // 用于观察锁相与否
顶层文件程序生成的连接如图2.13 :
吐丿sim:/dac/dd XKXMXH 用
EF J sim:/dac/d 11111T
|0r J sim:/dac/q DOOOOO
图2.12输入分频倍数为n=50时的输出波形图
图2.13 全数字锁相环的顶层连接图
3全数字锁相环仿真
3.1全数字锁相环的功能仿真
利用业界强大的ModelSim6.0软件进行功能仿真:
图3.1
全数字锁相环功能仿真结果
图3.2 全数字锁相环功能仿真结果
上面图3.1和图3.2分别是从不同的变化的fin 输入频率的仿真,根据波形可以看 到fout 频率能够跟随fin 输入的变化。
1 ”
010
_______________
____________
i —
OCiOEnCnOJ
tooawi
r
iLiuifimui J imu? 卧亠
sin:/pl_tap/lin_dac
u
mi
innoco
Edl:/pl_tap/dk Edl :
/pl_kip/ierti Edl :/pl_top/^blc Edt/pl^top^Kjiwde i EdL/pl_tap/fin
SI1 SIO 010
卧# sm/pLtap/faUt^dBc
SlD SlO SlO
lumumnn injWLni
i
#
iimL/pl_tap/idout
■* wnt-^Ltap^W
■* ?m:/Wi_tap/bo E)-#
srrL/pLtap/N
■丨|||||||||皿|?|川"||||
1
uiunninminliimw I IJI1J
f
J
V
510 Stf)
訓
阳 l_tcp 舟
iiniiniiiniii iiiiiniiiiii
叫
Edt^Uop/dk 卑
「EMt 巾Ijt 申沖
Edt/)plJiDp/Bnahl e
Edl./plJ^ZKmade ,;Edl^ljop/ih 鼻 Enn
巾 J
沁巾
l_tDp/ldDUl J ⑷1_闻如 # sm 巾1」中册0 D-# am:巾 l.tcp 崗
3.2全数字锁相环的时序仿真
在时序仿真前,先利用 Quartusll7.2 软件编译如下图是编译的报告,从给出的编译结 果可以知道,利用Altera 公司的Cyclone 系列器件的EP1C6Q
Flow Status Successful - S 妣 May 24 15:57:C2 200B
Quartus II Versi 7.2 Buili 151 09/26/200T SJ Full Version
^evisicik
P n _t0P Top~laVfrl Enti ty Name pll_top family Cyclon* Davice EF1C6Q24OC8 Timing Models Final Het
requirements
Ho
Total logic 256 / 5^90 ( 4 % ) Total pins
25 / IBS ( 14 % ) TotkL virtual pins
Total memory bits 0 / 92,160 (0ft) BSF block i t elemanti N/A until Firti tion filer Total FLL E 0/2 (0 % )
Tot^l DLLs
N/A until Fartiticn Merge
图3.3 全数字锁相环编译结果截图
利用QuartusII7.2软件进行时序仿真:
从时序仿真图可以看到,se 在十个周期内输出方波,说明 周期内可以跟上fin 的频率,就是相位被锁定,这时的相位差为
90度。
4下载硬件测试
利用EDA600(实验箱来验证,并在实验箱上进行逻辑的分析。实验板上的
FPGA 型
号为EP1C6Q240C8使用电路的时钟频率为10MHz 在所设计的锁相环逻辑电路中,为 了便于鉴视锁相环的工作状况,本次设计引出了一个锁相监视的判断信号 se 。采用逻辑
〔0 茉 255 X 254 X £52 X
¥ 245 X 239
)' 233 、緒
{
X 鬲严丰4 X
252 x
昭9
X 215
239 X 233 X 225
fout 的频率在几个fin Mastei TimeBa 匚
16.8 us
Interval
1679 us
End:
n n
1205 ns jJjJPMriter:
]ps 10,24 us 20.48 us 30. T2 us 40. 96 us E
i
i
i
IS.65 u
图3.4
全数字锁相环时序仿真结果
分析仪观察各个信号的情况,设置好各个端脚对应的引脚。并且下载到芯片,连接好逻 辑分析仪,就可以进行验证。
W Add Device..
部
LIP
I
图4.2 全数字锁相环EDA6OO0莫式设置图
上图为设置EDA6000的模式,电路工作时钟elk 就是clkO (1030)设置为10Mhz 输入信号fin 就是elkl ( 1031),在这里可以选择不同的信号频率。定义 K0(IO40),
K1(IO41) ,K2(IO42) ,K3(IO43),K4(IO44)并分别与 KmodQ Kmod1 Kmod2 enable , reset 对应;把芯
片上定义的clk ,fin ,fout ,se 管脚分别连接到逻辑分析仪的 LA7,
Progiets:
邑 piLtop.v
]凹 pn_iop £dr
事灰5$曰申 j
[LFT1 ]
Mgtfc |JTAG
I Eruable real-time ISP to allow ba elk ground progiamminQ llor II desnccsl
碍■ Auto Defect
X |
彦刚dF 舸… |
Chonge Ffc
图4.1 图全数字锁相环下载图示
LA6, LA5, LA4上,从而可以直接观察fin , fout 和se 信号之间的关系变化 下面是逻辑仪分析
对几种不同的fin 输入频率分析的结果。
当fin 输入频率取为1khz 时,可以看到波形图如下:
EDA60H0/EDA2000 : Di\pll4\pll. D0D
图4.3 全数子锁相环逻辑分析仪结果,
fin=1khz
当fin 输入频率取为10khz 时,可以看到波形图如下:
EDA6OOO/EDA2OOO ; D;\pll4\pl1.I0D
结构框图 選辑分祈冏口 存储器外部设备
m 管脚定义
图4.4 全数字锁相环逻辑分析仪结果,
fin=10khz
錯构框图逵辑対靳窗口存諾器外部设备|現莒脚定文|
[W1
L4.Sc 1 LAA 0 LA.4: 1
LA1.0 LA.ttl
TTTTTTTTTTTTTTTrTTTJ-LTTTTJ-LTl
GOG1
笑G3G4G5GGM
:OCOOOMO
(00) :OOQQDOOQ CQD)
;10001000 C3S)
:0J 000000 C40)
:OOOOQLOO (04) :01101010 ⑹0
;0D0000W COQ) :00000000 CDO)
76E4321CI
01100001 (61)
CLKO (TO30)| 10MHz -
CLK1 CI031) 一IKH E w |
—
IXKXXXXKX IM ▼ *
"I
MO:
f 0
US
1/ |M1;
?■
Ous
13回冈
□科建模式
GO; (WOOOWO (iOO) G1: OCOOCXXM (JOO) G2 : 00000000〔00) G3; 11000000 CCQ) G4! 00000100 (04) GE: (H1QHD10 (2K)
G8; 00000000 COO)
67. OOOOODOO (00)
U L : 76543210
00000001 (01)
CLKO CD(BO)| 10MH1 - | CLK1 0?31)| JOKHt - | CLKO CLK1 CD(BO)|
JOMHt - IXO31)| JOKHt -
_I I__I __I I__I
釵Q 亡f 卜立:忙淞讥::" 0ns
M1.
Ons
M0:
0ns
当fin输入频率取为10khz时,可以看到波形图如下:
图4.5 全数字锁相环逻辑分析仪结果,fin=100khz
上面的仿真图分别是在不同的输入信号,就是被锁相信号fin的频率由1kHz到
10kHz到100kHz,逻辑分析仪分析的结果。我们看上面的结果可以知道输出信号se是一系列的方波,说明了达到了相位锁定。因为锁相过程就是十几个fin周期,比较短,
逻辑分析仪采样不到刚开始的数据,所以锁相的过程无法显示出来。从上面的结果可以看出设计的结果达到课题的设计指标。
5全数字锁相环FPGA实现的总结
在本设计中的一阶全数字锁相环使用Mentor公司的ModelSim6.0软件进行设计的功能仿真以及Altera公司的Quartusll7.2 软件时序仿真并且进行设计综合,并采用Altera的cyclone系列的EP1C6Q240C8 FPGA件实现。实验测试结果表明:本设计中DPLL时钟可达到10MHz性能较高;而使用了256逻辑单元,占用资源很少。下面给出详细描述全数字锁相环的工作过程。
(1)当环路失锁时,异或门鉴相器比较输入信号(fin)和输出信号(fout)之间的相位差异,并产生K变模可逆计数器的计数方向控制信号(dnup);