parameter DIV = 50;
reg clk_out;
reg[get_N(DIV)-1:0] CNT; //这里使用get_N函数自动计算需要使用的位数
always @(posedge clk_in or negedge rst)
if(!rst)
begin
clk_out = 0;
CNT = 0;
end
else
begin
if(CNT==(DIV/2-1))
begin
CNT = 0;
clk_out = ~clk_out;
end
else
CNT = CNT + 1;
end
function integer get_N; //关于函数的定义
input [31:0] DIV;
integer sum, N;
begin
sum = 1;
for(N=0; sum<=(DIV/2); N=N+1)
sum = sum*2 ;
get_N = sum;
end
endfunction