资源描述
eda数字逻辑拔河游戏机设计
湖南涉外经济学院
课程设计报告
课程名称:EDA技术与应用
报告题目:拔河游戏机设计
学生姓名:
所在学院:
专业班级:
学生学号:
指导教师:
2016年12月19日
课程设计任务书
报告题目
拔河游戏机设计
完成时间
学生姓名
专业班级
指导教师
职称
总体设计要求和技术要点
设计一个拔河游戏机设计,要求如下:
(1)设计一个能进行拔河游戏的电路。
(2)电路使用7个发光二极管,开机后只有中间一个发亮,此即拔河的中心点。
(3)游戏双方各持一个按钮,迅速地、不断地按动,产生脉冲,谁按得快,亮点就向谁的方向移动,每按一次,亮点移动一次。
(4)亮点移到任一方终端二极管时,这一方就获胜,此时双方按钮均无作用,输出保持,只有复位后才使亮点恢复到中心。
(5)用数码管显示获胜者的盘数。
(6)按《湖南涉外经济学院课程设计管理办法》要求提交课程设计报告。
工作内容与时间进度安排
第15周:
周1---周3 :立题、论证方案设计
周4---周5 :预答辩
第16周:
周1---周3 :仿真实验7
周4---周5 :验收答辩
课程设计成果
1.与设计内容对应的软件程序
2.课程设计总结报告
摘要
电子拔河游戏机是一种能容纳甲乙双方参赛游戏电路。由一排发光二极管表示拔河的“电子绳”。由甲乙双方通过按纽开关使发光二极管向一方的终点延伸,当延伸到某方的最后一个发光二极管时, 则该方获胜,连续比赛多局以定胜负。
关键词:拔河;脉冲;数显;二极管,时钟
目录
一、摘要…………………………………………………………………………4
二、基本思想………………………………………………………………6
三、设计框图………………………………………………………………………..6
四、设计步骤和调试过程………………………………………………………7
1:总体设计电路………………………………………………………………..7
2.模块设计和相应模块程序……………………………………………………7
3.仿真与仿真结果分析……………………………………………………….11
4、实验调试结果……………………………………………………………..11
五、学生情况统计表……………………………………………………………….12
六、结论与心得……………………………………………………………………13
七、参考文献……………………………………………………………………13
八、教师评语与设计成绩………………………………………… ………………..14
一、基本思想
二十世纪后半期,通过EDA技术对大规模可编程逻辑器件编程,产品得到了大力的发展,这种方法不仅成本低、周期短、可靠性高,而且可随时在系统中修改其逻辑功能。这里采用VHDL语言来设计拔河游戏机,突出了其作为硬件描述,本设计的基本原理就是采用VHDL语言设计出拔河游戏机的原理程序,写入程序最后模拟仿真即可。拔河游戏机是一种能容纳甲乙双方参赛游戏电路。由一排发光二极管表示拔河的“电子绳”。本课题所设计的拔河游戏机由9个发光二极管排列成一行,开机之后只有中间一个发光二极管亮,以此作为拔河的中心线,游戏双方各持一个按键,迅速地、不断地按动产生脉冲,谁按得快,亮点就向哪方移动,每按一次,亮点移动一次。移到任一方终端指示灯点亮,这一方就获胜,此时双方按键均无作用,输出保持,只有经裁判复位后才使亮点恢复到中心线。当一局比赛结束后,由点亮该终点灯的信号使电路封锁加减脉冲信号的作用.即实现电路自锁,使加减脉冲无效。同时,使计分电路自动加分。控制电路部分应能控制由振荡器产生的脉冲信号进入计数器的加减脉冲的输入端,其进入方向则由参赛双方的按键信号决定。 由设计内容可知,首先需要一个十进制的计数器,用于对双方按钮的次数计数,并通过译码器显示在数码管上。设计要求用50MHz的频率,而设计用到的是1K Hz的频率,所以要设计一个程序进行分频。其次,显视控制部分设计要求在发光二极管上显示游戏状态,双方每按十次,亮点向先按十次移动一次,对脉冲进行计数,每十次移一位。需接入一个清零端 ,用于复位。再次,运用VHDL程序语言进行各个模块的程序编写,控制电路的正常运行。最后,将以上程序组装起来,就可得到所需要的拔河游戏机。
二、设计框图
甲方
甲方胜利
译码器
可逆计数器
LED中心线
乙方胜利
控制电路
乙方
整形电路
显示计数器
二、设计步骤和调试过程
1.总原理图
2.模块设计和相应模块程序
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY bahe IS
PORT(A,B,RST,CLK:IN STD_LOGIC;
DOUT:OUT STD_LOGIC_VECTOR(6 DOWNTO 0));
END bahe;
ARCHITECTURE ONE OF bahe IS
SIGNAL BT:INTEGER RANGE 0 TO 8;
SIGNAL P:INTEGER RANGE 0 TO 6:=3;
SIGNAL C:STD_LOGIC;
SIGNAL D:STD_LOGIC;
SIGNAL DOUT1:STD_LOGIC;
SIGNAL DOUT2:STD_LOGIC;
BEGIN
PROCESS(C)
VARIABLE Q:INTEGER RANGE 0 TO 4;
BEGIN
IF CLK'EVENT AND CLK='1' THEN
IF A='1' THEN
Q:=Q+1;
END IF;
END IF;
IF(Q=0) THEN
DOUT1<='0';
END IF;
IF(Q=1) THEN
DOUT1<='0';
END IF;
IF(Q=2) THEN
DOUT1<='0';
END IF;
IF(Q=3) THEN
DOUT1<='0';
END IF;
IF(Q=4) THEN
DOUT1<='1';Q:=0;
END IF;
END PROCESS;
PROCESS(C)
VARIABLE Q:INTEGER RANGE 0 TO 4;
BEGIN
IF C='1' THEN
IF B='1' THEN
Q:=Q+1;
END IF;
END IF;
IF(Q=0) THEN
DOUT2<='0';
END IF;
IF(Q=1) THEN
DOUT2<='0';
END IF;
IF(Q=2) THEN
DOUT2<='0';
END IF;
IF(Q=3) THEN
DOUT2<='0';
END IF;
IF(Q=4) THEN
DOUT2<='1';Q:=0;
END IF;
END PROCESS;
PROCESS(CLK)
VARIABLE Q:INTEGER RANGE 0 TO 50;
BEGIN
IF CLK'EVENT AND CLK='1' THEN
IF Q<50 THEN Q:=Q+1;C<='0';
ELSE Q:=0;C<='1';
END IF;
END IF;
END PROCESS;
PROCESS(A,B,C)
BEGIN
IF RST='1'THEN
P<=3;D<='1';
ELSE
IF D='1' THEN
IF DOUT1='1' THEN
IF C='1' THEN
IF A='1' THEN
IF P<6 THEN
P<=P+1;
ELSE
D<='0';
END IF;
END IF;
END IF;
END IF;
IF D='1' THEN
IF C='1' THEN
IF DOUT2='1' THEN
IF P>0 THEN
P<=P+1;
ELSE
D<='0';
END IF;
END IF;
END IF;
END IF;
END IF;
END IF;
CASE P IS
WHEN 0 => DOUT <="1000000";
WHEN 1 => DOUT <="0100000";
WHEN 2 => DOUT <="0010000";
WHEN 3 => DOUT <="0001000";
WHEN 4 => DOUT <="0000100";
WHEN 5 => DOUT <="0000010";
WHEN 6 => DOUT <="0000001";
WHEN OTHERS =>D<='0';
END CASE ;
END PROCESS;
END ONE ;
3.仿真与仿真结果分析
1)当a输入的频率大于b时,可观察到led:低电平有规则的向左移动。即向a方向移动,符合设计要求。波形如下图1。
仿真图1
2)改变输入a和b的大小,b的输入频率大于a,得到的波形如下,由波形图可知低电平向右边移动,即向b方向移动,符合设计要求,波形如图2
仿真图2
4、实验调试结果
进行输入,看拔河线是否显示,结果是否显示正确
五、结论与心得
一开始接触这个课题的时候,不知道怎么下手,通过老师的讲解以与查找资料基本了解了拔河游戏机的设计原理。整个程序由以下几部分组成,计数器的设计与分析,扫描显视控制和分频器的设计与分析,拔河灯显示控制部分的设计与分析,游戏机的组装与分析。将程序设计完后进行程序分析、仿真分析、硬件测试、调试。将整个程序分成几个小程序后思路明显好多了,几个程序都是以前做过差不多的,只需稍加修改应该就可以应用。请教老师,指点后对每个小程序单独进行编译,这样也容易找到错误与时修改。当将几个小程序的错误修改后,在进行整个程序的编译时没出很大的差错。程序没问题了,接下来进行仿真波形,创建了仿真波形文件,选择了仿真的引脚并对input引脚付初值后进行仿真,接下来进行下载到sopc开发板进行测试。基本符合设计要求,开始7个led灯只有中间的灯亮,选手a和b,分别按十次中间的led灯就向按键方移动一位,直到终端灯亮时结束,此时双方按钮均被锁住,清零后可重新开始。
通过这次课程设计,我更加感到理论和实际之间的差异很大。我也越来越强烈地感到要掌握一项技术,唯一的办法也是最好的办法就是实践。只有通过实践才能将书本上的知识应用,也只有实践才能发现很多问题,真正掌握知识,学以致用。虽然遇到的问题很多,但是同时得到很多有用的经验。这些对于以后的学习和工作都有很大的帮助。
六、参考文献
[1] 潘松著.EDA技术实用教程(第二版). 北京:科学出版社,2005.
[2] 康华光主编.电子技术基础 模拟部分. 北京:高教出版社,2006.
[3] 阎石主编.数字电子技术基础. 北京:高教出版社,2003.
[4] 朱正伟,EDA技术与应用[M],北京:清华大学出版社,2005
[5] 潘松,VHDL实用教程[M],成都:电子科技大学出版社,2001
教师评语与设计成绩
教师评语:
课程设计成绩:
指导教师:(签名)
日期:年月日
14 / 14
展开阅读全文