FPGA的乒乓球游戏机ISE,verilog

2024-02-17 03:20

本文主要是介绍FPGA的乒乓球游戏机ISE,verilog,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

名称:乒乓球游戏机(代码在文末付费下载)

软件:ISE

语言:Verilog

要求:

设计一个由两人参赛的乒乓球游戏机,用 4 个 LED 排成一条直线,两边各 代表参赛双方的位置,其中一只点亮的 LED 指示球的当前位置,点亮的 LED 一 次从左到右,或者从右到左,其移动速度应能调节。当“球”将运动到某方的最 后一位时,参赛者应能果断地按下位于自己一方的按钮开关,即表示启动球拍击 球,若击中,则球向相反方向移动;若未击中,球掉出桌外,则对方得一分。双 方各设一个 LED 表示拥有发球权,每隔两次自动交换发球权,拥有发球权的一 方发球才有效。设置计分电路,其中参赛选手各有一个可显示自己当前分数的按 钮,当按下个人分数按钮,可用 LED 灯显示自己分数,当某一方率先达到 11 分 时,所有 LED 灯闪烁,表示比赛结束。 

框图.png

代码下载:乒乓球游戏机ISE,verilog_Verilog/VHDL资源下载

代码网:hdlcode.com

部分代码展示

module pindpang(
input clk,//系统时钟
input rst,//异步复位
input in1,//右边选手击球信号
input in2,//左边选手击球信号
input score1,//右边选手分数查询信号
input score2,//左边选手分数查询信号
output reg [3:0] led//球运动轨迹及分数
);
wire s0;//s0 和 s5 为球掉出桌外的信号
wire s5;
wire s1;//s1~s4 为球运动轨迹寄存器
wire s2;
wire s3;
wire s4;
reg [3:0] R_score1=4'd0;
reg [3:0] R_score2=4'd0;
reg turn_l=0;//移位信号寄存器信号
reg turn_r=0;//移位信号寄存器信号
reg right1=0;//发球权
reg right2=0;//发球权
reg [2:0] state=3'd0;
parameter s_idle_L=3'd1;
parameter s_idle_R=3'd2;
parameter s_turn_L=3'd3;
parameter s_turn_R=3'd4;

设计文档(文档点击可下载):

1. 工程文件

2. 程序文件

3. 程序编译

4. Testbench

5. 仿真图

这篇关于FPGA的乒乓球游戏机ISE,verilog的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/716520

相关文章

FPGA编译与部署方法全方位介绍

FPGA编译与部署是FPGA开发中的核心环节,涉及从代码编写、调试到将设计部署到FPGA硬件的全过程。这个流程需要经过创建项目、编写FPGA VI、模拟调试、编译生成比特流文件,最后将设计部署到硬件上运行。编译的特点在于并行执行能力、定制化硬件实现以及复杂的时钟管理。通过LabVIEW的FPGA模块和NI硬件,可以快速完成开发和部署,尤其适用于复杂控制与高性能数据处理系统。 1. FPG

FPGA开发:条件语句 × 循环语句

条件语句 if_else语句 if_else语句,用来判断是否满足所给定的条件,根据判断的结果(真或假)决定执行给出的两种操作之一。 if(表达式)语句; 例如: if(a>b) out1=int1; if(表达式)         语句1; else         语句2; 例如: if(a>b)out1=int1;elseout1=int2; if(表达式1) 语句1; els

数字电路专题:verilog 阻塞赋值和非阻塞赋值

verilog 阻塞赋值 和 非阻塞赋值 “=”阻塞赋值, ”<=”非阻塞赋值。阻塞赋值为执行完一条赋值语句,再执行下一条,可理解为顺序执行,而且赋值是立即执行; 非阻塞赋值可理解为并行执行,不考虑顺序,在 always 块语句执行完成后,才进行赋值。 如下面的阻塞赋值: //代码如下:module top(din,a,b,c,clk);input din;input clk;out

FPGA开发:模块 × 实例化

模块的结构 对于C语言,其基本单元为函数。与此类似,Verilog的基本设计单元称之为"模块"(block)。对于整个项目的设计思想就是模块套模块。 一个模块由两个部分组成:一部分描述接口,一部分描述逻辑功能。 每个Verilog模块包含4个部分:端口定义、IO说明、内部信号声明、功能定义。且位于module和endmodule之间,如下: module block(a,b,c);inpu

LabVIEW环境中等待FPGA模块初始化完成

这个程序使用的是LabVIEW环境中的FPGA模块和I/O模块初始化功能,主要实现等待FAM(Field-Programmable Gate Array Module,FPGA模块)的初始化完成,并处理初始化过程中的错误。让我们逐步分析各部分的功能: 1. Wait for FAM Initialization框架 此程序框架用于等待I/O模块成功初始化。如果在5秒钟内模块没有完成配

FPGA随记——小说 可综合和不可综合

当然我在网络上找到了些可综合和不可综合的解释 感觉也很有参考价值: https://wenda.so.com/q/1378362174074040 综合就是把你写的rtl代码转换成对应的实际电路。 比如你写代码assign a=b&c; EDA综合工具就会去元件库里拿一个二输入与门出来,然后输入端分别接上b和c,输出端接上a 假如你写了很多这样的语句 assign a=b&c; assig

Xilinx系FPGA学习笔记(五)ROM的IP核学习

系列文章目录 文章目录 系列文章目录前言ROM IP分布式ROM生成ROM配置创建COE文件 块ROM生成如何快速生成Example Design 两种ROM对比 前言 最近在学习小梅哥的xilinx型FPGA开发板,一边学习一边记录,简化整理一下笔记 ROM IP 在 Memories &Storage Elements 下可以看到有两个与 ROM 相关的

基于FPGA的开源项目:FOC/SHA/USB/JPEG等

文章目录 [1. USB 1.1控制器](https://github.com/WangXuan95/FPGA-USB-Device)[2. FOC控制算法](https://github.com/WangXuan95/FPGA-FOC)[3. BSV高级硬件描述语言入门指南](https://github.com/WangXuan95/BSV_Tutorial_cn)[4. 基于XDMA的

LCD彩条显示——FPGA学习笔记10

部分素材来自原子哥 一、LCD简介         基本原理:在两块平行玻璃板中填充液晶材料,通过电场控制液晶分子旋转从而达到透光和遮光的目的。

systemverilog、verilog的部分常用内部函数

1. $ceil 作用:将给定的实数或浮点数向上取整。示例:$ceil(3.2) 返回 4。 2. $floor 作用:将给定的实数或浮点数向下取整。示例:$floor(3.9) 返回 3。 3. $value$plusargs 作用:从命令行读取传递给仿真器的参数。格式:$value$plusargs("格式", 变量),格式 用来匹配命令行的参数,变量 是用来存储匹配到的值。示例:$