verilog实现占空比为1/2的奇数分频电路

最近正在准备找工做,因为是作FPGA开发,因此verilog实现技术分频电路是一道常常出现的题目,三分频,五分频电路等等;blog

通过一下午时间总结出了一个通用电路,能够实现任意奇数分频电路。开发

verilog代码以下:input

module fenpin3(clk,clkout,rst);//奇数分频电路,可以进行3,5,7分频
input clk,rst;
output clkout;

reg [2:0] a,b;
reg clkout;

parameter fenpin=3;


always@(posedge clk or negedge rst)
begin
if(!rst)
a<=0;
else if(a==fenpin-1)
a<=0;
else
a<=a+1;
end

always@(negedge clk or negedge rst)
begin
if(!rst)
b<=0;
else if(b==fenpin-1)
b<=0;
else
b<=b+1;
end

always@(a or b or rst)
begin
if(!rst)
clkout<=0;
else if((a+b==1)||(a+b==fenpin+1))
clkout<=~clkout;
end

endmodule
module




经过以上电路,能够实现任意占空比为1/2的电路。仿真波形以下:sed


三分频:im



五分频:技术


七分频:总结