方法一 移位法
功能分析
八个LED灯以每个0.5s的频率闪烁
设计输入
//八个LED灯以每个0.5s的频率闪烁
//移位法
module led_run1(
Clk,
Reset_n,
Led
);
input Clk;
input Reset_n;
output reg [7:0]Led;
reg [24:0]counter;//计数器计数0.5s
always@(posedge Clk or negedge Reset_n)
if(!Reset_n)
counter <= 0;
// else if(counter == 24_999_999)
else if(counter == 24_999)
counter <= 0;
else
counter <= counter + 1'b1;
always@(posedge Clk or negedge Reset_n)
if(!Reset_n)
Led <= 8'b0000_0001;
//else if(counter == 24_999_999)
else if(counter == 24_999)
begin
if(Led == 8'b1000_0000)
Led <= 8'b0000_0001; //当LED移到最左一位1000_0000时,手动将其设置为0000_0001
else
Led <= Led << 1;
end
else
Led <= Led;
endmodule

文章介绍了使用Verilog语言设计LED灯以0.5s频率闪烁的三种方法:移位法、循环移位和调用模块的参数化设计。每种方法都包含计数器和LED状态更新,通过功能仿真验证了设计的正确性。
最低0.47元/天 解锁文章
2386

被折叠的 条评论
为什么被折叠?



