initial
begin
HEX3 = 7'b1111111;
on = 1;
off=1;
else if((SW[2]==0)&&(SW[1]))
begin
if(SW[0])
Q1 <= 3'b011; //BCD is 011=DECIMAL 3
else
Q1 <= 3'b010; //BCD is 010=DECIMAL 2
end
else if((SW[2])&&(SW[1]==0))
begin
if(SW[0])
Q1 <= 3'b101; //BCD is 101=DECIMAL 5
else
Q1 <= 3'b100; //BCD is 100=DECIMAL 4
end
else if(SW[2]&&SW[1])
begin
if(SW[0])
Q1 <= 3'b111; //BCD is 111=DECIMAL 7
else
Q1 <= 3'b110; //BCD is 110=DECIMAL 6
end
case(Q1)
3'b000: HEX0 = 7'b0000001;
3'b001: HEX0 = 7'b1001111;
3'b010: HEX0 = 7'b0010010;
3'b011: HEX0 = 7'b0000110;
3'b100: HEX0 = 7'b1001100;
3'b101: HEX0 = 7'b0100100;
3'b110: HEX0 = 7'b0100000;
3'b111: HEX0 = 7'b0001111;
endcase
//retrieve password
if(SW[9])
begin
if((KEY[2]==0)&&(KEY[1]==0))
Q1 <= store1;
end
end //second 7 segment
always@(SW[3], SW[4], SW[5], SW[9])
begin
if((SW[5]==0)&&(SW[4]==0))
begin
if(SW[3])
Q2 <= 3'b001;
else
Q2 <= 3'b000;
end
else if((SW[5]==0)&&(SW[4]))
begin
if(SW[3])
Q2 <= 3'b011;
else
Q2 <= 3'b010;
end
else if((SW[5])&&(SW[4]==0))
begin
if(SW[3])
Q2 <= 3'b101;
else
Q2 <= 3'b100;
end
else if(SW[5]&&SW[4])
begin
if(SW[3])
Q2 <= 3'b111;
else
Q2 <= 3'b110;
end
case(Q2)
3'b000: HEX1 = 7'b0000001;
3'b001: HEX1 = 7'b1001111;
3'b010: HEX1 = 7'b0010010;
3'b011: HEX1 = 7'b0000110;
3'b100: HEX1 = 7'b1001100;
3'b101: HEX1 = 7'b0100100;
3'b110: HEX1 = 7'b0100000;
3'b111: HEX1 = 7'b0001111;
endcase
//retrieve password
if(SW[9])
begin
if((KEY[2]==0)&&(KEY[1]==0))
Q2 <= store2;
end
end
//Third 7 segment
always@(SW[6], SW[7], SW[8], SW[9])
begin
if((SW[8]==0)&&(SW[7]==0))
begin
if(SW[6])
Q3 <= 3'b001;
else
Q3 <= 3'b000;
end
else if((SW[8]==0)&&(SW[7]))
begin
if(SW[6])
Q3 <= 3'b011;
else
Q3 <= 3'b010;
end
else if((SW[8])&&(SW[7]==0))
begin
if(SW[6])
Q3 <= 3'b101;
else
Q3 <= 3'b100;
end
else if(SW[8]&&SW[7])
begin
if(SW[6])
Q3 <= 3'b111;
else
Q3 <= 4'b110;
end
case(Q3)
3'b000: HEX2 = 7'b0000001;
3'b001: HEX2 = 7'b1001111;
3'b010: HEX2 = 7'b0010010;
3'b011: HEX2 = 7'b0000110;
3'b100: HEX2 = 7'b1001100;
3'b101: HEX2 = 7'b0100100;
3'b110: HEX2 = 7'b0100000;
3'b111: HEX2 = 7'b0001111;
endcase
//retrieve password
if(SW[9])
begin
if((KEY[2]==0)&&(KEY[1]==0))
Q3 <= store3;
end
end always@(*)
begin //save password
if(KEY[3]==0) //press the KEY[3] to saved the password
begin
store1 = Q1;
store2 = Q2;
store3 = Q3;
else if((SW[9]==1)&&(KEY[0]==0)) //all the led and the forth 7 segment are turned
begin //off by turn on switch[9] and pressing KEY[0]
LEDG[0:6] = 6'b000000;
LEDR[2:7] = 6'b000000;
HEX3 = 7'b1111111;
end
end
end
end
end
endmodule