论坛风格切换切换到宽版
发帖 回复
返回列表  提醒:不能用迅雷等P2P下载,否则下载失败标(二级)的板块,需二级才能下载,没二级不要购买,下载不了
  • 1229阅读
  • 0回复

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

上一主题 下一主题
在线shuszhao
 

性别:
帅哥
发帖
18038
金币
36453
提示:会员销售的附件,下载积分 = 版块积分 + 销售积分       只看楼主 倒序阅读 使用道具 0楼 发表于: 2018-01-02
当时的DPLL组成原理如图1所示。时钟产生使用的是N分频器,N分频器对主时钟进行整数分频,有一个很明显的缺点就是频率步进比较大,对一些不能整数倍分频的时钟,就会有频率误差,输出的时钟抖动也会变大。 X04LAYY_u  
|p*cI @  
图1 pQ7elv]  
后来回望这道题的时候,让我想到了DDS信号发生器。DDS信号发生器频率步进可以很细,频率控制字控制输出信号的频率;通过改变相位控制字,就可以调节输出信号的相位。DDS信号发生器可以产生任意的波形信号,当然也可以产生时钟信号。而利用DDS原理的时钟发生器,其实就是就是DDS信号发生器去掉了查找表,然后取地址码的最高位作为时钟输出信号,如图2所示。 K`X'Hg#_P2  
v?3xWXX,  
图2 ON!Fk:-  
那么,利用DDS时钟发生器作为DPLL的时钟产生,替代原有的N分频器,效果会怎样呢?带着这样的好奇心,在工作清闲的时候,拿出以前DPLL的代码进行修改,仿真。最终在开发板上测试可行,同样可以达到锁相的目的,于是便有了这篇文章。 ,s}&|+ '"  
X5+^b({  
图3 pg,JYn  
图3就是本文要介绍的DPLL结构示意图,与图1相同的是,使用同样的鉴相器和鉴相后的数字滤波器。不同的是前端多了一个相位误差测量模块,测量出输入时钟与输出时钟之间的相位差,得到超前误差和滞后误差,其中滞后误差为负极性。使用数字滤波器出来的超前或滞后脉冲信号作为选择器的控制信号,如果超前脉冲有效则选择超前误差;如果滞后脉冲有效则选择滞后误差。然后把选择器出来的误差与一比例放大因子相乘进行误差放大,得到放大的误差再与相位控制字寄存器进行累加,最终相位控制字送入DDS时钟发生器。锁相的原理其实就是一个比例积分控制算法,使输出时钟与输入时钟相位保持一致。 PK&&Vu2M  
需要注意的是,误差比例放大因子是要预先设定的,误差比例放大因子影响到锁相时间和输出时钟稳定性,设置太小则锁相需要的时间太长,太大则导致输出的时钟不稳定。而送给DDS时钟发生器的频率控制字可以预先设定,使得DDS时钟发生器输出的时钟频率与输入时钟一致,或者通过一个频率计数器来测量输入时钟的频率计数,作为频率控制字。 0lq?l:/  
sL TQm*jL  
图4 e9:pS WA-n  
仿真和测试的模型如图4的RTL图,选用的器件是altera的Cyclone II 系列EP2C8Q208C8N。伪随机信号发生器与DPLL分别使用不同的外部时钟源,伪随机信号曼彻斯特编码输出dman与DPLL的锁相输入inclk相连。DPLL输出时钟为被锁定时钟的2倍频(由于DPLL鉴相器是微分整流型,最小为2倍频)。 +Gy9K  
在Modelsim仿真中,dout为伪随机信号二进制编码,dman为曼彻斯特编码,dsync为dman的同步信号,DPLL的输入被锁信号inclk与dman相连,outclk为DPLL的输出时钟。开始时刻, outclk与 dsync是不同步的,如图5所示。等过一段时间之后,outclk与 dsync的相位慢慢靠近(图6),等仿真到74us之后,outclk与 dsync的相位已经重叠,也就是锁相成功(图7)。 bY,dWNS:  
k:j?8o3  
图5 DTi^* Wj  
5HbJE'  
图6 #] Do_Z  
_M;{}!Gc&A  
图7 @*6_Rp"@  


评价一下你浏览此帖子的感受

精彩

感动

搞笑

开心

愤怒

一般

差劲
快速回复
限150 字节
 
上一个 下一个