module stream(
input clk,
input reset,
output [7:0] led
);
reg [31:0]count;
reg [7:0]led;
input clk,
input reset,
output [7:0] led
);
reg [31:0]count;
reg [7:0]led;
parameter[31:0] delay=32'd100000000; //delay 1 sec
always@(posedge clk or posedge reset)
begin
if(reset)
count<=0;
else if(count==delay)
count<=0;
else
count<=count+1;
always@(posedge clk or posedge reset)
begin
if(reset)
count<=0;
else if(count==delay)
count<=0;
else
count<=count+1;
end
//always@(posedge clk or posedge reset)
//begin
//if(reset)
//led<=8'b0000_0001;
//else
//begin
// if(count==delay)
// begin
// led<=led<<1;
// if(led==8'b0000_0000)
// led<=8'b0000_0001;
// end
// else
// led<=led;
//end
//end
//endmodule
//always@(posedge clk or posedge reset)
//begin
//if(reset)
//led<=8'b0000_0001;
//else
//begin
// if(count==delay)
// begin
// led<=led<<1;
// if(led==8'b0000_0000)
// led<=8'b0000_0001;
// end
// else
// led<=led;
//end
//end
//endmodule
always@(posedge clk or posedge reset)
begin
if(reset)
led<=8'b0000_0001;
else
begin
if(count==delay)
led<={led[6:0],led[7]};
else
led<=led;
end
begin
if(reset)
led<=8'b0000_0001;
else
begin
if(count==delay)
led<={led[6:0],led[7]};
else
led<=led;
end
end
endmodule
endmodule
本文介绍了一种使用Verilog语言实现LED定时闪烁的方法。通过计数器与延迟参数配合,实现了1秒周期的LED闪烁效果。具体而言,文中详细展示了如何通过posedge触发器更新计数器状态,并在特定计数条件下改变LED的状态,以此实现精确的定时闪烁。
2757





