FPGA(Verilog)实现uart传输协议传输数据(含仿真)

04-10 1603阅读

目录

实现功能:

1.接收uart串行数据,输出并行数据(1byte)。

2.输入并行数据(1byte),输出uart串行数据。

3.完成uart传输的1次环回。

uart协议的1帧数据传输

模块封装-port设置

Verilog代码实现

1.uart接收模块:接收串行数据,输出并行数据和其有效标志。

仿真结果:

2.uart发送模块:接收并行数据,发送串行数据。

仿真结果:

3.uart环回测试。

仿真验证:

仿真结果:

FPGA系统集成-RTL框图


实现功能:

1.接收uart串行数据,输出并行数据(1byte)。

2.输入并行数据(1byte),输出uart串行数据。

3.完成uart传输的1次环回。

uart协议的1帧数据传输

FPGA(Verilog)实现uart传输协议传输数据(含仿真)

模块封装-port设置

FPGA(Verilog)实现uart传输协议传输数据(含仿真)

Verilog代码实现
1.uart接收模块:接收串行数据,输出并行数据和其有效标志。
module uart_rx#(
	parameter	UART_BPS='d9600			,	//波特率:1s传输9600个bit
	parameter	CLK_FREQ='d50_000_000		//时钟频率:50MHz
)(
	input 	wire			clk			,
	input 	wire			rst_n		,
	input 	wire			rx			,	//接收的串行数据
	output 	reg		[7:0]	po_data		,	//输出并行数据
	output 	reg				po_flag			//输出有效并行数据的标志信号
);

首先对rx进行时钟同步,消除亚稳态,以及打拍处理提取下降沿;

always@(posedge clk or negedge rst_n)
	if(!rst_n) begin
		rx_d1=4'd1) && (bit_cnt
VPS购买请点击我

文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

目录[+]