📄 keyboard_avalon_interface.v
字号:
/****************************************Copyright (c)**************************************************
** Guangzou ZLG-MCU Development Co.,LTD.
** graduate school
** http://www.zlgmcu.com
**
**--------------File Info-------------------------------------------------------------------------------
** File name: keyboard_avalon_interface.v
** Last modified Date: 2006-04-14
** Last Version: 1.0
** Descriptions: keyboard logic
**------------------------------------------------------------------------------------------------------
** Created by: RuiWenBin
** Created date: 2006-04-14
** Version: 1.0
** Descriptions:
**
**------------------------------------------------------------------------------------------------------
** Modified by:
** Modified date:
** Version:
** Descriptions:
**
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
module keyboard_avalon_interface(
//Avalon Signals
clock,
reset_n,
chip_select,
address,
write,
write_data,
read,
read_data,
interrupt,
//keyboard Output Signals
ps2_clk,
ps2_data
);
//Avalon_Slave_pled Avalon I/O
input clock; //System clock - tied to all blocks
input reset_n; //System reset - tied to all blocks
input chip_select; //Avalon Chip select
input address; //Avalon Address bus
input write; //Avalon Write signal
input [31:0] write_data; //Avalon Write data bus
input read; //Avalon Read signal
output [31:0] read_data; //Avalon Read data bus
output interrupt; //System interrupt
//Avalon_Slave_keyboard Exported I/O
inout ps2_clk;
inout ps2_data;
wire rx_extended;
wire rx_released;
wire rx_shift_key_on;
wire[7:0] rx_scan_code;
wire[7:0] rx_ascii;
wire rx_data_ready;
wire tx_write_ack;
wire tx_error_no_keyboard_ack;
wire[7:0] tx_data;
wire tx_write;
wire rx_read;
wire reset;
wire ps2_clk_in;
wire ps2_clk_out;
wire ps2_clk_dir;
wire ps2_data_in;
wire ps2_data_out;
wire ps2_data_dir;
assign ps2_clk = (ps2_clk_dir) ? ps2_clk_out : 1'bz;
assign ps2_data = (ps2_data_dir) ? ps2_data_out : 1'bz;
assign ps2_clk_in = ps2_clk;
assign ps2_data_in = ps2_data;
//keyboard Instance
ps2_keyboard_interface u1(
.clock(clock ),
//********************
.rx_read(rx_read),
.reset(reset),
.tx_write(tx_write),
.tx_data(tx_data),
.rx_extended(rx_extended),
.rx_released(rx_released),
.rx_shift_key_on(rx_shift_key_on),
.rx_scan_code(rx_scan_code),
.rx_ascii(rx_ascii),
.rx_data_ready(rx_data_ready),
.tx_write_ack(tx_write_ack),
.tx_error_no_keyboard_ack(tx_error_no_keyboard_ack),
//********************
.ps2_clk_in(ps2_clk_in),
.ps2_clk_out(ps2_clk_out),
.ps2_clk_dir(ps2_clk_dir),
.ps2_data_in(ps2_data_in),
.ps2_data_out(ps2_data_out),
.ps2_data_dir(ps2_data_dir)
);
//Register File instance
keyboard_register_file u2(
.clock(clock),
.reset_n(reset_n),
.chip_select(chip_select),
.address(address),
.write(write),
.write_data(write_data),
.read(read),
.read_data(read_data),
.interrupt(interrupt),
//********************
.rx_read(rx_read),
.reset(reset),
.tx_write(tx_write),
.tx_data(tx_data),
.rx_extended(rx_extended),
.rx_released(rx_released),
.rx_shift_key_on(rx_shift_key_on),
.rx_scan_code(rx_scan_code),
.rx_ascii(rx_ascii),
.rx_data_ready(rx_data_ready),
.tx_write_ack(tx_write_ack),
.tx_error_no_keyboard_ack(tx_error_no_keyboard_ack)
);
endmodule
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -