⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 r4tgft.v

📁 六层电梯
💻 V
📖 第 1 页 / 共 2 页
字号:
         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 + -