Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- module ProjectGame(HEXVALUE1, HEXVALUE2, HEXVALUE3, HEXVALUE4, HEXLEVEL, STATE, LEDTRUE, LEDFALSE, //Output
- RESET, CLOCK, A0,A1,A2,A3, B4,B5,B6,B7, C8,C9,C10,C11, D12,D13,D14,D15); //Inputs
- output reg [6:0] HEXVALUE1;
- output reg [6:0] HEXVALUE2;
- output reg [6:0] HEXVALUE3;
- output reg [6:0] HEXVALUE4;
- output reg [6:0] HEXLEVEL;
- output reg [3:0] STATE = 0;
- output reg LEDTRUE = 0, LEDFALSE = 0;
- input CLOCK, RESET;
- input A0,A1,A2,A3;
- input B4,B5,B6,B7;
- input C8,C9,C10,C11;
- input D12,D13,D14,D15;
- initial begin
- HEXVALUE1 = 7'b1111001; //1 0001
- HEXVALUE2 = 7'b0100100; //2 0010
- HEXVALUE3 = 7'b0110000; //3 0011
- HEXVALUE4 = 7'b0011001; //4 0100
- HEXLEVEL = 7'b1111001; //1 0001
- end
- always @ (posedge CLOCK) begin
- if (RESET == 1) begin
- HEXVALUE1 = 7'b1111001; //1 0001
- HEXVALUE2 = 7'b0100100; //2 0010
- HEXVALUE3 = 7'b0110000; //3 0011
- HEXVALUE4 = 7'b0011001; //4 0100
- HEXLEVEL = 7'b1111001; //1 0001
- LEDFALSE = 0;
- LEDTRUE = 0;
- STATE = 3'b000;
- end
- else begin
- case (STATE)
- 3'b000: begin //Level1 -> 4321
- if (LEDTRUE == 1) begin
- LEDTRUE = 0;
- end
- if ((A0 == 1 && A1 == 0 && A2 == 0 && A3 == 0) && (B4 == 0 && B5 == 1 && B6 == 0 && B7 == 0) && (C8 == 1 && C9 == 1 && C10 == 0 && C11 == 0) && (D12 == 0 && D13 == 0 && D14 == 1 && D15 == 0)) begin
- if (LEDFALSE == 1) begin
- LEDFALSE = 0;
- end
- LEDTRUE = 1;
- STATE = 3'b001;
- HEXVALUE1 = 7'b0011001; //4 0100
- HEXVALUE2 = 7'b0110000; //3 0011
- HEXVALUE3 = 7'b0100100; //2 0010
- HEXVALUE4 = 7'b1111001; //1 0001
- HEXLEVEL = 7'b0100100; //2 0010
- end
- else begin
- LEDFALSE = 1;
- STATE = 3'b000;
- end
- end
- 3'b001: begin //Level2 -> 1234
- if (LEDTRUE == 1) begin
- LEDTRUE = 0;
- end
- if ((A0 == 0 && A1 == 0 && A2 == 1 && A3 == 0) && (B4 == 1 && B5 == 1 && B6 == 0 && B7 == 0) && (C8 == 0 && C9 == 1 && C10 == 0 && C11 == 0) && (D12 == 1 && D13 == 0 && D14 == 0 && D15 == 0)) begin
- if (LEDFALSE == 1) begin
- LEDFALSE = 0;
- end
- LEDTRUE = 1;
- STATE = 3'b010;
- HEXVALUE1 = 7'b0100100; //2 0010
- HEXVALUE2 = 7'b1111001; //1 0001
- HEXVALUE3 = 7'b0011001; //4 0100
- HEXVALUE4 = 7'b0110000; //3 0011
- HEXLEVEL = 7'b0110000; //3 0011
- end
- else begin
- HEXVALUE1 = 7'b1111001; //1 0001
- HEXVALUE2 = 7'b0100100; //2 0010
- HEXVALUE3 = 7'b0110000; //3 0011
- HEXVALUE4 = 7'b0011001; //4 0100
- HEXLEVEL = 7'b1111001; //1 0001
- LEDFALSE = 1;
- STATE = 3'b000;
- end
- end
- 3'b010: begin //Level3 -> 2143
- if (LEDTRUE == 1) begin
- LEDTRUE = 0;
- end
- //0010 0001
- if ((A0 == 0 && A1 == 1 && A2 == 0 && A3 == 0) && (B4 == 1 && B5 == 0 && B6 == 0 && B7 == 0) && (C8 == 0 && C9 == 0 && C10 == 1 && C11 == 0) && (D12 == 1 && D13 == 1 && D14 == 0 && D15 == 0)) begin
- if (LEDFALSE == 1) begin
- LEDFALSE = 0;
- end
- LEDTRUE = 1;
- STATE = 3'b011;
- HEXVALUE1 = 7'b0100100; //2 0010
- HEXVALUE2 = 7'b0110000; //3 0011
- HEXVALUE3 = 7'b0011001; //4 0100
- HEXVALUE4 = 7'b1111001; //1 0001
- HEXLEVEL = 7'b0011001; //4 0100
- end
- else begin
- HEXVALUE1 = 7'b1111001; //1 0001
- HEXVALUE2 = 7'b0100100; //2 0010
- HEXVALUE3 = 7'b0110000; //3 0011
- HEXVALUE4 = 7'b0011001; //4 0100
- HEXLEVEL = 7'b1111001; //1 0001
- LEDFALSE = 1;
- STATE = 3'b000;
- end
- end
- 4'b011: begin //Level4 -> 1432
- if (LEDTRUE == 1) begin
- LEDTRUE = 0;
- end
- //0010 0011 0100 0001
- if ((A0 == 0 && A1 == 1 && A2 == 0 && A3 == 0) && (B4 == 1 && B5 == 1 && B6 == 0 && B7 == 0) && (C8 == 0 && C9 == 0 && C10 == 1 && C11 == 0) && (D12 == 1 && D13 == 0 && D14 == 0 && D15 == 0)) begin
- if (LEDFALSE == 1) begin
- LEDFALSE = 0;
- end
- LEDTRUE = 1;
- STATE = 3'b000;
- end
- else begin
- HEXVALUE1 = 7'b1111001; //1 0001
- HEXVALUE2 = 7'b0100100; //2 0010
- HEXVALUE3 = 7'b0110000; //3 0011
- HEXVALUE4 = 7'b0011001; //4 0100
- HEXLEVEL = 7'b1111001; //1 0001
- LEDFALSE = 1;
- STATE = 3'b000;
- end
- end
- endcase
- end
- end
- endmodule
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement