EDA课设乒乓游戏机
数字电子技术实验报告-双人2维乒乓球游戏机

一、实验目的为了让EDA实验更加具有趣味性,在实验要求中一维乒乓球游戏机的启发下,本实验设计了一个二维乒乓球游戏机。
以两排灯模拟乒乓球桌的两方,以两排按键模拟不同的击球位置,同时可以将得分显示在数码管上以判定胜负。
二、设计思路1.由计数器的不停计数实现随机数(接高频时钟信号)2.一方按下发球待对方的提示灯亮后抬起3.对方灯亮一小段时间后灭4.在灯灭之前对方按下相应位置则判定击球成功并在发球方随机位置亮灯5.直至一方未击中球或者犯规则给对方加一分整个电路的设计分为以上3大部分。
防颤抖部分消除按键抖动;两个击球器件反馈连接构成击球部分,击球部分又分为四个小部分;计分部分接受击球部分产生的得分信号来为双方计分并显示在数码管上。
三、设计方案1.防颤抖:按键会产生不必要的抖动,即在一个时钟周期内产生多个脉冲信号导致计分错误。
消除抖动的方案就是接收到脉冲后先不直接输出,而是等过了一小段时间后判断是否与这段时间前的状态相同,如果相同则说明是确实是按键输入,否则就说明是抖动。
根据这个原理,用一个D触发器和一个与门就可得到这种效果。
2.击球部分:(1)击球判定用对方将球击回的位置信号与当前输入的击球位置用与门连接则可判断是否击中来球。
为了保持信号状态防止意外发生,在击球后的信号用D 触发器储存起来。
(2)对方得分信号产生此部分是将击球信号与发球信号用逻辑连接起来发球键不能与击球键同时按下,开始设计的时候是直接将发球与击球键用或门连接。
但是这样会出现一发球便使对方得分的情况出现,因此改为这种设计,可以有效的避免出现上述情况。
此部分是判定得分的主要部分。
由于多个击球键同时按下的犯规使对方得分和按错击球键使对方得分其实是同一种情况,即击球位置与亮灯位置不同导致的。
因此将所有的击球信号与接球信号用异或门连接即输出了使对方得分的信号。
此信号在接球灯灭时产生,因此是时钟下降沿信号。
将上述信号与时钟下降沿用与门连接即得。
(3)伪随机位置产生由于需要七个灯来显示不同的击球位置,因此采用一个模7的计数器接高频时钟信号后连接译码器。
eda课程设计30个题目

1数字频率计1)设计一个能测量方波信号的频率的频率计。
2)测量的频率范围是0 999999Hz。
3)结果用十进制数显示。
2乒乓球游戏机1)用8个发光二极管表示球;用两个按钮分别表示甲乙两个球员的球拍2)一方发球后,球以固定速度向另一方运动(发光二极管依次电量),当球达到最后一个发光二极管时,对方击球(按下按钮)球将向相反方向运动,在其他时候击球视为犯规,给对方加1分;都犯规,各加1分;3)甲乙各有数码管计分4)裁判有一按钮,可系统初始化,每次得分后,按下一次3彩灯控制器1)设计一个彩灯控制器,使十个彩灯(LED管)能连续发出四种以上不同的显示形式(如奇数依次亮),;2)随着彩灯显示图案的变化,发出不同的音响声(可用不同频率的矩形波产生)。
4速度表1)显示汽车时速Km/h2)车轮每转一圈,有一个传感脉冲;每个脉冲代表1m的距离3)采样周期设为10S4)*要求显示到小数点后2位5)数码管显示6)*超速报警5拔河游戏机1)设计一个能进行拔河游戏的电路。
2)电路使用15个(或9个)发光二极管,开机后只有中间一个发亮,此即拔河的中心点。
3)游戏双方各持一个按钮,迅速地、不断地按动,产生脉冲,谁按得快,亮点就向谁的方向移动,每按一次,亮点移动一次。
4)亮点移到任一方终端二极管时,这一方就获胜,此时双方按钮均无作用,输出保持,只有复位后才使亮点恢复到中心。
5)*用数码管显示获胜者的盘数6 6 数字跑表1)具有暂停/启动功能2)具有重新开始功能3)用6个数码管分别显示百分秒、秒和分钟4)能计两个人跑步时间,并能选择显示77 电梯控制器1)5层电梯控制器,用5个led显示电梯行进过程,并用数码管显示电梯当前所在楼层位置,每层电梯入口处设有上楼和下楼请求按钮,按下按钮,则相应楼层的led亮2)电梯到达请求楼层,相应的请求led灯灭,电梯门打开,开门5S,电梯自动关门,继续上行(下行)3)每层设有电梯上行和下行指示灯4)能记忆电梯内部的请求信号88 篮球计分器1)具有30秒计时、显示2)可对计时器清零、置数、启动和暂停3)30秒倒计时4)两个数码管显示两队比分5)超时报警并可解除报警99电子琴1)设计一个简易电子琴;2)利用一基准脉冲产生1,2,3,。
乒乓球游戏机EDA课程设计完整版本

乒乓球游戏机EDA课程设计完整版本
本文主要介绍了一款基于FPGA可编程硬件的乒乓球游戏机的设计。
本文将重点介绍
如何利用FPGA技术来搭建可编程硬件电路,如何使用Verilog HDL语言来设计数字电路,如何使用Quartus II环境来实现复杂任务,以及如何利用FPGA来完成乒乓球游戏机的EDA课程设计。
首先,在设计乒乓球游戏机的FPGA可编程硬件系统时,最重要的是硬件架构设计,
选择固定板来作为FPGA控制器,能够有效地根据游戏需求控制其各个功能,保证游戏机
运行稳定性和可靠性。
为了满足乒乓球游戏机的需求,FPGA控制器引入Verilog HDL语言,用数字电路的方式进行设计,从而构建出模拟端口,使用I/O 端口对乒乓球系统进行控制,其内部控制器模块实现了所有的乒乓球游戏逻辑功能。
在设计主板的时候,FPGA
中实现的硬件电路会结合安装在主板上的器件,比如七段LED显示器、微型键盘、LED灯等,从而使乒乓球游戏机更加复杂,实现更多的功能。
接下来,使用Quartus II环境,实现乒乓球游戏机的EDA课程设计。
首先,在Quartus II中编写Verilog HDL语言编程,利用FPGA可编程硬件系统设计乒乓球游戏逻辑,构建出特定的模块,实现系统的功能。
其次,编写控制逻辑,运用Verilog HDL语言
编程,在FPGA硬件中得到设计的图像图案,以及搭建复杂的乒乓球游戏的系统结构,实
现乒乓球游戏的控制逻辑功能。
最后,完成了乒乓球游戏机的EDA课程设计。
EDA课程设计之乒乓球游戏机

EDA课程设计之乒乓球游戏机乒乓球是我国非常流行的一项体育运动,它既可以作为一项竞技运动,也可以作为一项休闲娱乐活动。
乒乓球游戏机是一种将乒乓球运动与电子游戏相结合的娱乐设备,通过电子屏幕和操纵杆模拟真实的乒乓球比赛,使玩家能够在室内环境中享受乒乓球运动的乐趣。
本文将从乒乓球游戏机的设计思路、功能和优势等方面进行详细介绍。
首先,乒乓球游戏机的设计思路是将真实的乒乓球比赛场景还原到电子游戏中。
通过操纵杆控制游戏中的球拍移动,并通过电子屏幕实时显示球的运动轨迹和计分情况,使玩家能够真实地感受到乒乓球比赛的紧张和刺激。
同时,乒乓球游戏机还可以根据玩家的操作水平设置不同的难度,提供多种游戏模式和关卡,使游戏更具娱乐性和挑战性。
其次,乒乓球游戏机的主要功能包括游戏模式选择、角色扮演、多人对战、即时对战等。
玩家可以根据自己的喜好选择不同的游戏模式进行游戏,例如单人模式、双人模式、联网对战模式等。
在游戏过程中,玩家可以选择不同的角色扮演,并通过不断挑战更高难度的关卡来提高自己的技术水平。
同时,乒乓球游戏机还支持多人对战和即时对战功能,玩家可以与朋友或其他玩家进行真人对战,增加游戏的互动性和竞技性。
乒乓球游戏机的优势主要体现在以下几个方面。
首先,乒乓球游戏机可以在室内环境中提供真实的乒乓球比赛体验,避免了受天气、场地等外界因素的影响。
其次,乒乓球游戏机采用电子屏幕显示球的运动轨迹和计分情况,可以实时调整比赛难度和计分规则,方便了玩家的操作和记录。
再次,乒乓球游戏机支持多种游戏模式和关卡,玩家可以根据自己的喜好选择不同的游戏方式,增加了游戏的可玩性和趣味性。
最后,乒乓球游戏机还可以通过联网对战功能,与其他玩家进行真人对战,增加了游戏的竞技性和社交性。
总之,乒乓球游戏机是一种将乒乓球运动和电子游戏相结合的娱乐设备,通过电子屏幕和操纵杆模拟真实的乒乓球比赛,使玩家能够在室内环境中享受乒乓球运动的乐趣。
它的设计思路是将真实的乒乓球比赛场景还原到电子游戏中,主要功能包括游戏模式选择、角色扮演、多人对战、即时对战等。
EDA课程设计——乒乓球比赛游戏机

《电子设计自动化(EDA)技术》课程设计报告题目: 乒乓球比赛游戏机姓名:院系:专业:学号:指导教师:完成时间: 年月日目录1 课程设计题目、内容与要求………………………………1.1 设计内容………………………………………………1.2 具体要求………………………………………………2 系统设计……………………………………………………2.1 设计思路………………………………………………2.2 系统原理(包含:框图等阐述)与设计说明等内容3 系统实现……………………………………………………注:此部分阐述具体实现,包含主要逻辑单元、模块、源代码等内容4 系统仿真……………………………………………………5 硬件验证(操作)说明……………………………………6 总结………………………………………………………7 参考书目…………………………………………………1课程设计题目、内容与要求1.1课程设计的题目乒乓球比赛游戏机1.2课程设计目的随着科学技术日益迅速的发展,数字系统已经深入到生活的各个方面。
它具有技术效果好,经济效益高,技术先进,造价较低,可靠性高,维修方便等许多优点。
使我们更加熟练掌握数字系统的设计。
对所学的专业知识有能力更好的应用在实践方面。
1.3课程设计要求(1)使用乒乓球游戏机的双方在不同位置发球或击球。
(2)乒乓球的位置和移动方向由灯亮和依次亮的方向决定。
使用者根据球的位置发出相应的动作(3)比赛用21分为一局来进行,双方设置各自的记分牌,任意一方先记满21分就获胜此局。
当记分牌清零后,开始新的一局比赛。
1.4课程设计内容设计一个由甲乙双方参赛,有裁判的三人乒乓球游戏机。
用8个(或更多个)LED排成一条直线,以中点为界,两边各代表参赛双方的位置,其中一只点亮的LED指示球的当前位置,点亮的LED依次从左到右,或从右到左,其移动的速度应能调节。
当“球”(点亮的那只LED)运动到某方的最后一位时,参赛者应能果断地按下位于自己一方的按纽开关,即表示启动球拍击球,若击中,则球向相反方向运动;若未中,球掉出桌外,则对方得一分。
乒乓球游戏机的EDA设计

乒乓球游戏机的EDA设计1.硬件设计:处理器选择:乒乓球游戏机需要支持游戏运行和实时计算,因此需要选择性能较高的处理器。
一般来说,可以选择ARM架构的处理器,比如Cortex-A系列或者Cortex-M系列。
输入输出设备:乒乓球游戏机需要支持玩家的交互操作,因此需要选择适合的输入输出设备。
常见的输入设备包括按钮、摇杆和触摸屏等,输出设备可以是显示屏和音频喇叭。
显示屏:乒乓球游戏机的显示屏需要具备较高的刷新率和低的输入延迟,以提供流畅的游戏体验。
可以选择TFTLCD显示屏或者OLED显示屏,并根据实际需求确定分辨率、尺寸和驱动方式。
音频系统:乒乓球游戏机需要提供逼真的游戏音效和背景音乐,因此需要选择适合的音频解码芯片和音频输出设备。
2.软件设计:游戏逻辑:乒乓球游戏机的游戏逻辑包括乒乓球运动轨迹计算、碰撞检测和得分计算等。
可以使用编程语言如C++或者Python来实现游戏逻辑。
界面设计:乒乓球游戏机的界面设计需要美观且易用,可以使用图形界面库如Qt或者GTK来设计游戏界面。
输入处理:乒乓球游戏机的输入处理需要对玩家的操作进行检测和解析,可以使用按键扫描或者触摸屏事件处理技术来实现输入处理。
图像渲染:乒乓球游戏机的图像渲染需要实时更新,以提供流畅的游戏画面。
可以使用OpenGL或者直接操作图形硬件来实现图像渲染。
3.电路设计:电源管理:乒乓球游戏机需要提供稳定的电源供给,可以设计一个电源管理电路来管理电池供电和充电等功能。
信号处理:乒乓球游戏机的信号处理主要包括模拟信号采集、数字信号处理和通信接口设计等。
可以使用模数转换器(ADC)和数字信号处理器(DSP)等芯片来实现。
外设接口:乒乓球游戏机需要提供外设接口来连接输入输出设备和扩展模块,可以选择串行接口(如UART、SPI或者I2C)或者并行接口来实现。
总结:乒乓球游戏机的EDA设计涉及到硬件、软件和电路设计的多个方面。
在硬件设计方面,需要选择适合的处理器、输入输出设备、显示屏和音频系统。
eda课程设计乒乓球游戏机报告
燕山大学EDA课程设计报告书题目:乒乓球游戏机姓名:曹冉王亚楠贾亚贤班级:通信工程二班学号:120104030042 120104030043 120104030044成绩:(注:此文件应以同学学号为文件名)一、设计题目及要求1.用8个发光二极管表示球;用两个按钮分别表示甲乙两个球员的球拍;2.一方发球后,球以固定速度向另一方运动(发光二极管依次点亮),当球达到最后一个发光二极管时,对方击球(按下按钮)球将向相反方向运动。
过早或过晚击球视为犯规,系统自动给对手加1分;3.甲、乙各有两个数码管计分(11分制),每两球换发一次发球方。
4.裁判有一个按钮,系统初始化和每次得分后按下一次,发球方的第一个LED会被点亮。
二、设计过程及内容(包括○1总体设计的文字描述,即由哪几个部分构成的,各个部分的功能及如何实现方法;○2主要模块比较详尽的文字描述,并配以必要的图片加以说明,但图片数量无需太多)1总体设计(1)发球权控制模块[referee]:实现由裁判员按钮控制发球且每两球换一次发球方。
本模块是由两个JK触发器设计的四进制计数器组成(2)状态控制模块[stacon]:实现根据不同情况,改变table模块中S1 S0的值,从而控制发球时的并行输入,和击球后球的移动方向。
由两个D触发器和一些组合逻辑门构成。
(3)球台模块[table]:实现发球时的并行输入,击球后发光二极管依次点亮。
由两个74194双向移位寄存器组成。
(4)计分模块[score]:实现一方犯规后给对方计一分。
由两个74160设计的12进制计数器和组合逻辑门构成(5)分频模块[division]:实现击球后球以固定速度移动,实验箱采用的是366HZ的时钟信号,故设计183进制计数器进行分频得到2HZ的时钟信号,使球以0.5S的速度移动。
(6)扫描模块[ulti]:实现计分模块成绩的扫描,在实验箱上的七段数码管上显示分数。
由一个74160,四个74151八选一数据选择器,,一个7449七段译码器及组合门电路组成。
乒乓球游戏机的EDA设计
乒乓球游戏机的设计学生:xxx指导老师:胡滨摘要:本课程设计制作了一个乒乓球游戏机。
在课程设计中,系统开发平台为MAX+PLUSII,程序设计语言为VHDL。
设计的乒乓球游戏机能够正确判断与显示乒乓球的位置,并能自动裁判和记分的装置。
本课程设计了乒乓球游戏机程序并进行了程序仿真,从而实现一个完整的乒乓球游戏机。
程序通过调试运行,初步实现了设计目标,可应用于实际的乒乓球游戏比赛中。
本论文对系统的功能设计、实现流程及正确使用都做了详细的描述。
关键词:乒乓球游戏机;VHDL;MAX+PLUSⅡ;程序仿真;目录1引言 (1)1.1课题设计的目的 (1)1.2课题设计的内容 (1)2EDA、VHDA简介 (3)2.1EDA的发展概况 (3)2.2硬件描述语言---VHDL (3)3乒乓球游戏机设计过程 (5)3.1设计规划 (5)3.2各个模块原理及程序 (6)3.2.1乒乓球实体的设计 (6)3.2.2状态机编程实现 (7)3.2.3记分译器的设计 (10)3.2.4构造体的设计 (12)4系统编译和波形仿真 (14)4.1系统编译 (14)4.2系统有关波形的仿真 (14)结束语 (17)致谢 (17)参考文献 (18)唐艳丽《乒乓球游戏机的设计》第1页共16页1引言随着科学技术的发展,人类社会已进入到高度发达的信息化社会,信息社会的发展离不开电子产品的进步。
现代电子产品的发展越来越快,各种新型电子元器件和智能化的电子产品已经在国民经济的各个领域和人民生活的各个方面得到了日益广泛的应用。
实现这种进步的主要原因就是生产制造技术和电子设计技术的发展。
其中电子玩具的发展也是在日益成熟。
乒乓球游戏机控制电路是有甲、乙双方参赛,有裁判控制发“球”的三人乒乓球游戏机;它能完成自动裁判和自动计分是一个带数字显示的模拟游戏机。
其结构简单、成本低、易操作,安全性强、无污染。
乒乓球游戏机还能在娱乐的同时提高我们的反应、应变能力。
eda的课程设计乒乓球
电子课程设计——电子乒乓球设计学院:XXXXX专业班级:XXXXX姓名:XXXXX指导老师:XXXXX完成时间:XXXXX目录一、设计任务与要求-------------------------------3二、总体框图-------------------------------------3三、选择器件-------------------------------------4四、功能模块代码---------------------------------4五、总体设计电路图、波形图和引脚绑定-------------9六、心得体会-------------------------------------12乒乓球游戏机一、 设计任务与要求:设计一个能够模拟乒乓球比赛的基本过程和规则,并能自动裁判和记分的乒乓球游戏机。
功能要求:比赛时甲乙双方各在不同的位置发球或击球;根据球的位置发出相应的动作,提前击球或无意义击球判失分;乒乓球的位置和移动方向有发光二极管亮及二极管依次点亮的方向决定;球移动的速度由一个时钟信号控制,可自由调节,且有一led 数码管闪烁用于指示当前球速;记分牌由led 数码管显示充当,可在每次程序启动时手动清零,当某一方失分,则对方积分器自动加1;通过蜂鸣器对击球得分等操作进行提示,提示声音频率可通过时钟频率调节。
二、 总体框图1、乒乓球游戏机的总体框图如下图所示:2、 设计思路及各模块功能: ◆ 设计思路:用D1~D8个发光二极管代表乒乓球台,在游戏机的两侧各设置三个开关,一个是发球开关,一个是击球开关,一个是积分器清零开关。
甲方按动发球开关时,靠近甲方的第一盏灯亮,然后发光二极管由甲向乙依次点亮,代表乒乓球在移动。
当球过网后,按设计者规定的球位乙方就可以击球。
若乙方提前击球或没有击到球,则判乙方失分,甲方自动加分,重新发球比赛继续。
清零积分器,可以开始新的一局比赛。
◆ 片选信号产生模块片选信号产生模块是用来产生数码管的片选信号,将产生的片选信号输送 到数据转换模块,以便其对输入数据进行选择。
EDA设计报告:乒乓球游戏机.
燕山大学EDA课程设计报告书题目:乒乓球游戏机姓名:学号:成绩:(注:此文件应以同学学号为文件名)一、设计题目及要求I.题目名称:乒乓球游戏机要求:1.用8 个发光二极管表示球;用两个按钮分别表示甲乙两个球员的球拍;2.一方发球后,球以固定速度向另一方运动(发光二极管依次点亮),当球达到最后一个发光二极管时,对方击球(按下按钮)球将向相反方向运动。
过早或过晚击球视为犯规,系统自动给对手加1 分;3.甲、乙各有两个数码管计分(11 分制),每两球换一次发球权。
4.裁判有一个按钮,系统初始化和每次得分后按下一次,发球方的第一个LED 会被点亮。
二、设计过程及内容I. 总体设计乒乓球比赛是由甲乙双方参赛,加上裁判的三人游戏,乒乓球比赛模拟机是用发光二极管(LED )模拟乒乓球运动轨迹的电子游戏机。
图1 乒乓球模拟机框图 发光二极管 双向移位寄存器(ball ) 时钟控制电路(fenpinqi )控 制 电 路 (control) 计数器1 (counter) 计数器2 (counter) 选手P1 裁判 选手P2 扫频电路显示得分 控制发球权电路 (judge )根据设计任务,对照图乒乓球比赛模拟图,可以分为五个模块进行设计: 1. 乒乓球电路(ball模块):模拟球的移动轨迹;球迹移动电路可采用双向移位寄存器方法实现,由发光二极管作光点模拟乒乓球移动的轨迹。
2.驱动控制电路(control模块、judge模块):实现电路的控制;由双D 触发器及逻辑门电路构成,通过此电路来控制并且实现球台灯的左右移位即实现乒乓球的运动。
同时,我们利用十六进制计数器设计了裁判控制电路judge模块来控制发球权的交替,实现每两球换一次发球权。
3. 计分电路(counter模块):实现计分功能;使用两片十进制的计数器、逻辑门组成计分电路,实现11进制计数功能并且输出bcd码以供后续电路显示。
使用JK触发器实现计数对本模块的封锁和开启功能,便于两计分电路的信息交流实现联合计数功能。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1 概述1.1 设计背景和意义EDA技术是先进的电子设计手段,是电子工程的必备知识。
《EDA技术》是电子信息科学与技术专业学生在电子技术实验技能方面综合性质的实验训练课程,其目的和任务是通过一周的时间,让学生掌握EDA的基本方法,熟悉一种EDA软件(VHDL),并能利用EDA 软件设计一个电子技术综合问题,为以后进行工程实际问题的研究打下设计基础。
1.2 设计任务两人乒乓游戏机能够模拟乒乓球比赛的基本过程和规则,并能自动裁判和记分。
乒乓游戏机是用8个发光二极管代表乒乓球台,中间两个发光二极管兼做乒乓球网,用点亮的发光二极管按一定的方向移动来表示球的运动。
在游戏机的两侧各设置两个开关,一个是发球开关(S1a,S1b),另一个是击球开关(S2a,S2b)。
甲乙两人按乒乓球比赛的规则来操作开关。
当甲方按动发球开关S1a时,靠近甲方的第一盏灯亮,然后二极管由甲向乙依次点亮,代表乒乓球在移动。
当球过网后,按设计者规定的球位乙方就可以击球。
若乙方提前击球或者没有击着球,则判乙方失分,甲方记分牌自动加分。
然后重新发球,比赛继续进行。
比赛一直进行到一方记分到11分,该局结束,记分牌清零,可以开始新的一局比赛。
1.3 设计要求(1)使用乒乓游戏机的甲乙双方各在不同的位置发球或击球。
(2)乒乓球的位置和移动方向由灯亮及依次点燃的方向决定,球移动的速度为0.1~0.5s移动一位。
游戏者根据球的位置发出相应的动作,提前击球或者出界均判失分。
(3)比赛用11分为一局来进行,甲乙双方都应设置各自的记分牌,任何一方先记满11分,该方就算胜了此局。
记分牌清零后,又可开始新的一局比赛2 原理设计2.1 工作原理根据乒乓游戏机功能要求,可以分成四个模块来实现,其中corna模块为整个程序的核心,它实现了整个系统的全部逻辑功能;模块CH41A在数码的片选信号时,送出相应的数据;模块sel产生数码管的片选信号;模块disp是7段译码器。
3 软件设计3.1 控制模块代码设计LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY CORNAL ISPORT(clr,af,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 behave OF CORNAL ISSIGNAL amark,bmark:INTEGER;BEGINPROCESS(clr,clk)VARIABLE a,b:STD_LOGIC;VARIABLE she:STD_LOGIC_VECTOR(7DOWNTO0);BEGINIFclr=’0’ THENa:=’0’;b:=’0’;she:=”00000000”amark<=0;bmark<=0;ELSIF clk’event and clk=’1’ THENIF a=’0’ and b=’0’ and af=’0’THENa:=’1’;she:=”10000000”;ELSIF a=’0’ and b=’0’ THENbf=’0’THENb:=’1’;she:=”00000001”;ELSIF a=’1’ and b=’0’THENIF she>8THENIF bj=’0’THEN amark<=amark+1;a:=’0’;b:=’0’;she:=”00000000”;ELSEshe:=’0’&she(7DOWNTO1); ENDIF;ELSIF she=0 THENamark<=amark+1;a:=’0’;b:=’0’;ELSEIF bj=’0’ THENa:=’0’;b:=’1’;ELSEshe:=’0’&she(7 DOWNTO 1); ENDIF;ENDIF;ELSIF a=’0’ and b=’1’ THEN IF she<16 and she=0 THENIF aj=’0’ THENbmark<=bmark+1;a:=’0’;b:=’0’;she:=”00000000”;ELSEshe:=she(6 DOWNTO 0)&’0’;ENDIF;ELSIF she=0 THENbmark<=bmark+1;a:=’0’;b:=’0’;ELSEIF aj=’0’THENa:=’1’;b:=’0’;ELSEshe:=she(6 DOWNTO 0)&’0’;ENDIF;ENDIF;ENDIF;ENDIF;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;BEGINIF clr=’0’THENaha:=”0000”;ala:=”0000”;bha:=”0000”;bla:=”0000”;tmp1:=0;tmp2:=0;t1:=’0’;t2:=’0’;ELSIF clk’event and clk=’1’ THENIF aha=”0001” and ala=”0001”THENaha:=”0001”;ala:=”0001”;t1:=’1’;ELSIF bha=”0001”and bla=”0001”THENbha:=”0001”;bla:=”0001”;t2:=’1’;ELSIF amark>tmp1 THENIF ala=”1001” THENala:=”0000”;aha:=aha+1;tmp1:=tmp1+1;ELSEala:=ala+1;tmp1:=tmp1+1;ENDIF;ELSIF bmark>tmp2 THENIF bla=”1001” THENbla:=”0000”;bha:=bha+1;tmp2:=tmp2+1;ELSEbla:=bla+1;tmp2:=tmp2+1;ENDIF;ENDIF;ENDIF;bl<=bla;ah<=aha;bh<=bha;awIN<=t1;bwIN<=t2;END PROCESS;END behav;3.2 送数据模块代码设计LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY CH41A ISPORT(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 ISBEGINPROCESS(sel)BEGINCASE sel ISWHEN”100”=>q<=d0;WHEN”101”=>q<=d1;WHEN”000”=>q<=d2;WHEN others=>q<=d3;END CASE;END PROCESS;END behav;3.3 产生数码管片选信号模块代码设计LIBRARY IEEE;USE IEEE.S TD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY sel ISPORT(clk:IN STD_LOGIC;sell:OUT STD_LOGIC_VECTOR(2 DOWNTO 0));END sel;ARCHITECTURE behav OF sel ISBEGINPROCESS(clk)VARIABLE tmp:STD_LOGIC_VECTOR(2 DOWNTO 0);BEGINIF clk’event and clk=’1’ THENIF tmp=”000” THENtmp:=”001”;ELSIF tmp=”001” THENtmp:=”100”;ELSIF tmp=”100” THENtmp:=”101”;ELSI F tmp=”101” THENtmp:=”000”;END IF;END IF;sell<=tmp;END PROCESS;END behav;3.4 7段译码器模块代码设计LIBRARY IEEE;USE IEEE.S TD_LOGIC_1164.ALL;ENTITY disp ISPORT(d:IN STD_LOGIC_VECTOR(3 DOWNTO 0);Q:OUT STD_LOGIC_VECTOR(6 DOWNTO 0));END disp;ARCHITECTURE behav OF disp ISBEGINPROCESS(d)BEGINCASE d ISWHEN”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;4 仿真及测试4.1控制模块仿真图1所示为A方发球,在恰当的时候B方接到球,当球回到A方时,A方又接到球,但B方再也没有接到球的仿真波形。
图14.2 送数据模块仿真图2所示为A方两次发球,B方没有接到球,A方得到2分的仿真波形图图24.3产生数码管片选信号模块的设计图3所示为A方发球,B方提前击球的情况,此时,A方得一分。
图中还显示了A方发球,B方在规定的时刻没有接到球的情况,此时,A方又得一分。
图34.47段译码器模块的设计图4所示为A方得分增加到11分的情况,此时awin输出高电平,输出分数保持不变。
当清零信号按下时,得分清为零,awin输出恢复低电平,又可以开始新的一局比赛。