求 彩灯变换控制器设计 Verilog语言 程序 知道您是高手 帮帮我 谢谢~ 5
控制8个LED进行花样性显示。设计4种显示模式:s0,从左到右逐个点亮LED;s1,从右到左逐个点亮LED;s2,从两边到中间逐个点亮LED;s3,从中见到两边逐个点亮L...
控制8个LED进行花样性显示。设计4种显示模式:s0,从左到右逐个点亮LED;s1,从右到左逐个点亮LED;s2,从两边到中间逐个点亮LED;s3,从中见到两边逐个点亮LED。4种模式循环切换,复位键(rst)控制系统的运行停止。
展开
1个回答
展开全部
// test10.v
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上做的
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上做的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询