Page 186 - 3-2
P. 186

if(threed_idle)
                    threed_cnt<=0;
            else
            begin
                    threed_cnt<=threed_cnt+16'd1;
                    if(threed_cnt_max) threed_state<=~threed_state;
            end
            ////////////////////////////////////////////




            always @(posedge clk,negedge reset)
            if(!reset) cs<=idle;
            else
                    cs<=ns;


            always @(cs)
            case(cs)
                    idle : begin    // 초기에 1 층까지 내려감
                                            fnd_data=8'b11110111;
                                            one_flag=0;
                                            three_flag=0;
                                            door_flag=0;
                                            yellow=1;
                                            green=0;
                                            if(~bot_idle & bot_cnt_max & bot_state==1) begin
                                                    mo=2'b00;
                                                    ns=ones;
                                            end
                                            else begin mo=2'b11; ns=idle; end
                                    end
                    ones : begin
            // 현재 1 층
                                            fnd_data=8'b11111001;
                                            door_flag=1;// 문이 열렸다 닫힘
                                            yellow=0;
                                            green=0;
                                            if(((~two_idle & two_cnt_max & two_state)||
                                               (~twod_idle & twod_cnt_max & twod_state)||
                                               (~twou_idle & twou_cnt_max & twou_state)||
                                               (cf==2))&&(cnt==450000000)==1) begin
                                                    ns=M1F_2F;//2 층을 누를 때
                                            end
                                            else if(((~three_idle & three_cnt_max & three_state)||
                                                    (~threed_idle & threed_cnt_max & threed_state)||
                                                    (cf==3)) && (cnt==450000000)==1) begin


                                                         - 186 -
   181   182   183   184   185   186   187   188   189   190   191