实验4数控分频器设计.ppt

上传人:小飞机 文档编号:6270289 上传时间:2023-10-12 格式:PPT 页数:16 大小:261.32KB
返回 下载 相关 举报
实验4数控分频器设计.ppt_第1页
第1页 / 共16页
实验4数控分频器设计.ppt_第2页
第2页 / 共16页
实验4数控分频器设计.ppt_第3页
第3页 / 共16页
实验4数控分频器设计.ppt_第4页
第4页 / 共16页
实验4数控分频器设计.ppt_第5页
第5页 / 共16页
点击查看更多>>
资源描述

《实验4数控分频器设计.ppt》由会员分享,可在线阅读,更多相关《实验4数控分频器设计.ppt(16页珍藏版)》请在三一办公上搜索。

1、实验四 数控分频器的设计,1.实验目的(1)学习时序电路VHDL语言设计。(2)学习多进程设计,掌握变量的用法与信号的区别。(3)掌握整数数控分频器的原理及设计方法。(4)掌握半整数数控分频器的原理及设计方法,2.背景知识 分频器在时序逻辑电路中应用广泛.数控分频器的功能就是当在输入端给定不同的输入数据时,将对输入的时钟信号有不同的分频比。整数分频器采用计数初值可并行预置的加法(或者减法)计数器构成。时钟源与所需频率不成整数倍关系,需要采用小数分频器进行分频。,3.实验内容与要求(1)、设计一个整数数控分频器,根据预置数的不同实现不同的分频比。(2)、设计一个分频系数是2.5的小数分频器。实验

2、要求:波形仿真+硬件验证,4.实验方案(1)、整数分频器设计方案 假设计数器计数时钟是clock,数据位宽为4,进行加法计数,计数初值为“1011”,计数器记满“1111”,需要计数5次(10111100110111101111),每5个clock脉冲,count输出一个脉冲,这样count的频率就是clock频率的1/5,称为5分频。假设预置数是d3.0,这样分频比R=1111-d3.0+1。也就是如果d3.0=11(二进制1011),则R=5;如果是减法计数器,则分频比R=12(从11减法计数到0,共12次),则分频比公式为R=d3.0+1。,分频器设计的基础计数器计满全1后,产生进位信号

3、cout,cout的频率是计数时钟频率的16分之一,称cout是clk的十六分频。如果有一个预置数d3.0,从d开始计数计到全1,这时进位信号cout与clk的频率关系是什么呢?,4位二进制加法计数器,分频比R=“1111”-d3.0+1,library ieee;-设计库的打开和程序包的允许使用use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity pulse is-定义实体pulse port(clk:in std_logic;-初始时钟clk,即分频前时钟 d:in std_logic_vector(7 dow

4、nto 0);-8位预置数d fout:out std_logic);-分频后输出信号 end;architecture one of pulse1 is-定义结构体 signal full:std_logic;-定义信号full begin p0:process(clk)-进程p0,以clk为敏感参数 variable cnt8:std_logic_vector(7 downto 0);-定义内部变量cnt8 begin,if clkevent and clk=1 then if cnt8=11111111 then cnt8:=d;full=1;-如果cnt8记满全1,预置数d被同步置入计

5、数器cnt8,准备开始下次加法计数。记满时进位信号输出高电平1 else cnt8:=cnt8+1;full=0;-否则继续作加1计数,full输出低电平0 end if;end if;end process;p1:process(full)-进程p1,以full信号为敏感岑书 variable cnt2:std_logic;-定义内部变量cnt2 begin if fullevent and full=1 then cnt2:=not cnt2;-变量cnt2是信号full的2分频 end if;if cnt2=1 then fout=1;-分频最终结果fout else fout=0;en

6、d if;end process;end;,关于fout频率的计算 full信号的分频比F=11111111d7.0+1,而fout信号的频率是full频率的一半,产生的分频信号fout的分频比应是R=(11111111d7.0+1)2。通过公式根据需要的分频比,计算预置初值d。假设需要进行8分频,预置数d是252(二进制11111100)。,思考:1、分频波形从12.8us开始的原因?2、clk时钟频率为20MHz,预置数d=252,则信号full的频率?信号fout的频率?3、如果预置数是238呢?,思考:采用此方法能够设计的分频器的特点?偶次分频?奇次分频?占空比?,(2)分频系数2.5

7、的小数分频器设计方案 设有一个5MHz的时钟源,电路中需要产生一个2MHz的时钟信号,则分频比是2.5。设计中,先设计一个模3的计数器(上升沿计数),然后通过在时钟下降沿处产生分频信号的上升沿,以实现半整数分频。,library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity half_integer is port(inclk:in std_logic;-初始时钟inclk,需要分频的信号 fout:out std_logic;-分频后输出时钟 clk:buffer std_logic);-模3计

8、数时钟 end;architecture one of half_integer is signal div2,cout:std_logic;signal cnt:std_logic_vector(1 downto 0);,begin clk=inclk xor div2;-inclk与divide2异或后作为模3计数器的时钟 fout=cout;p0:process(clk)begin if clkevent and clk=1 then if cnt=10 then cout=1;cnt=00;else cout=0;cnt=cnt+1;end if;end if;end process;

9、,p1:process(cout)begin if coutevent and cout=1 then-信号cout上升沿时,div2取反 div2=not div2;-即div2是cout的二分频 end if;end process;end;,设计的关键点在于一个信号与0异或,得到的是信号本身;与1异或,得到的是信号的取反。,inclk是分频前的初始时钟,在计数到2时,信号cout是低电平0,div2也是0,此时inclk与div2相异或,得到的结果clk等于inclk,因此在这一段时间内,相当于以inclk为脉冲进行计数。第3个inclk计数脉冲上升沿到来后,根据程序判断此时cnt=“1

10、0”,所以cnt赋值0,cout赋值高电平1,即cout产生上升沿,将会触发进程p1,导致信号div2反转,变为高电平1。当div2变为高电平1后,div2与inclk相异或,使得信号clk变为inclk取反,即在第3个inclk下降沿处会产生clk信号的上升沿,导致cnt计数从0到1,即0的持续时间只有半个周期(第3个inclk信号上升沿到下降沿),因而是一个2.5分频的结果。,5实验步骤与结果(1)实验步骤(略)注:(A)把SW5改造成普通I/O口(P51);(B)学会调出内部寄存器的方法(P50)(2)实验结果(略),6.实验扩展:(1)、在例2-4-1的基础上,添加异步复位信号reset。当reset=0时,计数器赋初值;reset=1时,计数器在时钟clk的作用下计数。(2)、设计一个任意半整数的分频器。可以通过更改计数模值N实现如7.5分频、10.5分频。,

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

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号