我们从2011年坚守至今,只想做存粹的技术论坛。  由于网站在外面,点击附件后要很长世间才弹出下载,请耐心等待,勿重复点击不要用Edge和IE浏览器下载,否则提示不安全下载不了

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

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

[复制链接]
  • TA的每日心情

    6 天前
  • 签到天数: 68 天

    [LV.6]常住居民II

    1万

    主题

    8193

    回帖

    5万

    积分

    三级逆天

    积分
    53625

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

    发表于 2018-1-2 09:26:56 | 显示全部楼层 |阅读模式
    当时的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立场,如侵犯了您的权利请发帖投诉

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