名称:UART异步串行通信协议RS232Verilog代码Quartus仿真(文末获取)
软件:Quartus
语言:Verilog
代码功能:
UART异步串行通信协议RS232
设计要求:
1.按照10位异步串行通信协议(1个起始位、1个停止位和8个数据位,8位并行数据从最低位开始逐位传送)、波特率2400,时钟源为50MHz,设计UART发送端电路,并仿真验证电
路功能;
2.按照与发送端一致的协议和波特率、相同频率的时钟源,将接收到的数据转换成8位并实行数据。设计UART接收端电路,并仿真验证电路功能;
3.把1、2中设计的两个电路合并到一个可综合模块中,并仿照题目1中的M0模块编写该题目的测试模块,产生10组测试信号,以仿真验证所设计电路是否能正确发送,接收数据。
1. 工程文件
2. 程序文件
3. 程序编译
4. RTL图
5. Testbench
6. 仿真图
整体仿真图
发送模块仿真图
接收模块仿真图
部分代码展示:
//UART顶层模块 //波特率2400,1位起始位,8位数据位,1位停止位 //将发送模块的串行输出接到接收模块的串行输入上 //验证接收数据是否等于输入数据 module uart_top( input sys_clk, //外部50M时钟 input sys_rst_n, //外部复位信号,低有效 input send_en, //发送使能 input [7:0] data_send, //发送数据 output receive_vld, //接收数据有效指示 output [7:0] data_receive //接收数据 ); //wire define wire uart_rx_tx;//将发送模块的串行输出接到接收模块的串行输入上 //UART接收模块 uart_recv u_uart_recv( .sys_clk (sys_clk),//外部50M时钟 .sys_rst_n (sys_rst_n),//外部复位信号,低有效 .uart_rxd (uart_rx_tx),//UART接收端口 .uart_done (receive_vld),//接收数据有效指示 .uart_data (data_receive)//接收数据LED显示 ); //UART发送模块 uart_send u_uart_send( .sys_clk (sys_clk),//外部50M时钟 .sys_rst_n (sys_rst_n),//外部复位信号,低有效 .uart_en (send_en),//发送按键 .uart_din (data_send),//发送数据 .uart_txd (uart_rx_tx)//UART发送端口 ); endmodule
源代码
扫描文章末尾的公众号二维码