惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

月光博客
月光博客
MyScale Blog
MyScale Blog
博客园 - Franky
The Cloudflare Blog
IT之家
IT之家
Blog — PlanetScale
Blog — PlanetScale
博客园 - 聂微东
WordPress大学
WordPress大学
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
T
The Blog of Author Tim Ferriss
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
罗磊的独立博客
Google DeepMind News
Google DeepMind News
P
Proofpoint News Feed
Martin Fowler
Martin Fowler
aimingoo的专栏
aimingoo的专栏
J
Java Code Geeks
腾讯CDC
雷峰网
雷峰网
Microsoft Azure Blog
Microsoft Azure Blog
G
Google Developers Blog
博客园 - 【当耐特】
美团技术团队
云风的 BLOG
云风的 BLOG

博客园 - yf.x

超声波测距#倒车雷达#DE10-Lite 按键计数器#DE10-Lite 按键消抖#DE10-Lite 流水呼吸灯-v1#DE10-Lite 呼吸灯-#DE10-Lite 流水灯#DE10-Lite#Verilog HDLBits_review 2015fsm 补码FSM-HDLbits 串行数据流输出其中的数据位-HDLbits 串行数据接收判断-HDLbits 输出PS2数据流-HDLbits PS2数据流检测状态机-HDLbits 独热码状态机-HDLbits 旅鼠4-HDLbits 旅鼠游戏3-HDLbits 旅鼠游戏2-HDLbits 旅鼠游戏--HDLbits 水库水位控制问题-HDLbits 康威生命游戏-hdlbits
流水呼吸灯v2#DE10-Lite
yf.x · 2026-03-28 · via 博客园 - yf.x
  1. 实验现象:4个led循环点亮呼吸;
  2. 算法:在控制使能模块添加一个计数器,每个led亮暗4s,添加一个16s的计数器,控制循环。
  3. 仿真结果:

image

module time_ctrl(
    input clk,
    input rst_n,
    output reg [3:0] ctrl_en
    );
    
    parameter T1 = 200_000_000;    //4s
    parameter T2 = 400_000_000;    //8s
    parameter T3 = 600_000_000;    //12s
    parameter T4 = 800_000_000;    //16s
    
    reg [29:0] cnt;
    
    
    //counter
    always @(posedge clk,negedge rst_n)
        begin
            if(!rst_n)
                cnt <= 0;
            else
                if(cnt < T4 - 1)
                    cnt <= cnt + 1;
                else
                    cnt <= 0;
        end
        
    
    //turn on led 1 by 1
    always @(posedge clk,negedge rst_n)
        begin
            if(!rst_n)
                ctrl_en <= 0;
            else
                if(cnt >= T3 - 1)
                    ctrl_en <= 4'b1000; //NO.4 led  on
                else
                    if(cnt >= T2 - 1)
                        ctrl_en <= 4'b0100; //NO.3 led  on
                    else
                        if(cnt >= T1 - 1)
                            ctrl_en <= 4'b0010; //NO.2 led  on
                        else
                            ctrl_en <= 4'b0001; //NO.1 led  on
        end
    
endmodule