异步清零
指导教师批阅成绩
指导教师签字:
年 月 日
if load='0' then cqi:=data;else
if cqi<15 then cqi:=cqi+1;
else cqi:=(others =>'0');
end if;
end if;
end if;
end if;
if cqi>9 then cout<='1';--输出进位信号
else cout<='0';
实验报告
课程名称EDA技术应用
专 业电子信息工程
班 级
学 号
学 生 姓 名
实验报告
实验名称
含异步清零和同步使能的加法计数器
实验时间
学生学号
学生姓名
同组人员
专业班级
实验类型
设计性
指导老师
实验地点
学时
一、实验目的
1.了解二进制计数器的工作原理。
2.进一步熟悉QUARTUSII软件的使用方法和VHDL输入。
3.时钟在编程过程中的作用。
二、实验设备
1.PC机一台;
2.Altera Blaster下载器一根;
3.KHF-5实验箱一台。
三、实验原理
二进制计数器是应用中最多、功能最全的计数器之一,含异步清零和同步使能的加法计数器的具体工作过程如下:在时钟上升沿的情况下,检测使能端是否允许计数,如果允许计数(定义使能端高电平有效)则开始计数,否则一直检测使能端信号。在计数过程中再检测复位信号是否有效(低电平有效),当复位信号起作用时,使计数值清零,继续进行检测和计数。
9.实验完毕,关闭电源,整理实验器材。
六、实验结果
程序:
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all;
--------------------------------------------------------------------
variable cqi : std_logic_vector(3 downto 0);
begin
if ret='0' then cqi:=(others =>'0');--计数器异步复位
elsif clk'event and clk='1' then--检测时钟上升沿
if en='1' then--检测是否允许计数(同步使能)
end if;
cq<=cqi;--计数值向端口输出
end process;
end behavHale Waihona Puke ;时序图:引脚配置图:
实验结果:
在时钟信号的作用下,通过使能端和复位信号来完成加法计数器的计数。实验中时钟信号使用数字时钟源模块的1HZ信号,用一位拨动开关SW1表示使能端信号,用复位开关S1表示复位信号,用LED模块的D1~D5来表示计数的二进制结果。实验LED亮表示对应的位为‘1’,LED灭表示对应的位为‘0’。
四、实验内容
本实验要求完成的任务是在时钟信号的作用下,通过使能端和复位信号来完成加法计数器的计数。实验中时钟信号使用数字时钟源模块的1HZ信号,用一位拨动开关SW1表示使能端信号,用复位开关S1表示复位信号,用LED模块的D1~D5来表示计数的二进制结果。实验LED亮表示对应的位为‘1’,LED灭表示对应的位为‘0’。通过输入不同的值模拟计数器的工作时序,观察计数的结果。实验箱中的拨动开关与FPGA的接口电路,LED灯与FPGA的接口电路以及按键开关模块与FPGA的管脚连接在《用户手册》做了详细说明。
五、实验过程
1.打开QUARTUSII软件,新建一个工程。
2.建完工程之后,再新建一个VHDL File,打开VHDL编辑器对话框。
3.按照实验原理和自己的想法,在VHDL编辑窗口编写VHDL程序,用户可参照光盘中提供的示例程序。
4.编写完VHDL程序后,保存起来。方法同实验一。
5.对自己编写的VHDL程序进行编译并仿真,对程序的错误进行修改。
七、实验分析与总结
通过本次试验的学习,更加了解了二进制的工作原理,能够更熟练的使用QUARTUSII软件能够进行基本的VHDL语句的输入,了解了什么是时钟信号,基本掌握了含异步清零和同步使能的加法计数器的使用,通过使能端和复位信号来完成加法计数器的计数,能够顺利的解决实验过程中遇到的问题,比之前有了较大进步。
entity cnt11 is
port( clk,ret,en,load : in std_logic; --定义时钟、异步复位、同步使能信号
data : in std_logic_vector(3 downto 0); --计数结果
cq : out std_logic_vector(3 downto 0); --计数结果
cout : out std_logic --进位信号
);
end cnt11;
--------------------------------------------------------------------
architecture behave of cnt11 is
begin
process(clk,ret,en)
6.编译仿真无误后,依照《用户手册》进行管脚分配。分配完成后,再进行全编译一次,以使管脚分配生效。
7.用下载电缆通过JTAG口将对应的sof文件加载到FPGA中。
8.将数字信号源F的时钟选择为1HZ,使拨动开关SW1置为高电平(使拨动开关向上),观察四位发光管D1~D4的亮灭变化,以及D5(进位信号)的变化情况。当复位键(底板上的按键开关S1键)按下后,计数是否被清零。拨动开关SW1置为低电平(拨动开关向下)观察加法器的工作情况。记录实验现象是否与自己的编程思想一致。