1、实现一个可以1-7分频任意切换的分频器,要求无论是奇数分频还是偶数分频,分频后的时钟的duty cycle都是50%,请用Verilog语言描述或者画架构图并配合文字加以解释说明。
Verilog HDL程序如下所示:
module fre_div(
input clk_50m,
input rst,
input[2:0] div_sel, //输入分频数,范围为1-8
output clk_div
);
reg rst_o;
reg aa;
reg odd_sel;
reg even_sel;
///异步复位,同步释放///
always @(posedge clk_50m or posedge rst)
if(rst)begin
aa <= 1'b1;
rst_o <= 1'b1;
end
else begin
aa <= 1'b0;
rst_o <= aa;
end
///判断是奇数分频还是偶数分频///
always @(posedge clk_50m)
if(rst_o)begin
odd_sel <= 1'b0;
even_sel <= 1'b0;
end
else begin
if((div_sel != 1'b0) && (div_sel != 1'b1))begin //判断当分频数为0或1时为无效
if(div_sel[0])begin
odd_sel <= 1'b1;
even_sel <= 1'b0;
end
else begin