UART串口收发 Verilog Vivado
名称:UART串口收发 Verilog Vivado
软件:Vivado
语言:Verilog
功能介绍
这是一个基于Verilog和Vivado的UART串口收发设计,顶层模块为my_uart_top。设计提供RS232串行接收与发送通路,并通过8位并行数据接口连接上层逻辑,适合学习UART收发结构、模块划分及串口回环仿真方法。 工程将波特率时序、接收处理和发送处理拆分为独立模块。发送端接收tx_data及tx_vld控制信号并输出rs232_tx;接收端从rs232_rx获取串行数据,形成8位rx_data输出。顶层统一连接50 MHz时钟、低电平复位及收发信号。 配套仿真以0x45作为发送数据,将tx回接至rx,并检查接收端是否得到相同数据。工程还提供对应的仿真波形与模块说明,便于结合设计结构理解串口数据发送、接收及回环验证流程。运行环境
硬件描述语言:Verilog 开发软件:Xilinx Vivado 仿真方式:Vivado 行为仿真设计思路
设计以UART串口收发为核心,采用50 MHz主时钟和低电平复位。顶层模块将波特率时序、串口接收和串口发送分别交由独立模块处理,并通过串行输入、串行输出及8位数据接口连接各部分。 发送侧在发送使能有效时,将输入的8位数据转换为RS232串行信号;接收侧监测串行输入并将接收结果输出到8位数据寄存器。波特率模块提供收发过程使用的位时序节拍,便于发送和采样逻辑按统一节奏工作。 仿真采用串口回环方式:发送数据0x45,将发送端tx信号连接至接收端rx,并观察接收数据是否恢复为0x45。该测试用于检查发送与接收链路的数据传递。模块结构
工程主要由以下模块组成: - `my_uart_top`:顶层模块,连接波特率、UART发送和UART接收模块,并提供时钟、复位、串行信号及并行数据接口。 - `speed_select`:波特率时序模块,为收发逻辑提供位周期节拍信号。 - `my_uart_tx`:发送模块,根据输入数据和发送使能产生串行发送信号。 - `my_uart_rx`:接收模块,对串行输入进行接收处理并输出8位数据。 - `test_bench`:仿真测试模块,用于串口回环测试。演示视频
工程配有UART串口收发演示视频,可结合发送、接收信号观察数据传输过程。仿真图/仿真说明/设计文档图片
设计文档展示了工程文件、程序编译、RTL结构、Testbench及整体仿真波形,并分别给出波特率、发送和接收模块的仿真说明。回环测试将UART发送信号tx连接至接收信号rx,发送0x45后观察接收数据,用于核对收发链路的数据一致性。









部分代码
以下展示顶层模块 my_uart_top 的部分代码,完整源码请下载压缩包查看。
module my_uart_top(clk,rst_n,rs232_rx,rs232_tx,rx_data,tx_data,tx_vld); input clk; // 50MHz主时钟 input rst_n; //低电平复位信号 input rs232_rx; // RS232接收数据信号 output rs232_tx; // RS232发送数据信号 output [7:0] rx_data; //接收数据寄存器 input [7:0] tx_data; //发送数据寄存器 input tx_vld;//发送使能 wire bps_start; //接收到数据后,波特率时钟启动信号置位 wire clk_bps; // clk_bps的高电平为接收或者发送数据位的中间采样点 wire rx_int; //接收数据中断信号,接收到数据期间始终为高电平 //---------------------------------------------------- //波特率模块 speed_select speed_select( .clk(clk), .rst_n(rst_n), .bps_start(1), .clk_bps(clk_bps) ); //接收数据模块 my_uart_rx my_uart_rx( .clk(clk), //接收数据模块 .rst_n(rst_n), .rs232_rx(rs232_rx), .clk_bps(clk_bps), .rx_data(rx_data), .rx_int(rx_int) ); //发送数据模块 my_uart_tx my_uart_tx( .clk(clk), //发送数据模块 .rst_n(rst_n), .clk_bps(clk_bps), .rx_data(tx_data), .tx_vld(tx_vld), .rs232_tx(rs232_tx) ); endmodule
代码文件(付费下载)
📥
付费后此处显示完整工程压缩包下载链接。
1、代码文件需要付费后才可见。
2、支付问题请联系微信公众号客服。
3、优质Verilog/VHDL代码资源,所见即所得。
Verilog/VHDL资源下载 » UART串口收发 Verilog Vivado
2、支付问题请联系微信公众号客服。
3、优质Verilog/VHDL代码资源,所见即所得。
Verilog/VHDL资源下载 » UART串口收发 Verilog Vivado