云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > verilog HDL抢答器(两个程序)

verilog HDL抢答器(两个程序)

  • 62 次阅读
  • 3 次下载
  • 2026/1/9 15:41:48

EnFlat=1'b0;

Led2=3'd0;//为低电平时,选手前的灯点亮 Buzzer=1'b1;//为高电平不响 end end

endmodule

测试程序

`timescale 1s/1s

module qiangdaqi_test();

reg clk,clr,inputEn,inputL1,inputL2,inputL3,inputL4,inputL5,inputL6;//输入口 wire [0:7]Led2;//Led2显示选手号

wire Buzzer;//低电平时蜂鸣器发出声音 QiangDaQi

u1(clk,clr,inputEn,inputL1,inputL2,inputL3,inputL4,inputL5,inputL6,Led2,Buzzer);

initial begin #0

clk=1;clr=0;inputEn=1;inputL1=1;inputL2=1;inputL3=1;inputL4=1;inputL5=1;inputL6=1;

#2 inputL2=0;//二号选手超前抢答 #4 clr=1;inputL2=1;//复位 #2 clr=0;

#4 inputEn=0;inputL4=0;//四号选手先抢答显示4 #2 inputL3=0;//三号选手后抢答不显示3 #4 clr=1;inputEn=1;inputL3=1;inputL4=1; #2 clr=0; end

always #1 clk=~clk; endmodule

程序二

module QiangDaQi

(clk,clr,add,stu,inputEn,inputL1,inputL2,inputL3,inputL4,inputL5,inputL6,Led1,Led2,Led3,Buzzer);

//一开始声明有哪些端口 input

clk,clr,inputEn,inputL1,inputL2,inputL3,inputL4,inputL5,inputL6,add,stu;//输入口

output [0:5]Led1;//对应参赛选手前的灯

output [0:7]Led2,Led3;//Led2显示选手号Led3显示选手分数 output Buzzer;//低电平时蜂鸣器发出声音

reg EnFlat=1'b1;//EnFlat为高电平时开始抢答

reg BuClk=1'b0;//为高电平时进入蜂鸣器处理程序

//reg add,stu;//add答题正确加一分stu答题错误减一分 //reg clr=0;//重置键 reg [0:5]Led1=6'b111111; reg [0:2] answer=3'd0;

reg[0:3] score=4'd0,score1=4'd0,score2=4'd0;

reg[0:3] score3=4'd0,score4=4'd0,score5=4'd0,score6=4'd0;//各选手分数计算 reg Buzzer=1;

reg [0:4] daojishi=5'd20;//用于产生20s倒计时 reg [0:7]Led2=8'b11111111,Led3=8'b11111111; always @ (posedge clk)//时钟上升沿 begin

if(inputEn==1)//如果主持人没按按钮就有人抢答 begin

if(inputL1==0)

begin Led1=6'b111110;answer=3'd1;BuClk=1'b1;end if(inputL2==0)

begin Led2=6'b111101;answer=3'd2;BuClk=1'b1;end if(inputL3==0)

begin Led2=6'b111011;answer=3'd3;BuClk=1'b1;end if(inputL4==0)

begin Led2=6'b110111;answer=3'd4;BuClk=1'b1;end if(inputL5==0)

begin Led2=6'b101111;answer=3'd5;BuClk=1'b1;end if(inputL6==0)

begin Led2=6'b011111;answer=3'd6;BuClk=1'b1;end end

if(inputEn==1'b0)//为低电平时表示主持人按下抢答按钮开始抢答 begin

Led1=6'b111111;//为低电平时,选手前的灯点亮 BuClk=1'b0;

Buzzer=1'b1;//为高电平不响 end

if(EnFlat==1'b1) begin begin

if(inputL1==1'b0)//一号选手抢答 begin

EnFlat=1'b0;//为低电平禁止其他选手抢答

answer=3'd1;//为高电平时转到对应选手加减分程序中去 BuClk=1'b1;//转到蜂鸣器程序 end

if(inputL2==1'b0)//二号选手抢答 begin

EnFlat=1'b0; answer=3'd2; BuClk=1'b1; end

if(inputL3==1'b0)//三号选手抢答 begin

EnFlat=1'b0; answer=3'd3; BuClk=1'b1; end

if(inputL4==1'b0)//四号选手抢答 begin

EnFlat=1'b0; answer=3'd4; BuClk=1'b1; end

if(inputL5==1'b0)//五号选手抢答 begin

EnFlat=1'b0; answer=3'd5; BuClk=1'b1; end

if(inputL6==1'b0)//六号选手抢答 begin

EnFlat=1'b0; answer=3'd6; BuClk=1'b1; end end begin

if(daojishi!=5'd0)//用于1Hz信号 daojishi=daojishi-1;

else//倒计时结束抢答器还没按下则抢答停止且蜂鸣器响 begin

daojishi=5'd20; EnFlat=1'b0; BuClk=1'b1; end end begin

if(BuClk==1'b1)//当蜂鸣器标志为1时 Buzzer=1'b0;//蜂鸣器发声 end begin

if(answer ==3'd1)//第一组加减分 begin

Led1=6'b111110;//点亮该选手前的LED灯 Led2=8'hf9;//选手号数码管显示1 if(add)

score1=score1+1;//当主持人判定选手的回答正确时,按下add键进行加分操作 else

if((stu||inputEn)&&(score1!=0))

score1=score1-1;//当主持人判定选手的回答错误时,按下stu键进行加分操作

else score1=0;

score=score1;//把第一组的分数赋值给分数寄存器 end

if(answer ==3'd2)//第二组加减分 begin

Led1=6'b111101;Led2=8'ha4; if(add)

score2=score2+1;//当主持人判定选手的回答正确时,按下add键进行加分操作 else

if((stu||inputEn)&&(score2!=0))

score2=score2-1;//当主持人判定选手的回答错误时,按下stu键进行加分操作

else score2=0;

score=score2;//把第一组的分数赋值给分数寄存器 end

if(answer ==3'd3)//第三组加减分 begin

Led1=6'b111011;Led2=8'hb0; if(add)

score3=score3+1;//当主持人判定选手的回答正确时,按下add键进行加分操作 else

if((stu||inputEn)&&(score3!=0))

score3=score3-1;//当主持人判定选手的回答错误时,按下stu键进行加分操作

else score3=0;

score=score3;//把第一组的分数赋值给分数寄存器 end

if(answer ==3'd4)//第四组加减分 begin

Led1=6'b110111;Led2=8'h99; if(add)

score4=score4+1;//当主持人判定选手的回答正确时,按下add键进行加分操作 else

if((stu||inputEn)&&(score4!=0))

搜索更多关于: verilog HDL抢答器(两个程序) 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

EnFlat=1'b0; Led2=3'd0;//为低电平时,选手前的灯点亮 Buzzer=1'b1;//为高电平不响 end end endmodule 测试程序 `timescale 1s/1s module qiangdaqi_test(); reg clk,clr,inputEn,inputL1,inputL2,inputL3,inputL4,inputL5,inputL6;//输入口 wire [0:7]Led2;//Led2显示选手号 wire Buzzer;//低电平时蜂鸣器发出声音 QiangDaQi u1(clk,clr,inputEn,inputL1,inputL2,inputL3,inputL4,inputL5,input

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com