基于fpga的高动态三阶锁相环设计 下载本文

图2.2 数字锁相环基本结构

2.2.2三阶锁相环的工作原理

当环路失锁时,异或门鉴相器比较输入信号(fin)和输出信号(fout)之间的相位差异,并产生K变模可逆计数器的计数方向控制信号(dnup); K变模可逆计数器根据计数方向控制信号(dnup)调整计数值,dnup为高进行减计数,并当计数值到达0时,输出借位脉冲信号(borrow);为低进行加计数,并当计数值达到预设的K模值时,输出进位脉冲信号(carryo);脉冲加减电路则根据进位脉冲信号(carryo)和借位脉冲信号(borrow)在电路输出信号(idout)中进行脉冲的增加和扣除操作,来调整输出信号的频率;重复上面的调整过程,当环路进入锁定状态时,异或门鉴相器的输出se为一占空比50%的方波,而K变模可逆计数器则周期性地产生进位脉冲输出carryo和借位脉冲输出borrow,导致脉冲加减电路的输出idout周期性的加入和扣除半个脉冲。这样对于输出的频率没有影响,也正是基于这种原理,可以把等概率出现的噪声很容易的去掉。

环路滤波器的性能优劣会直接影响到跟踪环路的性能。而采用数字化的环路滤波器便于调试参数和提高系统可靠性。环路滤波器的输出要直接控制频率合成器产生相应频率,使本地伪码能够准确跟踪发端信息。数字环中使用的数字环路滤波器与模拟环中使用的环路滤波器作用一样,都对噪声及高频分量起抑制作用,并且控制着环路相位校正的速度与精度。适当选择滤波器的参数,可以改善环路的性能。数字环路滤波器的设计原理是建立在模拟环路滤波器的基础上的。 2.3本次课题实现的方案

鉴相器采用异或门鉴相器(xormy),数字滤波器是一个模值可变的的加减计数器(Kcounter),数控振荡器是一个脉冲加减模块(IDCounter),再用N分频器(div_N)对脉冲加减模块(IDCounter)的输出idout分频,其中N分频器的参数N来自与N参数计数器(Counter_N),N参数计数器(Counter_N)对输入信号给出相应的分频参数。

- 8 - 另外两个dac模块是为了把输入信号fin和输出信号fout转换成模拟波形来观察的验证模块。本次三阶锁相环的框图如下:

图2.3 三阶锁相环要实现的框图

2.4FPGA简要介绍

Cyclone系列器件是 ALTERA 公司在 2002 年 12 月份推出的。从那以后,已向全球数千位不同的客户交付了数百万片,成为 ALTERA 历史上采用最快的产品。它采用 0.13um、全铜 SRAM 工艺,1.5V 内核,容量从 2910 个逻辑单元到 20060 个逻辑单元,并嵌入了 4 级最多为 64 个 RAM 块(128×36bit)。CYCLONE器件支持大量的片外数据传输的单端 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)采用新的串行配置器件的低成本配置方案;

- 9 - (7)通过 Quartus II 软件 OpenCore 评估特性,免费评估IP功能。

此外,Cyclone具有较高的性能价格比,Cyclone容量是以往低成本 FPGA系列的四倍,每千个LE 的批量价格低于 1.50 美元。低成本结构和Cyclone FPGA 丰富的器件资源相结合,能够实现完整的。可编程芯片系统(SOPC)方案,成为大批量应用的理想选择。鉴于Cyclone器件价格低廉,速度快,所以在三阶锁相环模块的设计中采用此器件进行设计开发。

- 10 - 第三章 三阶锁相环具体模块的实现

3.1数字鉴相器的设计

常用的鉴相器有两种类型:异或门(XOR)鉴相器和边沿控制鉴相器(ECPD),本设计中采用异或门(XOR)鉴相器。异或门鉴相器比较输入信号fin相位和输出信号fout相位之间的相位差Фse=Фfin-Фfout,并输出误差信号se作为K变模可逆计数器的计数方向信号。环路锁定时,se为一占空比50%的方波,此时的绝对相位差为90°。因此异或门鉴相器相位差极限为±90°。异或门鉴相器工作波形如图所示。 鉴相器模块: fin se 异或门鉴相器 fout 图3.1 异或门鉴相器框图

模块端口设计说明如下:

module xormy(a,b,y);//异或门鉴相器。 input a,b; //输入 output y; //输出

其中 fin对应异或门的输入端a,fout对应异或门输入端b,se对应异或门的输出端y。如下图给出图异或门鉴相器在环路锁定及极限相位差下的波形:

图3.2 环路

锁定是异或门鉴相器输出的波形

- 11 -