彩灯循环可通过计数器来实现:如当计数值为1时,out(out为8位寄存器)为00000001,为计数值为2时,out为00000010,……等等,通过对out的控制可实现多种彩灯循环方案的设计。
module div12(clk_in,reset,clk_out);
input clk_in,reset;
output clk_out;
reg[3:0] clk_temp;
assign clk_out = (clk_temp=11)?1:0;
always@(posedge clk_in)
if(~reset)
begin clk_temp=0;end
else if(clk_temp=11)
clk_temp=0;
else
begin
clk_temp = clk_temp + 1;
end
endmodule
二分频
module div_fre(clk_in,clk_out);
input clk_in;
output clk_out;
reg clk_out;
always @(posedge clk_in)
begin
clk_out = ~clk_out;
end
endmodule
module div2(clk_in,clk_out);
input clk_in;
output clk_out;
reg clk_temp;
assign clk_out = clk_temp;
always@(posedge clk_in)
begin
clk_temp = clk_temp + 1;
end
endmodule