初学者问一个流水灯的问题,附代码

2019-07-15 21:19发布

18个LED灯,每隔1秒流水亮灯,上板没反映,请教一下代码有问题吗

module led (
  input clk,
  input rstn,
  output reg[17:0] led

);

reg [24:0] counter;
reg [4:0] led_count;

always@(posedge clk or negedge rstn)
begin
  if(rstn==1'b0)
    counter<=25'b0;
  else
    counter<=counter+25'b1;
end

always@(posedge clk or negedge rstn)
begin
  if(rstn==1'b0)
    led_count<=5'b0;
  else  
    if(counter==25'b0)
           led_count<=led_count+5'b1;
end

always@(posedge clk or negedge rstn)
begin
  if(rstn==1'b0)
    led<=18'b0;
  else
    case(led_count)
           0 :led=18'b0000_0000_0000_0000_01;
                1 :led=18'b0000_0000_0000_0000_10;
                2 :led=18'b0000_0000_0000_0001_00;
                3 :led=18'b0000_0000_0000_0010_00;
                4 :led=18'b0000_0000_0000_0100_00;
                5 :led=18'b0000_0000_0000_1000_00;
                6 :led=18'b0000_0000_0001_0000_00;
                7 :led=18'b0000_0000_0010_0000_00;
                8 :led=18'b0000_0000_0100_0000_00;
                9 :led=18'b0000_0000_1000_0000_00;
                10:led=18'b0000_0001_0000_0000_00;
                11:led=18'b0000_0010_0000_0000_00;
                12:led=18'b0000_0100_0000_0000_00;
                13:led=18'b0000_1000_0000_0000_00;
                14:led=18'b0001_0000_0000_0000_00;
                15:led=18'b0010_0000_0000_0000_00;
                16:led=18'b0100_0000_0000_0000_00;
                17:led=18'b1000_0000_0000_0000_00;
      default:led=18'b0;   
    endcase
end

endmodule
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
4条回答
小范fpr
1楼-- · 2019-07-16 00:00
 精彩回答 2  元偷偷看……
懒洋洋1230
2楼-- · 2019-07-16 04:21
应该是对的,按DE2多媒体教育板子上的PIN TABLE描述分配的管脚
电人
3楼-- · 2019-07-16 08:24
是不是应该加多一个if(counter>655395478)     count<=0
懒洋洋1230
4楼-- · 2019-07-16 10:05
小范fpr  你是对的,的确是管脚没分配好,复位管脚弄错了,这个板子貌似没有全局复位管脚。

一周热门 更多>