实验5:数控分频器的设计
1201410223 潘震麟
一、实验目的
通过按键1、2控制产生不同分频,进而在扬声器上产生不同的音频。
二、实验仪器与器材
计算机1台,GW48-PK2S 实验箱1台,Quartus Ⅱ 9.0 1套。
三、实验内容
1. 设计一个数控分频器
2. 利用VHDL 语言输入进行设计并进行仿真果并进行硬件下载验证。
四、实验设计原理
数控分频器的功能就是当在输入端给定不同输入数据时,将对输入的时钟信号有不同的分频比,数控分频器就是用计数值可并行预置的加法计数器设计完成的,方法是将计数溢出位与预置数加载输入信号相接即可,其基本的框图如图1所示。
五、实验步骤
(1)建立工作库目录文件夹为E:/DVF/。
(2)选择目标器件。Acex1k —EP1K100QC208-3。
(3)输入源程序。打开Quartus II,选择菜单File →New 命令。然后在VHDL 文本编辑框窗中输入n 位乘法器的VHDL 源代码DVF.vhd 。
(4)文件存盘。选择File →Save As 命令,找到已设立的文件夹E:/DVF/,VHDL 文件的存盘文件名应与实体名一致,均为DVF.vhd 。
(5)编译和排错。
(6)仿真与分析。
七、源程序与原理
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.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;
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
FULL
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
END IF;
END IF;
END PROCESS P_DIV ;
END;
八、仿真分析
九、硬件逻辑验证
选择实验电路结构图
NO.1:
87654321CLOCK9
CLOCK5
CLOCK2
扬声器
码器码器码器码器SPEAKER CLOCK0
PIO19-PIO16
PIO23-PIO20
PIO27-PIO24
PIO31-PIO28
D2D1FPGA/CPLD目标芯片
PIO39-PIO32
PIO49
PIO48
PIO15-PIO12
PIO11-PIO8
PIO7-PIO4
PIO3-PIO0
HEX
键8键7键6键5键4HEX 键3HEX 键2HEX 键1验电路结构图NO.1
引脚的锁定:
十.心得总结
总的来说,这次设计的数控分频器还是比较成功的。通过实验我初步掌握了分频计数器的设计原理我基本上掌握了实验的步骤,能够脱离课本操作,但熟练程度有待于提高。在硬件下载时遇到了问题,我们做了很多尝试,比如换试验箱,替换管脚等都无法成功。分频计数器输入的源程序是在老师的帮助下完成的,我认为我们应养成独立思索的好习惯,下次我会尝试自己编写程序。一次生,二回熟。我相信只要我敢于编程,勤于编程,就一定会有进步。
实验5:数控分频器的设计
1201410223 潘震麟
一、实验目的
通过按键1、2控制产生不同分频,进而在扬声器上产生不同的音频。
二、实验仪器与器材
计算机1台,GW48-PK2S 实验箱1台,Quartus Ⅱ 9.0 1套。
三、实验内容
1. 设计一个数控分频器
2. 利用VHDL 语言输入进行设计并进行仿真果并进行硬件下载验证。
四、实验设计原理
数控分频器的功能就是当在输入端给定不同输入数据时,将对输入的时钟信号有不同的分频比,数控分频器就是用计数值可并行预置的加法计数器设计完成的,方法是将计数溢出位与预置数加载输入信号相接即可,其基本的框图如图1所示。
五、实验步骤
(1)建立工作库目录文件夹为E:/DVF/。
(2)选择目标器件。Acex1k —EP1K100QC208-3。
(3)输入源程序。打开Quartus II,选择菜单File →New 命令。然后在VHDL 文本编辑框窗中输入n 位乘法器的VHDL 源代码DVF.vhd 。
(4)文件存盘。选择File →Save As 命令,找到已设立的文件夹E:/DVF/,VHDL 文件的存盘文件名应与实体名一致,均为DVF.vhd 。
(5)编译和排错。
(6)仿真与分析。
七、源程序与原理
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.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;
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
FULL
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
END IF;
END IF;
END PROCESS P_DIV ;
END;
八、仿真分析
九、硬件逻辑验证
选择实验电路结构图
NO.1:
87654321CLOCK9
CLOCK5
CLOCK2
扬声器
码器码器码器码器SPEAKER CLOCK0
PIO19-PIO16
PIO23-PIO20
PIO27-PIO24
PIO31-PIO28
D2D1FPGA/CPLD目标芯片
PIO39-PIO32
PIO49
PIO48
PIO15-PIO12
PIO11-PIO8
PIO7-PIO4
PIO3-PIO0
HEX
键8键7键6键5键4HEX 键3HEX 键2HEX 键1验电路结构图NO.1
引脚的锁定:
十.心得总结
总的来说,这次设计的数控分频器还是比较成功的。通过实验我初步掌握了分频计数器的设计原理我基本上掌握了实验的步骤,能够脱离课本操作,但熟练程度有待于提高。在硬件下载时遇到了问题,我们做了很多尝试,比如换试验箱,替换管脚等都无法成功。分频计数器输入的源程序是在老师的帮助下完成的,我认为我们应养成独立思索的好习惯,下次我会尝试自己编写程序。一次生,二回熟。我相信只要我敢于编程,勤于编程,就一定会有进步。