Page 568 - 3-2
P. 568
reg tx_empty;
// 송신 완료
reg [3:0]tx_cnt;
// 전송하는 데이터 비트수를 세는 변수
reg tx_out;
// 송신출력
// 수신 변수
reg [7:0] rx_data;
// 수신데이터 저장하는 레지스터
reg [7:0] rx_data_buffer;
//rxd 에서 수신된 데이터를 임시로 저장하기 위한 레지스터
reg [3:0] rx_bit_cnt;
// 수신데이터 비트 카운터 변수
reg [15:0] rx_clk_cnt;
// 수신시 통신 속도를 카운터하기 위한 변수
reg [15:0] rx_start_cnt;
//start bit check 를 위한 카운터 변수
reg state_rx;
// state_rx = 0 휴지상태 , state_rx=1 수신 상태
reg [1:0]tx_flag;
reg[31:0] time_cnt;
reg clk_s;
reg [1:0]flag;
wire [3:0]num;
wire [3:0]t_num;
wire [7:0]in; // 최종 보내는 값
parameter baud_rate = 16'd5208; //9600bps
parameter CLOCKS_WAIT_FOR_RECEIVE = 5208 / 2; //start bit 인지 카운트
always @ (posedge clk,negedge reset) // 통신 속도 맞추기
begin
if(!reset)
begin
clk_count<=0;
clk_uart<=0;
end
else
begin
if(clk_count == baud_rate)
- 568 -