Verilog分频问题

来源:百度知道 编辑:UC知道 时间:2024/06/28 22:24:29
开发板的内部时钟频率为48MHZ,如果我想得到周期为1s的时钟信号,用Verilog应该怎样写分频呢?
这样写对吗?(sys_clk和clk分别为开发板时钟信号和周期为1s的时钟信号。)
reg [24:0] count;
always@(posedge sys_clk)
begin
if(count!=24000000)
count=count+1;
else
begin
count=0;
clk=~clk;
end
end

你的写法很不规范! 你看看下面的吧
module ofp (sys_clk,clk_out,rst);
input sys_clk,rst;
output clk_out;
reg clk_out;
reg [24:0] counter;
parameter N=24000000;

always @ (posedge sys_clk)
begin
if(!rst)
begin
counter<=1'b0;
clk_out<=1'b0;
end
else
if(counter<N/2-1)
begin
counter<=counter+1'b1;
end
else
begin
counter<=1'b0;
clk_out<=~clk_out;
end
endmodule