verilog PS2键盘解码程序
[09-12 18:30:59] 来源:http://www.88dzw.com EDA/PLD 阅读:8619次
文章摘要: .clk_bps(clk_bps), .rx_data(ps2_byte), .rx_int(ps2_state), .rs232_tx(rs232_tx), .bps_start(bps_start)
verilog PS2键盘解码程序,标签:eda技术,eda技术实用教程,http://www.88dzw.com.clk_bps(clk_bps),
.rx_data(ps2_byte),
.rx_int(ps2_state),
.rs232_tx(rs232_tx),
.bps_start(bps_start)
);
Endmodule
module ps2scan(clk,rst_n,ps2k_clk,ps2k_data,ps2_byte,ps2_state);
input clk; //50M时钟信号
input rst_n; //复位信号
input ps2k_clk; //PS2接口时钟信号
input ps2k_data; //PS2接口数据信号
output[7:0] ps2_byte; // 1byte键值,只做简单的按键扫描
output ps2_state; //键盘当前状态,ps2_state=1表示有键被按下
//------------------------------------------
reg ps2k_clk_r0,ps2k_clk_r1,ps2k_clk_r2; //ps2k_clk状态寄存器
//wire pos_ps2k_clk; // ps2k_clk上升沿标志位
wire neg_ps2k_clk; // ps2k_clk下降沿标志位
always @ (posedge clk or negedge rst_n) begin
if(!rst_n) begin
ps2k_clk_r0 <= 1'b0;
ps2k_clk_r1 <= 1'b0;
ps2k_clk_r2 <= 1'b0;
end
else begin //锁存状态,进行滤波
ps2k_clk_r0 <= ps2k_clk;
ps2k_clk_r1 <= ps2k_clk_r0;
ps2k_clk_r2 <= ps2k_clk_r1;
end
end
assign neg_ps2k_clk = ~ps2k_clk_r1 & ps2k_clk_r2; //下降沿
//------------------------------------------
reg[7:0] ps2_byte_r; //PC接收来自PS2的一个字节数据存储器
reg[7:0] temp_data; //当前接收数据寄存器
reg[3:0] num; //计数寄存器
always @ (posedge clk or negedge rst_n) begin
if(!rst_n) begin
num <= 4'd0;
上一页 [1] [2] [3] [4] [5] [6] 下一页
Tag:EDA/PLD,eda技术,eda技术实用教程,EDA/PLD
《verilog PS2键盘解码程序》相关文章
- › 基于Verilog HDL的UART模块设计与仿真
- › verilog PS2键盘解码程序
- › 好用的Verilog串口UART程序
- › 怎样实现Verilog模拟PS2协议
- › 基于VerilogHDL的背景噪声扣除电路设计
- › 对C语言编程者的Verilog开发指南实例
- 在百度中搜索相关文章:verilog PS2键盘解码程序
- 在谷歌中搜索相关文章:verilog PS2键盘解码程序
- 在soso中搜索相关文章:verilog PS2键盘解码程序
- 在搜狗中搜索相关文章:verilog PS2键盘解码程序
分类导航
最新更新