verilog 用状态机 来实现 流水灯

moduleZTled(inputclk,inputrst,outputrega,outputregb,outputregc,outputregd,outputrege,... module ZTled(
input clk,
input rst,
output reg a,
output reg b,
output reg c,
output reg d,
output reg e,
output reg f,
output reg g,
output reg h
);

reg [25:0] counter;
reg [3:0] count;
reg [3:0] state;

parameter
NO1=4'b0000,
NO2=4'b0001,
NO3=4'b0010,
NO4=4'b0011,
NO5=4'b0100,
NO6=4'b0101,
NO7=4'b0110,
NO8=4'b0111;

always@(posedge clk or negedge rst)begin
if(!rst) counter<=26'b0;
else if (counter==26'd5000000)
counter=26'b0;
else
counter<=counter+26'b1;
end

always@(posedge clk or negedge rst)
begin
if(!rst)count=4'b0;
else if(counter==26'd5000000 && count==4'd8 )
count<=count+4'b1;
end

always@(posedge clk )
if(!rst)
state<=NO1;
else case (state)
NO1: if(count==4'd1) begin
state<=NO2;
a<=1'b1;end
NO2: if(count==4'd2) begin
state<=NO3;
b<=1'b1;end
NO3: if(count==4'd3) begin
state<=NO4;
c<=1'b1;end
NO4: if(count==4'd4) begin
state<=NO5;
d<=1'b1;end
NO5: if(count==4'd5) begin
state<=NO6;
e<=1'b1;end
NO6: if(count==4'd6) begin
state<=NO7;
f<=1'b1;end
NO7: if(count==4'd7) begin
state<=NO8;
g<=1'b1;end
NO8: if(count==4'd8) begin
state<=NO1;
h<=1'b1;end
default :state<=4'bxxxx;
endcase
endmodule
以上是我写的程序 。把它们下载到我的开发板 上 ,但是 没有实现流水的效果。灯全亮。怎么回事啊?
展开
 我来答
kyo4749
2013-08-14 · TA获得超过433个赞
知道小有建树答主
回答量:294
采纳率:100%
帮助的人:188万
展开全部
其他状态中要把其他的置0,
追问

我把你方法试了试,行了!!!哈哈

本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
axe19880702
2013-08-13
知道答主
回答量:9
采纳率:0%
帮助的人:13.3万
展开全部
你写的输出是rega~regh。这段RTL里没有驱动他们啊。最终是要用rega~regh来驱动灯的吧??
请检查
追问
a,b,c,d,e...h对应的 就是8盏led灯啊。这个不是问题,我知道这里没错。  灯全亮,只是不流水。

也就是说 a,b,c,d,e,f,g,h 同时赋值为1,它们赋值 没有延时。

我 不知道怎么弄
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式