VHDL课程设计实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
湖南科技大学信息与电气
工程学院
《课题名称》
课程设计报告
题目:循环彩灯控制器
两人抢答器
数字显示秒表
专业:电子信息工程
班级:二
姓名:
学号:
目录
一、课程设计的目的……………………………………………………
1.1设计目的…………………………………………………………………
1.2设计要求…………………………………………………………………
二、设计方案的论证……………………………………………………
2.1循环彩灯控制器设计……………………………………………………
2.2两人抢答器设计…………………………………………………………
2.3数字显示的秒表设计……………………………………………………
三、设计仿真及结果分析………………………………………………
3.1循环彩灯控制器…………………………………………………………
3.2两人抢答器………………………………………………………………
3.3数字显示的秒表…………………………………………………………
四、设计及仿真中的体会………………………………………………
五、对本次课程设计的体会和建议……………………………………
六、参考文献……………………………………………………………附录………………………………………………………………………
课程设计任务书题目
设计时间
设计目的:
总体方案实现:
指导教师评语:
一课程设计的目的
1.1设计目的
本课程设计的目的是熟练掌握相关软件的使用和操作。能对VHDL语言程序进行编译,调试,以及通过计算机仿真,得到正确的仿真波形图,并根据所得仿真波形图分析判断并改进所设计的电路。在成功掌握软件操作基础上,将所数字电路的基础课知识与VHDL语言的应用型知识结合起来并与实际设计,操作联系起来,即“理论联系实际”。深入了解VHDL语言的作用与价值,对用硬件语言设计一个电路系统开始具备一个较完整的思路与较专业的经验。对EDA技术有初步的认识,并开始对EDA技术的开发创新有初步的理解。
1.1设计要求
为了使设计达到应有的效果,使学生充分掌握相应的软件操作使用,VHDL语言编程,数字逻辑电路设计的方法和思路,鼓励学生独立思考,自主研究。本课程设计要求达到如下目的:
1.使学生熟练掌握相关软件的使用,操作。能对VHDL语言程序进行编译,调试,以及通过计算机仿真,得到正确的仿真波形图,并根据所得仿真波形图分析判
断并改进所设计的电路。
2.在成功掌握软件操作基础上,让学生将所数字电路的基础课知识与VHDL语言的应用型知识结合起来并与实际设计,操作联系起来,即“理论联系实际”。要求
学生自主设计电路,编写程序,鼓励新思路,新方法,新观点。
3.深入了解VHDL语言的作用与价值,对用硬件语言设计一个电路系统开始具备一个较完整的思路与较专业的经验。对EDA技术有初步的认识,并开始对EDA
技术的开发创新有初步的理解。
踏实的完成此次课程设计的教学将为学生进一步深入了解电子产业的发展与内容,积极投身于工程技术的开发与研究特别是EDA技术的发展奠定一定的基础。
二、设计方案的论证
2.1循环彩灯控制器设计
方案一:采用if语句,对数字进行累加,取满足条件的数值,点亮相应彩灯。
方案二:使用case语句,对数字累加,取满足条件的数值,点亮相应彩灯。论证:if为顺序执行语句,case为并发执行语句。使用if语句,对数据区分明
显。Case并发执行,判断及时。但使用case思路清晰,易于实现,相比if语句简洁,可靠性更高。
真值表
2.2两人抢答器设计
方案一:使用if语句,逐个判断选手状态,输出相应结果
方案二:使用if语句,同时判断两个选手输入状态
论证:实际上,两人的反应不可能完全一致,因此使用if语句可以完成判断,且时钟频率高,能够及时判断。使用case语句,同时判断,倒是会出现等待结果出现的状况,造成判断失误。
真值表
2.3数字秒表的显示设计
方案:
数字秒表的计时模块,其总体功能如下:数字秒表的计时范围是0秒到59.9秒,显示的最长时间为59秒9。数字秒表的计时精度是100ms, 所以计数器可以由二个十进制计数器和一个六进制计数器构成,其中毫秒位,十秒位,秒位采用十进制计数器,十秒位采用六进制计数器。复位开关可以在任何情况下使用,即便在计时过程中,只要按一下复位开关,计时器就清零,并做好下次计时的准备。具有启/停开关,即按一下启/停开关,启动计时器开始计时,再按一下启/停开关则停止计时。
论证:
三、设计仿真及结果分析与程序
3.1设计循环彩灯控制器
程序:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY caideng IS
PORT(clk,clr:IN STD_LOGIC;
red,green,yellow:OUT STD_LOGIC);
END ENTITY caideng;
ARCHITECTURE example OF caideng IS SIGNAL dout:STD_LOGIC_VECTOR(2 DOWNTO 0); SIGNAL m:STD_LOGIC_VECTOR(2 DOWNTO 0); BEGIN
red<=dout(2);
green<=dout(1);
yellow<=dout(0);
PROCESS(clk) IS
BEGIN
IF(clr='1') THEN
m<="001";
ELSIF(clk'EVENT AND clk='1') THEN
IF(m="110") THEN
m<="001";
ELSE
m<=m+1;
END IF;