这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » FPGA » 深刻理解数字锁相环

共4条 1/1 1 跳转至

深刻理解数字锁相环

工程师
2007-04-25 00:28:21     打赏


  有关数字锁相环的帖子不断出现,但大多没有讲述其原理。翻开有关锁相环的书总是堆叠着鉴相、同相积分、中相积分、滤波等专用名词。这些概念距离硬件设计实现数字锁相环较远。本文按照数字锁相环设计的步骤,采用手把手的方式讲述设计过程和原理,旨在给数字锁相环初次设计者提供一个思路,缩短开发的时间。附件是用VHDL语言设计的20分频数字锁相环

Div20PLL Port(
clock : in std_logic; --80M local clk
flow : in std_logic; --4M data flow
clkout : out std_logic --4M CLK
);

  其中clkout是所提取的数据时钟。clock是本地时钟,其频率是数据流flow速率的20倍。若数据流flow速率为4M则clock选用80M,若flow为1M则选取clock为20M,依次类推。

专用名词约定:

一个比特: 数据流flow由一个比特接一个比特组成,文中提到的一个比特均指flow中的一个比特。
域: 一个比特的时间从开始到结束可以划分为5个时间片段,依次为
§前失锁§超前§同步§滞后§后失锁§
这五个片段称作五个域,其中前失锁和后失锁统称为失锁域。
分频比R: 本地时钟记做clock,从flow中提取的时钟记做lowclk,clock与lowclk的频率比记做R。
smp: 指用clock提取的lowclk上升沿(参见本论坛“上升沿与下降沿触发小论”,
需要注意一点的是,lowclk是与clock同步的信号,所以只需延时一次提取)。
脉冲: 如不特殊指明,是指'1'值保持一个clock周期的信号,无效时值为'0'。

设计总思路:

数字锁相环完成的功能就是利用clock从flow中提取lowclk,并且使smp保持在同步域。lowclk由clock经R分频得到,并且lowclk的相位是可以动态调整的以达到锁相的目的。当smp落在同步域时,认定为锁相环已经同步,保持分频的状态不变。当smp落在失锁域时认定为失锁,则强行置下一个smp到同步域的中间位置。当smp落在超前域时,则推迟下一个smp的到来一个节拍。当smp落在滞后域时,则提前一个节拍使下一个smp到来。

设计步骤:

1. 根据设计参数要求合理选取R值,通常R不小于8,本文选取R = 20讲解。以后文中用到20均指R,而提到10则指R/2。
2. 确定5个域的宽度,本例选取5个域等宽。由于R = 20,所以一个比特的宽度为20,那么每个域的宽度均为4。失锁域是前失锁域和后失锁域的统称,所以失锁域宽8。
3. 设计一个计数器cnt,cnt供10(R/2)个状态,记做s0到s9,cnt从s0到s9循环变化。cnt有三个同步控制脉冲load、inc和dec,load使cnt装入s7,inc使cnt跳过下一个状态(假如在s8时有inc,则cnt从s8直接跳到s0而不再经过s9),dec使cnt继续保持当前状态不变。
4. 时钟lowclk的状态受到cnt的状态和load信号的同步控制,load使lowclk置'1'值,s9使lowclk翻转。两个特殊情况是由于cnt受到inc和dec的控制而使cnt的状态会跳过s9或重复出现s9,即会出现...s7s8s0s1...或...s7s8s9s9s0s1...这两种情况。对于第一种情况lowclk在s8后的s0翻转,而第二种情况仅在第一个s9处翻转。
5. 用clock提取flow的跳变沿saltus。
6.用saltus产生一个宽度为16的信号pulse,pulse在saltus处及接下来的15个clock中期内保持为'1'值,其余情况为'0'。在pulse为'1'期间有一个计数器position在计数,显然position的值为0到15。
7.用clock提取pulse的下降沿cmp。
8.定义一个与position相同类型的信号phase。phase在pulse为'0'时值为0,在pulse为'1'且smp为'1'时装入position的值,其他情况phase保持值不变化。
9. 在cmp处观察phase的值。若为0到3则产生一个失锁脉冲loss,若为4到7则产生一个超前脉冲lead,若为8到11则产生一个同步脉冲syn,若为12到15则产生一个滞后脉冲lag。这些脉冲的位置均在cmp。
10. 若loss累积3次且这3次中间没有出现过syn,则产生一个装载脉冲load。按照相同的方法用lead产生一个dec信号,用lag信号产生一个inc信号。
至此,整个数字锁相环已经设计完毕。步骤中提到的计数器就相当于积分,phase的作用就是完成鉴相,第10步也就是一些有关数字锁相环的书籍中提到的滤波。第3步提到R/2计数器而后在第4步用cnt的状态翻转lowclk来实现R分频,是为了强调输出的lowclk的展空比为50%。

[em07][em07][em07][em07][em07]



关键词: 深刻     理解     数字     锁相环     一个     clock     low    

菜鸟
2007-09-01 20:41:10     打赏
2楼
感谢

菜鸟
2014-07-31 10:11:24     打赏
3楼
脚印,感谢分享

助工
2014-07-31 12:17:06     打赏
4楼
还需理解

共4条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]