Page 569 - 3-2
P. 569
begin
clk_count<=0;
clk_uart<=1;
end
else
begin
clk_count<=clk_count+1;
clk_uart<=0;
end
end
end
// 송신 모듈
/*always @ (posedge clk,negedge reset)
begin
if(!reset)
begin
tx_reg <=0; // 송신 데이터 보관 변수
tx_empty<=1; // 송신 완료 (1 을 넣어줌으로써 송신이 멈춰있음)
tx_out<=1; // 스타트 , 스탑 비트 역할을 하는 변수
tx_cnt<=0; // 전송 데이터 비트수 세는 변수
time_cnt<=0;
end
else
begin
if(fail_flag==1)tx_reg<="X";
else tx_reg<="O";
if(clk_uart) //fail_flag == 1
begin
tx_empty<=0;
if(!tx_empty) // 송신이 시작되었을 때
begin
tx_cnt<=tx_cnt+1; // 전송 데이터 비트수를 카운트해줌 8bit 임 0~7
if(tx_cnt==0) tx_out<=0; // 전송 데이터 비트수가 0 일 때 start
if(tx_cnt>0 && tx_cnt <9) tx_out<=tx_reg[tx_cnt-1]; // 전송 데이
터 비트수가 1 부터 8 까지일 때 송신 데이터 보관 변수에 현재 전송 데이터 비트수 -1 을 넣어준다
if(tx_cnt==9) // 전송 데이터 비트수가 9 일때
begin
flag<=1;
tx_flag<=1;
tx_out<=1; //stop
- 569 -