Page 376 - 완) I MDP 프로젝트 작품 보고서(전체과 1학년)1.6
P. 376

always@(posedge clk, negedge reset)  //50ms 발생부(5*10)
               if(!reset) cnt_50ms<=5'b0;
               else begin
                if(state==delay_5ms) begin
                     if(cnt_5ms>=249999) begin
                      if(cnt_50ms>=9) cnt_50ms<=5'b0;
                      else cnt_50ms<=cnt_50ms+1;
                     end
                    end
                    else cnt_50ms<=5'b0;
               end

              always@(posedge clk, negedge reset)  //5ms마다 line 값 증가(각 자리에 맞는 값 표시)
               if(!reset) line<=5'b0;
               else begin
                if(state==disp_data) begin
                     if(cnt_5ms>=249999) begin
                      if(line>=34) line<=5'b0;
                      else line<=line+1;
                     end
                    end
                    else line<=5'b0;
               end

              always@(posedge clk, negedge reset)  //lcd_en 조건부
               if(!reset) lcd_en<=1'b0;
               else begin
                if(state==delay_100ms || state==delay_5ms) lcd_en<=1'b0;
                    else begin
                     if(cnt_5ms>=62499 && cnt_5ms<=cnt_5ms_half) lcd_en<=1'b1;
                     else lcd_en<=1'b0;
                    end
               end

              always@(posedge clk, negedge reset)  //상태 레지스터 + 상태 천이회로
               if(!reset) state<=delay_100ms;
               else begin
               if(cnt_5ms==0) begin  //5ms마다 0이된다.(이로인해 상태값이 5ms씩 지연되므로 타이밍도에 따른 동작을 구현한
             다.)
                     case(state)




                                                         -  369  -
   371   372   373   374   375   376   377   378   379   380   381