Page 629 - 3-2
P. 629
else
STP<=STP+1;
cnt<=0;
end
else cnt<=cnt+1;
end
end
endmodule
[serial]
module serial(reset,clk,tx_out);// 송신 모드
input reset,clk;
output reg tx_out;
reg clk_uart;// 데이터 송신 시작 신호
reg [15:0] clk_count;//9600bps 마다 신호를 위한 카운트
reg [7:0] tx_reg;// 송신할 데이터 보관
reg tx_empty;// 송신 완료 신호
reg [3:0] tx_cnt;// 전송하는 데이터의 비트수
parameter baud_clk=16'd5625;
always @ (posedge clk, negedge reset)
if(reset==0)
begin
clk_count<=0;
clk_uart<=0;
end
else
begin
if(clk_count==baud_clk)
begin
clk_count<=0;
clk_uart<=1;
end
else
begin
clk_count<=clk_count+1;
clk_uart<=0;
end
end
always @ (posedge clk, negedge reset)
begin
if(!reset)
begin tx_reg<=0; tx_empty<=1; tx_out<=1; tx_cnt<=0; end
else
begin
if(clk_uart)
- 629 -