用Verilog语言写出完成以下功能的代码,并给出注解:(1)按键开启1为H,开始比赛。八位七码管从左数第1、2位显示黄队分数,第7、 8位显示红队分数。开始比比赛时同时显示为00。按下键盘1代表黄队加1分;按下键盘2代表黄队加2分;按下键盘*3代表黄队加3分;同时对应的黄色led灯。按下键盘#1代表红队加1分;按下键盘#2代表红队加2分;按下键盘#3代表红队加3分;同时对应的红色 led 灯亮。 (2)拨动开关sw1为L,结束束缚比赛。大部分的队伍伍对颜色的led闪光灯(闪光频率为4Hz),(3)外部输入脉动信号频率为50mhz;(4)扩展要求: 点阵滚动显示“黄/红队获胜”
时间: 2024-02-13 21:07:40 浏览: 31
以下是Verilog代码及注释:
```
module game(
input clk, // 时钟信号
input start, // 开始比赛开关
input end, // 结束比赛开关
input [2:0] yellow_add, // 黄队加分按键
input [2:0] red_add, // 红队加分按键
output [7:0] seg, // 七码管输出
output [1:0] led, // LED输出
output [7:0] dot_matrix // 点阵输出
);
reg [7:0] yellow_score = 8'b00000000; // 初始化黄队分数为0
reg [7:0] red_score = 8'b00000000; // 初始化红队分数为0
reg [1:0] win = 2'b00; // 获胜队伍,00为未决定,01为黄队获胜,10为红队获胜
always @(posedge clk) begin // 时钟上升沿触发
if (start) begin // 如果开始比赛
yellow_score <= 8'b00000000; // 初始化黄队分数为0
red_score <= 8'b00000000; // 初始化红队分数为0
seg <= 8'b00000000; // 七码管显示为00
win <= 2'b00; // 获胜队伍未决定
end else if (end) begin // 如果结束比赛
led <= {2{1'b1}}; // LED常亮
if (yellow_score > red_score) begin // 如果黄队获胜
dot_matrix <= "1100011111000110"; // 点阵显示“黄队获胜”
win <= 2'b01; // 获胜队伍为黄队
end else begin // 如果红队获胜
dot_matrix <= "1111000111011111"; // 点阵显示“红队获胜”
win <= 2'b10; // 获胜队伍为红队
end
end else begin // 如果比赛进行中
case (yellow_add) // 根据黄队加分按键输入
3'b001: yellow_score <= yellow_score + 1; // 按下键盘1,黄队加1分
3'b010: yellow_score <= yellow_score + 2; // 按下键盘2,黄队加2分
3'b011: yellow_score <= yellow_score + 3; // 按下键盘3,黄队加3分
endcase
case (red_add) // 根据红队加分按键输入
3'b001: red_score <= red_score + 1; // 按下键盘#1,红队加1分
3'b010: red_score <= red_score + 2; // 按下键盘#2,红队加2分
3'b011: red_score <= red_score + 3; // 按下键盘#3,红队加3分
endcase
seg[6:5] <= yellow_score[7:6]; // 七码管左两位显示黄队分数
seg[1:0] <= red_score[7:6]; // 七码管右两位显示红队分数
led[0] <= (yellow_add != 3'b000); // 按下黄队加分按键时,对应的黄色LED灯亮
led[1] <= (red_add != 3'b000); // 按下红队加分按键时,对应的红色LED灯亮
end
end
endmodule
```
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![7z](https://img-home.csdnimg.cn/images/20210720083312.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)