时序逻辑学习——跑马灯(移位法 循环移位 模块调用 参数化设计)

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

方法一 移位法

功能分析

八个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
        
    
    
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值