UART异步串行通信协议RS232Verilog代码Quartus仿真

本文介绍了如何使用Verilog语言在Quartus环境中设计并实现UART异步串行通信协议RS232,包括发送端和接收端电路设计,以及合并后的模块测试。通过10位数据传输和2400波特率的仿真验证功能。
摘要由CSDN通过智能技术生成

名称: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
源代码

 扫描文章末尾的公众号二维码

  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值