基于verilog 乒乓球游戏机课程设计报告

合集下载

智能乒乓球游戏机控制系统的设计

智能乒乓球游戏机控制系统的设计

四、确定输入和输出变量
• 输入变量:clk2hz指一个2Hz的时钟输入, rst异步复位, k_a和k_b是比赛双方按键。 • 输出变量:speaker是蜂鸣器led8s是一排8 个发光二极管代表球场, led7s1~4是4个显 示分数的数码管, led7s5是显示发球权的数 码管。
五、确定输入状态
• 考虑到游戏的复杂度,采用状态机来实现这些模式转换。 用到8个状态,如下所示: • 状态功能S0复位状态,也是判断发球权的状态S1甲方发 球S2球从甲方向乙方右移,若此时乙方接球就给甲方加一 分,并将球权给甲方S3开始判断乙方是否在0.5S内接球 S4乙方发球S5球从乙方向甲方左移,若此时甲方接球就给 乙方加一分,并将球权给乙方S6开始判断甲方是否在 0.5S内接球S7用于接球后判断发球
• • • • • • • • • • • • • • • • • •
s0: begin
示发球权可以开始判断了;
led7s5<=7'b0111111;//第五个数码管显示数字0,表
led8s<=7'b00000000; score_a<=0; score_b<=0;//给甲乙双方的分数复位; if(k_a) begin speaker<=1'b1;//因为按 键k_a要持续按着保持高电位'1',蜂鸣器鸣叫是提示可以松手了; state<=s7; end else if(k_b) begin speaker<=1'b1; state<=s7;
• always @(posedge clk2hz) begin • case(state) • s7: begin • if(k_a) • state<=s1; //甲发球; • else if(k_b) • state<=s4;//乙发球; • else if(speaker) • speaker=1'b0; • else • speaker=1'b0; • end

基于FPGA的乒乓球游戏机控制器设计毕业设计(论文)

基于FPGA的乒乓球游戏机控制器设计毕业设计(论文)

基于FPGA的乒乓球游戏机控制器设计本科生毕业设计(论文) 第I页基于FPGA的乒乓球游戏机设计摘要Verilog是甚高速集成电路硬件描述语言。

目前,verilog已成为许多设计自动化工具普遍采用的标准化硬件描述语言。

verilog语言功能性强,覆盖面广,灵活性高,具有很好的实用性。

本文设计一个基于verilog的乒乓游戏机,乒乓游戏机由状态机、记分器、译码显示器与按键去抖等部分所组成。

通过对各部分编写verilog程序,然后进行编译、仿真、逻辑综合、逻辑适配,最后进行编程下载,并且通过EDA实验箱的验证,实现乒乓游戏机的基本功能。

关键词:verilog;EDA;乒乓游戏机AbstractVERILOG is high speed IC hardware describe language. VERILOG already becomes the language of normalizing hardware describe that a lot of design automation implement adopts commonly at present. The VERILOG language function is strong. The face covering is broad, flexibility high and have the very good pragmatism. One main body of the book is designed waits for what part group is accomplished owing to that VERILOG table tennis game machine, table tennis game machine go to tremble from state machine, marker, decoding display and button. By compiling and composing VERILOG procedure to every part, then compiling, simulate, logic synthesis, logic fitting. Carry out programming time be loaded with finally. Then verification and by GW48 type EDA experiment box, realize table tennis game machine’s fundamental function.Key words: VERILOG:EDA; Table tennis game machine目录1 绪论 (1)1.1课题的背景和意义 (1)1.2国内外研究现状 (1)1.3本论文的主要内容 (2)2 Quartus II与Modelsim 软件简介 (3)2.1Quartus II 简介 (3)2.2Modelsim简介 (4)3 方案选择与系统总体设计 (6)3.1整体方案的选择 (6)3.1.1设计任务与要求 (6)3.1.2设计的原理和方法 (7)3.1.3芯片的选择 (8)3.2系统总体设计 (8)3.2.1乒乓游戏机的组成示意图 (8)3.2.2本系统的逻辑分框图 (9)4 系统各部分电路的详细设计 (10)4.1七段数码管显示译码电路 (10)4.2按键去抖电路 (11)4.3状态机设计 (11)4.3.1状态机的6种状态及状态转移 (11)4.3.2状态机/球台控制电路 (13)4.4记分器设计 (15)5 系统的整体综合与仿真 (16)5.1顶层文件设计 (16)5.2系统程序框图: (17)5.3整个系统的综合与仿真 (18)5.3.1 电路符号 (18)5.3.2 系统仿真 (18)6 系统的运行与仿真过程 (20)6.1系统程序的编译 (20)6.2 系统的仿真 (22)结论 (24)谢辞 (25)参考文献 (26)附录 (27)1 绪论1.1课题的背景和意义随着人们的物质生活越来越好了,人们开始对娱乐生活有了新的要求,特别是进入新世纪以来各种电子产品的不断出现,更是促进了我国电子行业的发展,为此,能够推出一款新的游戏产品是非常有前景的,本设计正是考虑了当前的社会现状,想设计出一款“乒乓球”游戏机,以往可能有过这方面的设计出现过,但是那些大多数都是采用的单片机等来实现的,本设计将采用最新的FPGA技术对“乒乓球”游戏机进行实现。

基于某Verilog地乒乓球游戏电路设计

基于某Verilog地乒乓球游戏电路设计

大学EDA课程设计:学号:班级:专业:学院:目录0 引言............................................................................................................................. - 1 -1 设计要求..................................................................................................................... -2 -2 设计思路..................................................................................................................... - 2 -3 Verilog程序 ................................................................................................................ - 3 -4 功能仿真..................................................................................................................... - 3 -5 总结........................................................................................................................... - 11 -致...............................................................................................................................- 11 -参考文献.......................................................................................................................- 11 -基于Verilog的乒乓球游戏电路设计0 引言可编程器件的广泛应用,为数字系统的设计带来了极大的灵活性。

最新基于VHDL的乒乓球游戏机设计--课程设计说明书doc

最新基于VHDL的乒乓球游戏机设计--课程设计说明书doc

最新基于VHDL的乒乓球游戏机设计--课程设计说明书doc课程设计说明书设计目的:本课程设计的目的是设计一个基于VHDL的乒乓球游戏机。

通过该设计,可以提高学生对VHDL语言的应用能力,理解数字电路的设计原理以及掌握乒乓球游戏机的相关设计技术。

设计原理:乒乓球游戏机主要由显示模块、控制模块和逻辑模块组成。

其中,显示模块负责将乒乓球游戏界面实时显示在屏幕上,控制模块负责接收游戏操作输入并进行相应的操作控制,逻辑模块则负责处理游戏规则和判断输赢。

设计步骤:1.确定显示模块的功能:显示游戏界面包括乒乓球、球拍和边界等元素,并实现实时更新。

2.设计乒乓球的运动控制逻辑:根据乒乓球的速度和方向,通过控制模块实现乒乓球的运动控制。

3.实现球拍的控制逻辑:通过控制模块,实现对球拍的移动控制,以便玩家能够操控球拍进行游戏。

4.设计游戏规则判断逻辑:根据乒乓球与球拍的碰撞判断,判断球拍的位置和乒乓球的运动方向,并根据规则进行相应的判断判定输赢。

5.进行功能测试和调试:对设计的乒乓球游戏机进行功能测试和调试,确保其能够正常运行。

设计要求:1.采用VHDL语言进行设计,能够熟练使用VHDL语言进行数字电路的设计与实现。

2.设计的乒乓球游戏机能够实现显示游戏界面和实时更新,能够进行游戏操作并判断输赢。

3.设计的乒乓球游戏机的控制逻辑和判断逻辑要简洁明了,能够确保游戏的流畅性和真实性。

设计方案:1.显示模块:使用VGA显示模块,将游戏界面实时显示在屏幕上,包括乒乓球、球拍和边界等元素。

2.控制模块:使用按键扫描模块获取游戏操作输入,并根据输入进行相应的操作控制,控制乒乓球运动和球拍移动。

3.逻辑模块:设计碰撞判断逻辑,判断乒乓球与球拍的碰撞情况,并根据碰撞情况判断球拍的位置和乒乓球的运动方向,以及根据规则进行输赢的判断。

实现计划:1.第一周:完成功能分析和设计方案的制定,明确设计的总体思路和目标。

2.第二周:完成显示模块的设计和测试,确保游戏界面能够实时显示在屏幕上。

基于VHDL的乒乓球设计

基于VHDL的乒乓球设计

基于VHDL的乒乓球设计乒乓球是一种非常受欢迎的体育项目,可以单独进行,也可以进行团体比赛。

这篇文章将介绍使用VHDL(VHSIC硬件描述语言)设计一个基于FPGA(可编程逻辑器件)的乒乓球游戏。

在设计之前,我们需要了解游戏的基本规则和要求。

乒乓球游戏是一个简单的游戏,需要两个玩家和一个球。

游戏开始时,球从一个玩家开始发球,并通过轮流击球来继续游戏。

每个玩家需要使用球拍击打球,并试图将球打过对方的网,并使对方无法接到球。

如果一方无法接到球,则对手得分,并且游戏继续进行,直到达到一定分数或者决定胜负。

在设计中,我们需要考虑以下几个方面:1.游戏界面:我们需要设计一个显示器来显示游戏界面,包括玩家1和玩家2的得分、游戏中间的网、以及球的位置。

我们可以使用FPGA内部的RAM来存储得分,并使用VHDL代码来控制显示器的显示。

2.玩家控制:每个玩家需要使用一个球拍来击打球。

我们可以设计两个按钮来控制球拍的上下移动,通过读取按钮的状态来实现控制。

3.球的移动:球需要在游戏界面中移动,并与球拍和网进行碰撞。

我们可以使用VHDL代码来控制球的移动,检测碰撞,并确定球的反弹方向。

4.得分系统:当球无法被对方接到时,对手将得分。

我们可以设计一个计数器来记录每个玩家的得分,并在达到一定分数时决定胜负。

基于上述要求,我们可以开始设计基于VHDL的乒乓球游戏。

首先,我们需要确定FPGA的架构,包括使用的逻辑单元、存储单元和输入/输出接口。

然后,我们可以使用VHDL编写对应的模块,包括游戏界面显示、玩家控制、球的移动和得分系统。

对于游戏界面的显示,我们可以使用两个数码管来显示玩家1和玩家2的得分,并使用一块LCD屏幕来显示游戏界面。

在VHDL代码中,我们可以使用RAM来存储得分,并使用计数器来更新得分。

然后,我们可以使用VHDL代码来控制LCD屏幕的显示,包括绘制游戏界面和更新球的位置。

对于玩家控制,我们可以使用两个按钮来控制球拍的移动。

基于VHDL的乒乓球游戏机设计

基于VHDL的乒乓球游戏机设计

基于VHDL的乒乓球游戏机设计乒乓球游戏机是一种基于硬件设计的电子游戏机,它模拟了乒乓球比赛的规则和玩法。

本文将介绍一个基于VHDL(Very High Speed Integrated Circuit Hardware Description Language)的乒乓球游戏机设计。

首先,我们需要确定游戏机的硬件组成和功能。

一个基本的乒乓球游戏机包括以下组件:1.显示屏:用于显示游戏画面和分数。

2.键盘:用于输入玩家控制信号,例如乒乓球拍的移动方向和发球。

3.乒乓球拍:控制球的移动方向。

4.乒乓球:游戏的主要元素,通过球拍反弹到对手的场地。

5.游戏逻辑控制:用于判断球拍和球的移动逻辑,以及计分和游戏结束的判定。

在VHDL中,我们可以将这些组件抽象为各种信号和实体(entity)。

下面是一个乒乓球游戏机的VHDL设计示例:```vhdl--乒乓球游戏机VHDL设计entity PongGame isportclk : in std_logic; -- 时钟信号reset : in std_logic; -- 复位信号ball_x : out std_logic_vector(7 downto 0); -- 球的X坐标ball_y : out std_logic_vector(7 downto 0); -- 球的Y坐标paddle_left_y : in std_logic_vector(7 downto 0); -- 左边乒乓球拍的Y坐标paddle_right_y : in std_logic_vector(7 downto 0); -- 右边乒乓球拍的Y坐标score_left : out std_logic_vector(7 downto 0); -- 左边玩家的分数score_right : out std_logic_vector(7 downto 0) -- 右边玩家的分数end entity PongGame;architecture rtl of PongGame is--在这里定义各种信号和内部变量begin--在这里编写游戏逻辑和硬件连接end architecture rtl;```在architecture部分,我们可以编写游戏逻辑和硬件连接的代码。

基于FPGA乒乓球游戏机Verilog设计

基于FPGA乒乓球游戏机Verilog设计

题目基于FPGA乒乓球游戏机Verilog设计学院通信工程专业班级通信081班学生姓名大彬哥指导教师大力会2013年6月12日摘要本文使用FPGA 芯片来模拟实际的乒乓球游戏。

本设计是基于Altera 公司的FPGA Cyclone II 芯片EP2C5T144C8 的基础上实现,运用Verilog HDL 语言编程,在Quartus II 软件上进行编译、仿真,最终在开发板上成功实现下载和调试关键词:编译仿真AbstractThis paper uses the FPGA chip to simulate the actual table tennis game. The design is based on Altera company Implementation of FPGA Cyclone based on II chip EP2C5T144C8, using Verilog HDL programming language, compile, simulation in Quartus IIsoftware, finally successfully in the development board download and debugKeywords: Compile;Simulation目录摘要 (I)Abstract (II)第1章绪论 (1)1.1 概述 (1)1.2Verilog 语言介绍 (1)1.2.1 Verilog 语言的用途 (2)1.2.2 Verilog 的历史 (2)1.2.3 Verilog 模块 (2)1.3 本文研究的意义 (3)第2章Verilog的基本理论 (4)2.1 Verilog模块的定义 (4)2.2Verilog模块的组成 (4)2.3 EP2C5T144C8芯片简介 (5)2.3.1 EP2C8开发板功能 (5)2.3.2开发板功能描述 (6)2.3.3EP2C5T144C8芯片的引脚图 (6)2.4 Verilog硬件描述语言的主要能力 (6)第3章乒乓球游戏机的软件设计 (8)3.1 乒乓球游戏机系统组成 (8)3.1.2功能模块设计 (8)3.2 发球权控制器 (9)3.3乒乓球位置控制 (10)3.3.1基于FPGA乒乓球比赛游戏机顶层原理图 (12)结论 (13)参考文献 (14)附录 (15)第1章绪论1.1 概述随着低复杂度FPGA器件成本的不断下降,具有灵活性和及时面市优势的FPGA与ASIC相比更有竞争性,在数字消费市场上的应用也急剧增加。

基于FPGA的乒乓球游戏机控制器设计

基于FPGA的乒乓球游戏机控制器设计

基于FPGA的乒乓球游戏机设计摘要Verilog是甚高速集成电路硬件描述语言。

目前,verilog已成为许多设计自动化工具普遍采用的标准化硬件描述语言。

verilog语言功能性强,覆盖面广,灵活性高,具有很好的实用性。

本文设计一个基于verilog的乒乓游戏机,乒乓游戏机由状态机、记分器、译码显示器与按键去抖等部分所组成。

通过对各部分编写verilog程序,然后进行编译、仿真、逻辑综合、逻辑适配,最后进行编程下载,并且通过EDA实验箱的验证,实现乒乓游戏机的基本功能。

关键词:verilog;EDA;乒乓游戏机AbstractVERILOG is high speed IC hardware describe language.VERILOG already becomes the language of normalizing hardware describe that a lot of design automation implement adopts commonly at present.The VERILOG language function is strong.The face covering is broad,flexibility high and have the very good pragmatism.One main body of the book is designed waits for what part group is accomplished owing to that VERILOG table tennis game machine,table tennis game machine go to tremble from state machine,marker,decoding display and button.By compiling and composing VERILOG procedure to every part,then compiling, simulate,logic synthesis,logic fitting.Carry out programming time be loaded with finally.Then verification and by GW48type EDA experiment box,realize table tennis game machine’s fundamental function.Key words:VERILOG:EDA;Table tennis game machine目录1绪论 (1)1.1课题的背景和意义 (1)1.2国内外研究现状 (1)1.3本论文的主要内容 (2)2Quartus II与Modelsim软件简介 (3)2.1Quartus II简介 (3)2.2Modelsim简介 (4)3方案选择与系统总体设计 (6)3.1整体方案的选择 (6)3.1.1设计任务与要求 (6)3.1.2设计的原理和方法 (7)3.1.3芯片的选择 (8)3.2系统总体设计 (8)3.2.1乒乓游戏机的组成示意图 (8)3.2.2本系统的逻辑分框图 (9)4系统各部分电路的详细设计 (10)4.1七段数码管显示译码电路 (10)4.2按键去抖电路 (11)4.3状态机设计 (11)4.3.1状态机的6种状态及状态转移 (11)4.3.2状态机/球台控制电路 (13)4.4记分器设计 (15)5系统的整体综合与仿真 (16)5.1顶层文件设计 (16)5.2系统程序框图: (17)5.3整个系统的综合与仿真 (18)5.3.1电路符号 (18)5.3.2系统仿真 (18)6系统的运行与仿真过程 (20)6.1系统程序的编译 (20)6.2系统的仿真 (22)结论 (24)谢辞 (25)参考文献 (26)附录 (27)1绪论1.1课题的背景和意义随着人们的物质生活越来越好了,人们开始对娱乐生活有了新的要求,特别是进入新世纪以来各种电子产品的不断出现,更是促进了我国电子行业的发展,为此,能够推出一款新的游戏产品是非常有前景的,本设计正是考虑了当前的社会现状,想设计出一款“乒乓球”游戏机,以往可能有过这方面的设计出现过,但是那些大多数都是采用的单片机等来实现的,本设计将采用最新的FPGA技术对“乒乓球”游戏机进行实现。

2019年基于VHDL的乒乓球游戏机的设计与实现2348292.doc

2019年基于VHDL的乒乓球游戏机的设计与实现2348292.doc

基于VHDL的乒乓球游戏机的设计与实现摘要:本文介绍了乒乓球游戏机的设计,并进行了程序仿真,实现一个乒乓球游戏机的规定功能。

设计的乒乓球游戏机能够正确判断与显示乒乓球的位置,并能自动裁判和记分的装置,可应用于实际的乒乓球游戏比赛中。

程序通过调试运行,实现了设计目标。

本论文对系统的功能设计、实现流程及正确使用都做了详细的描述。

系统开发平台为MAX+PLUSII,程序设计语言为VHDL。

关键词:乒乓球游戏机;设计;实现;VHDL;MAX+PLUSⅡ;Design and realization of table tennis game playerAbstract:This article introduces the design of the table tennis game player, and carried out simulation procedures, implementation of the provisions of a table tennis game features. Designed to be able to correctly judge the table tennis game table and display the location, and can automatically appear and scoring devices, can be applied to the actual game of Table Tennis Game. Procedure debugging operations, implementation of the design objectives. This thesis describes in detail the function of the system design, implementation and proper use of flow are described in detail to do. System development platform for the MAX + PLUSII, programming language for VHDL..Keywords:table tennis game player; design; realization; VHDL; MAX + PLUS Ⅱ目录1 引言 (1)1.1 课题设计的目的 (1)1.2 课题设计的内容 (2)2 EDA、VHDA简介 (3)2.1 EDA的发展概况 (3)2.2 硬件描述语言---VHDL (3)3 乒乓球游戏机设计过程 (5)3.1设计规划 (5)3.2乒乓球实体的设计 (6)3.3 状态机编程实现 (7)3.4 记分译器的设计 (10)3.5 构造体的设计 (12)4 系统仿真 (14)4.1系统编译 (14)4.2系统有关波形的仿真 (14)结束语 (17)致谢 (18)参考文献 (19)附录 (20)《乒乓球游戏机的设计与实现》第 1 页共 30 页1 引言08年奥运,在电视机前欢腾了半个晚上。

FPGA设计实践简易乒乓游戏机(精选五篇)

FPGA设计实践简易乒乓游戏机(精选五篇)

FPGA设计实践简易乒乓游戏机(精选五篇)第一篇:FPGA设计实践简易乒乓游戏机课程设计报告课程设计名称:FPGA设计实践设计课题名称:简易乒乓游戏机成绩简易乒乓游戏机设计报告一、设计目的:本课程的授课对象是电子科学与技术专业本科生,是电子类专业的一门重要的实践课程,是理论与实践相结合的重要环节。

本课程有助于培养学生的数字电路设计方法、掌握模块划分、工程设计思想与电路调试能力,为以后从事各种电路设计、制作与调试工作打下坚实的基础。

简易乒乓游戏机的实验目的:1.熟练掌握VHDL 语言和QuartusII 软件的使用;2.理解状态机的工作原理和设计方法;3.掌握利用EDA 工具进行自顶向下的电子系统设计方法;二、实验器材和工具软件:QUARTUS II。

三、设计内容:本课程要求学生以FPGA技术基础,以VHDL为语言,以QUARTUS II为工具,设计一个乒乓球游戏机。

四、设计具体步骤:乒乓球游戏机是一个经典的数字逻辑综合设计的题目,本题目中输入输出的信号较多,控制比较复杂,可以采用自上而下的设计方法。

首先,整体上设计本题目。

在理解题目的基础上,用图示的方法直观描述乒乓游戏机的外观和构成,明确所需要的硬件以及特点。

例乒乓游戏机的组成两人乒乓游戏机是用8个发光二极管代表乒乓球台,中间2发光二极管兼作球网,用点亮的发光二极管按一定的方向移动来表示球的运动。

在游戏机的两侧各设置两个开关,一个是发球开关发A发fB;另一个是击球开关jA,jB。

甲、乙二人按乒乓球比赛规则来操作开关。

当甲方按动发球开关fA时,靠近甲方的第1个发光二极管亮,然后发光二极管的甲向乙依次点亮,代表乒乓球的移动。

当球过网后按设计者规定的球位,乙方就可击球。

若乙方提前击球或没击着球,则判乙方失分,甲方的记分牌自动加分。

然后重新发球,比赛继续进行。

比赛一直要进行到一方记分牌达到11分,该局结束。

(3)完成各模块的代码编写:[1]分频模块,用与生成2HZ的技术频率library ieee;use ieee.std_logic_1164.all;entity clk_2 is port(clkin :in std_logic;clkout:out std_logic);end clk_2;architecture behave_clk_2 of clk_2 is constant N: Integer:=12499999;signal Counter:Integer RANGE 0 TO N;signal Clk: Std_Logic;begin process(clkin)begin if rising_edge(clkin)then if Counter=N then Counter<=0;Clk<=NOT Clk;else Counter<= Counter+1;end if;end if;end process;clkout<= Clk;end behave_clk_2 clk_2clkinclkoutinst7 [2]显示模块: library ieee;use ieee.std_logic_1164.all;entity translate3to7 is port(datain:in std_logic_vector(2 downto 0);dataout:out std_logic_vector(6 downto 0));end translate3to7;architecture behave OF translate3to7 is begin with datain(2 downto 0)select dataout <= “1000000” when “000” ,“1111001” when “001” ,“0100100” when “010” ,“0110000” when “011” ,“0011001” when “100” ,“0010010” when “101” ,“0000010” when “110” ,“1111000” when “111”;end behave;translate3to7datain[2..0]dataout[6..0]inst4 library ieee;use ieee.std_logic_1164.all;entity translate7to14 is port(data:in std_logic_vector(3 downto 0);outputH:out std_logic_vector(6 downto 0);outputL:out std_logic_vector(6 downto 0));end translate7to14;architecture behave_translate OF translate7to14 is begin with data(3 downto 0)select outputL <= “1000000” when “0000” ,“1111001” when “0001” ,“0100100” when “0010” ,“0110000” when “0011” ,“0011001” when “0100” ,“0010010” when “0101” ,“0000010” when “0110” ,“1111000” when “0111” ,“0000000” when “1000” ,“0010000” when “1001” ,“1000000” when “1010”,“1111001” when “1011”,“0100100” when “1100”,“0110000” when “1101”,“0011001” when “1110”,“0010010” when “1111”;wi th data(3 downto 0)select outputh <= “1000000” when “0000”,“1000000” when “0001”,“1000000” when “0010”,“1000000” when “0011”,“1000000” when “0100”,“1000000” when “0101”,“1000000” when “0110”,“1000000” when “0111”,“1000000” when “1000”,“1000000” when “1001”,“1111001” when “1010”,“1111001” when “1011”,“1111001” when “1100”,“1111001” when “1101”,“1111001” when “1110”,“1111001” when “1111”;end behave_translate;translate7to14data[3..0]outputH[6..0]outputL[6 ..0]inst23 library ieee;use ieee.std_logic_1164.all;entity translate3to8 is port(datain:in std_logic_vector(2 downto 0);dataout:out std_logic_vector(7 downto 0));end translate3to8;architecture behave OF translate3to8 is begin when “000”=> dataout <=“11111110”;when “001”=> dataout <=“11111101”;when “010”=> dat aout<=“11111011”;when “011”=> dataout <=“11110111”;when “100”=> dataout <=“11101111”;when “101”=> dataout <=“11011111”;when “110”=> dataout <=“10111111”;when “111”=> dataout <=“01111111”;when others => dataout <=“11111111”;end behave;translate3to8datain[2..0]dataout0dataout1dataout2data out3dataout4dataout5dataout6dataout7inst26(4)各模块调试和波形(5)状态图:五、设计收获以及存在的问题:1在此次实验中要用到计数器编程中往往要学会引用变量,因为信号容易产生延迟。

Verilog HDL乒乓球游戏机

Verilog HDL乒乓球游戏机

Verilog HDL乒乓球游戏机正文:1:引言本文档旨在提供一个完整的Verilog HDL乒乓球游戏机的设计和实现的文档指南。

乒乓球游戏机被设计为一个经典的游戏,用户可以通过操控乒乓球拍来与计算机对手进行对决。

该游戏机将涵盖从电路设计到硬件实现的所有步骤。

以下将详细介绍每个设计和实现阶段的细节。

2:需求分析在这一部分,我们将详细描述乒乓球游戏机的需求和功能。

主要包括游戏的规则、用户界面的设计以及游戏机的性能要求。

这些需求和功能将为后续的设计和实现提供指导。

3:电路设计本章节将介绍乒乓球游戏机的电路设计。

首先,我们将详细讨论每个组件的功能,包括乒乓球拍、乒乓球、计分系统等。

接下来,我们将确定需要使用的电子元件和电路,包括舵机、传感器、时钟等。

最后,我们将给出整体电路的设计图,并进行仿真和验证。

4:时序控制本章节将重点讨论乒乓球游戏机的时序控制。

我们将详细描述游戏的各类状态和状态转换,以及时钟信号的和分配。

同时,我们还将探讨如何通过状态机来控制游戏的进行,并处理用户输入和计算机对手的决策。

5:界面设计在这一部分,我们将介绍乒乓球游戏机的用户界面设计。

我们将讨论显示器和按键的布局,以及如何实现用户与游戏机的交互。

同时,我们还将探讨音频输出和输入的设计,以提供更好的游戏体验。

6:硬件实现本章节将详细描述乒乓球游戏机的硬件实现。

我们将介绍如何根据电路设计的原理图进行硬件布局和布线。

同时,我们还将涵盖选取适合的硬件平台和开发工具,并进行调试和测试,以确保游戏机的正常运行。

7:性能评估在这一部分,我们将对乒乓球游戏机的性能进行评估。

我们将讨论游戏的稳定性、响应时间和用户体验等方面的指标,并给出相应的测试结果和分析。

8:总结通过本文档,我们详细介绍了Verilog HDL乒乓球游戏机的设计和实现。

每个章节都包含了细致的细节和步骤,以供读者参考和实践。

如果按照本文档所述的步骤进行设计和实现,相信能够顺利完成一个功能完备的乒乓球游戏机。

基于FPGA乒乓球游戏机Verilog设计

基于FPGA乒乓球游戏机Verilog设计

基于FPGA乒乓球游戏机Verilog设计整理者:G゛佑咡江西师范大学电子信息工程前言:此类程序鉴于网上大多是VHDL设计,所以我整理一份Verilog设计供初学者参考,因为时间关系,程序没有优化,也没有注释,如有不妥的地方,请大家多提意见。

摘要:本文使用FPGA 芯片来模拟实际的乒乓球游戏。

本设计是基于Altera 公司的FPGA Cyclone II 芯片EP2C5T144C8 的基础上实现,运用Verilog HDL 语言编程,在Quartus II 软件上进行编译、仿真,最终在开发板上成功实现下载和调试。

1 乒乓球游戏机系统组成乒乓球比赛游戏机的组成如图1 所示。

比赛规则约定:五局三胜; 1 分一局; 裁判发出比赛开始信号,触发FPGA 内部随机数发生器模块产生首次发球权方;比赛进行中,选手连续两次获得发球权后, 发球权交予对方,如未获发球权方发球, 裁判端犯规音响电路鸣响;6 个LED 排列成行模拟乒乓球台(因为我的开发板上只有6个LED灯,比赛开始时候中间两个灯亮,如果有条件的话有10来个灯最好了); 点亮的LED 模拟乒乓球,受FPGA 控制从左到右或从右到左移动; 比赛选手通过按钮输入模拟击球信号, 实现LED 移位方向的控制; 若发亮的LED 运动在球台中点至对方终点之间时,对方未能及时按下击球按钮使其向相反方向移动, 即失去一分。

2 功能模块设计图1 中,基于FPGA 设计的控制端为整个系统的核心,其内部主要由简易随机数发生器、发球权控制器、乒乓球位置控制器、甲乙方计分控制器、犯规音响控制器等模块组成。

整个控制端采用模块化设计,先用Verilog 语言编写功能模块,然后用顶层原理图将各功能模块连接起来。

设计的难点在于协调各模块工作,严格遵守各信号间时序关系。

本系统采用50MHz系统时钟。

2. 1 简易随机数发生器比赛首次发球权由随机数发生器产生的数据决定,其随机性要求不严, 因此,采用非常简单的模式产生,即一旦FPGA 上电, 系统时钟百分频产生一方波信号square,当裁判闭合开始比赛开关产生start 信号上升沿时,读取此时squar e信号值作为随机数发生器输出data_rand。

最新基于VHDL课程设计乒乓球游戏

最新基于VHDL课程设计乒乓球游戏

最新基于VHDL课程设计乒乓球游戏
主要内容有:
一、引言
乒乓球游戏是一款常见的电子娱乐游戏,通过控制乒乓球板上的乒乓球可以获得不同的游戏效果。

本文以VHDL课程设计为基础,设计并实现了一款乒乓球游戏,实现了乒乓球的运动,并设计了界面以及积分系统,使得用户能够享受到不同的娱乐效果。

二、游戏功能及实现
(1)游戏界面设计
游戏界面由显示器提供,由竖直条以及水平条构成,其中竖直条为乒乓球的运动路径,水平条为乒乓球的控制条,以及上方的计分区。

(2)乒乓球运动
乒乓球运动由FPGA板按照用户的操作进行控制,采用VHDL语言编写控制代码,通过MyHDL模块将VHDL程序转换为可烧写的FPGA文件,实现乒乓球在显示器上的运动。

(3)积分系统
积分系统由LED灯圈模块提供,通过FPGA板进行数据的控制,乒乓球每落入一个洞,积分就会+1,当分数达到20分时,游戏结束。

三、设计评估
通过本次课程设计,我们用FPGA板搭建了乒乓球的电子游戏,对VHDL语言认识有了更深入的了解,同时,也锻炼了实践能力,增长了
FPGA设计经验。

而此次游戏设计的完成,也得到了良好的游戏效果,给用户带来了不同的娱乐体验。

四、结论。

基于FPGA的乒乓球游戏机设计.

基于FPGA的乒乓球游戏机设计.

摘要在现代电子设计领域,微电子技术迅猛发展,无论是系统设计、电路设计,还是芯片设计,其设计的复杂度都在增加,传统的手工设计方法已经不能满足设计者的要求,急需新的设计工具来解决。

EDA技术的迅速发展顺应了时代的发展,使得电子设计自动化技术有了新的、快的发展,其重要程度日益突出。

本文设计了基于FPGA的,用Verilog HDL语言描述的乒乓球游戏机的设计。

它由控制模块、数码管的片选信号模块、送数据模块和7段译码器模块组成,连接形成乒乓球游戏机的顶层电路。

在QuartusⅡ软件上用Verilog HDL语言分别对每个模块进行描述,然后在软件上进行编译、仿真,最终实现乓乓球比赛的基本过程和规则,并能自动裁判和计分,达到设计的要求。

关键词:EDA ;FPGA ;Verilog HDLAbstractIn the field of modern electronic design, the rapid development of microelectronic technology,whether the system design, circuit design and chip design, the design is more complex, the traditional manual design methods have been unable to meet the requirements of designers,in urgent need of new design tools to solve. The rapid development of EDA technology to the development of the times, the electronic design automation technology has been the development of new, fast, its importance is outstanding day by day. This paper is designed based on FPGA, the design of table tennis game is described with Verilog HDL language. It consists of control module, chip select signal module, digital tube to send data module and the 7 segmentdecoder modules, the top-level circuit connected to form a table tennis game. In the Quartus software by Verilog HDL language for each module are described, and then the compiler, simulation in software, realize the basic process and the rules of tabletennis table tennis competition, and can automatically judge and score, to meet the design requirements.Keywords: EDA; FPGA; Verilog HDL第一章引言1.1课题研究的背景随着微电子技术的飞跃发展,无论是系统级设计、电路设计还是芯片设计,它的复杂程度都在不断的增加,而且它的发展速度也越来越快。

基于verilog乒乓球游戏机课程设计报告

基于verilog乒乓球游戏机课程设计报告

基于verilog乒乓球游戏机课程设计报告一、设计背景与目的乒乓球是一项受欢迎的运动项目,可以锻炼身体的协调性和反应能力。

为了进一步提高学生的乒乓球水平,我们决定设计一个乒乓球游戏机,通过模拟真实的乒乓球比赛场景,让学生在娱乐中提高他们的技术。

二、设计原理乒乓球游戏机的设计原理主要是利用数字逻辑电路和FPGA实现。

首先,我们需要定义乒乓球运动的规则。

乒乓球从一个初始位置出发,通过张力和角度来调节球的速度和方向。

球在两个板子之间来回运动,直到有一方无法接到球为止。

为了实现这个设计,我们需要借助FPGA的输入输出端口。

玩家可以通过按钮来控制板子的位置,接收按键信号,并将信号转换为逻辑电平输入到FPGA。

FPGA根据接收到的信号,控制板子的移动。

另外,FPGA还需要处理球的运动轨迹,包括弹跳和反射。

设计过程中,我们需要将整个桌面划分为多个区域,每个区域都与逻辑电路相连。

通过逻辑电路的计算,我们可以实时更新球的位置和速度,判断球是否被接住,球是否出界等。

当球被接住或出界时,游戏将进入新的一轮。

三、设计步骤1.定义乒乓球的运动规则,包括球的起始位置、初始速度、板子的移动范围等。

2.划分整个桌面,并将每个区域与逻辑电路相连。

3.设计输入接口,包括接收按钮信号的接口。

4.设计输出接口,包括控制板子移动的接口。

5.设计逻辑电路,实现球的运动轨迹计算,包括弹跳和反射的计算。

6.实现FPGA的硬件描述,包括输入输出端口的定义和逻辑电路的实现。

7.进行仿真测试,验证设计的正确性。

8.制作PCB板和外围电路,完成整个乒乓球游戏机的制作。

四、实际应用乒乓球游戏机可以应用于学校的体育课程中,帮助学生们提高乒乓球技术。

通过轻松愉快的游戏方式,学生能够更好地理解乒乓球的运动规律,并锻炼乒乓球的技术。

此外,乒乓球游戏机还可以用于比赛和娱乐场所。

人们可以通过挑战乒乓球游戏机,提高乒乓球水平,增加娱乐乐趣。

五、设计总结通过这次课程设计,我们深入学习了数字逻辑电路和FPGA的应用,掌握了乒乓球游戏机的设计原理和实现方法。

基于FPGA“乒乓球比赛游戏机”的设计

基于FPGA“乒乓球比赛游戏机”的设计

《电子设计自动化(EDA)技术》课程设计报告题目: 乒乓球比赛游戏机姓名:院系:应用技术学院专业:电子信息工程学号:指导教师:完成时间:2012年06月25日目录1 课程设计题目、内容与要求………………………………1.1 设计内容………………………………………………1.2 具体要求………………………………………………2 系统设计……………………………………………………2.1 设计思路………………………………………………2.2 系统原理(包含:框图等阐述)与设计说明等内容3 系统实现……………………………………………………注:此部分阐述具体实现,包含主要逻辑单元、模块、源代码等内容4 系统仿真……………………………………………………5 硬件验证(操作)说明……………………………………6 总结………………………………………………………7 参考书目…………………………………………………设计时间:16周、17周组员:1课程设计题目、内容与要求1.1课程设计的题目乒乓球比赛游戏机1.2课程设计目的随着科学技术日益迅速的发展,数字系统已经深入到生活的各个方面。

它具有技术效果好,经济效益高,技术先进,造价较低,可靠性高,维修方便等许多优点。

使我们更加熟练掌握数字系统的设计。

对所学的专业知识有能力更好的应用在实践方面。

1.3课程设计要求(1)使用乒乓球游戏机的双方在不同位置发球或击球。

(2)乒乓球的位置和移动方向由灯亮和依次亮的方向决定。

使用者根据球的位置发出相应的动作(3)比赛用21分为一局来进行,双方设置各自的记分牌,任意一方先记满21分就获胜此局。

当记分牌清零后,开始新的一局比赛。

1.4课程设计内容设计一个由甲乙双方参赛,有裁判的三人乒乓球游戏机。

用8个(或更多个)LED排成一条直线,以中点为界,两边各代表参赛双方的位置,其中一只点亮的LED指示球的当前位置,点亮的LED依次从左到右,或从右到左,其移动的速度应能调节。

基于VHDL的乒乓球游戏机设计--课程设计说明书

基于VHDL的乒乓球游戏机设计--课程设计说明书

基于VHDL的乒乓球游戏机设计--课程设计说明书课程设计说明书,基于VHDL的乒乓球游戏机设计1.引言本课程设计旨在通过使用VHDL(VHSIC Hardware Description Language)语言设计一个乒乓球游戏机,来帮助学生理解数字逻辑电路设计原理,并提高其在VHDL编程方面的能力。

乒乓球游戏机是一款经典的游戏,可以通过键盘控制两个玩家分别控制“球拍”进行游戏。

2.设计目标设计一个基于VHDL的乒乓球游戏机,具体要求如下:-采用VHDL语言进行设计和实现游戏机的硬件逻辑电路;-游戏机具有两个可控的玩家“球拍”,玩家通过键盘控制球拍;-游戏机有一个移动的“球”,玩家需要控制球拍以防止球离开游戏界面;-当球没有被接住时,游戏结束;-游戏机需要显示当前游戏得分;3.系统框图设计游戏机系统框图设计如下:```------------Keyboar-----------------------------------------------------Mai--------------------------------------------------------------------------------------Player 1 (Keyboard Control) ,, Player---------------------------------------------------VG------```4.系统模块设计本设计将由以下几个模块组成:- Keyboard模块:负责接收键盘输入,并将输入信号转换为玩家控制信号;- Main模块:负责整体的游戏逻辑,包括球和球拍的移动、得分的计算、游戏的判定等;- Player 1和Player 2模块:负责控制球拍的移动;-VGA模块:用于显示游戏界面和得分信息;5.实验步骤-确定游戏机的功能要求和硬件设计规格;-根据系统框图,设计每个模块的功能和接口;-使用VHDL语言编写每个模块的代码,并进行仿真和测试;-将各个模块进行综合,并生成比特流;-进行游戏机的调试和优化,确保其正常工作;6.课程设计要求-学生能够理解和掌握VHDL语言的基本语法和常用逻辑电路的设计原理;-学生能够根据需求设计出乒乓球游戏机的硬件逻辑电路,并使用VHDL语言实现;-学生能够使用VHDL仿真工具进行仿真和调试;-学生能够进行设计方案的调试和优化,并确保游戏机的正常运行;7.结束语。

VHDL课程设计报告乒乓球游戏机

VHDL课程设计报告乒乓球游戏机

VHDL课程设计报告一. 乒乓球游戏机两人乒乓球游戏机是用8-16个发光二极管代表乒乓球台,中间两个发光二极管兼做乒乓球网,用点亮的发光二极管按一定的方向移动来表示球的运动。

在游戏机的两侧各设置两个开关,一个是发球开关(s1a,s1b),另一个是接球开关(s2a,s2b)。

甲乙两人按乒乓球比赛的规则来操作开关。

当甲方按动发球开关s1a时,靠近甲方的第一盏灯亮,然后发光二极管由甲向乙依次点亮,代表乒乓球在移动。

当球过网后,按设计者规定的球位乙方就可以击球。

若乙方提前击球或没击着球,则判乙方失分,甲方记分牌自动加分。

然后重新发球,比赛继续进行。

比赛一直进行到一方记分到21分,该局结束,记分牌清零,可以开始新的一局比赛。

任务和要求二. 电路的工作原理设计一个乒乓球游戏机,该机模拟乒乓球比赛的基本过程和规则,并能自动裁判和记分。

要求如下:1)使用乒乓球游戏机的甲乙双方各在不同的位置发球或击球。

2)乒乓球的位置和移动方向由灯亮及依次点燃的方向决定,球的移动速度为0.1-0.5s移动一位。

使用者根据球的位置发出相应的动作,提前击球或出界均判失分。

设计者可按过网击球来设计。

3)比赛用21分为一局来进行,甲乙双方都应设置各自的记分牌,任何一方先记满21分,该方就算胜了此局。

当记分牌清零后,又可以开始新的一局比赛。

三. VHDL设计思路与程序在乒乓球球游戏机的实现过程中用到四个模块,分别为CORNA, CH41A, SEL, DISP,下面逐一对模块的功能进行描述。

CORNA: 该模块为游戏机中最重要的模块。

共有9个端口,分别为CLR, AF, AJ, BF, BJ, CLK, SHIFT, AH, AL, BH, BL。

模块负责对正常击球、过网击球、未击球予以判定,并进行记分、球的位置输出。

library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity corna 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));end;architecture corna_arc of corna issignal amark,bmark:integer;beginprocess(clr,clk)variable a,b:std_logic;variable she:std_logic_vector(7 downto 0); beginif clr='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' and bf='0' thenb:='1';she:="00000001";elsif a='1' and b='0' thenif she>8 thenif bj='0' thenamark<=amark+1;a:='0';b:='0';she:="00000000";elseshe:='0'&she(7 downto 1);end if;elsif she=0 thenamark<=amark+1;a:='0';b:='0';elseif bj='0' thena:='0';b:='1';elseshe:='0'&she(7 downto 1);end if;end if;elsif a='0' and b='1' thenif she<16 and she/=0 thenif aj='0' thenbmark<=bmark+1;a:='0';b:='0';she:="00000000";elseshe:=she(6 downto 0)&'0';end if;elsif she=0 thenbmark<=bmark+1;a:='0';b:='0';elseif aj='0' thena:='1';b:='0';elseshe:=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;beginif clr='0' thenaha:="0000";ala:="0000";bha:="0000";bla:="0000";tmp1:=0;tmp2:=0;elsif clk'event and clk='1' thenif amark>tmp1 thenif ala="1001" thenala:="0000";aha:=aha+1;tmp1:=tmp1+1;elseala:=ala+1;tmp1:=tmp1+1;end if;end if;if bmark>tmp2 thenif bla="1001" thenbla:="0000";bha:=bha+1;tmp2:=tmp2+1;elsebla:=bla+1;tmp2:=tmp2+1;end if;end if;end if;al<=ala;bl<=bla;ah<=aha;bh<=bha;end process;end corna_arc;SEL:该模块实现为CH41A提供片选信号,通过输入脉冲信号循环输出000、001、100、101信号。

基于VHDL的乒乓球游戏机的设计毕业设计

基于VHDL的乒乓球游戏机的设计毕业设计

基于VHDL的乒乓球游戏机的设计毕业设计摘要:本论文设计了一款基于VHDL的乒乓球游戏机,通过FPGA实现了游戏的核心逻辑和显示控制等功能。

论文首先介绍了游戏机的背景和研究意义,然后详细描述了游戏机的硬件设计和VHDL代码实现。

接着对游戏机进行功能测试和性能评估,结果表明游戏机能够流畅运行,并且具有良好的游戏体验。

最后,本文总结了设计过程中的经验教训,并对未来的改进方向进行了展望。

1.引言乒乓球游戏作为一种经典的游戏方式,深受大众喜爱。

本论文旨在设计一款基于VHDL的乒乓球游戏机,通过FPGA实现游戏的核心逻辑和显示控制等功能。

此游戏机可为玩家提供乒乓球对战的快感和挑战,同时也具备一定的娱乐价值。

2.游戏机硬件设计2.1总体设计思路本游戏机采用FPGA作为核心芯片,将乒乓球游戏的核心逻辑、显示控制等功能实现在FPGA上。

游戏机配备了合适的输入设备和输出设备,提供给玩家操作和显示。

2.2输入设备设计游戏机的输入设备采用了按键和手柄两种方式。

通过按键控制乒乓球的挡板移动,通过手柄控制乒乓球的上下移动。

2.3输出设备设计游戏机的输出设备采用了液晶显示屏和音响。

液晶显示屏用于显示游戏界面和提示信息,音响用于播放游戏音效和背景音乐。

3.VHDL代码实现3.1游戏核心逻辑设计游戏核心逻辑主要包括乒乓球的轨迹计算和碰撞判断等功能。

根据输入设备的操作,通过VHDL代码实现乒乓球的移动和碰撞检测等功能。

3.2显示控制设计游戏的显示控制主要包括游戏界面的绘制和显示更新等功能。

通过VHDL代码实现游戏界面的绘制和按需更新显示。

4.功能测试和性能评估通过将游戏机连接到计算机进行测试和评估,结果表明游戏机能够流畅运行,并且具有良好的游戏体验。

游戏机的输入和输出设备响应迅速,能够准确捕捉玩家的操作。

5.结论本论文设计了一款基于VHDL的乒乓球游戏机,通过FPGA实现了游戏的核心逻辑和显示控制等功能。

经过测试和评估,游戏机具备流畅运行和良好游戏体验的特点。

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

长沙学院EDA课程设计说明书题目乒乓球游戏电路设计系 (部)专业(班级)姓名学号指导教师起止日期2008电子信息工程专业课程设计任务书系(部):电子与通信工程系专业:电子信息工程长沙学院课程设计鉴定表目录摘要:............................................................................................................................................................ - 6 - 1.设计要求.................................................................................................................................................. - 6 - 2.设计方案...................................................................................................................................................... - 6 -2.1乒乓球游戏机系统组成................................................................................................................... - 6 -2.2 功能模块设计.................................................................................................................................. - 6 -2.2.1 分频模块.............................................................................................................................. - 6 -2.2.2 按键消抖模块...................................................................................................................... - 7 -2.2.3 比赛规则控制(含发球控制器、乒乓球控制器、计分器) .......................................... - 9 -2.3顶层原理图...................................................................................................................................... - 11 -2.4 波形仿真........................................................................................................................................ - 11 -3.心得体会.................................................................................................................................................... - 12 -4.参考文献.................................................................................................................................................... - 12 -乒乓球游戏电路设计摘要:本设计使用FPGA 芯片来模拟实际的乒乓球游戏。

本设计是基于Altera 公司的FPGA Cyclone 芯片EP1C20F324C8 的基础上实现,运用Verilog HDL 语言编程,在Quartus II 软件上进行编译、仿真,最终在开发板上成功实现下载和调试。

关键字:乒乓球游戏FPGA Verilog HDL1.设计要求1.1一个乒乓球游戏电路,能实现基本的乒乓球比赛规则。

1.2 要求使用数码管显示比赛双方的代号及得分,比赛采用21分制。

比赛结束时8位LED灯同时闪烁5秒。

1.3 拓展要求,要求增加局分显示,每一局比赛结束后局分自动增加,比分清零。

2.设计方案2.1乒乓球游戏机系统组成乒乓球比赛游戏机的组成如图1 所示。

A、B方各持一按键进行接发球操作,当乒乓球移动到最靠近己端,即最靠近己方的数码管发光期间,及时按下了按键,则接发球成功,提前按下或按下不及时则接、发球失败,对方得1分。

图1 基于Fpga乒乓球游戏机组成框图2.2 功能模块设计2.2.1 分频模块将50Mhz频率分成2hz程序://-----------------------------2Hz分频-------------------------always @(posedge clk50M)beginif(cnt==24'd1*******)beginclk2hz=~clk2hz;cnt<=0;endelsecnt<=cnt+1;end2.2.2 按键消抖模块程序:module key_debounce(input i_clk,input [3:0] i_key, // 按下为0,松开为1 output reg [3:0] o_key_val // 键值);//++++++++++++++++++++++++++++++++++++++reg [3:0] key_samp1, key_samp1_locked;// 将i_key采集至key_samp1always @ (posedge i_clk)beginkey_samp1 <= i_key;end// 将key_samp1锁存至key_samp1_lockedalways @ (posedge i_clk)beginkey_samp1_locked <= key_samp1;end//++++++++++++++++++++++++++++++++++++++wire [3:0] key_changed1;// 当key_samp1由1变为0时//--------------------------------------reg [19:0] cnt;// 一旦有按键按下,cnt立即被清零always @ (posedge i_clk)beginif(key_changed1)cnt <= 20'h0;elsecnt <= cnt + 1'b1;end//--------------------------------------reg [3:0] key_samp2, key_samp2_locked;// 只有当按键不变化(不抖动),且维持20ms以上时// 才将i_key采集至key_samp2always @ (posedge i_clk)beginif(cnt == 20'hF_FFFF) // 0xFFFFF/50M = 20.9715ms key_samp2 <= i_key;end// 将key_samp2锁存至key_samp2_lockedalways @ (posedge i_clk)beginkey_samp2_locked <= key_samp2;end//--------------------------------------wire [3:0] key_changed2;// 当key_samp2由1变为0时//--------------------------------------// 每次按键稳定后,都将键值取反always @ (posedge i_clk)beginif(key_changed2[0])o_key_val[0] <= ~o_key_val[0];if(key_changed2[1])o_key_val[1] <= ~o_key_val[1];if(key_changed2[2])o_key_val[2] <= ~o_key_val[2];if(key_changed2[3])o_key_val[3] <= ~o_key_val[3];end//--------------------------------------endmodule2.2.3 比赛规则控制(含发球控制器、乒乓球控制器、计分器)程序://----------------------比赛规则------------------------------always @(posedge clk2hz)beginif(rst)begin a_score<=0;b_score<=0;a_jufen<=0;b_jufen<=0;a<=0;b<=0;led_1<=8'b11111111; end elsebeginif(!a&&!b&&led_ctrl[0]) //如果a发球begin a<=1;led_1<=8'b01111111; end //a的控制位置1begin b<=1;led_1<=8'b11111110; end //b的控制位置1else if(a&&!b) //球从A向B移动beginif(led_1>8'b00011111) //如果没到球网B击球则A加分beginif(led_ctrl[3])begina_score<=a_score+1;a<=0;b<=0;led_1<=8'b11111111;endelsebegin led_1[7:0]<={1'b1,led_1[7:1]}; end //右移endelse if(led_1==8'b11111111) //如果B一直没有接球则A加分begin a_score<=a_score+1;a<=0;b<=0; endelsebeginif(led_ctrl[3]) //如果B击球成功,则B的控制位置1,A的控制位清零 begin a<=0;b<=1; endelsebegin led_1[7:0]<={1'b1,led_1[7:1]};endendendelse if(b&&!a) //球从B向A移动beginif(led_1>8'b11110000&&led_1!=8'b11111111)beginif(led_ctrl[1]) //如果没到球网A击球则B加分beginb_score<=b_score+1;a<=0;b<=0;led_1<=8'b11111111;endelseendelse if(led_1==8'b11111111) //如果A一直没接球则B加分begin b_score<=b_score+1;a<=0;b<=0; endelsebeginif(led_ctrl[1]) //如果A击球成功,则A的控制位置1,B的控制位清零begin a<=1;b<=0; endelsebegin led_1[7:0]<={led_1[6:0],1'b1}; endendendendled<=led_1;if(a_score==5'b10101&&b_score<5'b10101) begin a_score<=0;b_score<=0;a_jufen<=a_jufen+1;a<=0;b<=0;led_1<=8'b11111111; endif(b_score==5'b10101&&a_score<5'b10101) begin a_score<=0;b_score<=0;b_jufen<=b_jufen+1;a<=0;b<=0;led_1<=8'b11111111; endend2.3顶层原理图2.4 波形仿真2.4.1 A方发球B方不接球2.4.2 A方发球B提前接球犯规2.4.3 B方发球A不接球2.4.4 B方发球A提前接球犯规2.4.5 AB僵持球3.心得体会通过这次课程设计,我进一步熟悉了verilog语言的结构,语言规则和语言类型。

相关文档
最新文档