《基于VHDL的乒乓球游戏机设计--课程设计说明书》由会员分享,可在线阅读,更多相关《基于VHDL的乒乓球游戏机设计--课程设计说明书(59页珍藏版)》请在金锄头文库上搜索。
1、乒乓球游戏机1. 课程设计的目的 ?EDA技术?是电子信息科学与技术专业学生在电子技术实验技能方面综合性质的实验训练课程,其目的和任务是通过一周的时间,让学生掌握EDA的根本方法,熟悉一种EDA软件VHDL,并能利用EDA软件设计一个电子技术综合问题,为以后进行工程实际问题的研究打下设计根底。2.1 EDA、VHDL简介 EDA是指以计算机为工作平台,融合了应用电子技术、计算机技术、智能化技术的最新成果而开发出的电子CAD通用软件包,它根据硬件描述语言HDL完成的设计文件,自动完成逻辑编译、化简、分割、综合、优化、布局布线及仿真,直至完成对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。目
2、前EDA主要辅助进行三个方面的设计工作:IC设计、电子电路设计和PCB设计。没有EDA技术的支持,想要完成超大规模集成电路的设计制造是不可想象的;反过来,生产制造技术的不断进步又必将对EDA技术提出新的要求。 VHDL语言是一种用于电路设计的高级语言。它在80年代的后期出现。最初是由美国国防部开发出来供美军用来提高设计的可靠性和缩减开发周期的一种使用范围较小的设计语言 。但是,由于它在一定程度上满足了当时的设计需求,于是他在1987年成为A I/IEEE的标准IEEE STD 1076-1987。1993年更进一步修订,变得更加完备,成为A I/IEEE的A I/IEEE STD 1076-1
3、993标准。目前,大多数的CAD厂商出品的EDA软件都兼容了这种标准。自IEEE公布了VHDL的标准版本,IEEE-1076简称87版)之后,各EDA公司相继推出了自己的VHDL设计环境,或宣布自己的设计工具可以和VHDL接口。此后VHDL在电子设计领域得到了广泛的接受,并逐步取代了原有的非标准的硬件描述语言。1993年,IEEE对VHDL进行了修订,从更高的抽象层次和系统描述能力上扩展VHDL的内容,公布了新版本的VHDL,即IEEE标准的1076-1993版本简称93版。现在,VHDL和Verilog作为IEEE的工业标准硬件描述语言,又得到众多EDA公司的支持,在电子工程领域,已成为事实
4、上的通用硬件描述语言。有专家认为,在新的世纪中,VHDL于Verilog语言将承当起大局部的数字系统设计任务。VHDL的程序结构特点是将一项工程设计,用VHDL和原理图输入进行CPLD/FPGA设计的粗略比拟:在设计中,如果采用原理图输入的设计方式是比拟直观的。你要设计的是什么,你就直接从库中调出来用就行了。这样比拟符合人们的习惯。在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其他的设计就可以直接调用这个实体。这种将设计实体分成内外局部的概念是VHDL系统设计的根本点。应用VHDL进行工程设计的优点是多方面的。1与其他的硬件描述语言相比,VHDL具有更强的行为描述能力,从而决定了他成
5、为系统设计领域最正确的硬件描述语言。强大的行为描述能力是避开具体的器件结构,从逻辑行为上描述和设计大规模电子系统的重要保证。2VHDL丰富的仿真语句和库函数,使得在任何大系统的设计早期就能查验设计系统的功能可行性,随时可对设计进行仿真模拟。3VHDL语句的行为描述能力和程序结构决定了他具有支持大规模设计的分解和已有设计的再利用功能。符合市场需求的大规模系统高效,高速的完成必须有多人甚至多个代发组共同并行工作才能实现。4对于用VHDL完成的一个确定的设计,可以利用EDA工具进行逻辑综合和优化,并自动的把VHDL描述设计转变成门级网表。5VHDL对设计的描述具有相对独立性,设计者可以不懂硬件的结构
6、,也不必管理最终设计实现的目标器件是什么,而进行独立的设计。乒乓游戏机的功能两人乒乓游戏机能够模拟乒乓球比赛的根本过程和规那么,并能自动裁判和记分。乒乓游戏机是用8个发光二极管代表乒乓球台,中间两个发光二极管兼做乒乓球网,用点亮的发光二极管按一定的方向移动来表示球的运动。在游戏机的两侧各设置两个开关,一个是发球开关S1a,S1b,另一个是击球开关S2a,S2b。甲乙两人按乒乓球比赛的规那么来操作开关。当甲方按动发球开关S1a时,靠近甲方的第一盏灯亮,然后二极管由甲向乙依次点亮,代表乒乓球在移动。当球过网后,按设计者规定的球位乙方就可以击球。假设乙方提前击球或者没有击着球,那么判乙方失分,甲方记
7、分牌自动加分。然后重新发球,比赛继续进行。比赛一直进行到一方记分到11分,该局结束,记分牌清零,可以开始新的一局比赛。具体功能如下:(1)使用乒乓游戏机的甲乙双方各在不同的位置发球或击球。(2)乒乓球的位置和移动方向由灯亮及依次点燃的方向决定,球移动的速度为移动一位。游戏者根据球的位置发出相应的动作,提前击球或者出界均判失分。(3)比赛用11分为一局来进行,甲乙双方都应设置各自的记分牌,任何一方先记满11分,该方就算胜了此局。记分牌清零后,又可开始新的一局比赛根据乒乓游戏机功能要求,可以分成四个模块来实现,其中corna模块为整个程序的核心,它实现了整个系统的全部逻辑功能;模块CH41A在数码
8、的片选信号时,送出相应的数据;模块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 PORT(clr,af,
9、aj,bf,bj,clk:IN STD_LOGIC; shift:OUT STD_LOGIC_VECTOR(7 DOWNTO 0); ah,al,bh,bl:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); awin,bwin:OUT STD_LOGIC); END CORNAL; ARCHITECTURE bhv OF CORNAL IS SIGNAL amark,bmark:INTEGER; BEGIN PROCESS(clr,clk) VARIABLE a,b:STD_LOGIC; VARIABLE she:STD_LOGIC_VECTOR(7 DOWNTO 0); B
10、EGIN IF clr=0THEN a:=0; b:=0; she:=00000000; amark=0; bmark8 THEN IF bj=0THEN amark=amark+1; a:=0; b:=0; she:=00000000; ELSE she:=0&she(7 DOWNTO 1); END IF; ELSIF she=0 THEN amark=amark+1; a:=0; b:=0; ELSE IF bj=0THEN a:=0; b:=1; ELSE she:=0&she(7 DOWNTO 1); END IF; END IF; ELSIF a=0 and b=1 THEN IF
11、 she16 and she=0 THEN IF aj=0THEN bmark=bmark+1; a:=0; b:=0; she:=00000000; ELSE she:=she(6 DOWNTO 0)&0; END IF; ELSIF she=0 THEN bmark=bmark+1; a:=0; b:=0; ELSE IF aj=0THEN a:=1; b:=0; ELSE she:=she(6 DOWNTO 0)&0; END IF; END IF; END IF; END IF; shift=she; END PROCESS; PROCESS(clk,clr,amark,bmark) VARIABLE aha,ala,bha,bla:STD_LOGIC_VECTOR(3 DOWNTO 0); VARIABLE tmp1,tmp2:INTEGER; VARIABLE t1,t2:STD_LOGIC; BEGIN IF clr=0THEN