Page 290 - 3-2
P. 290
else tx_cnt<=tx_cnt+1;
end
end
end
always @ (posedge clk, negedge reset) //uart_txd
if(!reset) begin tx_reg <=0; uart_txd <=1; end
else
begin
if(clk_uart==1)
begin
if(!tx_empty)
begin
tx_reg <=string[s_cnt]; //0011
if(tx_cnt==0) uart_txd <=0;//start bit
else if(tx_cnt>0&&tx_cnt<9)
uart_txd<=tx_reg[tx_cnt-1];
else if(tx_cnt==9)
uart_txd <=1;
end
end
end
always @ (posedge clk, negedge reset) //tx_empty
if(!reset) begin tx_empty <=0; end
else
begin
//if(tx_reg==string[1]) tx_empty<=1;
if(data[0]=="0"||data[0]=="1"||data[0]=="2"||data[0]=="3"||data[0]=="4"||data[0]=="5"||data[
0]=="6"||data[0]=="7"||data[0]=="8"||data[0]=="9")
if(data[1]=="0"||data[1]=="1"||data[1]=="2"||data[1]=="3"||data[1]=="4"||data[1]=="5"||data[
1]=="6"||data[1]=="7"||data[1]=="8"||data[1]=="9")
tx_empty <= 0;
if(clk_uart==1)
begin
if(tx_empty==0)
begin
if(tx_cnt==9)
begin
tx_empty <=1;
end
end
end
- 290 -