求Verilog语言编写的循环彩灯控制器

语言:VerilogHDL开发软件:Max+PlusII具体要求:输入key(取1或0)控制开始与暂停输入端style(取1或0)控制循环方案(共两种,见下)输出端为3盏... 语言:Verilog HDL
开发软件:Max+PlusII

具体要求:
输入key(取1或0)控制开始与暂停
输入端style(取1或0)控制循环方案(共两种,见下)
输出端为3盏彩灯(可用Light表示).

循环方案一:3盏灯从左到右依次亮起
循环方案二:3盏灯从右到左依次亮起
展开
 我来答
810045997
2009-08-28
知道答主
回答量:12
采纳率:0%
帮助的人:10.8万
展开全部
// 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上做的
凤波府夜梅
2019-11-06 · TA获得超过3820个赞
知道大有可为答主
回答量:3137
采纳率:26%
帮助的人:231万
展开全部
//
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上做的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式