第一范文网 - 专业文章范例文档资料分享平台

verilog HDL抢答器(两个程序)

来源:用户分享 时间:2025/5/17 8:43:50 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

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抢答器(两个程序) 的文档
verilog HDL抢答器(两个程序).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c88ewe137g102ra61x73m28mwx1483k01css_2.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top