课程设计时钟分频电路.doc

上传人:仙人指路1688 文档编号:4193400 上传时间:2023-04-09 格式:DOC 页数:7 大小:214.50KB
返回 下载 相关 举报
课程设计时钟分频电路.doc_第1页
第1页 / 共7页
课程设计时钟分频电路.doc_第2页
第2页 / 共7页
课程设计时钟分频电路.doc_第3页
第3页 / 共7页
课程设计时钟分频电路.doc_第4页
第4页 / 共7页
课程设计时钟分频电路.doc_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《课程设计时钟分频电路.doc》由会员分享,可在线阅读,更多相关《课程设计时钟分频电路.doc(7页珍藏版)》请在三一办公上搜索。

1、第一章 课程设计内容与目的1.1 设计内容:设计一个频率为100MHZ,60分频的时钟分频电路。即输入的频率是100MHZ,分频倍数为60,最终实现对输入时钟正确的60分频功能。用ISE,MODELSIM工具软件,编写时钟分频源程序,并通过综合后生成波形仿真文件,然后对设计进行仿真。1.2 设计目的: 1.掌握时钟分频工作原理. 2.对60倍时钟分频模块进行基于VHDL的设计. 3.对自己所设计的60倍时钟分频模块进行仿真验证。第二章 模块设计2.1 模块原理: 时钟分频就是用同一个时钟信号通过一定的电路结构转变成不同频率的时钟信号。例如四分频就是通过有分频作用的电路结构,在时钟每触发4个周期

2、时,电路输出1个周期信号。 比如用一个脉冲时钟触发一个计数器,计数器每计4个数就清零一次并输出1个脉冲。那么这个电路就实现了四分频功能。在复杂数字逻辑电路设计中,经常会用到多个不同的时钟信号。分频电路包括整数分频和小数分频,其中整数分频又包括了奇分频和偶分频。对于偶数 N 分频,通 常是由模 N/2 计数器实现一个占空比为 1:1 的 N 分频电路,分频输出信号模 N/2 自动取反。对于奇数 N 分频,上述方法就 不适用了,而是由模 N 计数器实现非等占空比的奇数 N 分频,分频输出信号取得是模 N 计数中的某一位(不同 N 值范 围会选不同位)。这种方法同样适用于偶数 N 分频,但占空比不总

3、是 1:1,只有 2 的 n 次方的偶数(如 4、8、16 等)分频 占空比才是 1 :1 。这种方法对于奇数、偶数具有通用性。小数分频通过精确的控制器来控制内部分频器进行N分频还是N1分频,从而在平均意义上实现分频系数为小数的分频器占空比指的是在一串理想的脉冲周期序列中(如方波),正脉冲的持续时间与脉冲总周期的比值(如右图所示)。 2.2 设计思路 时钟分频电路中,偶分频是最基本也是比较简单的分频,本设计的分频倍数就是60分频,60分频就是通过有分频作用的电路结构,在时钟每触发60个周期时,电路输出1个周期信号。电路中定义一个计数器,这个计数器至少可以计60个数,计数器是VHDL设计中常用的

4、设计,这在程序中很容易实现,可以定义一个count信号,每出现一个时钟上升沿的时候计一个数,但计数器计数小于29的时候,时钟的值保持为1,当计数大于29小于59的时候,时钟值翻转为0.当计数器计数到达59次的时候对计数器进行复位处理,从新开始从0开始计数,已到达反复计数的目的。第三章 模块设计实现3.1 VHDL源程序的具体程序和说明时钟60分频的设计程序如下: library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;- Uncomment t

5、he following library declaration if instantiating- any Xilinx primitives in this code.-library UNISIM;-use UNISIM.VComponents.all;entity clkdiv60 is Port ( clk : in STD_LOGIC; outclk : out STD_LOGIC); end clkdiv60; architecture Behavioral of clkdiv60 is signal count : STD_LOGIC_VECTOR(5 downto 0):=0

6、00000;beginprocess(clk) beginif(clkevent and clk=1) Then if(count=59) then count=000000; else count=count+1; end if; if (count30) then outclk=1; else outclk=0; end if;end if;end process;end Behavioral;程序说明:第一部分:定义库和数据包以及数据包所开放的对象。第二部分:实体部分,定义输入端和输出端口名,以及他们的数据类型第三部分:结构体,结构体是描述程序功能的部分。首先定义一个signal信号,c

7、ount计数器,计数器的主要功能是随着时钟上升沿的出现进行计数。计数器是6位的,以满足时钟60分频的需要。当时钟信号出现并且当初始值为”1“的时候,程序开始运行。如下面的程序if(clkevent and clk=1) Then if(count=59) then count=000000; else count=count+1; end if; if (count30) then outclk=1; else outclk=0; end if;end if;首先对计数器的计数进行判断,判断是否已经计满60次,当计满60次地时候,计数器就需要复位,重新开始从零计数。当没有计到60次地时候,那么

8、计数器需要随着时钟上升沿的出现逐加,如计数器计满30次,则输出的时钟值仍然保持为”1“,若计数器计数的次数大于30次,那么时钟值需要翻转为”0“.这样一次计数下去3.2 时钟分频程序文件的创建过程第一步:建立新的工程项目,并将其命名为”clkdiv60“,如下图所示 第二步:在新建的工程项目下建立VHDL module文件,如下图所示 第三步:编译源程序,如下图所示第四步:对程序进行综合测试,直到测试通过为止,操作方法如下图第四章 模块仿真过程和结果分析4.1 仿真过程第一步:建立仿真波形文件,在clkdiv60下建立VHDL test bench。如下图所示第二步:点击”design“窗口下

9、的”simulation“,并且双击已建立的test bench 文件。第三步:对test bench 文件进行修改,定义时钟频率为100MHZ,点击process窗口下的仿真按钮进行仿真。第四步:输出仿真波形图,如下所示4.2 结果分析 观察仿真波形图,clk是输入的时钟信号波形,其输入频率是100MHZ,outclk是输出的时钟分频波形图,前30个时钟上升沿出现的时候,输出的波形上的值是“1”,当出现第31个时钟上升沿开始,输出的时钟值为“0”,即将输入时钟的60个周期变频成输出时钟的一个周期,设计程序的功能达到了设计的要求。第五章 结论总结5.结论总结 时钟分频模块是现代通信系统的重要模块,通过对时钟分频原理的理解,分析,设计出时钟60分频的思路,并且应用ISE软件进行程序设计。设计后对程序进行测试,测试通过后应用MODELSIM仿真软件对程序进行波形仿真,通过对输出时钟波形的分析,程序功能最终达到了设计的目的和要求。在设计过程中充分发挥了ISE软件的编译功能和MODELSIM的仿真功能。设计完成后基本掌握了ISE软件,MODELSIM软件的操作过程。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号