FPGA学习

您所在的位置:网站首页 fpga跑马灯程序 FPGA学习

FPGA学习

2024-05-29 11:52| 来源: 网络整理| 查看: 265

文章目录 一、前言二、开发板按键原理图三、源码四、实现效果

一、前言

在博主的cyclone4开发板上一共有4个按键,本次实验的目的是为了实现每按下一次按键,都会使开发板上的4个LED灯切换一次状态,博主一共设计了四种状态,分别是:

按键状态按键1按下自右向左的流水灯按键2按下自左向右的流水灯按键3按下四灯常亮按键4按下四灯闪烁 二、开发板按键原理图

在这里插入图片描述

由原理图可以看出,开发板按键按下代表低电平 三、源码

在源码中博主设计了一个0.2s的计数器和两位的cstate状态寄存器,用来控制LED的状态及流水灯闪烁。同时可以看出博主设计了一个flag寄存器,由于本次实验未添加按键消抖模块,因此按键按下后需要一直按住才能实现效果,而引入flag后,我们便可以通过按键按下后一瞬间的电平改变从而改变flag的状态,再由flag的状态控制LED的状态,以此算是一种无按键消抖的平替。

注意:这并不能算是按键消抖,只是因为抖动时间极短,难以在LED灯上体现出来,实际上flag最后还是采样的稳定的低电平信号。 按键消抖及按键消抖控制led请查看博主此篇博文!! 这算是博主在初学FPGA是犯下的错误!!!

module key_led ( input wire clk, input wire rst_n, input wire [3:0] key, output reg [3:0] led ); parameter MAX = 10_000_000; reg [23:0] cnt; reg [1:0] cstate; reg [3:0] flag; //0.2s计数器 always @(posedge clk or negedge rst_n) begin if(!rst_n)begin cnt


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3