(免费)基于FPGA的新型位同步时钟提取方案的设计
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
本设计简单占有硬件资源少,因为可以同时调用多个时钟提取电路来提取多路同
时输入的不同速度的串行码流的同步时钟,为下一步的数字复接提供了方便。
参考文献
[1]廖日坤 ,CPLD/FPGA 嵌入式应用开发技术白金手册,中国电力出版社,2005
[2]陈世伟,锁相环路原理及应用,兵器工业出版社,1990
[3]段吉海,黄志伟,王毓银,基于 CPLD/FPGA 的数字通信系统建模与设计,2004
出信号就是位同步时钟提取的输出信号,当然,作为一个锁相环结构的位同步提 取电路,这个时钟信号会作为反馈引入鉴相器的输入端,与输入码流进行相与鉴 相。
下面给出仿真波形,器件选择为 Altera 的 Cyclone II 系列 FPGA 芯片 Ep2c5,
内部时钟为 200MHz,码流时钟为 20MHz,分频系
71 / 4,608 ( 2 % )
Total registers
49
Total pins
3 / 142 ( 2 % )
Total virtual pins
0
Total memory bits
0 / 119,808 ( 0 % )
Embedded Multiplier 9-bit elements 0 / 26 ( 0 % )
程序中输出信号 q 可作为控制电路的输入信号。
本设计方案的系统框图如图 3 所示:
超前滞后
方向
框图中,鉴相器作用是鉴别出码流和本地时钟的相位超前滞后关系,控制计数器 采用双向计数器,鉴相器输出 q 作为控制计数器的计数方向输入,q 为 1 则向上计 数,q 为 0 则向下计数。控制计数器的计数输出用来控制相位调整选择模块的选
一种基于 FPGA 的新型位同步时钟提取方案及实现
摘要: 关键词:位同步,锁相环,FPGA,异步串行码流 1 引言:
同步技术在数字通信系统中,是非常重要的技术。位同步是最基本的同步。 位同步时钟信号不仅用于对输入码元信号的监测保证收发同步,而且在对获取祯 同步,群同步及对接收的数字码元进行各种处理过程中也为系统提供了一个基准 的同步时钟。
相位调整选择模块的相位选择功能由多选一多路选择器实现,对应图 4 的 10 位的移位寄存器,可以采用图 6 所示的 10 选 1 多路选择器 Mux10to1。多路选择
器的多选一选择端输入由双向计数器的计数输出端 qn 提供。 另外,Mux10to1 输出端连接 D 触发器目的是为了消除毛刺。此触发器的输
本设计方案的鉴相器原理相对简单,不需要用 VHDL 语言设计,仅用两个
与门和一个 D 触发器就可以实
现,如图 4 所示。图中的
的第二个与门(inst23)是为了实现 D
触发器的时钟输入端与数据输入端
同步。
控制计数器设计使用 Quartus
II 的 MegaWizard Plug_In
Manager 工具来实现一个简单
--产生分频脉冲
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。
与结果为“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
择端。 相位调整选择模块由相位调整和相位选择功能。 0 最快 数越大 时钟越慢
3 设计实现
0超前 1滞后
图 3 系统功能框图
依据图 3 系统功能框图,利用 Altera 公司的 Quartus II 设计软件,采用
自顶向下的模块化设计方法,用 VHDL 语言和电路原理图混合输入设计对位同
步时钟提取电路的各个部件分别进行设计。
用,节省用户设计时间,缩短设计周期,具有很高的商用价值。
5 结束语
本位同步时钟提取方案已经成功的用 FPGA 器件进行了实现,并在作者设计
的数字通信系统中得到应用。通过对此电路的测试和使用表明,此时钟提取电路
可以快速准确地对高速串行输入码流进行位同步时钟提取,即使输入码流中的毛
刺现象,本设计电路也有很好的时钟调整恢复功能,极大的减小了误码率。由于
Total Plls
0/2(0%)
(2) 本设计位同步时钟锁定时间较短,速度比较快(由设计时钟选择决定)。
(3)精度较高,并具有可调整性,时钟抖噪参数可以通过改变分频器分频系数
和计数器计数系数调整,并可以实现频率很宽范围的码流的位同步时钟提取,因
而本设计方案可以生成元件符号在各种 FPGA 芯片和部分 CPLD 芯片设计中调
语言实现并由软件自动生成元件符号供原理图调用,如图 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
本文设计的方案可以从异步串行码流中提取位同步时钟信号,设计思想的基 本出发点是在外部码流(code_in)的上升沿和本地时钟(clk)上跳沿相比较无非两
种 情 况, 如 图Baidu Nhomakorabea1 和图 2 所示:
图 1 码流滞后于本地时钟△T 示意图
图2
码流超前于本地时钟△T 示意图
从码流上跳沿的角度来看,若将码流 code_in 与本地时钟 clk 进行逻辑相与,若相
数和计数系数都选择为 10。
4 本设计方案性能
本位同步提取电路比通常广泛采用的锁相环路法,有如下有点:
(1) 本设计并没有应用复杂的算法实现锁相功能,也没有采用传统的添扣们结
构,电路结构简单易懂,节省硬件资源,占用器件资源情况如下:
Device
EP2C5Q208C8
Total logic elements
的双向
数器,计数方向由鉴相器输出 q 控
制,q 为 1 则计数器向上计数,q 为 0 则计数器向下计数,计数系数由 Count
Modulus 设定,设定的数值要求等于分频器的分频系数 N。在原理图输入时可以
任意改变分频器的分频系数和计数器的计数系数。
分频器设计输出时钟信号的占空比为 50%,且分频系数 N 可调,用 VHDL
随着现代电子技术的发展,数字系统趋于模块化,小型化,芯片华,因此如 何实现同步系统的模块化和芯片化是急需解决的问题。
在数字通信中,通常直接从接收到的数字信号中提取位同步信号,这种直接 法按其提取同步信号的方式,大致可分为滤波法和锁相法。锁相法是指利用锁相 环来提取位同步信号的方法,本设计方案就是基于锁相环的位同步提取方法,能 够比较快速地提取位同步时钟,并且设计简单,方便修改参数。采用 Quartus II 设计软件对系统进行了仿真试验,并用 Altera 的 Cyclone II 系列 FPGA 芯片 Ep2c5 予以实现。 2 位同步时钟提取方案的原理