明德扬至简设计法--分享一份实现矩阵键盘的verilog代码 可直接使用
时间:02-21
来源:互联网
点击:
- `define SCAN
- module key_scan(
- clk ,
- rst_n ,
- key_col, //键盘列输入
- key_row, //键盘行输出
- key_num, //指示哪一个按键按下,用0~15指示
- key_vld //按下有效指示信号,其为1表示按下一次。
- );
- parameter KEY_W = 4 ;
- parameter COL = 0 ;
- parameter ROW = 1 ;
- parameter DLY = 2 ;
- parameter FIN = 3 ;
- parameter COL_CNT = 16;
- parameter TIME_20MS= 1000000;
- //输入信号定义
- input clk ;
- input rst_n ;
- input [3:0] key_col;
- //输出信号定义
- output key_vld;
- output[3:0] key_num;
- output[KEY_W-1:0] key_row;
- //输出信号reg定义
- reg [3:0] key_num;
- reg [KEY_W-1:0] key_row;
- reg key_vld;
- reg [ 3:0] key_col_ff0 ;
- reg [ 3:0] key_col_ff1 ;
- reg [ 1:0] key_col_get ;
- reg shake_flag ;
- reg shake_flag_ff0;
- reg [ 3:0] state_c ;
- reg [19:0] shake_cnt ;
- reg [ 3:0] state_n ;
- reg [ 1:0] row_index ;
- reg [15:0] row_cnt ;
- reg [ 2:0] x ;
- always @(posedge clk or negedge rst_n)begin
- if(rst_n==1'b0)begin
- key_col_ff0 <= 4'b1111;
- 基于FPGA的片上系统的无线保密通信终端(02-16)
- 基于Virtex-5 FPGA设计Gbps无线通信基站(05-12)
- IP存储让应用和存储走的“更近”(06-09)
- 基于FPGA的DVI/HDMI接口实现(05-13)
- 基于ARM的嵌入式系统中从串配置FPGA的实现(06-09)
- 采用EEPROM对大容量FPGA芯片数据实现串行加载(03-18)