原创 verilog三分频

2009-8-10 21:50 3043 4 4 分类: FPGA/CPLD
说明:编译已通过,无错。
module div_3(dout,clk_ser);

input clk_ser;
output dout;
reg[1:0] flag_a;
reg[1:0] flag_b;
reg div_a;
reg div_b;
wire div_3;
reg[3:0] count;
reg div_reg;

assign div_3=div_a^(div_a&div_b); //div_3即为三分频信号
assign dout=(count==4'b0000)?div_reg:0; //三分频作为同步信号,定时输出

always @(posedge div_3)
begin
count<=count+1;
div_reg<=div_3;
end

always @(posedge clk_ser)
begin
if(flag_a==2'b00)
begin
div_a<=0;
flag_a<=flag_a+1;
end
else if(flag_a==2'b01)
begin
div_a<=1;
flag_a<=flag_a+1;
end
else if(flag_a==2'b10)
begin
div_a<=1;
flag_a<=2'b00;
end
end

always @(negedge clk_ser)
begin
if(flag_b==2'b00)
begin
div_b<=1;
flag_b<=flag_b+1;
end
else if(flag_b==2'b01)
begin
div_b<=0;
flag_b<=flag_b+1;
end
else if(flag_b==2'b10)
begin
div_b<=0;
flag_b<=2'b00;
end
end

endmodule



PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
我要评论
0
4
关闭 站长推荐上一条 /3 下一条