URL
https://opencores.org/ocsvn/eco32/eco32/trunk
Go to most recent revision |
Show entire file |
Details |
Blame |
View Log
Rev 27 |
Rev 67 |
Line 1... |
Line 1... |
module kbd(ps2_clk, ps2_data,
|
module kbd(ps2_clk, ps2_data,
|
clk, reset,
|
clk, reset,
|
en, wr, addr2,
|
en, wr, addr,
|
data_in, data_out,
|
data_in, data_out,
|
wt, irq);
|
wt, irq);
|
input ps2_clk;
|
input ps2_clk;
|
input ps2_data;
|
input ps2_data;
|
input clk;
|
input clk;
|
input reset;
|
input reset;
|
input en;
|
input en;
|
input wr;
|
input wr;
|
input addr2;
|
input addr;
|
input [7:0] data_in;
|
input [7:0] data_in;
|
output [7:0] data_out;
|
output [7:0] data_out;
|
output wt;
|
output wt;
|
output irq;
|
output irq;
|
|
|
Line 38... |
Line 38... |
end else begin
|
end else begin
|
if (keyboard_rdy == 1) begin
|
if (keyboard_rdy == 1) begin
|
data <= keyboard_data;
|
data <= keyboard_data;
|
end
|
end
|
if (keyboard_rdy == 1 ||
|
if (keyboard_rdy == 1 ||
|
(en == 1 && wr == 0 && addr2 == 1)) begin
|
(en == 1 && wr == 0 && addr == 1)) begin
|
rdy <= keyboard_rdy;
|
rdy <= keyboard_rdy;
|
end
|
end
|
if (en == 1 && wr == 1 && addr2 == 0) begin
|
if (en == 1 && wr == 1 && addr == 0) begin
|
rdy <= data_in[0];
|
rdy <= data_in[0];
|
ien <= data_in[1];
|
ien <= data_in[1];
|
end
|
end
|
end
|
end
|
end
|
end
|
|
|
assign data_out =
|
assign data_out =
|
(addr2 == 0) ? { 6'b000000, ien, rdy } : data;
|
(addr == 0) ? { 6'b000000, ien, rdy } : data;
|
assign wt = 1'b0;
|
assign wt = 1'b0;
|
assign irq = ien & rdy;
|
assign irq = ien & rdy;
|
|
|
endmodule
|
endmodule
|
|
|
No newline at end of file
|
No newline at end of file
|
© copyright 1999-2024
OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.