轉自 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
代碼經過驗證,歡迎高手批評指正。