Add Quartus project

This commit is contained in:
Imants Pulkstenis
2019-07-18 22:05:52 +03:00
parent b3d2c42acd
commit 3432b15530
14 changed files with 2666 additions and 3 deletions
+129
View File
@@ -0,0 +1,129 @@
module PS2_Demo (
// Inputs
CLOCK_50,
KEY,
// Bidirectionals
PS2_CLK,
PS2_DAT,
// Outputs
HEX0,
HEX1,
HEX2,
HEX3,
HEX4,
HEX5,
HEX6,
HEX7
);
/*****************************************************************************
* Parameter Declarations *
*****************************************************************************/
/*****************************************************************************
* Port Declarations *
*****************************************************************************/
// Inputs
input CLOCK_50;
input [3:0] KEY;
// Bidirectionals
inout PS2_CLK;
inout PS2_DAT;
// Outputs
output [6:0] HEX0;
output [6:0] HEX1;
output [6:0] HEX2;
output [6:0] HEX3;
output [6:0] HEX4;
output [6:0] HEX5;
output [6:0] HEX6;
output [6:0] HEX7;
/*****************************************************************************
* Internal Wires and Registers Declarations *
*****************************************************************************/
// Internal Wires
wire [7:0] ps2_key_data;
wire ps2_key_pressed;
// Internal Registers
reg [7:0] last_data_received;
// State Machine Registers
/*****************************************************************************
* Finite State Machine(s) *
*****************************************************************************/
/*****************************************************************************
* Sequential Logic *
*****************************************************************************/
always @(posedge CLOCK_50)
begin
if (KEY[0] == 1'b0)
last_data_received <= 8'h00;
else if (ps2_key_pressed == 1'b1)
last_data_received <= ps2_key_data;
end
/*****************************************************************************
* Combinational Logic *
*****************************************************************************/
assign HEX2 = 7'h7F;
assign HEX3 = 7'h7F;
assign HEX4 = 7'h7F;
assign HEX5 = 7'h7F;
assign HEX6 = 7'h7F;
assign HEX7 = 7'h7F;
/*****************************************************************************
* Internal Modules *
*****************************************************************************/
PS2_Controller PS2 (
// Inputs
.CLOCK_50 (CLOCK_50),
.reset (~KEY[0]),
// Bidirectionals
.PS2_CLK (PS2_CLK),
.PS2_DAT (PS2_DAT),
// Outputs
.received_data (ps2_key_data),
.received_data_en (ps2_key_pressed)
);
Hexadecimal_To_Seven_Segment Segment0 (
// Inputs
.hex_number (last_data_received[3:0]),
// Bidirectional
// Outputs
.seven_seg_display (HEX0)
);
Hexadecimal_To_Seven_Segment Segment1 (
// Inputs
.hex_number (last_data_received[7:4]),
// Bidirectional
// Outputs
.seven_seg_display (HEX1)
);
endmodule