|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
我写的是流水灯的代码,我的想法是把50MHZ的始终分频得到一个2HZ的时钟,然后检测到这个2HZ时钟的上升沿时改变LED的亮灭情况。实际效果是达到了,但是每当LED变化的一瞬间全部的LED总是快速闪烁一下。以下是我的代码请大家指教。module LED_Clock
(
input sck,
input rst_n,
output led_en
);
reg [25:0] cnt;
always@(posedge sck or negedge rst_n)
begin
if(!rst_n)
cnt <= 26'd0;
else if(cnt<49_999_999)
cnt <= cnt+1'b1;
else
cnt <= 26'd0;
end
assign led_en = (cnt > 26'd25_000_000) ? 1'b1 : 1'b0;
endmodule
module LED_module
(
input sck,
input rst_n,
input led_en,
output reg [3:0] LED_Data
);
always@ (posedge led_en or negedge rst_n)
begin
if(!rst_n)
LED_Data[3:0] <= 4'b0001;
else
LED_Data[3:0] <= {LED_Data[2:0],LED_Data[3]};
end
endmodule
module LED_Runing
(
input sck,
input rst_n,
output [3:0] LED_Data
);
wire led_en;
LED_Clock LED_Clock_Init
(
.sck (sck),
.rst_n (rst_n),
.led_en (led_en)
);
LED_module LED_module_Init
(
.sck (sck),
.rst_n (rst_n),
.led_en (led_en),
.LED_Data (LED_Data)
);
endmodule |
|