【iCore4 双核心板_FPGA】例程二:GPIO输入实验——识别按键输入
实验现象:
按键每按下一次,三色LED切换一次状态。
核心源代码:
module key_ctrl(
input clk_25m,
input rst_n,
input key,
output fpga_ledr,
output fpga_ledg,
output fpga_ledb
);
//--------------------key_in--------------------------------//
parameter ms_10 = ;
reg key_r;
reg [:]low_cnt;
reg [:]hig_cnt; always @(posedge clk_25m or negedge rst_n) //按键消抖动,提取按键状态
if (!rst_n)
begin
key_r <= 'd0;
low_cnt <= 'd0;
hig_cnt <= 'd0;
end
else if(key) //检测按键状态为高时,延时10ms,把按键状态提取出来。
begin
low_cnt <= 'd0;
if (hig_cnt == ms_10)
begin
key_r <= key;
hig_cnt <= hig_cnt;
end
else hig_cnt <= hig_cnt + 'd1;
end
else //按键状态为低时,延时10ms,把按键状态提取出来。
begin
hig_cnt <= 'd0;
if (low_cnt == ms_10)
begin
key_r <= key;
low_cnt <= low_cnt;
end
else low_cnt <= low_cnt + 'd1;
end wire key_state = key_r;
//--------------------led_ctrl-----------------------------//
reg [:]led_cnt;
reg ledr,ledg,ledb; always@(negedge key_state or negedge rst_n) //按键下降沿控制led状态切换
if (!rst_n)
begin
led_cnt <= 'd0;
end
else if (led_cnt == 'd2)
begin
led_cnt <= 'd0;
end
else led_cnt <= led_cnt + 'd1; always@(posedge clk_25m or negedge rst_n) //led状态切换的状态机
if (!rst_n)
begin
ledr <= 'd1;
ledg <= 'd1;
ledb <= 'd1;
end
else case(led_cnt)
'd0: //红灯亮
begin
ledr <= 'd0;
ledg <= 'd1;
ledb <= 'd1;
end
'd1: //绿灯亮
begin
ledr <= 'd1;
ledg <= 'd0;
ledb <= 'd1;
end
'd2: //蓝灯亮
begin
ledr <= 'd1;
ledg <= 'd1;
ledb <= 'd0;
end
default: //都不亮
begin
ledr <= 'd1;
ledg <= 'd1;
ledb <= 'd1;
end
endcase assign {fpga_ledr,fpga_ledg,fpga_ledb} = {ledr,ledg,ledb}; //--------------------endmodule-----------------------------//
endmodule
源代码下载链接:
链接:http://pan.baidu.com/s/1kVkOCgJ 密码:u1gd
iCore4链接:

【iCore4 双核心板_FPGA】例程二:GPIO输入实验——识别按键输入的更多相关文章
- 【iCore1S 双核心板_FPGA】例程二:GPIO输入实验——识别按键输入
实验现象: iCore1s 双核心板上与FPGA相连的三色LED(PCB上标示为FPGA·LED),按键按下红灯点亮,松开按键红灯熄灭. 核心源代码: module KEY( input CLK_12 ...
- 【iCore4 双核心板_FPGA】例程十二:基于UART的ARM与FPGA通信实验
实验现象: 1.先烧写ARM程序,然后烧写FPGA程序. 2.打开串口精灵,会接收到字符GINGKO. 3.通过串口精灵发送命令可以控制ARM·LED和FPGA·LED. 核心代码: int main ...
- 【iCore4 双核心板_FPGA】例程四:Signal Tapll 实验——逻辑分析仪
实验现象: 三色led轮流闪烁,具体的逻辑分析仪使用教程请参考iCore3逻辑分析仪例程 核心代码: module signal_ctrl( input clk_25m, input rst_n, o ...
- 【iCore4 双核心板_FPGA】例程八:乘法器实验——乘法器使用
实验现象: 程序运行时,绿色led闪烁(目前,具体的乘法器调用请参考iCore3乘法器例程) 核心代码: module multiplier_ctrl( input clk_25m, input rs ...
- 【iCore4 双核心板_FPGA】例程十七:基于FIFO的ARM+FPGA数据存取实验
实验现象: 核心代码: int main(void) { /* USER CODE BEGIN 1 */ int i; int fsmc_read_data; ; ]; ]; char *p; /* ...
- 【iCore4 双核心板_FPGA】例程一:GPIO输出实验——点亮LED
实验现象: 三色LED循环点亮. 核心源代码: module led_ctrl( input clk_25m, input rst_n, output fpga_ledr, output fpga_l ...
- 【iCore4 双核心板_FPGA】例程五:基础逻辑门实验——逻辑门使用
实验现象: 打开tool-->Netlist viewer-->RTL viewer可观察各个逻辑连接 核心代码: //--------------------module_logic_g ...
- 【iCore4 双核心板_FPGA】例程七:状态机实验——状态机使用
实验现象:按键每按下一次,三色LED改变一次状态. 核心代码: //--------------------module_rst_n---------------------------// modu ...
- 【iCore4 双核心板_FPGA】例程九:锁相环实验——锁相环使用
实验现象: 利用Quartus内部组件生成锁相环,用SignalTap II进行校验. 核心代码: module pll( input clk_25m, output clk_100m, output ...
随机推荐
- 【Ray Tracing The Next Week 超详解】 光线追踪2-5
Chapter 5:Image Texture Mapping 先看效果: 我们之前的纹理是利用的是撞击点p处的位置信息,比如大理石纹理 而我们今天的图片映射纹理采用2D(u,v)纹理坐标来进行. 在 ...
- C++泛型线性查找算法——find
C++泛型线性查找算法--find <泛型编程和STL>笔记及思考. 线性查找可能是最为简单的一类查找算法了.他所作用的数据结构为一维线性的空间.这篇文章主要介绍使用 C++ 实现泛型算法 ...
- HDU.5628.Clarke and math(狄利克雷卷积 快速幂)
\(Description\) \[g(i)=\sum_{i_1|i}\sum_{i_2|i_1}\sum_{i_3|i_2}\cdots\sum_{i_k|i_{k-1}}f(i_k)\ mod\ ...
- c潭州课堂25班:Ph201805201 MySQL第二课 (课堂笔记)
mysql> create table tb_2( -> id int, -> name varchar(10) not null -> ); 插入数据 insert into ...
- Eclipse 安装Maven以及Eclipse配置Maven
安装Maven 1 下载 Downloading Apache Maven 3.5.0 选择 2 解压 3 配置环境变量 新建变量名:MAVEN_HOME 变量值:D:\SoftwareInstal ...
- db2执行计划具体操作
explain 1.如果第一次执行,请先(在dbinst用户下) connect to dbname,执行db2 -tvf $HOME/sqllib/misc/EXPLAIN.DDL建立执行计划表 2 ...
- 如何实现一个Java Class 解析器
原文出处: tinylcy 最近在写一个私人项目,名字叫做ClassAnalyzer,ClassAnalyzer的目的是能让我们对Java Class文件的设计与结构能够有一个深入的理解.主体框架与基 ...
- C# 备份、还原、拷贝远程文件夹
最近一直都很忙,非常抱歉好久没有写过博客了.最近遇到拷贝远程文件的一些工作,比如我们发布的web站点的时候,开发提供一个zip压缩包,我们需要上传到远程的服务器A,然后在部署(文件拷贝)到远程环境B和 ...
- VC++网络安全编程范例(11)-SSL高级加密网络通信(转)
SSL(Secure Sockets Layer 安全套接层),及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供安全及数据完整性的一种安全协议.TLS与 ...
- java 通用取得 系统硬件信息及 jvm 信息的 jar 包 oshi-core
maven 引用 <dependency> <groupId>com.github.dblock</groupId> <artifactId>oshi- ...