Page 978 - 3-2
P. 978
end
else rx_clk_cnt <= rx_clk_cnt + 1'b1;
if ( rx_bit_cnt < 8 && rx_clk_cnt == baud_rate) // receive data
begin
rx_data_buffer[rx_bit_cnt] <= rxd;
state_rx <= 1;
rs232_en <= 0;
end
else if (rx_bit_cnt == 8&& rx_clk_cnt == baud_rate && rxd == 1)
begin
state_rx <= 0;
rx_data <= rx_data_buffer; // data 출력
rs232_en <= 1;
end
// if stop bit is not received, clear the received data
else if (rx_bit_cnt == 8 && rx_clk_cnt == baud_rate && rxd != 1)
begin
state_rx <= 0;
rx_data_buffer <= 8'b00000000; // invalidate
rs232_en <= 0;
end
else rs232_en <= 0;
end
end
endmodule
***************** <door Module> ***************************************
module door(clk, rst, door_open, door_power);
input clk, rst;
input [1:0]door_open; // 문을 열어야 하는 상황인가
output reg [1:0] door_power; // 실질적으로 모터 돌리기 위한 포트 (01 이 잠궈??)
/*
기본적으로 도어락은 다음과 같은 규칙을 준수해야 합니다.
- 978 -