我们从2011年坚守至今,只想做纯粹的技术论坛,请不要发布和技术无关的话题。  本站有两万多份高大上的PCB和原理图下载,每日更新中,欢迎常回来看看

 找回密码
 立即注册
搜索
查看: 1581|回复: 0

[技术文章] FPGA篇之码元同步DPLL设计

[复制链接]
  • 打卡等级:以坛为家II
  • 打卡总天数:193
  • 打卡月天数:1
  • 打卡总奖励:613
  • 最近打卡:2026-11-11 12:59:27

9571

主题

5778

回帖

7万

积分

三级逆天

积分
78264

终身成就奖特殊贡献奖原创先锋奖金点子奖优秀斑竹奖宣传大使奖

发表于 2018-1-2 09:26 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区

您需要 登录 才可以下载或查看,没有账号?立即注册

×
当时的DPLL组成原理如图1所示。时钟产生使用的是N分频器,N分频器对主时钟进行整数分频,有一个很明显的缺点就是频率步进比较大,对一些不能整数倍分频的时钟,就会有频率误差,输出的时钟抖动也会变大。

图1
后来回望这道题的时候,让我想到了DDS信号发生器。DDS信号发生器频率步进可以很细,频率控制字控制输出信号的频率;通过改变相位控制字,就可以调节输出信号的相位。DDS信号发生器可以产生任意的波形信号,当然也可以产生时钟信号。而利用DDS原理的时钟发生器,其实就是就是DDS信号发生器去掉了查找表,然后取地址码的最高位作为时钟输出信号,如图2所示。

图2
那么,利用DDS时钟发生器作为DPLL的时钟产生,替代原有的N分频器,效果会怎样呢?带着这样的好奇心,在工作清闲的时候,拿出以前DPLL的代码进行修改,仿真。最终在开发板上测试可行,同样可以达到锁相的目的,于是便有了这篇文章。

图3
图3就是本文要介绍的DPLL结构示意图,与图1相同的是,使用同样的鉴相器和鉴相后的数字滤波器。不同的是前端多了一个相位误差测量模块,测量出输入时钟与输出时钟之间的相位差,得到超前误差和滞后误差,其中滞后误差为负极性。使用数字滤波器出来的超前或滞后脉冲信号作为选择器的控制信号,如果超前脉冲有效则选择超前误差;如果滞后脉冲有效则选择滞后误差。然后把选择器出来的误差与一比例放大因子相乘进行误差放大,得到放大的误差再与相位控制字寄存器进行累加,最终相位控制字送入DDS时钟发生器。锁相的原理其实就是一个比例积分控制算法,使输出时钟与输入时钟相位保持一致。
需要注意的是,误差比例放大因子是要预先设定的,误差比例放大因子影响到锁相时间和输出时钟稳定性,设置太小则锁相需要的时间太长,太大则导致输出的时钟不稳定。而送给DDS时钟发生器的频率控制字可以预先设定,使得DDS时钟发生器输出的时钟频率与输入时钟一致,或者通过一个频率计数器来测量输入时钟的频率计数,作为频率控制字。

图4
仿真和测试的模型如图4的RTL图,选用的器件是altera的Cyclone II 系列EP2C8Q208C8N。伪随机信号发生器与DPLL分别使用不同的外部时钟源,伪随机信号曼彻斯特编码输出dman与DPLL的锁相输入inclk相连。DPLL输出时钟为被锁定时钟的2倍频(由于DPLL鉴相器是微分整流型,最小为2倍频)。
在Modelsim仿真中,dout为伪随机信号二进制编码,dman为曼彻斯特编码,dsync为dman的同步信号,DPLL的输入被锁信号inclk与dman相连,outclk为DPLL的输出时钟。开始时刻, outclk与 dsync是不同步的,如图5所示。等过一段时间之后,outclk与 dsync的相位慢慢靠近(图6),等仿真到74us之后,outclk与 dsync的相位已经重叠,也就是锁相成功(图7)。

图5

图6

图7
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Copyright ©2011-2024 NTpcb.com All Right Reserved.  Powered by Discuz! (NTpcb)

本站信息均由会员发表,不代表NTpcb立场,如侵犯了您的权利请举报投诉

本站所有资料仅限参考学习交流,PCB原理图源码等所有资料不保证准确没问题,请不要用作生产。否则后果自负。

闽公网安备35062302000276号 | 闽ICP备2024076463号-1 | 论坛技术支持QQ群171867948 | 论坛问题,充值问题请联系QQ1308068381

平平安安
TOP
快速回复 返回顶部 返回列表