名称:象棋游戏倒计时器设计Verilog代码vivado? ego1开发板
软件:vivado
语言:Verilog
代码功能:
象棋游戏倒计时器设计
1、具有2个选手控制按键,选手1,按下按键选手2的时间开始倒计时;
2、选手2,按下控制按键选手1的时间开始倒计时;
3、若对方倒计时结束,则赢得比赛;
4、设置获胜指示灯,有超时提醒;
5、数码管显示2个选手倒计时分钟、秒钟。
FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com
本代码已在?ego1开发板验证,?ego1开发板如下,其他开发板可以修改管脚适配:
演示视频:
设计文档:
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
点击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=455
阅读全文
701