module light1(clock,key,style,light);
input clock,key,style ; //端口定義
output [2:0]light;
reg [2:0] light =3'b111 ;
reg clk = 1;
parameter cnt = 24000000;
reg [24:0]count;
always @ (posedge clock) //分頻計數
begin
if (count < cnt)
count = count + 25'b1;
else
begin
count = 0;
clk = ~ clk;
end
end
always @ (posedge clk) //LED燈輸出
begin
if (!key) //key鍵被按下
light = light; //暫停
else
begin
if (!style) //style被按下
begin
if (light==0)
light=3'b111; //LED燈全部點亮時,重新熄滅再準備下次循環
else
light =light>>1; //LED燈右移
end
else
begin
if (light ==3'b000) //LED燈全部點亮時,重新熄滅再準備下次循環
light =3'b111;
else
light = light<<1; //LED燈左移
end
end
end
endmodule
這個程序我已經在Actel板上燒過了,沒問題。如果還有什麽問題應該是妳的板不同或者工具不同,我是在libero_8.5上做的