1、用FPGA实现彩灯控制电路的设计。
2、彩灯控制电路具有1个复位按钮,当按钮按下后开始彩灯控制电路的工作。
3、彩灯控制电路至少有4种以上的控制模式,如左移、右移、循环移位和闪烁等,彩灯控制电
路开始工作后,各工作模式能自动切换。
4、用12只发光二极管(LED)显示彩灯控制电路的工作模式。
fpq是一个20MHZ的分频器,将仪器提供的频率为20MHZ时钟转换成1HZ的时钟,然后输出到有需要的端口,触发模块起作用。
cd2-6是彩灯控制程序,用来控制彩灯的四种模式。CLK是时钟控制信号,CLR是复位信号,EN是使能端,S1,S2是可以改变LED灯的,如左移、右移和循环移位等。
程序
(1)module fpq(clkin,clkout);
input clkin;
output reg clkout;
reg[24:0] temp;
always @(posedge clkin)
begin
if(temp<20000000) temp=temp+'b1;
else temp=0;
endalways @(posedge clkin)
begin
if(temp<10000000) clkout='b0;
else clkout='b1;
end
endmodule
彩灯程序
(2)module cd2_6 (CLK,CLR,EN,S1,S2,LED);
input CLK,CLR,EN,S1,S2;
output reg [11:0] LED;
reg temp;
reg c;
initial
LED='b000000000001;
always @(posedge CLK)
begin
if(EN==0)
begin
case({S1,S2})
'b00:begin
c=c+'b1;
if(c=='b1)
LED='b100100100100;
else
LED='b011011011011;
end
'b01:begin
c=c+'b1;
if(c=='b1)
LED='b000000000000;
else
LED='b111111111111;
end
'b10:begin
temp=LED[0];
LED=LED>>1;
LED[11]=temp;
end
'b11:begin
temp=LED[11];
LED=LED<<1;
LED[0]=temp;
end
endcase
end
if (CLR==1) LED=000000000001;
end endmodule