FPGA 学习小组
登录
直播中
李金云
7年用户
208经验值
私信
关注
如何实现基于VHDL语言的全数字锁相环?
开启该帖子的消息推送
数字锁相环
FPGA
随着集成
电路
技术的不断进步,数字化应用逐渐普及,在数字
通信
、电力系统自动化等方面越来越多地运用了数字锁相环。它的好处在于免去了模拟器件的繁琐,而且成本低、易实现、省资源。本文综合以上考虑,在一片
FPGA
中以Quartus II为平台用VHDL实现了一个全数字锁相环功能模块,构成了片内锁相环。
回帖
(2)
周睫蒙
2019-10-10 15:03:35
数字锁相环是一种相位反馈控制系统。在数字锁相环中,由于误差控制信号是离散的数字信号而不是模拟信号,与之相对应,受控的输出相位的改变是离散的而不是连续的;此外,环路组成的部件也全由数字电路实现,故名“数字锁相环”[1]。常用的数字锁相环原理如图1所示。
1 数字锁相环的结构及工作原理
如图1所示,数字锁相环主要由鉴相器、K变模可逆计数器、脉冲加减器、N分频器构成。
鉴相器其实就是一个异或门,它将输入信号Din与位同步脉冲输出信号Dout相异或,比较它们之间的相位差,并输出相位误差信号作为K变模可逆计数器的计数方向的控制信号CS。当环路锁定时,这个控制信号为占空比是50%的方波。
K变模可逆计数器根据相差信号CS的变化,向不同的方向计数。当CS为逻辑“1”时,计数器向下计数,如果计到0,则输出一个借位脉冲给脉冲加减器;当CS为逻辑“0”时,计数器向上计数,如果计到模值,则输出一个进位脉冲给脉冲加减器。
脉冲加减器是根据K变模可逆计数器输出的进位、借位脉冲来不断地对本地时钟进行调整。当有进位脉冲时,脉冲加减器就在本地时钟上加入一个周期的时钟信号;当有借位脉冲时,脉冲加减器就在本地时钟上扣除一个周期的时钟信号。如此反复不断地对本地时钟进行调整,最终达到准确确定出输入信号时钟的目的,从而实现位同步[2]。
N分频器是将脉冲加减器输出的经过调整以后的时钟信号进行分频,以减小同步误差。N值越大得到的同步误差越小。
2 数字锁相环各部分的VHDL实现
K变模可逆计数器根据预设模值Kmode来设置对应的模值寄存器的值,也即当预设模值范围在0~15变化时,与之相对应的Ktop的变化范围为20~215。模值的大小直接决定了数字锁相环锁定时间的长短,模值越大锁定时间越长,反之越小。但锁定时间越长,锁定时的相位误差越小,反之越大。这部分的VHDL设计程序[3]如下:
有了K变模可逆计数器产生的进位、借位脉冲,脉冲加减器就可以按照这两种脉冲对本地高频时钟进行不断地调整,如图2所示。
N分频器的设计相对简单,其功能是将脉冲加减器输出的经过了调整的本地时钟进行N分频,以减小同步脉冲输出误差。本例暂时用32分频代替,其VHDL设计程序如下:
按照图1数字锁相环原理框图的设计理念,设计出各个主要的功能块,并将它们各自进行仿真。在确认无误后再连接起来进行综合仿真,以验证设计的正确性。在综合仿真的过程中一个最关键的问题就是分析各个功能块的时序关系、频率关系。
数字锁相环是一种相位反馈控制系统。在数字锁相环中,由于误差控制信号是离散的数字信号而不是模拟信号,与之相对应,受控的输出相位的改变是离散的而不是连续的;此外,环路组成的部件也全由数字电路实现,故名“数字锁相环”[1]。常用的数字锁相环原理如图1所示。
1 数字锁相环的结构及工作原理
如图1所示,数字锁相环主要由鉴相器、K变模可逆计数器、脉冲加减器、N分频器构成。
鉴相器其实就是一个异或门,它将输入信号Din与位同步脉冲输出信号Dout相异或,比较它们之间的相位差,并输出相位误差信号作为K变模可逆计数器的计数方向的控制信号CS。当环路锁定时,这个控制信号为占空比是50%的方波。
K变模可逆计数器根据相差信号CS的变化,向不同的方向计数。当CS为逻辑“1”时,计数器向下计数,如果计到0,则输出一个借位脉冲给脉冲加减器;当CS为逻辑“0”时,计数器向上计数,如果计到模值,则输出一个进位脉冲给脉冲加减器。
脉冲加减器是根据K变模可逆计数器输出的进位、借位脉冲来不断地对本地时钟进行调整。当有进位脉冲时,脉冲加减器就在本地时钟上加入一个周期的时钟信号;当有借位脉冲时,脉冲加减器就在本地时钟上扣除一个周期的时钟信号。如此反复不断地对本地时钟进行调整,最终达到准确确定出输入信号时钟的目的,从而实现位同步[2]。
N分频器是将脉冲加减器输出的经过调整以后的时钟信号进行分频,以减小同步误差。N值越大得到的同步误差越小。
2 数字锁相环各部分的VHDL实现
K变模可逆计数器根据预设模值Kmode来设置对应的模值寄存器的值,也即当预设模值范围在0~15变化时,与之相对应的Ktop的变化范围为20~215。模值的大小直接决定了数字锁相环锁定时间的长短,模值越大锁定时间越长,反之越小。但锁定时间越长,锁定时的相位误差越小,反之越大。这部分的VHDL设计程序[3]如下:
有了K变模可逆计数器产生的进位、借位脉冲,脉冲加减器就可以按照这两种脉冲对本地高频时钟进行不断地调整,如图2所示。
N分频器的设计相对简单,其功能是将脉冲加减器输出的经过了调整的本地时钟进行N分频,以减小同步脉冲输出误差。本例暂时用32分频代替,其VHDL设计程序如下:
按照图1数字锁相环原理框图的设计理念,设计出各个主要的功能块,并将它们各自进行仿真。在确认无误后再连接起来进行综合仿真,以验证设计的正确性。在综合仿真的过程中一个最关键的问题就是分析各个功能块的时序关系、频率关系。
举报
李明
2019-10-10 15:03:38
3 频率关系、时序分析
假设输入信号的频率为fi=1 200 Hz,则位同步输出信号频率fo=1 200 Hz,脉冲加减器输出信号频率fm2=N×fo,则其时钟频率fm1=2×fm2;K变模可逆计数器工作时钟可设为M fo。这里的M、N值一般均为2的整数次幂,他们之间的具体关系需根据fi确定。综合仿真的时序图如图3所示。
由图3可以看出,CS控制信号逐渐变成了占空比为50%的方波,这也从侧面反映出了锁定过程。当锁相环锁定后,信号CODEIN出现连“0”和连“1”时,也能准确实现位同步。锁定时间约为15.8 ms。通过以上仿真,验证了设计的正确性。对于不同的设计,只需要计算好频率关系、修改一下N分频器的N值,就可以实现不同输入信号的同步。
本文介绍的这种以VHDL语言实现的全数字锁相环,是在ALTERA公司的Cyclone系列FPGA—EP1C12Q240C8上实现的。它仅仅需要FPGA的95个逻辑单元,对于拥有12 060个逻辑单元的EP1C12来说,消耗的资源微乎其微,但却是信号的差分相干解调过程中不可或缺的重要部分。通过以上方法介绍、仿真的实现,再一次体现了用硬件描述语言在可编程器件中实现数字电路的优越性。
3 频率关系、时序分析
假设输入信号的频率为fi=1 200 Hz,则位同步输出信号频率fo=1 200 Hz,脉冲加减器输出信号频率fm2=N×fo,则其时钟频率fm1=2×fm2;K变模可逆计数器工作时钟可设为M fo。这里的M、N值一般均为2的整数次幂,他们之间的具体关系需根据fi确定。综合仿真的时序图如图3所示。
由图3可以看出,CS控制信号逐渐变成了占空比为50%的方波,这也从侧面反映出了锁定过程。当锁相环锁定后,信号CODEIN出现连“0”和连“1”时,也能准确实现位同步。锁定时间约为15.8 ms。通过以上仿真,验证了设计的正确性。对于不同的设计,只需要计算好频率关系、修改一下N分频器的N值,就可以实现不同输入信号的同步。
本文介绍的这种以VHDL语言实现的全数字锁相环,是在ALTERA公司的Cyclone系列FPGA—EP1C12Q240C8上实现的。它仅仅需要FPGA的95个逻辑单元,对于拥有12 060个逻辑单元的EP1C12来说,消耗的资源微乎其微,但却是信号的差分相干解调过程中不可或缺的重要部分。通过以上方法介绍、仿真的实现,再一次体现了用硬件描述语言在可编程器件中实现数字电路的优越性。
举报
更多回帖
rotate(-90deg);
回复
相关问答
数字锁相环
FPGA
如何采用
VHDL
实现
全数字
锁相环
电路的设计?
2021-05-07
1980
求一款锁定相位编程可调
全数字
锁相环
的设计方案
2021-04-20
1087
FPGA
实现
负反馈控制纯
数字
锁相环
2019-04-30
2136
基于FPGA的
数字
三相
锁相环
的基本原理分析
2019-06-27
3856
电荷泵
锁相环
电路锁定检测的基本原理,影响
锁相环
数字
锁定电路的关键因子是什么?
2021-04-20
2378
请问怎样去设计一种软件
锁相环
模型?
2021-04-21
1615
请问ADF4351能做
数字
锁相环
实现
位同步吗
2018-09-14
2208
c2000
实现
的
锁相环
2018-05-14
3229
分两部分介绍
锁相环
2019-06-21
2050
求用用fpga做的
锁相环
程序
2016-08-28
5131
发帖
登录/注册
20万+
工程师都在用,
免费
PCB检查工具
无需安装、支持浏览器和手机在线查看、实时共享
查看
点击登录
登录更多精彩功能!
首页
论坛版块
小组
免费开发板试用
ebook
直播
搜索
登录
×
20
完善资料,
赚取积分