• 方案介绍
  • 附件下载
  • 相关推荐
申请入驻 产业图谱

电子拔河比赛游戏机的设计Verilog代码vivado ego1开发板

06/16 14:13
326
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

2-231231101R5E6.doc

共1个文件

名称:电子拔河比赛游戏机的设计Verilog代码vivado? ego1开发板

软件:vivado

语言:Verilog

代码功能:

电子拔河比赛游戏机的设计

电子拔河游戏机供2~3人玩耍。由一排LED表示拔河的“电子绳”。初态时中间的LED亮。比赛时双方通过按扭使中间亮的LED向己方移动,当亮至某方最后一个LED时,该方获胜,并记分。

设计要求

(1)比赛开始,由裁判下达比赛“开始”命令后,双方才能输入信号否则电路自锁,输入信号无效。

(2)“电子绳”至少由15个LED构成,裁判下达比赛“开始”命令后。位于中间的LED亮。甲乙双方通过按键输入信号,使发亮的LED向自己一方移动,并能阻止其向对方移动。当自己一方终点LED亮时,表示比赛结束。此时电路自锁,保持当前状态不变,除非由裁判使电路复位。

(3)设计甲乙双方自动记分电路,在每次比赛结束时能自动加分,用数码管显示得分。

注:附加功能根据本人能力自行添加(如可以自动记录比赛时间等等)

FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com

本代码已在ego1开发板验证,ego1开发板如下,其他开发板可以修改管脚适配:

ego1开发板.png

演示视频:

设计文档:

1. 工程文件

2. 程序文件

3. 程序编译

4. 管脚约束

5. Testbench

6. 仿真图

6.1 整体仿真

6.2 控制模块仿真

6.3显示模块仿真

6.4 按键消抖模块

部分代码展示:

`timescale?1ns?/?1ps
//////////////////////////////////////////////////////////////////////////////////
//?Company:?
//?Engineer:?
//?
//?Create?Date:?2019/05/25?20:04:44
//?Design?Name:?
//?Module?Name:?bahe_game
//?Project?Name:?
//?Target?Devices:?
//?Tool?Versions:?
//?Description:?
//?
//?Dependencies:?
//?
//?Revision:
//?Revision?0.01?-?File?Created
//?Additional?Comments:
//?
//////////////////////////////////////////////////////////////////////////////////
module?bahe_game(
input?clk_100M,//标准时钟,100MHz
input?reset_n,//复位信号,低有效?
input?restart,//裁判控制重新开始
input?player_1_key,//选手1
input?player_2_key,//选手2
output?[14:0]?led,//15个led
//数码管显示
output??[7:0]?seg_display_1,
output??[3:0]?bit_display_1,??
output??[7:0]?seg_display_2,
output??[3:0]?bit_display_2
????);
wire?[7:0]?minute_time;//游戏时间分钟
wire?[7:0]?second_time;//游戏时间秒
wire?[7:0]?score_1;//选手1分数
wire?[7:0]?score_2;//选手2分数
wire?player_1;
wire?player_2;
key_debounce?U1_key_debounce(
?????.?clk(clk_100M),
?????.?button_in(player_1_key),//输入
?.?button_posedge(player_1)//消抖后按键上升沿
);
key_debounce?U2_key_debounce(
?????.?clk(clk_100M),
?????.?button_in(player_2_key),//输入
?.?button_posedge(player_2)//消抖后按键上升沿
);
bahe_ctrl?U_bahe_ctrl(
.?clk_100M(clk_100M),//标准时钟,100MHz
.?reset_n(reset_n),//复位信号,低有效?
.?restart(restart),//裁判控制重新开始
.?player_1(player_1),//选手1
.?player_2(player_2),//选手2
.?led(led),//15个led
.?minute_time(minute_time),//游戏时间分钟
.?second_time(second_time),//游戏时间秒
.?score_1(score_1),//选手1分数
.?score_2(score_2)//选手2分数
);
display?U_display(
.?clk_100M(clk_100M),//标准时钟,100MHz
.?reset_n(reset_n),//复位信号,低有效?
.?minute_time(minute_time),//游戏时间分钟
.?second_time(second_time),//游戏时间秒
.?score_1(score_1),//选手1分数
.?score_2(score_2),//选手2分数
//数码管显示
.?seg_display_1(seg_display_1),
.?bit_display_1(bit_display_1),??
.?seg_display_2(seg_display_2),
.?bit_display_2(bit_display_2)
);
endmodule

点击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=461

  • 2-231231101R5E6.doc
    下载

相关推荐