基于FPGA的串口通信设计

2026/4/24 2:21:11

input TX_En_Sig; input [7:0]TX_Data; input BPS_CLK;

output TX_Done_Sig; output TX_Pin_Out;

/********************************************************/ reg [3:0]i; reg rTX; reg isDone;

always @ ( posedge CLK or negedge RSTn ) if( !RSTn )

begin

i <= 4'd0;

rTX <= 1'b1; isDone

<= 1'b0;

end

else if( TX_En_Sig ) case ( i )

endcase

if( BPS_CLK ) begin i <= i + 1'b1; rTX <= 1'b0; end

4'd1, 4'd2, 4'd3, 4'd4, 4'd5, 4'd6, 4'd7, 4'd8 : if( BPS_CLK ) begin i <= i + 1'b1; rTX <= TX_Data[ i

4'd9 :

if( BPS_CLK ) begin i <= i + 1'b1; rTX <= 1'b1; end

4'd10 :

if( BPS_CLK ) begin i <= i + 1'b1; rTX <= 1'b1; end

4'd11 :

if( BPS_CLK ) begin i <= i + 1'b1; isDone <= 1'b1; end

4'd12 :

begin i <= 4'd0; isDone <= 1'b0; end

4'd0 :

- 1 ]; end

/********************************************************/

assign TX_Pin_Out = rTX; assign TX_Done_Sig = isDone;

/*********************************************************/

Endmodule

附录2:接收模块:

module rx_control_module (

CLK, RSTn, );

input CLK;

input RSTn;

input H2L_Sig; input RX_En_Sig;

H2L_Sig, RX_Pin_In, BPS_CLK, RX_En_Sig,

Count_Sig, RX_Data, RX_Done_Sig

input RX_Pin_In; input BPS_CLK;

output Count_Sig; output [7:0]RX_Data; output RX_Done_Sig;

/********************************************************/ reg [3:0]i; reg [7:0]rData; reg isCount; reg isDone;

always @ ( posedge CLK or negedge RSTn ) if( !RSTn )

begin

i <= 4'd0;

rData <= 8'd0; isCount <= 1'b0; isDone <= 1'b0;

end

else if( RX_En_Sig ) case ( i )

if( H2L_Sig ) begin i <= i + 1'b1; isCount <= 1'b1;

4'd1 :

if( BPS_CLK ) begin i <= i + 1'b1; end

4'd2, 4'd3, 4'd4, 4'd5, 4'd6, 4'd7, 4'd8, 4'd9 : if( BPS_CLK ) begin i <= i + 1'b1; rData[ i - 2 ] <=

4'd10 :

if( BPS_CLK ) begin i <= i + 1'b1; end

4'd11 :

if( BPS_CLK ) begin i <= i + 1'b1; end

4'd12 :

4'd0 :

end

RX_Pin_In; end

begin i <= i + 1'b1; isDone <= 1'b1; isCount <= 1'b0;

4'd13 :

begin i <= 4'd0; isDone <= 1'b0; end

end

endcase

/********************************************************/

assign Count_Sig = isCount; assign RX_Data = rData; assign RX_Done_Sig = isDone;

/*********************************************************/

endmodule

附录3:波特率发生器

module rx_bps_module (

CLK, RSTn, );

input CLK;

input RSTn; input Count_Sig; output BPS_CLK;

/***************************/

reg [12:0]Count_BPS; Count_Sig, BPS_CLK


基于FPGA的串口通信设计.doc 将本文的Word文档下载到电脑
搜索更多关于: 基于FPGA的串口通信设计 的文档
相关推荐
相关阅读
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 10

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219