当前位置:首页 > 数字系统设计(智力竞赛抢答器Verilog HDL建模)
计数模块主要通过if条件语句实现,当条件满足的时候则执行下面的语句,通过对计数模块编译以后生成的系统框图如下:
图八:计数模块
综合以后的RTL图如下:
图九:计数模块
3.4 声音警报模块
声音警报模块、当锁存器锁存第一位抢答选手时,触发短时间报警,显示抢答完成,并且当计时完成时也产生报警信号。这部分的设计程序如下: else if (high == 0 & low == 0) begin
alm <= 1'b1 ; end
else if (m == 1'b1)
begin
alm <= 1'b1 ; end else begin
alm <= 1'b0 ; end end
以上模块通过编译以后形成的计数器系统框图如下:
图十:声音警报模块
综合以后得到的RTL图如下:
图十一:声音警报模块RTL图
3.5 声音信号控制模块
声音信号控制模块由于声音频率与抢答器频率不同,因此本模块使用单独的时间信号,当报警信号为高电平时,此模块向蜂鸣器输入声音信号使其产生报警音,反之则不输出。其Verilog HDL程序如下: always @(a) begin
if (a == 1'b1) begin s <= c ; end else begin
s <= 1'b0 ; end end
以上模块通过编译以后生成的系统框图如下:
图十二:声音信号产生模块
综合以后得到的RTL图如下:
图十三:声音信号控制模块
四、仿真过程与仿真结果 4.1 仿真过程
使用Quartus Ⅱ进行建模和综合以后就可以调用ModelSim进行功能仿真了,首先在Quartus Ⅱ里面进行相应的设置,在工程文件夹下面会新建一个simulation\\modelsim的文件夹,之后我们的仿真文件就会生成在这个文件里面ModelSim仿真需要三个文件,分别是测试文件,电路接线文件,和库文件,我们将这三个文件复制到modelsim文件夹下面就可以进行功能仿真了。
在Quartus Ⅱ运行Processing/Start/Start Test Bench...生成一个测试模版在测试模版中写入一下测试程序:
module kechegnsheji_vlg_tst(); reg eachvec; reg clear; reg clk;
reg [4:0] qiangda; reg shengyinclk; reg start;
reg stop; wire fengmingqi; wire [3:0] xuanshou_hao;
wire [4:0] xuanshou_led; kechegnsheji i1 (
.clear(clear), .clk(clk),
.fengmingqi(fengmingqi), .qiangda(qiangda), .shengyinclk(shengyinclk), .start(start), .stop(stop),
共分享92篇相关文档