FPGA_demo2:按键测试

问题描述:

在电子产品中我们会经常用到按键,比如电脑的键盘,手机的按键等等,按键就是人机交 互的一种工具。在 AX301/AX4010 开发板上有四个用户按键(Reset,KEY1~KEY3)供用户使用和体验,用户可以使用 FPGA 程序来检测与按键对应的 I/O 口的电平高低来判断按键是否 按下或松开。 本实验内容将介绍按键的检测及按键的防抖的程序设计,通过点亮/熄灭开发板上相应的 LED 灯来指示按键的动作。

Reset键按一下-----------LED0 反转;

按键 1 按一下-------------LED1 反转;

按键 2 按一下-------------LED2 反转;

按键 3 按一下-------------LED3 反转;

一、source

`timescale 1ns / 1ps
module key_test
(
	input                 clk,       //开发板上输入时钟: 50Mhz
	input [3:0]           key,       //四个按键
	output[3:0]           led        //四个led灯
);
//寄存器定义
reg[3:0] led_r;           
reg[3:0] led_r1;          
always@(posedge clk)
begin
	led_r <= ~key;        //first stage latched data
end

always@(posedge clk)
begin
	led_r1 <= led_r;      //second stage latched data
end

assign led = led_r1;

endmodule 

二、testbench

`timescale 1ns/1ns
module key_test_tb;
reg clk;
reg[3:0] key;
wire[3:0] led;
initial
begin
	clk = 1'b0;
	key = 4'b1111;
	#12  key = 4'b0101;
	#25  key = 4'b1010;
	#8   key[0] = 1'b1;
	#16  key[0] = 1'b0;
	#100
	$stop;
end
always#10 clk = ~clk;//50Mhz

key_test dut
(
	.clk (clk),  //时钟输入——50Mhz
	.key (key),  //4位按键输入,按下是0,弹起是1
	.led (led)   //4位LED显示,1为亮,0为灭
);
endmodule 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值