当前位置: 首页> 文旅> 酒店 > 万网域名注册价格_广西建工集团官网_seo店铺描述_做个公司网站多少钱

万网域名注册价格_广西建工集团官网_seo店铺描述_做个公司网站多少钱

时间:2025/8/7 5:17:56来源:https://blog.csdn.net/Cynthia040330/article/details/146352796 浏览次数:0次
万网域名注册价格_广西建工集团官网_seo店铺描述_做个公司网站多少钱

基于DE2-115开发板的LED流水灯设计

设计目标:实现6个LED周期为1秒的跑马灯效果,支持按键暂停/恢复。

一、实验环境
  • 硬件平台:DE2-115 FPGA开发板
  • 开发工具
    • VScode + Verilog-HDL插件
    • Quartus Prime Lite Edition
    • ModelSim
二、模块化设计

采用层次化设计,分为以下模块:

  1. 分频模块(fenpin.v):将50MHz时钟分频至1Hz。
  2. 显示模块(display.v):控制LED流水灯状态机。
  3. 按键检测模块(key_debounce.v):按键去抖动与状态切换。
  4. 顶层模块(LedBlink.v):模块互联与引脚分配。
三、代码实现
1. 分频模块(fenpin.v)
module fenpin(input clk_50M,      // 50MHz时钟输入input rst_n,        // 复位信号(低有效)output reg clk_1Hz  // 1Hz分频输出
);
reg [25:0] cnt;         // 50MHz→1Hz需计数50,000,000次(26位计数器)always @(posedge clk_50M or negedge rst_n) beginif (!rst_n) begincnt <= 26'd0;clk_1Hz <= 1'b0;endelse if (cnt == 26'd49_999_999) begin // 计数满50,000,000次cnt <= 26'd0;clk_1Hz <= ~clk_1Hz;             // 输出翻转endelse begincnt <= cnt + 1'b1;end
end
endmodule
2. 显示模块(display.v)
module display(input clk_1Hz,      // 1Hz时钟输入input rst_n,        // 复位信号input pause,        // 暂停信号(选做)output reg [5:0] led // LED输出
);
reg [2:0] state;        // 状态机(6种状态)always @(posedge clk_1Hz or negedge rst_n) beginif (!rst_n) beginstate <= 3'd0;led <= 6'b000001; // 初始状态:第1个LED亮endelse if (!pause) begin // 非暂停状态时切换case(state)3'd0: led <= 6'b000001; // 状态0: LED0亮3'd1: led <= 6'b000010; // 状态1: LED1亮3'd2: led <= 6'b000100; // ...依次类推3'd3: led <= 6'b001000;3'd4: led <= 6'b010000;3'd5: led <= 6'b100000;default: led <= 6'b000000;endcasestate <= (state == 3'd5) ? 3'd0 : state + 1; // 循环状态end
end
endmodule
3. 按键检测模块(key_debounce.v)(选做)
module key_debounce(input clk_50M,input key_in,       // 原始按键输入output reg key_out  // 去抖后输出
);
reg [19:0] cnt;         // 20ms去抖计数器(50MHz→20ms需计数1,000,000次)always @(posedge clk_50M) beginif (key_in != key_out) beginif (cnt == 20'd999_999) beginkey_out <= key_in; // 稳定后更新cnt <= 20'd0;endelse cnt <= cnt + 1;endelse cnt <= 20'd0;
end
endmodule
4. 顶层模块(LedBlink.v)
module LedBlink(input clk_50M,      // 开发板50MHz时钟input rst_n,        // 复位按键(KEY0)input pause_key,    // 暂停按键(KEY1,选做)output [5:0] led    // LED[5:0]
);
wire clk_1Hz;
wire pause_clean;// 分频模块实例化
fenpin u_fenpin(.clk_50M(clk_50M),.rst_n(rst_n),.clk_1Hz(clk_1Hz)
);// 按键去抖动实例化(选做)
key_debounce u_key(.clk_50M(clk_50M),.key_in(pause_key),.key_out(pause_clean)
);// 显示模块实例化
display u_display(.clk_1Hz(clk_1Hz),.rst_n(rst_n),.pause(pause_clean),.led(led)
);
endmodule
四、引脚分配(DE2-115)

在这里插入图片描述

五、实际效果
  • 上电后,LED从右至左依次点亮,周期1秒。
  • 按下KEY1可暂停流水灯,再次按下恢复。

fpga2

关键字:万网域名注册价格_广西建工集团官网_seo店铺描述_做个公司网站多少钱

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: