说明
输入时钟50M
输出时钟可根据参数进行选择
代码
module Friq_divid (
clk,
rst_n,
freq_o,
);
input wire clk;
input wire rst_n;
output reg freq_o;
parameter Period_2000ms=32'd50000000;
parameter Period_1000ms=32'd25000000;
parameter Period_500ms=32'd12500000;
parameter Period_400ms=32'd10000000;
parameter Period_300ms=32'd7500000;
parameter Period_200ms=32'd5000000;
parameter Period_100ms=32'd2500000;
parameter Period_50ms=32'd1250000;
parameter Period_30ms=32'd750000;
parameter Period_20ms=32'd500000;
parameter Period_10ms=32'd250000;
reg [31:0] cnt;
always @(posedge clk or negedge rst_n)
begin
if(!rst_n)
begin
cnt<=0;
freq_o<=0;
end
else if(cnt==Period_2000ms)
begin
cnt<=0;
freq_o<=~freq_o;
end
else
begin
cnt<=cnt+1;
end
end
endmodule