Page 195 - 3-2
P. 195
// 전송 데이터 비트수가 1 부터 8 까지일 때 송신 데이터 보관 변수에 현재 전송 데이터
// 비트수 -1 을 넣어준다
if(tx_cnt == 9) // 전송 데이터 비트수가 9 일때
begin
flag <= 1;
tx_flag <= 1;
tx_out <= 1; // stop
tx_cnt <= 0; // 전송 데이터 비트수 세는 변수를 으로 만든다0 .
tx_empty <= 1;
// 송신 완료 - 1 을 넣어줌으로써 송신을 멈춘다
end
end
end
end
end
always@(posedge clk, negedge reset) begin
if(!reset) delay_cnt <= 0;
else begin
if(delay_cnt >= 25000000) delay_cnt <= 0;
else delay_cnt <= delay_cnt + 1;
end
end
// 수신 모듈
always @(posedge clk, negedge reset)
begin
if(reset == 0)
begin
rx_clk_cnt <= 0;
rx_bit_cnt <= 0;
rx_start_cnt <= 0;
state_rx <= 0; // 수신회선 휴지 상태
end
else
begin
if(state_rx == 0 && rxd == 0)
// if not receive mode and start bit is detected
begin
if(rx_start_cnt >= CLOCKS_WAIT_FOR_RECEIVE -1)
begin
rx_start_cnt <= 0;
state_rx <= 1'b1; //enter receive mode
- 195 -