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 -