基于FPGA的新型位同步时钟提取方案的设计

  • 格式:doc
  • 大小:151.00 KB
  • 文档页数:4

下载文档原格式

  / 4
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一种基于FPGA的新型位同步时钟提取方案及实现

摘要:

关键词:位同步,锁相环,FPGA,异步串行码流

1 引言:

同步技术在数字通信系统中,是非常重要的技术。位同步是最基本的同步。位同步时钟信号不仅用于对输入码元信号的监测保证收发同步,而且在对获取祯同步,群同步及对接收的数字码元进行各种处理过程中也为系统提供了一个基准的同步时钟。

随着现代电子技术的发展,数字系统趋于模块化,小型化,芯片华,因此如何实现同步系统的模块化和芯片化是急需解决的问题。

在数字通信中,通常直接从接收到的数字信号中提取位同步信号,这种直接法按其提取同步信号的方式,大致可分为滤波法和锁相法。锁相法是指利用锁相环来提取位同步信号的方法,本设计方案就是基于锁相环的位同步提取方法,能够比较快速地提取位同步时钟,并且设计简单,方便修改参数。采用Quartus II 设计软件对系统进行了仿真试验,并用Altera的Cyclone II系列FPGA芯片Ep2c5予以实现。

2 位同步时钟提取方案的原理

本文设计的方案可以从异步串行码流中提取位同步时钟信号,设计思想的基本出发点是在外部码流(code_in)的上升沿和本地时钟(clk)上跳沿相比较无非两

况,

如图1和图2所示:

图1 码流滞后于本地时钟△T示意图图2

码流超前于本地时钟△T示意图

从码流上跳沿的角度来看,若将码流code_in与本地时钟clk进行逻辑相与,若相与结果为“1”则说明码流滞后于本地时钟,若为“0”则说明码流超前于本地时钟。用VHDL语言描述为:

if (code_in’event and code_in=’1’) then

if (code_in and clk)=’1’ then

q<=’1’

else

q<=’0’

end if

end if

程序中输出信号q可作为控制电路的输入信号。

本设计方案的系统框图如图3所示:

框图中,鉴相器作用是鉴别出码流和本地时钟的相位超前滞后关系,控制计数器采用双向计数器,鉴相器输出q作为控制计数器的计数方向输入,q为1则向上计数,q为0则向下计数。控制计数器的计数输出用来控制相位调整选择模块的选择端。相位调整选择模块由相位调整和相位选择功能。

图3 系统功能框图

3 设计实现

依据图3系统功能框图,利用Altera 公司的Quartus II 设计软件,采用自顶向下的模块化设计方法,用VHDL 语言和电路原理图混合输入设计对位同步时钟提取电路的各个部件分别进行设计。

本设计方案的鉴相器原理相对简单,不需要用VHDL语言设计,仅用两个

与门和一个D触发器就可以实

现,如图4 所示。图中的

的第二个与门(inst23)是为了实现D

触发器的时钟输入端与数据输入端

同步。

控制计数器设计使用Quartus

II的MegaWizard Plug_In

Manager工具来实现一个简单

的双向

数器,计数方向由鉴相器输出q控

制,q为1则计数器向上计数,q为0则计数器向下计数,计数系数由Count Modulus设定,设定的数值要求等于分频器的分频系数N。在原理图输入时可以任意改变分频器的分频系数和计数器的计数系数。

分频器设计输出时钟信号的占空比为50%,且分频系数N可调,用VHDL 语言实现并由软件自动生成元件符号供原理图调用,如图5所示。

下面给出分频器的VHDL语言关键描述语句

if(clk'event and clk='1') then

if(count=N-1)then --计数周期

count<=0;

else

count<=count+1;

if count<(integer(N/2)) then

--产生分频脉冲

outclk<='0';

else

outclk<='1';

end if;

end if;

end if;

相位调整选择模块的相位调整功能可以用延迟方式实现。在FPGA中要产生延时,信号必须经过一定的物理资源。在硬件描述语言中有关键词Wait for xx ns,需要说明的是该语法是仅仅用于仿真而不能用于综合的,可综合的延时方法有:

(1)使信号经过逻辑门得到延时(如非门);

(2) 使用器件提供的延时单元(如Altera公司的LCELL);

(3)使用移位寄存器。

由于当使用多级非门的时候综合器往往会将其优化掉,因为综合器会认为一个信号非两次还是它自己,而且门延迟时间相对于具体器件是不固定的,LCELL延时单元也可以用来产生一定的延时,但这样形成的延时在FPGA芯片中并不稳定,会随温度等外部环境的改变而改变,并且门延迟和LCELL延迟时间都无法实现用户动态调整,不利于移植和调用,因此本设计的延迟采用由D触发器构成的移位寄存器实现,如图6所示,移位寄存器时钟输入端为内部时钟Clk_n,移位数据输入端为Clk_n的分频输出Clk1,如果Clk_n的频率为f0,分频器分频系数为N,则Clk1的频率为N×f0,并要求其等于Clk的频率即:f = N×f0。相位调整选择模块的单位延迟时间决定了设计的时钟提取电路的精度。单位延迟时间由内部时钟Clk_n决定,单位延迟时间为移位寄存器发生一次移位的时间也就是D触发器的触发时钟周期即为t = 1/f0 。位同步时钟锁定时间由内部时钟Clk_n和分频器的分频系数N决定,显然Clk1最多经过N-1次移位时才可以与码流时钟锁定,则最大锁定时间为(N-1)/f0 ;Clk1最少经过1次移位就可以与码流时钟锁定,所以位同步时钟最小锁定时间为1/f0。

相位调整选择模块的相位选择功能由多选一多路选择器实现,对应图4的10