基于FPGA的高频时钟的分频和分配设计
基于FPGA的高频时钟电路设计

G A的编程可以实现不 同频率输 出。图 2 所示 为它 的部分逻辑单元 。 它 的输 出时钟频 率 f r 小 主要决 定 于 外 o 大 u 部输入的参考时钟 f F R 的频率 以及 内部的 P L E L
(h aeL ce o p 分频 因 子 P、 和 N. P rs- ok dL o ) M 用 公式表达如下 :
响 AD 的动态 性 能 , 了将 这 种 影 响最 小 化 , C 为
输 出我们所需 要频率的时钟信号. 由时钟 芯片 输出的是一对差分 的 L P C V E L电平信号 , 所用
的扇出芯片 N 6 1 S是一个可 以将一对差分 BN 4
的 L P C 电 平 信 号 转 化 为 四对 差 分 的 vEL L D V S电平信号输 出的转换器。图 l 所示 为设
第 2 8卷
20 年 08
第 4期
7 月
核 电子学 与探 测 技 术
Nu la lcr nc cerE e to i s& D tcin Teh oo y eet c n lg o
Vo 8 N0 4 k2 .
J1 20 u. 0 8
基 于 F GA 的 高 频 时 钟 电路 设 计 P
理意义 的参数—— 中微子 混合角 e 。实验利 。
用 电子反中微子在大型液体闪烁体探测器中的 反B 衰变反应来测量反应堆 中微子 。比较远近 探 测 器 测得 的 中微 子 Leabharlann 量 和 能 谱 , 可 以知 道 就
编程实现对时钟芯片 MP 94 2的控制 , C 23 并根
据需要输出高达 1 G赫兹 的高频 时钟. 设计 中 的难点 主要 是 在 时钟 信 号 高达 1 GHz 印制版 时
基于FPGA分频器的研究与设计

基于FPGA分频器的设计摘要:分频器是数字系统设计中的基本电路,在复杂数字逻辑电路设计中,根据不同设计的需要,会遇到偶数分频、奇数分频、半整数分频等,有时要求等占空比,也有要求非等占空比。
在同一个设计中有时要求多种形式的分频,通常由计数器或计数器的级联构成各种形式的偶数分频和奇数分频,实现较为简单,但是对半整数分频实现较为困难。
设计师希望有一种比较方便实用的设计方法,根据情况的需要,在实验室就能设计分频器并且可以马上检测使用,只需要更改频率系数而不修改其他器件或是电路板。
因此,本文利用verilog硬件描述语言,通过开发平台,使用FPGA,设计了一种能满足上述情况的通用分频器。
只要在分频器的输入端输入相应的分频系数,就可以得到所需的频率。
关键词:分频器;偶数;奇数;半整数;分频系数;FPGASeparate frequency inverter based on FPGA designAbstract:Points are the frequency of an digital system design, the basic circuit in complex digital logic circuit design, according to different design needs, will meet even points frequency, an odd number of points frequency, half integer points frequency etc, sometimes require 390v, such as the request 390v. In the same design sometimes require multiple forms of points frequency, usually by a counter or counter cascade constitute various forms of the frequency and the odd points even points, to achieve comparatively simple frequency, but half-and-half integer points frequency division frequency realize more difficult. Designers hope to have a more convenient and practical design methods, according to the needs of the laboratory condition, can design points frequency device and can immediately detection using, only need to change frequency coefficients and not modify other device or circuit board. Therefore, this paper use verilog hardware description language, through the development platform, use the FPGA, design a kind of can meet the above situation of practical points frequency device. As long as the frequency of an in points corresponding points input input frequency coefficients, can get frequency required.Keywords: Points, frequency, manometers, Even, Odd, Half an integer, Points frequency coefficients, FPGA目录第一章绪论 (1)1.1 FPGA简介 (1)1.2 选题的意义和目的 (2)1.3 国内外应用现状及研究现状 (3)1.3.1 应用现状 (3)1.3.2 研究现状 (4)1.4 本文组织结构 (5)第二章几类分频器的设计及其分频原理 (7)2.1 偶数倍分频 (7)2.1.1 分频原理 (7)2.1.2 软件简介 (7)2.1.3 软件仿真 (7)2.2 奇数倍分频 (9)2.2.1 分频原理 (9)2.2.2 软件仿真 (10)2.3 半整数分频 (12)2.4 小数分频器 (13)2.4.1 积分分频器 (13)2.4.2 累加器分频 (14)2.4.3 小数分频器的应用 (15)2.5 本章小结 (17)第三章通用分频器的设计 (18)3.1 设计方案 (18)3.1.1 设计方案一 (18)3.1.2 设计方案二 (18)3.2 系统设计 (19)3.2.1 电路工作流程图及部分程序 (20)3.2.2时钟输出流程图及部分程序 (23)3.3 通用分频器的应用 (25)3.3.1 等占空比的奇数分频器 (25)3.3.2 任意占空比的奇、偶数分频 (25)3.3.3 等占空比的偶数分频器 (26)3.3.4 半整数分频器 (26)3.4 本章小结 (26)结论 (27)致谢 (28)参考文献 (29)第一章绪论1.1 FPGA简介FPGA是现场可编程门阵列的简称,是可编程逻辑器件(PLD)问世以来的第四代产品,适合于时序、组合等逻辑电路的应用。
基于FPGA的分频器设计研究

FPGA结课论文学院:专业:班级:姓名:目录1、引言 (3)2、2N分频器的设计 (3)3、任意整数N分频器的设计 (4)4、半整数分频器设计 (5)5、由分频方法直接获得秒脉冲的设计方法 (6)6、总结 (7)基于FPGA的分频器设计)1 引言分频器是数字系统中常用来对某个给定时钟的频率进行再分频,以得到所需之各种信号频率的常用基本电路之一。
广泛应用于工业控制中的变频需要,电声技术的转化等。
基于FPGA 实现的分频电路一般有两种方法:一是使用FPGA 芯片内部提供的锁相环电路,如 ALTERA 提供的 PLL(Phase Locked Loop),Xilinx 提供的 DLL(Delay Locked Loop);二是使用硬件描述语言,如VHDL、Verilog HDL 等。
使用锁相环电路有许多优点,如可以实现倍频、相位偏移、占空比可调等。
但 FPGA 提供的锁相环个数极为有限,不能灵活满足使用要求。
而用硬件描述语言实现的分频电路消耗不多的逻辑单元就可以实现对时钟的操作,具有成本低、灵活可编程等优点。
2 2N分频器的设计分频系数为2N的分频器的实现最简单,可采用二进制加或减法计数器的设计来实现。
计数器可直接从Altera公司提供的宏功能模块LPM中调用,也可文本输入或原理图输入方式构成。
以一个4bit的二进制加法计数器为例进行分析说明。
以原理图输入方式设计四位二进制加法计数器如图1所示,经编译、时序模拟后得到仿真波形如图2所示:图1 四位二进制加法计数器图2 四位二进制加法计数器仿真波形从仿真波形可以看出分别由Q0、Q1、Q2、Q3得到的脉冲波形频率正是时钟信号CP的1/2、1/4、1/8和1/16。
亦即分频系数是2、4、8和16。
假设FPGA的CP所接石英晶体是20MHz,则不同引脚所得到的频率分别为10 MHz、5 MHz、2.5 MHz和1.25 MHz。
由上讨论推广可知,N位二进制计数器输出端的每一位输出信号其占空比为50%,从低到高排列分频系数正好为21、22、23、24……。
基于fpga的数字钟电路设计

基于fpga的数字钟电路设计
随着电子技术和航空电子技术的发展,高精度的电子时钟发挥着越来越重要的作用。
面对众多的时间选择方式,FPGA技术为企业提供了新的解决方案。
本文旨在设计一种基于FPGA技术的数字时钟电路,以满足工业系统时间测量和管理的需求。
数字时钟电路的设计主要分为三个方面:晶振、时钟频率调整以及I/O管脚分配。
首先,选用封装形式为HC49-S的晶振器,其主要特征包括频率精度低至±50ppm、温度范围
宽至−10℃至+70℃、工作温度可升至105℃以及动态特性良好等。
其次,进行时钟频率
调节用FPGA。
FPGA的时钟频率调节模块采用MMC和VCO技术实现时钟频率抢断,可对晶
振的稳定频率进行调节,从而获得高精度的时钟信号。
最后,通过FPGA的I/O管脚分配
完成时钟信号输出,从而将数字信号变换为时间信号,实现时间数据的采集和处理。
基于FPGA技术的数字时钟电路可以有效地满足工业系统实时时间测量和管理的需求,实现工业系统时间计量技术的发展。
该电路具有稳定高效、体积小、功耗低以及现场可实
现调整参数等优缺点,在工业领域具有很高的应用前景。
基于FPGA的数字钟设计

数字钟的设计一、 设计要求设计一个数字钟,要求用数码管分别显示时、分、秒的计数,同时可以进行时间设置,并且要求在整点的时候能够实现报时功能。
二、 设计原理计数器在正常工作下是对1Hz的频率计数,在调整时间状态下是对调整的时间模块进行计数;控制按键来选择是正常计数还是调整时间,并决定是调整时还是分;时间显示的LED数码管采用动态扫描实现;在整点到达时,还具有整点报时功能。
三、 电路符号数字钟电路符号如下图所示。
CLK2为分频之前的信号,CLR为清零端,CCK 为校时允许端。
MC为分信号调整端,HC为时信号调整端。
HH[3..0]为时高位,HL[3..0]为时低位,MH[3..0]为分高位,ML[3..0]为分低位,SH[3..0]为秒高位,SL[3..0]为秒低位。
DOUT[6..0]是数码管驱动,SEG[5..0]是位选择信号,RING是整点报时信号。
四、 设计方法本设计的电子时钟包括:分频模块、计时模块、校时模块、动态扫描译码显示模块和整点报时模块。
下面通过各个模块的设计来了解电子时钟的构成:一、 分频模块程序附录:module clk2clk1s(clk,clk1s); input clk;output clk1s;reg clk1s;reg [3:0] cnt;always@(posedge clk)if(cnt==4'b1111)beginclk1s<=~clk1s;cnt<=0;endelsecnt<=cnt+1; endmodule波形仿真:二、 计时模块六十进制计数器六十进制计数器程序附录:六十进制计数器模块:module m60(clk,clr,qh,ql,cao);input clk,clr;output cao;output[3:0] qh,ql;reg [3:0] qh,ql;reg cao;always @(posedge clk or negedge clr) beginif(clr==0)beginqh<=4'h0;ql<=4'h0;cao<=0;endelse if(ql==9)beginql<=0;if(qh==5)beginqh<=0;cao<=1;endelse qh=qh+1;endelsebeginql<=ql+1;cao<=0;endendendmodule二十四进制计数器模块:module m24(clk,clr,qh,ql);input clk,clr;output[3:0] qh,ql;reg [3:0] qh,ql;always @(posedge clk or negedge clr) beginif(clr==0)beginqh<=4'h0;ql<=4'h0;endelse if(qh==2)beginql<=ql+1;if(ql==3)beginqh<=0;ql<=0;endendelse if(ql==9)beginqh<=qh+1;ql<=0;endelseql<=ql+1; end endmodule波形仿真:清零清零正常计时三、 校时模块四、 动态译码显示模块CCK 为0不支持校时,有进位信号时产生分(时)脉冲程序附录:1、位扫描信号(HH,HL,MH,ML,SH,SL逐位扫描,并输出)module sel(clk,hh,hl,mh,ml,sh,sl,out);input clk;input [3:0] hh,hl,mh,ml,sh,sl;output [3:0] out;reg [3:0] out;reg [3:0] ss=0;always @(posedge clk)beginif(ss<4'b0101)ss<=ss+1;elsess<=0;endalways @(posedge clk)begincase(ss)4'd0:out<=sl;4'd1:out<=sh;4'd2:out<=ml;4'd3:out<=mh;4'd4:out<=hl;4'd5:out<=hh;endendmodule仿真图:2、段扫描信号(选择数码管点亮哪一位)module seg(clk,seg);input clk;output [5:0] seg;reg [5:0] seg;reg [3:0] ss=0;always @(posedge clk)beginif(ss<4'b0101)ss<=ss+1;elsess<=0;endalways @(posedge clk)begincase(ss)4'd0:seg<=6'b111110;4'd1:seg<=6'b111101;4'd2:seg<=6'b111011;4'd3:seg<=6'b110111;4'd4:seg<=6'b101111;4'd5:seg<=6'b011111;default:seg<=6'b111111;endcaseend3、4—7译码module decode4_7(decodeout,indec); output[6:0] decodeout;input[3:0] indec;reg[6:0] decodeout;always @(indec)begincase(indec)4'd0:decodeout=7'b1111110;4'd1:decodeout=7'b0110000;4'd2:decodeout=7'b1101101;4'd3:decodeout=7'b1111001;4'd4:decodeout=7'b0110011;4'd5:decodeout=7'b1011011;4'd6:decodeout=7'b1011111;4'd7:decodeout=7'b1110000;4'd8:decodeout=7'b1111111;4'd9:decodeout=7'b1111011;default: decodeout=7'b0000000;endcaseendendmodule五、 整点报时模块六、 数字钟仿真图数字钟的设计注:动态扫描的时钟频率尽量要快。
基于XilinxFPGA的数字钟设计

基于FPGA的多功能数字钟一、设计题目基于Xilinx FPGA的多功能数字钟设计二、设计目的1.掌握可编程逻辑器件的应用开发技术——设计输入、编译、仿真和器件编程;2.熟悉一种EDA软件使用;3.掌握Verilog设计方法;4.掌握分模块分层次的设计方法;5.用Verilog完成一个多功能数字钟设计;6.学会FPGA的仿真。
三、设计内容设计实验项目九多功能电子钟✧功能要求:利用实验板设计实现一个能显示时分秒的多功能电子钟,具体要求为:基本功能:1)准确计时,以数字形式显示时、分、秒,可通过按键选择指示当前显示时间范围模式;2)计时时间范围 00:00:00-23:59:593)可实现校正时间功能;4)可通过实现时钟复位功能:00:00:00扩展功能:1)定时报:时间自定(不要求改变),闹1分钟(1kHz)---利用实验板LED或外接电路实现。
2)仿广播电台正点报时:XX:59:[51,53,55,57(500Hz);59(1kHz)] ---利用实验板LED或外接电路实现。
3)报整点时数:XX:00:[00.5-XX.5](1kHz),自动、手动---利用实验板LED或外接电路实现。
4)手动输入校时;5)手动输入定时闹钟;6)万年历;7)其他扩展功能;✧设计步骤与要求:1)计算并说明采用Basys2实验板时钟50MHz实现系统功能的基本原理。
2)在Xilinx ISE13.1 软件中,利用层次化方法,设计实现模一百计数及显示的电路系统,设计模块间的连接调用关系,编写并输入所设计的源程序文件。
3)对源程序进行编译及仿真分析(注意合理设置,以便能够在验证逻辑的基础上尽快得出仿真结果)。
4)输入管脚约束文件,对设计项目进行编译与逻辑综合,生成下载所需.bit类型文件。
5)在Basys2实验板上下载所生成的.bit文件,观察验证所设计的电路功能。
四、总体设计思路主体分为分频模块,正常时间模块(包含两个模60计数器和一个模24计数器子模块),闹钟模块(分为一个模60计数器模块,一个模24计数器模块,四个比较器模块),电台报时模块,数码管显示模块(分为模式选择模块,片选信号及扫描程序模块,和译码模块)。
实验5指导书 基于FPGA的分频器的设计

实验5 基于FPGA的分频器设计预习内容阅读《电工电子实验教程》第6.6节中触发器及时序逻辑电路的内容。
预先学习Quartus II软件的使用方法。
预习实验的内容,自拟实验步骤和数据表格,选择使用器件,完成电路设计,画出原理电路,手写预习报告。
一、实验目的1.了解EDA软件在电子设计当中的重要作用。
2.熟悉并掌握Quartus II开发软件的基本使用方法。
3.运用图解法设计分频器电路,并进行电路仿真。
二、知识要点FPGA(Field-Programmable Gate Array)是一种可编程器件,即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。
它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。
FPGA主要生产厂商有:Altera、Xilinx、Actel、Lattice。
FPGA的开发软件包括Altera公司的Quartus II、Xilinx 公司的ISE、Lattice 公司的isplever Base。
Quartus II是Altera公司的第四代可编程逻辑器件集成开发环境,提供从设计输入到器件编程的全部功能。
Quartus II可以产生并识别EDIF网表文件、VHDL网表文件和Verilog HDL网表文件,为其它EDA工具提供了方便的接口;可以在Quartus II集成环境中自动运行其它EDA工具。
利用Quartus II软件的开发流程可概括为以下几步:设计输入、设计编译、设计定时分析、设计仿真和器件编程。
用户通过开发软件提供的设计工具实现自己的电路设计以及相应的配置,当用户通过仿真验证结论后,便可把设计下载至FPGA中,实现设定功能。
三、实验内容设计一个分频电路(使用74LS161和必要的门电路)。
要求得到8分频(输出频率为输入频率的八分之一)信号和32分频信号。
基于FPGA的数字电子钟的设计与实现

基于FPGA的数字电⼦钟的设计与实现背景:本实验所有结果基于Quartus II 13.1 (64-bit)实现,实验过程采⽤⾃下⽽上⽬录⼀、基本功能设计与思路基本功能:能实现秒、分钟、⼩时的计数,计数结果清晰稳定的显⽰在 6 位数码管上。
1、动态显⽰模块该模块主要功能是通过数码管的动态扫描实现 6 位数码管显⽰计数结果,本模块由扫描模块scan_cnt6,位选控制模块 dig_select,数据选择控制模块 seg_select 以及译码模块 decoder 构成扫描模块 scan_cnt6模块功能:产⽣ 位选控制端dig_select 和数据选择端 code_select 模块所需要的地址信息,扫描时钟决定位选信号和数据切换的速度。
设计思路:利⽤74390芯⽚(P160 TTL 双⼗进制异步计数器)构建⼀个模六计数器,就是6进制计数器,利⽤计数到6(110)时,“q2”和“q1”为⾼电平,产⽣ ⼀个复位信号,加到74390的⾼电平有效的异步清0端“1CLR”上,使计数器回0,从⽽实现模六计数。
设计结果:cnt6模块设计图波形仿真:(默认为时序仿真)cnt6模块波形仿真图位选模块 dig_select模块功能:在地址端的控制下,产⽣位选信号。
设计思路:利⽤74138芯⽚(3线-8线译码器),当选通端输⼊端G1为⾼电平,选通端输⼊端G2AN和G2BN为低电平时,将扫描信号cnt6的输出作为输⼊信号,dig[5..0]是译码输出,输出低电平有效。
设计结果:dig_select模块设计图波形仿真:dig_select模块波形仿真图数据选择模块 seg_select模块功能:输⼊ 6 组数据,每组数据 4bit,本模块完成在地址端的控制下从6 组数据当中选择 1 组输出。
设计思路:利⽤74151芯⽚(P91 8选1数据选择器),在控制输⼊端GN为低电平时,将扫描信号的选择下,分别选中D[5..0]对应的输⼊信号输出为Y。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于FPGA的高频时钟的分频和分配设计
摘要:介绍了为PET(正电子发射断层扫描仪)的前端电子学模块提供时间基准而设计的一种新型高频时钟扇出电路。
该电路利用FPGA芯片来实现对高频时钟的分频与分配,并用LVDS传输标准对生成的多路时钟信号进行传输,从而最大程度地减少了输出各路时钟之间的延时偏差,同时利用低压差分信号的传输特性增强了信号的抗干扰能力。
文章给出了采用VHDL语言编写的时钟电路程序代码。
关键词:FPGA;高频时钟;VHDL
1引言
随着应用系统向高速度、低功耗和低电压方向的发展,对电路设计的要求越来越高 传统集成电路设计技术已无法满足性能日益提高的整机系统的要求。
同时,由于IC设计与工艺技术水平的提高,集成电路规模越来越大,复杂程度越来越高。
目前已经可以将整个系统集成在一个芯片上,即片上系统(SystemonaChip 缩写为SOC),这种芯片以具有系统级性能的复杂可编程逻辑器件(CPLD)和现场可编程门阵列(FPGA)为主要代表。
与主要实现组合逻辑功能的CPLD相比,FPGA主要用于实现时序逻辑功能。
对于ASIC设计来说,采用FPGA在实现小型化、集成化和高可靠性系统的同时,还可以减少风险、降低成本、缩短开发周期。
2系统硬件组成
本文介绍的时钟板主要由于为PET(正电子发射断层扫描仪)的前端电子学模块提供32路系统时钟(62.5MHz)和32路同步时钟(4MHz)。
时钟信号之间的偏差要求在2ns之内。
为了消除各路时钟信号之间的偏差,文中介绍利用FPGA来实现主时钟的分频、零延时输出和分配,同时利用LVDS技术实现多路时钟的传输的实现方法。
图1所示是其硬件设计示意图。
由图1可知,该时钟电路的具体工作原理是:首先由精密晶体振荡器产生62.5MHz的时钟信号,然后经时钟驱动芯片CY2305输入FPGA芯片的时钟引脚GCLK以作为时钟源。
该时钟在FPGA芯片内部经DLL(延迟锁定环)模块分别生成62.5MHz的系统时钟和4MHz的同步时钟 LVTTL电平信号 ,然后由内部的IOB(输入输出功能模块)分配到64个输出引脚(32路62.5MHz系统时钟和32路4MHz同步时钟),这64路LVTTL电平信号两两进入32块LVDS(两路)驱动转换芯片后,即可转换为LVDS信号并通过差分双绞线传输给前端电子学模块的32块数字电路板。
2.1FPGA的结构
单元型FPGA主要由三部分组成:可配置逻辑模块CLB(ConfigurableLogicBlock),输入、输出模块I/OB和可编程连线PI(ProgrammableInterconnect)。
对于不同规格的芯片,可分别包含8×8、20×20、44×44甚至92×92个CLB阵列,同时配有64、160、352、甚至448个I/OB以及为实现可编程连线所必需的其它部件。
图2所示是本设计中使用的XC2S30芯片的内部结构。
2.2Xinlinx公司的SpartanII系列FPGA
Xinlinx公司目前生产的FPGA有两类代表性产品 一类是XC40003/Spartan系列 另一类是Vir-tex/SpartanII系列。
这两类产品除具有FPGA的三种基本资源(可编程I/O、可编程逻辑功能模块CLB和可编程布线等)外 还具有片内RAM资源。
但两种产品也有所不同。
其中XC4000E可以用于实现片内分布RAM,同时专门为实现可编程片上系统开发的Virtex系列,其片内分布RAM和块RAM都可以实现,并可实现片上系统所要求的其他性能,如时钟分配和多种电平接口等特性。
Sparta
nII系列与Virtex系列产品相比,除了块RAM数量少于Virtex系列产品外,其余有关性能(如典型门范围、线宽、金属层、芯内电压、芯片输入输出引脚电压、系统频率和所含DLL个数等)都基本相同,它的一个突出优点(也是本设计选用该系列芯片的主要原因)是:该系列产品是专门为取代掩膜门阵列的低价位FPGA,在达到门阵列数量时,其价格可与门阵列相比。
因此,本文介绍的时钟电路的设计选用SpartanII系列FP-GA中的XC2S30-5PQ208芯片来实现。
3用FPGA实现时钟分频和分配
如图2所示 SpartanII系列芯片内部含有四个全数字延时锁定环(DLL),每一个DLL可驱动两个全局时钟分布网络。
通过控制DLL输出时钟的一个采样 可以补偿由于布线网络带来的时钟延时,从而有效消除从外部输入端口到器件内部各个时钟负载的延时。
DLL除提供对用户输入时钟的零延时之外,还具有时钟倍频和分频功能。
它可以对时钟源进行两倍频和1.5、2、3、4、5、8或16分频。
本设计就是利用DLL的零延时和分频功能来实现对62.5MHz时钟的输出和16分频后4MHz(约)时钟的输出。
3.1数字延时锁定环(DLL)的结构原理
图3是一个DLL的内部原理框图,它由各类时钟延时线和控制逻辑组成。
延时线主要用于对时钟输入端CLKIN产生一个延时。
通过器件内部的时钟分布网络可将该输入时钟分配给所有的内部寄存器和时钟反馈端CLKFB。
控制逻辑则主要用于采样输入时钟和反馈时钟以调整延时线。
这里所说的延时线由压控延时或衰减延时组件构成,SpartanII系列芯片选用了后者。
DLL可在输入时钟和反馈时钟之间不停地插入延时,直到两个时钟的上升沿同步为止。
当两时钟同步时,DLL锁定。
在DLL锁定后,只要输入时钟没有变化,两时钟就不会出现可识别偏差。
因此,DLL输出时钟就补偿了时钟分布网络带来的输入时钟延时,从而消除了源时钟和负载之间的延时。
3.2DLL功能的实现
SpartanII系列芯片内含专门实现DLL功能的宏单元模块BUFGDLL,其结构简图如图4所示。
该模块由IBUFG、CLKDLL和BUFG三个库元件组成 其原理框图如图5所示。
图5中,CLKDLL库元件用于实现DLL的主要功能 包括完成时钟的零延时输出、时钟的倍频以及分频和镜像操作。
而IBUFG和BUFG则分别实现外部时钟的输入以及将输出时钟分配到芯片引脚。
本设计的时钟分频就是将62.5MHz的时钟由IBUFG输入 经CLKDLL分频后再由CLKDV端传给BUFG 然后经片内IOBUF分配到芯片的普通I/O输出引脚。
4软件实现
在设计的总体构思和器件选择完成后,必须进行的工作是建立设计输入文件,该文件主要用于描述所设计电路的逻辑功能。
这里使用的是XILINX公司提供的开发工具FOUNDATION4.1。
本设计采用硬件描述语言VHDL来设计,其部分程序如下:
entitylvdsis
port (
pclk: inSTDLOGIC;
pclk_62: outstd_logic_vector(31downto0);
pclk_4: outstd_logic_vector(31downto0));
endlvds;
architecturelvds_archoflvdsis
componentclkdll
port( clkin: instd_logic;
clkfb : instd_logic;
rst: instd_logic;
clk0: outstd_logic;
clk90 : outstd_logic;
clk180: outstd_logic;
clk270: outstd_logic;
clk2x : outstd_logic;
clkdv: outstd_logic;
locked: outstd_logic);
endcomponent;
begin
resetn<=‘0';
uibuf : ibufgportmap (
i=>pclk,
o=>clk);
udll: clkdllportmap( clkin=>clk, rst=>reset_n,
clkfb=>clkfb,
clk0=>clk0,
clk90=>open,
clk180=>open,
clk270=>open,
clk2x=>clk2x,
clkdv=>clkdv,
locked=>locked
);
bufg_clk0: bufgportmap ( i=>clk0, o=>clk_int2;
);
clkfb<=clk_int2;
process(clk2x);
begin
ifclk2x′eventandclk2x=′1′ thenclk_int<=clkint2;
clk_int3<=clkdv;
pclk_62(0)<=clk_int;
pclk_62(1)<=clk_int;
…
…
pclk_62(31)<=clk_int;pclk_4(0)<=clk_int3;pclk_4(1)<=clk_int3;…
…
pclk_4(31)<=clk_int3;endif;
endprocess;
endlvds_arch;。