这道题比占空比50%的奇数分频要简单很多,而且答案并不唯一。不过Testbench只限定了一种分频结果。
设置一个计数器cnt
,计数范围0-4,每个clk_in
周期加1。当计数器数值在0~1时,clk_out5==1
;当计数器数值在2~4时,clk_out5==2
。这样就实现了周期为5、占空比为的clk_out5
。
`timescale 1ns/1ns
module odd_div (
input wire rst ,
input wire clk_in,
output wire clk_out5
);
//*************code***********//
reg [2:0] cnt;
reg clk_out5_r;
always@(posedge clk_in or negedge rst) begin
if(~rst)
clk_out5_r <= 0;
else
clk_out5_r <= cnt<=1;
end
always@(posedge clk_in or negedge rst) begin
if(~rst)
cnt <= 0;
else
cnt <= cnt==4? 0: cnt+1;
end
assign clk_out5 = clk_out5_r;
//*************code***********//
endmodule