?? r4tgft.v
字號:
request_up_floor[2]<=1'b0;
request_stop_floor[2]<=1'b0;
// state<=stop;
end
else if (state==down && (request_down_floor[2]==1'b1 || request_stop_floor[2]==1'b1) && t==20) //open then door
begin
t<=0;
request_down_floor[2]<=1'b0;
request_stop_floor[2]<=1'b0;
//state<=stop;
end
else if (!(state==up &&(request_up_floor[2]==1'b1 || request_stop_floor[2]==1'b1))&&!(state==down &&(request_down_floor[2]==1'b1 || request_stop_floor[2]==1'b1))&& t==10)
begin
t<=0;
if(state==up) //up
if(request_up_floor[4:3]!=2'b00 || request_down_floor[5:3]!=3'b000 || request_stop_floor[5:3]!=3'b000)
position<=position+1;
else if ( (request_up_floor[4:3]==2'b00 && request_down_floor[5:3]==3'b000 && request_stop_floor[5:3]==3'b000) && (request_down_floor[1]!=1'b0 || request_stop_floor[1:0]!=2'b00||request_up_floor[1:0]!=2'b00) )
begin
state<=down;//down
position<=position-1;
end
else
state<=stop;
else if(state==down) //down
if(request_up_floor[1:0]!=2'b00 ||request_stop_floor[1:0]!=2'b00 || request_down_floor[1]!=1'b0)
position<=position-1;
else if((request_down_floor[1]==1'b0 && request_stop_floor[1 :0]==2'b00 && request_stop_floor[1 :0]==2'b00 ) &&( request_up_floor[4:3]!=2'b00||request_down_floor[5:3]!=3'b000||request_stop_floor[5:3]!=3'b000) )
begin //up
state<=up;
position<=position+1;
end
else //stop
state<=stop;
else if( state==stop)
if(request_up_floor[4:3]!=2'b00 || request_down_floor[5:3]!=3'b000 || request_stop_floor[5:3]!=3'b000)//up
begin
state<=up;
position<=position+1;
end
else if(request_up_floor[1:0]!=2'b00 || request_down_floor[1]!=1'b0 || request_stop_floor[1:0]!=2'b00)//down
begin
state<=down;
position<=position-1;
end
else
state<=stop;
end
end
/*****************************************************************************************************/
4: //the 4th floor
begin
if( state==up && (request_up_floor[3]==1'b1 || request_stop_floor[3]==1'b1) && t==20) //open then door
begin
t<=0;
request_up_floor[3]<=1'b0;
request_stop_floor[3]<=1'b0;
//state<=stop;
end
else if (state==down && (request_down_floor[3]==1'b1 || request_stop_floor[3]==1'b1) && t==20) //open then door
begin
t<=0;
request_down_floor[3]<=1'b0;
request_stop_floor[3]<=1'b0;
//state<=stop;
end
else if (!(state==up &&(request_up_floor[3]==1'b1 || request_stop_floor[3]==1'b1))&&!(state==down &&(request_down_floor[3]==1'b1 || request_stop_floor[3]==1'b1))&& t==10)
begin
t<=0;
if(state==up) //up
if(request_up_floor[4]!=1'b0 || request_down_floor[5:4]!=2'b00 || request_stop_floor[5:4]!=2'b00)
position<=position+1;
else if ((request_up_floor[4]==1'b0 && request_down_floor[5:4]==4'b00 && request_stop_floor[5:4]==4'b00) && (request_down_floor[2:1]!=2'b00 || request_stop_floor[2:0]!=3'b000||request_up_floor[2:0]!=3'b000))
begin
state<=down;//down
position<=position-1;
end
else
state<=stop;
else if(state==down) //down
if(request_up_floor[2:0]!=3'b000 || request_stop_floor[2:0]!=3'b000 ||request_down_floor[2:1]!=2'b00 )
position<=position-1;
else if((request_down_floor[2:1]==2'b00 && request_stop_floor[2:0]==3'b000) &&(request_down_floor[5:4]!=2'b00||request_stop_floor[5:4]!=2'b00|| request_up_floor[4]==1'b1))
begin
state<=up;//up
position<=position+1;
end
else
state<=stop;
else if( state==stop)
if(request_up_floor[4]!=1'b0 || request_down_floor[5:4]!=2'b00 || request_stop_floor[5:4]!=4'b00)
begin
state<=up;//up
position<=position+1;
end
else if(request_up_floor[2:0]!=3'b000 || request_down_floor[2:1]!=2'b00 || request_stop_floor[2:0]!=3'b000)
begin
state<=down; //down
position<=position-1;
end
end
end
/*****************************************************************************************************/
5: //the 5th floor
begin
if( state==up && (request_up_floor[4]==1'b1 || request_stop_floor[4]==1'b1) && t==20) //open then door
begin
t<=0;
request_up_floor[4]<=1'b0;
request_stop_floor[4]<=1'b0;
//state<=stop;
end
else if (state==down && (request_down_floor[4]==1'b1 || request_stop_floor[4]==1'b1) && t==20) //open then door
begin
t<=0;
request_down_floor[4]<=1'b0;
request_stop_floor[4]<=1'b0;
//state<=stop;
end
else if (!(state==up &&(request_up_floor[4]==1'b1 || request_stop_floor[4]==1'b1))&&!(state==down &&(request_down_floor[4]==1'b1 || request_stop_floor[4]==1'b1))&& t==10)
begin
t<=0;
if(state==up) //up
if(request_stop_floor[5]==1'b1 || request_down_floor[5]==1'b1)
position<=position+1;
else if ((request_down_floor[5]==1'b0 && request_stop_floor[5]==1'b0 )&& (request_down_floor[3:1]!=3'b000 || request_stop_floor[3:0]!=4'b0000||request_up_floor[3:0]!=4'b0000))
begin
state<=down;//down
position<=position-1;
end
else //stop
state<=stop;
else if(state==down) //down
if(request_up_floor[3:0]!=4'b0000 || request_stop_floor[3:0]!=4'b0000 || request_down_floor[3:1]!=3'b000)
position<=position-1;
else if((request_down_floor[3:1]==3'b000 && request_up_floor[3:0]==4'b0000 && request_stop_floor[3:0]==4'b0000) && (request_stop_floor[5]==1'b1 ||request_down_floor[5]==1'b1))
begin
state<=up; //up
position<=position+1;
end
else //stop
state<=stop;
else if( state==stop)
if( request_down_floor[5]==1'b1 || request_stop_floor[5]==1'b1)
begin
state<=up;//up
position<=position+1;
end
else if(request_up_floor[3:0]!=4'b0000 || request_down_floor[3:1]!=3'b000 || request_stop_floor[3:0]!=4'b0000)
begin
state<=down; //down
position<=position-1;
end
end
end
/*****************************************************************************************************/
6: //the 6th floor
begin
if(( request_down_floor[5]==1'b1 ||request_stop_floor[5]==1'b1) && t==20) //open then door
begin
request_down_floor[5]<=1'b0;
request_stop_floor[5]<=1'b0;
state<=stop; //stop
t<=0;
end
else if(!( request_down_floor[5]==1'b1 ||request_stop_floor[5]==1'b1) && t==10)
begin
t<=0;
if(request_up_floor[4:0]==5'b00000 && request_down_floor[4:1]==4'b0000 && request_stop_floor[4:0]==5'b00000)
begin
position<=6;
//state<=stop;
end
else
begin
state<=down;
position<=position-1;
end
end
end
default:position<=1;
endcase
end
end
endmodule
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -