基于FPGA位同步时钟提取方案的设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一种基于FPGA的新型位同步时钟提取方案及实现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位的移位寄存器,可以采用图6所示的10选1多路选择器Mux10to1。多路选择器的多选一选择端输入由双向计数器的计数输出端qn提供。
另外,Mux10to1输出端连接D触发器目的是为了消除毛刺。此触发器的输出信号就是位同步时钟提取的输出信号,当然,作为一个锁相环结构的位同步提取电路,这个时钟信号会作为反馈引入鉴相器的输入端,与输入码流进行相与鉴相。
下面给出仿真波形,器件选择为Altera的Cyclone II系列FPGA芯片Ep2c5,
内部时钟为200MHz,码流时钟为20MHz,分频系
数和计数系数都选择为10。
4 本设计方案性能
本位同步提取电路比通常广泛采用的锁相环路法,有如下有点:
(1)本设计并没有应用复杂的算法实现锁相功能,也没有采用传统的添扣们结
构,电路结构简单易懂,节省硬件资源,占用器件资源情况如下: