名称:QuartusRS232串口UART发送接收verilog代码青创QC-FPGA开发板(文末获取)
软件:Quartus
语言:Verilog
代码功能:
RS232串口UART发送接收
1、设计UART串口代码,波特率可以通过代码参数修改
2、1bit起始位,8bit数据,1bit结束位
3、支持串口发送和接收,可以将接收自电脑的数据发送回电脑
本代码已在青创QC-FPGA开发板验证,青创QC-FPGA开发板如下,其他开发板可以修改管脚适配:
1. 工程文件
2. 程序文件
3. 程序编译
4. RTL图
5. 管脚分配
6. Testbench
7. 仿真图
波特率模块
发送模块
接收模块
部分代码展示:
module my_uart_top(clk,rst_n,rs232_rx,rs232_tx); input clk;// 50MHz主时钟 input rst_n;//低电平复位信号 input rs232_rx;// RS232接收数据信号 output rs232_tx;//RS232发送数据信号 wire bps_start;//接收到数据后,波特率时钟启动信号置位 wire clk_bps;// clk_bps的高电平为接收或者发送数据位的中间采样点 wire[7:0] rx_data;//接收数据寄存器,保存直至下一个数据来到 wire rx_int;//接收数据中断信号,接收到数据期间始终为高电平 //---------------------------------------------------- //波特率选择模块 speed_selectspeed_select(.clk(clk), .rst_n(rst_n), .bps_start(1), .clk_bps(clk_bps) ); //接收数据模块 my_uart_rxmy_uart_rx(.clk(clk),//接收数据模块 .rst_n(rst_n), .rs232_rx(rs232_rx), .clk_bps(clk_bps), .bps_start(), .rx_data(rx_data), .rx_int(rx_int) ); //发送数据模块 my_uart_txmy_uart_tx(.clk(clk),//发送数据模块 .rst_n(rst_n), .clk_bps(clk_bps), .rx_data(rx_data), .rx_int(rx_int), .rs232_tx(rs232_tx), .bps_start() ); endmodule