Page 693 - 3-2
P. 693

begin
               if(!reset) rx_bit_cnt<=0;
               else
               begin
                       if(state_rx==1) // 수신모드
                            begin
                               if(rx_clk_cnt>=CLOCKS_PER_BIT)
                            // 통신속도 9600bps   가 되면 다음 비트로 cnt        해주는 부분
                                    begin
                                       if(rx_bit_cnt>=8) rx_bit_cnt<=0;
                                            else              rx_bit_cnt<=rx_bit_cnt+1'b1;
                                    end
                            end
                            else rx_bit_cnt<=0;
                    end
            end


            always @(posedge clk, negedge reset) //  출력 부분
            begin
                if(!reset)  rx_data<=8'b0;
                     else
                     begin
                            if(state==4'b0001) rx_data<=0;
                       if(state_rx==1) // 수신모드
                            begin
                               if (rx_bit_cnt == 8 && rx_clk_cnt == CLOCKS_PER_BIT && uart_rxd == 1)
            rx_data<=data_buffer; // 임시저장된 수신 데이터를 출력해줌
                                    else if (rx_bit_cnt == 8 && rx_clk_cnt == CLOCKS_PER_BIT &&
            uart_rxd != 1) rx_data<=8'b0; // 만약 stopbit 가 제대로 들어오지 않았을 경우 쓰레기값으로 간주해서
            rx_data 에 0 을 뿌림
                            end
                    end
            end


            always @ (posedge clk, negedge reset) //  들어온 값을 임시저장변수에 넣어주는 곳
            begin
               if(!reset) data_buffer<=8'b0;
                    else
                    begin
                            if(state==4'b0001) data_buffer<=0;
                       if(state_rx == 1)// 수신모드
                            begin
                                    if( rx_bit_cnt < 8 && rx_clk_cnt == CLOCKS_PER_BIT)
            data_buffer[rx_bit_cnt] <= uart_rxd; // 임시저장변수에 rxd     를 통해 들어온 값을 넣어줌
                            end


                                                         - 693 -
   688   689   690   691   692   693   694   695   696   697   698