EDA课程设计之乒乓球游戏机

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

分,该方就算胜了此局。

记分牌清零后,又可开始新的一局比赛
2.2.2乒乓游戏机设计思路
根据乒乓游戏机功能要求,可以分成四个模块来实现,其中corna模块为整个程序的核心,它实现了整个系统的全部逻辑功能;模块CH41A在数码的片选信号时,送出相应的数据;模块sel产生数码管的片选信号;模块disp是7段译码器。

2.3乒乓球各模块的设计
2.3.1 控制模块的设计
模块CORNA 分两个进程,第一个进程实现逻辑功能,第二个进程将整数的记分转换为十进制数,便于译码显示。

AF,AJ,BF,BJ分别为a方发球键和接球键,b方发球键和接球键,shift表示球所在的位置。

其vhdl程序描述如下:
图1 模块CORNA1
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY CORNAL IS
awIN<=t1;
bwIN<=t2;
END PROCESS;
END behav;
2.3.2 送数据模块的设计
送数据模块CH41A的vhdl程序描述如下:
图2 模块CH41A
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY CH41A IS
PORT(sel:IN STD_LOGIC_VECTOR(2 DOWNTO 0);
D0,d1,d2,d3:IN STD_LOGIC_VECTOR(3 DOWNTO 0);
Q:OUT STD_LOGIC_VECTOR(3 DOWNTO 0));
END CH41A;
ARCHITECTURE behave OF CH41A IS
BEGIN
PROCESS(sel)
BEGIN
CASE sel IS
WHEN”100”=>q<=d0;
WHEN”101”=>q<=d1;
WHEN”000”=>q<=d2;
WHEN others=>q<=d3;
END CASE;
END PROCESS;
END behav;
2.3.3 产生数码管片选信号模块的设计
产生数码管片选信号模块sel的vhdl程序描述如下:
图3数码管片选信号模块sel LIBRARY IEEE;
USE IEEE.S TD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY sel IS
PORT(clk:IN STD_LOGIC;
sell:OUT STD_LOGIC_VECTOR(2 DOWNTO 0)); END sel;
ARCHITECTURE behav OF sel IS
BEGIN
PROCESS(clk)
VARIABLE tmp:STD_LOGIC_VECTOR(2 DOWNTO 0);
BEGIN
IF clk’event and clk=’1’ THEN
IF tmp=”000” THEN
t mp:=”001”;
ELSIF tmp=”001” THEN
t mp:=”100”;
ELSIF t mp=”100” THEN
t mp:=”101”;
ELSIF tmp=”101” THEN
t mp:=”000”;
END IF;
END IF;
sell<=tmp;
END PROCESS;
END behav;
2.3.4 7段译码器模块的设计
7段译码器模块disp的vhdl的程序描述如下:
图4 7段译码器模块disp LIBRARY IEEE;
USE IEEE.S TD_LOGIC_1164.ALL;
ENTITY disp IS
PORT(d:IN STD_LOGIC_VECTOR(3 DOWNTO 0);
Q:OUT STD_LOGIC_VECTOR(6 DOWNTO 0)); END disp;
ARCHITECTURE behav OF disp IS
BEGIN
PROCESS(d)
BEGIN
CASE d IS
WHEN”0000”=>q<=”0111111”;
WHEN”0001”=>q<=”0000110”;
WHEN”0010”=>q<=”1011011”;
WHEN”0011”=>q<=”1001111”;
WHEN”0100”=>q<=”1100110”;
WHEN”0101”=>q<=”1101101”;
WHEN”0110”=>q<=”1111101”;
WHEN”0111”=>q<=”0100111”;
WHEN”1000”=>q<=”1111111”;
WHEN others=>q<=”1101111”;
END CASE;
END PROCESS;
END behav;
3.设计结果与分析
3.1系统的波形仿真
图5所示为A方发球,在恰当的时候B方接到球,当球回到A方时,A方又接到球,但B方再也没有接到球的仿真波形。

图5乒乓球仿真波形一
图6所示为A方两次发球,B方没有接到球,A方得到2分的仿真波形图
图6乒乓球仿真波形二
图7所示为A方发球,B方提前击球的情况,此时,A方得一分。

图中还显示了A方发球,B方在规定的时刻没有接到球的情况,此时,A方又得一分。

图7乒乓球仿真波形三
图4所示为A方得分增加到11分的情况,此时awin输出高电平,输出分数保持不变。

当清零信号按下时,得分清为零,awin输出恢复低电平,又可以开始新的一局比赛。

图8乒乓球仿真波形四
3.2乒乓游戏机顶层电路图
图9 乒乓游戏机电路图
4.设计体会
通过本课程的学习,能够掌握EDA的基础知识,进一步加深了对EDA的了解,让我对它有了更加浓厚的兴趣。

特别是当每一个子模块编写调试成功时,心里特别的开心。

但是在编写顶层文件的程序时,遇到了不少问题,特别是各元件之间的连接,以及信号的定义,总是有错误,在细心的检查下,终于找出了错误和警告,排除困难后,程序编译就通过了,心里终于舒了一口气。

在波形仿真时,也能仿真正确了。

课程设计是培养学生综合运用所学知识,发现、提出、分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程软件应用十分广泛,因此学会应用此仿真软件是十分必要的。

回顾起此次电路的课程设计,从选题到定稿,从理论到实践,可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。

通过这次课程设计懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。

同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,通过这次课程设计之后,一定把以前所学过的知识重新温故。

有时间多看看各方面书籍,拓宽知识面,不断充实自我。

不管怎么说这次的课程设计总算是顺利的完成了,了解了软件的用途。

不过最后还得经过老师的审查,在老师的指导下弥补自己的不足,这样,这次的课程设计才会画上一个完美的句点。

5.参考文献。

相关文档
最新文档