这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » DIY与开源设计 » 电子DIY » 185 lan0o0 在本次CPLD DIY开发的进程帖

共22条 3/3 1 2 3 跳转至
助工
2013-09-29 12:42:53     打赏
21楼

蜂鸣器实验一 颜色越来越骚

警车声音

module jiuhuoche(sys_clk,
sys_rstn,
beep);
input   sys_clk ;
input   sys_rstn;
output  beep;


reg beep;
reg [24:0] div_cnt;
reg [14:0] delay_cnt;
wire[14:0] delay_end;


parameter clk_diver0=26817;
parameter clk_diver1=18408;
assign  delay_end=div_cnt[24] ? clk_diver0:clk_diver1;


always@(posedge sys_clk or negedge sys_rstn)
begin 
if (!sys_rstn)
div_cnt<=25'd0;
else 
div_cnt<=div_cnt+1'b1;
end


always@(posedge sys_clk or negedge sys_rstn)
begin 
if (!sys_rstn)
delay_cnt<=delay_end;
else if(delay_cnt==15'd0)
begin
beep <=~beep;
delay_cnt<=delay_end;
end
else 
delay_cnt<=delay_cnt-1'b1;
end
endmodule 


助工
2013-09-29 15:00:12     打赏
22楼

第二个实验例子

module key_piano(sys_clk,

sys_rstn,
key_in,
beep);
input   sys_clk ;
input   sys_rstn;
input  [7:0] key_in;
output  beep;


reg beep;
reg [14:0] delay_cnt;
reg [14:0] delay_end;






always@(posedge sys_clk or negedge sys_rstn)
begin 
if (!sys_rstn)
delay_cnt<=16'd0;
else if ((delay_cnt==delay_end)&(!(delay_end==16'hffff)) )
begin 
delay_cnt<=16'd0;
beep<=~beep;
end
else
delay_cnt<=delay_cnt+1'b1;
end


always@(key_in)
begin 
case (key_in)
8'b11111110:delay_end=16'd47774;
8'b11111101:delay_end=16'd42568;
8'b11111011:delay_end=16'd37919;
8'b11110111:delay_end=16'd35791;
8'b11101111:delay_end=16'd31888;
8'b11011111:delay_end=16'd28409;
8'b10111111:delay_end=16'd25309;
8'b01111110:delay_end=16'd23912;
8'b01111101:delay_end=16'd21282;
8'b01111011:delay_end=16'd18961;
8'b01110111:delay_end=16'd17897;
8'b01101111:delay_end=16'd15944;
8'b01011111:delay_end=16'd14205;
8'b00111111:delay_end=16'd12655;
default:delay_end=16'd65535;
endcase
end
endmodule 

共22条 3/3 1 2 3 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]