计数模块
计数模块,比赛中要求第一抢答者在规定时间内回答问题,系统开始 30 秒倒计时,倒计时完毕发出响声,若能在规定时间内完成,由主持人按使能开关停止倒计时,不发出响声。计数模块的源程如下:
else if (clk == 1’b1)
begin
if (en == 1’b1)
begin
ll <= ll - 1 ;
if (ll == 4’b0000)
begin
ll <= 4’b1001 ;
hh <= hh - 1 ;
if (hh == 4’b0000 & ll == 4’b0000)
begin
hh <= 4’b0000 ;
ll <= 4’b0000 ;
if (stop == 1’b1)
begin
ll <= ll ;
hh <= hh ;
end
end
end
end
end
high <= ll ;
low <= hh ;
end
计数模块主要通过 if 条件语句实现,当条件满足的时候则执行下面的语句,通过对计数模块编译以后生成的系统框图如下:
图八:计数模块
综合以后的 RTL 图如下:
图九:计数模块
3.4 声音警报模块
声音警报模块、 当锁存器锁存第一位抢答选手时,触发短时间报警,显示抢答完成,并且当计时完成时也产生报警信号。这部分的设计程序如下:
else if (