实验现象:

iCore1s 双核心板上与FPGA相连的三色LED(PCB上标示为FPGA·LED),按键按下红灯点亮,松开按键红灯熄灭。

核心源代码:

module KEY(
input CLK_12M,
input FPGA_KEY,
output FPGA_LEDR,
output FPGA_LEDG,
output FPGA_LEDB
);
//----------------------rst_n-----------------------//
//产生复位信号
reg rst_n;
reg [:]cnt_rst; always@(posedge CLK_12M)
if(cnt_rst=='d10)
begin
rst_n <= 'd1;
cnt_rst <= 'd10;
end
else cnt_rst <= cnt_rst + 'd1;
//-----------------------KEY_CLK--------------------//
//将按键的按下与松开转换为KEY_CLK,按下后松开为上升沿
reg KEY_CLK;
reg [:]cnt_key0;
reg [:]cnt_key1;
always@(posedge CLK_12M or negedge rst_n )
begin
if(!rst_n)
begin
KEY_CLK <= 'd0;
cnt_key0 <= 'd0;
cnt_key1 <= 'd0;
end
else if(!FPGA_KEY)
begin
cnt_key0 <= cnt_key0 + 'd1;
if(cnt_key0=='d200)//消抖
begin if(!FPGA_KEY)
begin
KEY_CLK <= 'd0;
cnt_key0 <= 'd0;
end
end
end
else if(FPGA_KEY)
begin
cnt_key1 <= cnt_key1 + 'd1;
if(cnt_key1=='d200)//消抖
begin
if(FPGA_KEY)
begin
KEY_CLK <= 'd1;
cnt_key1 <= 'd0;
end
end
end
end
//-----------------------led-------------------------//
reg [:]led_state;
reg ledr,ledg,ledb; always@(posedge KEY_CLK or negedge rst_n)
begin
if(!rst_n)
begin
led_state <= -'d1;//初始化使灯熄灭
ledr <= 'd1;
ledg <= 'd1;
ledb <= 'd1;
end
else
begin
led_state <= led_state + 'd1;
if(led_state > 'd2)
begin
led_state <= 'd0;
end
case(led_state)
'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
end
end assign FPGA_LEDR = ledr;
assign FPGA_LEDG = ledg;
assign FPGA_LEDB = ledb; //--------------------endmodule------------------//
endmodule

代码包下载:

链接:http://pan.baidu.com/s/1kUWAJC7 密码:13jp

【iCore1S 双核心板_FPGA】例程二:GPIO输入实验——识别按键输入的更多相关文章

  1. 【iCore4 双核心板_FPGA】例程二:GPIO输入实验——识别按键输入

    实验现象: 按键每按下一次,三色LED切换一次状态. 核心源代码: module key_ctrl( input clk_25m, input rst_n, input key, output fpg ...

  2. 【iCore1S 双核心板_FPGA】例程十二:基于单口RAM的ARM+FPGA数据存取实验

    实验现象: 核心代码: module single_port_ram( input CLK_12M, input WR, input RD, input CS0, inout [:]DB, input ...

  3. 【iCore1S 双核心板_FPGA】例程十七:基于双口RAM的ARM+FPGA数据存取实验

    实验现象: 核心代码: module DUAL_PORT_RAM( input CLK_12M, inout WR, input RD, input CS0, :]A, :]DB, output FP ...

  4. 【iCore1S 双核心板_FPGA】例程十五:基于I2C的ARM与FPGA通信实验

    实验现象: 核心代码: int main(void) { int i,n; ]; ]; HAL_Init(); system_clock.initialize(); led.initialize(); ...

  5. 【iCore1S 双核心板_FPGA】例程十六:基于SPI的ARM与FPGA通信实验

    实验现象: 核心代码: int main(void) { int i,n; ]; ]; HAL_Init(); system_clock.initialize(); led.initialize(); ...

  6. 【iCore1S 双核心板_FPGA】例程一:GPIO输出实验——点亮LED

    实验现象: 三色LED循环点亮. 核心源代码: //--------------------Module_LED-----------------------------// module LED( ...

  7. 【iCore1S 双核心板_FPGA】例程三:计数器实验——计数器的使用

    实验现象: 程序下载成功后,程序中的计数器开始计数,每次计满后,计数器清零,三色LED中红色LED的状态反转.可以看到,红色LED以一定的时间间隔闪烁. 核心源代码: //-------------- ...

  8. 【iCore1S 双核心板_FPGA】例程五:Signal Tapll 实验——逻辑分析仪

    核心代码: //--------------------Module_Signal_TapII-------------------// module Signal_TapII( input CLK_ ...

  9. 【iCore1S 双核心板_FPGA】例程六:状态机实验——状态机使用

    核心代码: module FSM( input CLK_12M, input FPGA_KEY, output FPGA_LEDR, output FPGA_LEDG, output FPGA_LED ...

随机推荐

  1. [LintCode/LeetCode]——两数和、三数和、四数和

    LintCode有大部分题目来自LeetCode,但LeetCode比较卡,下面以LintCode为平台,简单介绍我AC的几个题目,并由此引出一些算法基础. 1)两数之和(two-sum) 题目编号: ...

  2. HDU.4352.XHXJ's LIS(数位DP 状压 LIS)

    题目链接 \(Description\) 求\([l,r]\)中有多少个数,满足把这个数的每一位从高位到低位写下来,其LIS长度为\(k\). \(Solution\) 数位DP. 至于怎么求LIS, ...

  3. tomcat溢出

    http://blog.csdn.net/qq_15653597/article/details/42753269?locationNum=10

  4. unity操作Hierarchy视图下同名的对象

    上周遇到了一个令我尴尬的问题,在同一个场景内有了两个名字相同的对象,给个形象化的栗子: 场景内有橱窗,橱窗是模型,窗户是可以打开的[点击控制],窗户可以控制打开和关闭的.然后我就选用了一个保守的方式进 ...

  5. svnkit https 忽略证书认证

    直接上代码 解决jdk版本问题:Security.setProperty("jdk.tls.disabledAlgorithms", ""); import j ...

  6. 伪造请求IP

    //随机IP function Rand_IP(){ $ip2id= round(rand(600000, 2550000) / 10000); //第一种方法,直接生成 $ip3id= round( ...

  7. 用Jersey构建RESTful服务1--HelloWorld

    一.环境1.Eclipse Juno R22. Tomcat 73. Jersey 2.7  下载地址( https://jersey.java.net/download.html) 二.流程1.Ec ...

  8. Sallen-Key Active Butterworth Low Pass Filter Calculator

    RC 2nd Order Passive Low Pass Filter The cut-off frequency of second order low pass filter is given ...

  9. centos npm 安装后 command not found

    ok,

  10. facebook's HipHop for PHP: Move Fast

    One of the key values at Facebook is to move fast. For the past six years, we have been able to acco ...