一、实验内容介绍
实现抢答器功能,最多可支持 8 个选手抢答,且抢答器的时间分辨力小于
10ms,具体功能如下:
Ø 主持人按系统复位键后开始抢答;
Ø 只要有选手按下抢答器,其他选手再按无效
Ø 最先按下抢答器的选手号码在数码管上显示
Ø 抢答成功选手对应的 LED 灯变亮
Ø 主持人再次按下复位键,本轮抢答结束,等待下一次抢答
将设计下载到实验箱进行验证,拨挡开关K1 作为抢答开始信号,8 个选手
按键用按键SW1~SW8 表示,LED1~LED8 灯做抢答成功选手指示灯,数码管显示
选手号码。
二、设计思路
设计成时序逻辑电路,在always块中使用if条件语句即可保证优先级,从而完成电路的设计。
三、实验代码
module hujiao(a,b,c,d,e,l,seg,dig,clk,rst );
input a,b,c,d,e,clk,rst;
output seg,l;
output [0:7]dig;
reg [7:0]seg;
reg [4:0]l;
assign dig=8'b11111110;
always@(posedge clk or posedge rst)
begin
if(rst)
begin
l=5'b00000;
seg=8'b11000000;
end
.......
四、仿真结果
如下图所示,当a(代表优先级最高的病人)呼叫时,其对应的LED灯l<1>亮,数码管显示1;当a呼叫且b呼叫时,只有l<1>亮,且数码管显示1。