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

推荐订阅源

爱范儿
爱范儿
T
The Blog of Author Tim Ferriss
G
Google Developers Blog
博客园_首页
博客园 - 【当耐特】
量子位
S
SegmentFault 最新的问题
B
Blog RSS Feed
酷 壳 – CoolShell
酷 壳 – CoolShell
V
Visual Studio Blog
T
Tailwind CSS Blog
阮一峰的网络日志
阮一峰的网络日志
V
V2EX
Y
Y Combinator Blog
博客园 - 聂微东
The Cloudflare Blog
小众软件
小众软件
J
Java Code Geeks
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
月光博客
月光博客
H
Help Net Security
Jina AI
Jina AI
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
宝玉的分享
宝玉的分享

博客园 - 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