Page 494 - 3-2
P. 494

end
                    end

            end





            always@(posedge clk,negedge rst)

            begin
                if(!rst)

                    begin
                        tx_empty<=1;

                        tx_out<=1;
                        tx_cnt<=0;

                        tx_flag<=0;
                        font<=0;

                    end
                else

                    begin
                              tx_flag<=1'b1;

                        if(clk_uart==1&&tx_flag==1) // 클럭이 1(9600bps    마다 1)  일때 ,   출력 플래그 1      이면 출력
            모드로 들어감
                            begin

                                tx_data<=tx_reg; //txdata 에 값을 넣는다.
                                tx_empty<=0; //tx_empty 를 0 으로 만들어 준다.

                                if(!tx_empty)
                                begin

                                    tx_cnt<=tx_cnt+1; //txcnt 변수를 1  씩 증가
                                    if(tx_cnt==0) tx_out<=0;// 스타트 비트 보냄

                                    if(tx_cnt>0&&tx_cnt<9) tx_out<=tx_data[tx_cnt-1]; //1~8(0~7   번)  비트 까
            지 데이터 출력함
                                    if(tx_cnt==9)// 스탑 비트 출력

                                        begin
                                            tx_empty<=1; //tx_empty 를 1 로 만들어줌 출력 데이터가 비었다(               )

                                            tx_out<=1;          //stop bit
                                            tx_cnt<=0;          // 카운터 초기화

                                            //if(font==4) begin tx_flag<=0; font<=0;  end
                                            //else font<=font+1; // 한 글자를 출력하면 다음 글자로 넘어간다.

                                        end

                                                         - 494 -
   489   490   491   492   493   494   495   496   497   498   499