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

📄 liftcontrol.v

📁 一个简单的电梯控制系统,主要实现一个八层楼的电梯控制.
💻 V
📖 第 1 页 / 共 2 页
字号:
                   else   if(inrequest[4])                        begin                            inrequest[4]<=0;                            pre_state<=state;                            state<=WAIT;                            count<='b000;                            door<=1;                        end                    else                       state<=UP;                           				         end				         				    'b00010000: begin	      				if(inrequest[5] && uprequest[5])                        begin                        inrequest[5]<=0;                        uprequest[5]<=0;                        pre_state<=state;                        state<=WAIT;                        count<=3'b000;                        door<=1;                        end                   else  if(uprequest[5])                        begin                             uprequest[5]<=0;                             pre_state<=state;                             state<=WAIT;                             count<=3'b000;                             door<=1;                     		end                      else   if(inrequest[5])                        begin                            inrequest[5]<=0;                            pre_state<=state;                            state<=WAIT;                            count<=3'b000;                            door<=1;                        end                    else                       state<=UP;                           				         end				         				    'b00100000: begin	      				if(inrequest[6] && uprequest[6])                        begin                        inrequest[6]<=0;                        uprequest[6]<=0;                        pre_state<=state;                        state<=WAIT;                        count<=3'b000;                        door<=1;                        end                   else  if(uprequest[6])                        begin                             uprequest[6]<=0;                             pre_state<=state;                             state<=WAIT;                             count<=3'b000;                             door<=1;                     		end                      else   if(inrequest[6])                        begin                            inrequest[6]<=0;                            pre_state<=state;                            state<=WAIT;                            count<=3'b000;                            door<=1;                        end                    else                       state<=UP;                           				         end				         				     'b01000000: begin	      				if(inrequest[7])                        begin                        inrequest[7]<=0;                        pre_state<=state;                        state<=WAIT;                        count<=3'b000;                        door<=1;                        end                    else                       state<=UP;                           				         end				         				     8'b10000000: begin				     		 state<=WAIT;				     		 count<=0;				     		 door<=1;				     end			  endcase			  end                  DOWN:         begin         case(curfloor)				                   'b00000001:  begin                  state<=WAIT;                 count<=0;                 door<=1;             	end         		         				     'b00000010:   begin                 if(inrequest[0])                        begin                            inrequest[0]<=0;                            pre_state<=state;                            state<=WAIT;                            count<=3'b000;                            door<=1;                        end                    else                       state<=DOWN;                           				         end				         				     'b00000100:   begin                   if(inrequest[1] && dnrequest[1])                        begin                        inrequest[1]<=0;                        dnrequest[1]<=0;                        pre_state<=state;                        state<=WAIT;                        count<=3'b000;                        door<=1;                        end                   else  if(dnrequest[1])                        begin                             dnrequest[1]<=0;                             pre_state<=state;                             state<=WAIT;                             count<=3'b000;                             door<=1;                     		end                        else   if(inrequest[1])                        begin                            inrequest[1]<=0;                            pre_state<=state;                            state<=WAIT;                            count<=3'b000;                            door<=1;                        end                    else                       state<=DOWN;                           				         end				         				     'b00001000:   begin                   if(inrequest[2] && dnrequest[2])                        begin                        inrequest[2]<=0;                        dnrequest[2]<=0;                        pre_state<=state;                        state<=WAIT;                        count<=3'b000;                        door<=1;                        end                   else  if(dnrequest[2])                        begin                             dnrequest[2]<=0;                             pre_state<=state;                             state<=WAIT;                             count<=3'b000;                             door<=1;                     		end                        else   if(inrequest[2])                        begin                            inrequest[2]<=0;                            pre_state<=state;                            state<=WAIT;                            count<=3'b000;                            door<=1;                        end                    else                       state<=DOWN;                           				         end				         				     'b00010000:   begin                   if(inrequest[3] && dnrequest[3])                        begin                        inrequest[3]<=0;                        dnrequest[3]<=0;                        pre_state<=state;                        state<=WAIT;                        count<=3'b000;                        door<=1;                        end                   else  if(dnrequest[3])                        begin                             dnrequest[3]<=0;                             pre_state<=state;                             state<=WAIT;                             count<=3'b000;                             door<=1;                     		end                        else   if(inrequest[3])                        begin                            inrequest[3]<=0;                            pre_state<=state;                            state<=WAIT;                            count<=3'b000;                            door<=1;                        end                    else                       state<=DOWN;                           				         end				         				     'b00100000:   begin                   if(inrequest[4] && dnrequest[4])                        begin                        inrequest[4]<=0;                        dnrequest[4]<=0;                        pre_state<=state;                        state<=WAIT;                        count<=3'b000;                        door<=1;                        end                   else  if(dnrequest[4])                        begin                             dnrequest[4]<=0;                             pre_state<=state;                             state<=WAIT;                             count<=3'b000;                             door<=1;                     		end                        else   if(inrequest[4])                        begin                            inrequest[4]<=0;                            pre_state<=state;                            state<=WAIT;                            count<=3'b000;                            door<=1;                        end                    else                       state<=DOWN;                           				         end				         				     'b01000000:   begin                   if(inrequest[5] && dnrequest[5])                        begin                        inrequest[5]<=0;                        dnrequest[5]<=0;                        pre_state<=state;                        state<=WAIT;                        count<=3'b000;                        door<=1;                        end                   else  if(dnrequest[5])                        begin                             dnrequest[5]<=0;                             pre_state<=state;                             state<=WAIT;                             count<=3'b000;                             door<=1;                     		end                        else   if(inrequest[5])                        begin                            inrequest[5]<=0;                            pre_state<=state;                            state<=WAIT;                            count<=3'b000;                            door<=1;                        end                    else                       state<=DOWN;                           				         end				         				     'b10000000:   begin                   if(inrequest[6] && dnrequest[6])                        begin                        inrequest[6]<=0;                        dnrequest[6]<=0;                        pre_state<=state;                        state<=WAIT;                        count<=3'b000;                        door<=1;                        end                   else  if(dnrequest[6])                        begin                             dnrequest[6]<=0;                             pre_state<=state;                             state<=WAIT;                             count<=3'b000;                             door<=1;                     		end                        else   if(inrequest[6])                        begin                            inrequest[6]<=0;                            pre_state<=state;                            state<=WAIT;                            count<=3'b000;                            door<=1;                        end                    else                       state<=DOWN;                           				         end         endcase         end       endcase       endend   always @(posedge clk)       begin          if(!rst)             curfloor[7:0]<=8'b00000001;                    else                case(state)            UP:               curfloor<=curfloor<<1;            DOWN:               curfloor<=curfloor>>1;            WAIT:               curfloor<=curfloor;            STOP:               curfloor<=curfloor;      endcase  end     endmodule

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -