跟着视频慢慢的学习,现在学习到蜂鸣器篇。
蜂鸣器的作业:
程序如下:
module fmq(clk,rst,beep);
input clk;
input rst;
output beep;
reg beep;
reg[24:0] divcnt;
reg[15:0] delay_cnt;
wire[15:0] delay_end;
parameter driver0=16320;
parameter driver1=8192;//警车的声音
/*parameter driver0=8333;
parameter driver1=3333;*/ //消防车的声音
assign delay_end=divcnt[24] ? driver0:driver1;
always @(posedge clk or negedge rst)
begin
if(!rst)
divcnt<=25'd0;
else
divcnt<=divcnt+1'b1;
end
always @ (posedge clk or negedge rst)
begin
if(!rst)
begin
beep<=1'b0;
delay_cnt<=delay_end;
end
else if(delay_cnt==16'd0)
begin
beep<=~beep;
delay_cnt<=delay_end;
end
else
delay_cnt<=delay_cnt-1'b1;
end
endmodule