您好,欢迎来到抵帆知识网。
搜索
您的当前位置:首页实验6 数控分频器的设计(6-3)

实验6 数控分频器的设计(6-3)

来源:抵帆知识网
实验6 数控分频器的设计(6-3)

(1)实验目的:

学习数控分频器的设计、分析和测试方法。 (2)实验原理:

数控分频器的功能就是当在输入端给定不同输入数据时,将对输入的时钟信号有不同的分频比,数控分频器就是用数值可并行预置的加法计数器设计完成的,方法是将计数溢出位与预置数加载输入信号相接即可,详细设计程序如例6-20所示。 【例6-20】8位数控分频器 LIBRARY IEEE;

USE IEEE.STD_LOGIC_11.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY DVF IS

PORT(CLK : IN STD_LOGIC;

D : IN STD_LOGIC_VECTOR(7 DOWNTO 0); FOUT : OUT STD_LOGIC); END ENTITY DVF;

ARCHITECTURE one OF DVF IS SIGNAL FULL : STD_LOGIC; BEGIN

P_REG: PROCESS(CLK)

VARIABLE CNT8 : STD_LOGIC_VECTOR(7 DOWNTO 0); BEGIN

IF CLK'EVENT AND CLK = '1' THEN IF CNT8 = \"11111111\" THEN

CNT8 := D; --当CNT8计数计满时,输入数据D被同步预置给计数器CNT8 FULL <= '1'; --同时使溢出标志信号FULL输出为高电平 ELSE CNT8 := CNT8 + 1; --否则继续作加1计数

FULL <= '0'; --且输出溢出标志信号FULL为低电平 END IF; END IF;

END PROCESS P_REG ; P_DIV: PROCESS(FULL)

VARIABLE CNT2 : STD_LOGIC; BEGIN

IF FULL'EVENT AND FULL = '1' THEN

CNT2 := NOT CNT2;--如果溢出标志信号FULL为高电平,D触发器输出取反 IF CNT2 = '1' THEN FOUT <= '1'; ELSE FOUT <= '0'; END IF; END IF;

END PROCESS P_DIV;

1

END ARCHITECTURE one; (3)分析:

根据图6-21的波形提示,分析例6-20中的各语句功能、设计原理及逻辑功能,详述进程P_REG和P_DIV的作用,并画出该程序的RTL电路图。

图6-21 当给出不同输入值D时,FOUT输出不同频率(CLK周期=50ns)

程序的RTL电路图

(4)仿真:

输入不同的CLK频率和预置值D,给出如图6-21的时序波形。 (5)实验内容1:

在实验系统上硬件验证例6-20的功能。可选实验电路模式1(参考附录图F-2);键2,键1负责输入8位预置数D(PIO7~PIO0);CLK由clock0输入,频率选65536Hz或更高(确保分频后落在音频范围);输出FOUT接扬声器(SPKER)。编译下载后进行硬件测试:改变键2,键1的输入值,可听到不同音调的声音。

提示1:目标器件选择MAX7000S系列的EPM7128SLC84-15。

提示2:引脚锁定除了参考第5章第2节内容外,具体引脚编号选定应参考“实验附注资料 附注3:万能接插口与结构图信号/与芯片引脚对照表”的“EPM7128S-PL84”栏目。 提示3:选实验电路模式1,参考“实验附注资料 附注2:实验电路结构图”的“附图2-3 实验电路结构图NO.1”栏目。

2

引脚配置:

键2(PIO7~/PIO4)、键1(PIO3~PIO0)负责输入8位预置数(D[7..0]);

CLK由clock0输入,频率选65536Hz或更高(确保分频后落在音频范围); 输出FOUT接扬声器(SPKER)。

操作:按键2、键1输入分频数据;测听扬声器声音变化。 (6)实验内容2:

将例6-20扩展成16位分频器,并给出此项设计的实用示例,如PWM的设计等。 提示4:采用例化方法,将例6-20扩展成16位分频器

例6-20扩展成16位分频器RTL电路图

16位分频器的VHDL参考程序(DVF.VHD)如下: LIBRARY IEEE;

USE IEEE.STD_LOGIC_11.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY DVF16 IS

PORT(CLK16 : IN STD_LOGIC;

D7_0 : IN STD_LOGIC_VECTOR(7 DOWNTO 0); D15_8 : IN STD_LOGIC_VECTOR(7 DOWNTO 0); FOUT16 : OUT STD_LOGIC); END ENTITY DVF16;

ARCHITECTURE one OF DVF16 IS component dvf8

PORT(CLK : IN STD_LOGIC;

D : IN STD_LOGIC_VECTOR(7 DOWNTO 0); FOUT : OUT STD_LOGIC); end component;

Signal temp:std_logic; BEGIN

U1: DVF8 PORT MAP(CLK=>CLK16,D=>D7_0,FOUT=>TEMP); U2: DVF8 PORT MAP(CLK=>TEMP, D=>D15_8,FOUT=>FOUT16); END ONE; (7)思考题:

怎样利用两个例6-20给出的模块设计一个电路,使其输出方波的正负脉宽的宽度分别由可两个8位输入数据控制? (8)实验报告:

根据以上要求,将实验项目分析、设计、仿真和测试写入实验报告。

3

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- dfix.cn 版权所有 湘ICP备2024080961号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务