象棋游戏倒计时器设计Verilog代码vivado ego1开发板

名称:象棋游戏倒计时器设计Verilog代码vivado  ego1开发板(文末获取)

软件:vivado

语言:Verilog

代码功能:

象棋游戏倒计时器设计

1、具有2个选手控制按键,选手1,按下按键选手2的时间开始倒计时

2、选手2,按下控制按键选手1的时间开始倒计时

3、若对方倒计时结束,则赢得比赛

4、设置获胜指示灯,有超时提醒

5、数码管显示2个选手倒计时分钟、秒钟

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

ego1开发板.png

1. 工程文件

2. 程序文件

3. 程序编译

4. 管脚约束

5. Testbench

6. 仿真图

6.1 整体仿真

6.2 控制模块仿真

6.3显示模块仿真

部分代码展示:

`timescale 1ns / 1ps
//
// Company: 
// Engineer: 
// 
// Create Date: 2019/05/25 14:21:45
// Design Name: 
// Module Name: game_timmer
// Project Name: 
// Target Devices: 
// Tool Versions: 
// Description: 
// 
// Dependencies: 
// 
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
// 
//
module game_timmer(
    input clk_100M,//100M时钟
    input reset_n,//复位按键
    input suspend_SW,//暂停开关
    input player_1,//选手1
    input player_2,//选手2
    output  win_1_led,//选手1胜指示灯
    output  win_2_led,//选手2胜指示灯
    output  alarm_led,//超时提示
    //数码管显示
    output        [7:0] seg_select_1,//高电平点亮,高电平选通    
    output        [3:0] bit_select_1,//高电平点亮,高电平选通    
    output        [7:0] seg_select_2,//高电平点亮,高电平选通    
    output        [3:0] bit_select_2//高电平点亮,高电平选通    
    );
    
wire [7:0] minute_time_1;//选手1剩余时间分钟
wire [7:0] minute_time_2;//选手2剩余时间分钟
wire [7:0] second_time_1;//选手1剩余时间秒
wire [7:0] second_time_2;//选手2剩余时间秒
wire ctrl_clk;
assign ctrl_clk=clk_100M & suspend_SW;//suspend_SW控制暂停
time_ctrl U_time_ctrl(
. clk_100M(ctrl_clk),//100M时钟
. reset_n(reset_n),//复位按键
. player_1(player_1),//选手1,按下高电平
. player_2(player_2),//选手2,按下高电平
. win_1_led(win_1_led),//选手1胜指示灯
. win_2_led(win_2_led),//选手2胜指示灯
. alarm_led(alarm_led),//超时提示
. minute_time_1(minute_time_1),//选手1剩余时间分钟
. minute_time_2(minute_time_2),//选手2剩余时间分钟
. second_time_1(second_time_1),//选手1剩余时间秒
. second_time_2(second_time_2)//选手2剩余时间秒
    );
display U_display(
. clk(clk_100M),//标准时钟,100MHz
. reset(reset_n),//复位信号,低有效 
. minute_time_1(minute_time_1),//选手1剩余时间分钟
. minute_time_2(minute_time_2),//选手2剩余时间分钟
. second_time_1(second_time_1),//选手1剩余时间秒
. second_time_2(second_time_2),//选手2剩余时间秒
. seg_select_1(seg_select_1),
. bit_select_1(bit_select_1),
   
. seg_select_2(seg_select_2),
. bit_select_2(bit_select_2)//高电平点亮,高电平选通
);
endmodule
源代码

 扫描文章末尾的公众号二维码

  • 9
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值