?? music_ambulance_siren.v
字號(hào):
// music_ambulance_siren.v //救護(hù)車汽笛
/**********************************************************************
Let's alternate 2 tones. We first use a 24 bits counter "tone" to produce
a slow square wave. The MSB bit (tone[23]) toggles with a frequency of about 1.5Hz.
Then we use this bit to switch between 2 frequencies for the main counter,
and that alternates between the 2 tones. Here comes the ambulance!
**********************************************************************/
module music_ambulance_siren(clk, speaker);
input clk;
output speaker;
parameter clkdivider = 25000000/440/2;
reg [23:0] tone;
always @(posedge clk) tone <= tone+1;
reg [14:0] counter;
always @(posedge clk)
if(counter==0) counter <= (tone[23] ? clkdivider-1 : clkdivider/2-1);
else counter <= counter-1;
reg speaker;
always @(posedge clk) if(counter==0) speaker <= ~speaker;
endmodule
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -