当前位置:   article > 正文

VIVADO电子拔河比赛游戏机verilog代码Nexys4开发板_基于verilog的拔河器

基于verilog的拔河器

名称:VIVADO电子拔河比赛游戏机verilog代码Nexys4开发板(文末获取)

软件:VIVADO

语言:Verilog

代码功能:

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

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

方最后一个LED时,该方获胜,并记分。

设计要求

(1)比赛开始,由裁判下达比赛“开始”命令后,双方才能输入信号否则电路自锁,输入信号无效    (2)“电子绳”至少由15个LED构成,裁判下达比赛“开始”命令后

位于中间的LED亮。甲乙双方通过按键输入信号,使发亮的LED向自己一方移    动,并能阻止其向对方移动。当自己一方终点LED亮时,表示比赛结束。此时电路自锁,保持当前状态不变,除非由裁判使电路复位。    (3)设计甲乙双方自动记分电路,在每次比赛结束时能自动加分,用数码管显示得分    注:附加功能根据本人能力自行添加(如可以自动记录比赛时间等等)                                                                                          

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

nexys4_ddr开发板.png

Testbench

仿真图

部分代码展示:

`timescale 1ns / 1ps
//拔河游戏
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,
output  [7:0] bit_display
    );
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
. score_1(score_1),//选手1分数
. score_2(score_2)//选手2分数
);
display U_display(
. clk_100M(clk_100M),//标准时钟,100MHz
. reset_n(reset_n),//复位信号,低有效 
. score_1(score_1),//选手1分数
. score_2(score_2),//选手2分数
//数码管显示
. seg_display(seg_display),
. bit_display(bit_display)
);
endmodule
 源代码

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/凡人多烦事01/article/detail/641344
推荐阅读
相关标签
  

闽ICP备14008679号