一个比较简单的D触发器4分频verilog程序

转自 http://blog.sina.com.cn/s/blog_605fa0af0100djnz.html

将两个D触发器级联起来,前一个D触发器的输出做为下一个触发器的时钟输入,就构成了一个由两个D触发器形成的4分频程序,代码如下所示:

module D_ff_4div(clkin,reset_n,clkout);
    input clkin,reset_n;
    output clkout;
    wire in1,in2,clkin_2;
    reg out;
    reg clkout_1;
    assign in1=~clkout_1;
    assign clkin_2=clkout_1;
    assign in2=~out;
    assign clkout=out;
 always@(posedge clkin)   //由第一个D触发器构成的2分频程序;
 begin
     if(!reset_n)
     begin
     out<=0;
    clkout_1<=0;
     end
    else
    clkout_1<=in1;
 end
 always@(posedge clkin_2)   //由第二个D触发器构成的2分频程序,时钟输入为上面的输出;
 begin
     if(!reset_n)
    out<=0;
     else
     out<=in2;
 end
 endmodule

代码经过验证,欢迎高手批评指正。

你可能感兴趣的:(FPGA)