My title page contents

uart异步串口通信电路设计Verilog代码Quartus

名称:uart异步串口通信电路设计Verilog代码Quartus

软件:Quartus

语言:Verilog

代码功能:

功能描述

提高∪ART通信的传输速率,支持更高的波

特率(如115200、230400或更

实现方法

1.优化波特率分频

使用更高的系统时钟频率(如100MHz)和更小的分频系数。

例如,系统时钟为100MHz,波特率为115200时,分频系数为

text    0复制代码

Baud Rate Divisor 100, 000, 000115,200≈868

2.使用PLL生成精确时钟

使用FPGA的PLL(锁相环)模块生成精

确的波特率时钟,減少时钟误差。

3.多倍采样

在接收端使用多倍采样(如16倍采样来提高数据采样的准确性,尤其是在高波特率下。

要求 (1).jpg

编辑

要求 (2).jpg

演示视频:


1、工程文件

编辑

2、程序文件

编辑

编辑

编辑

3、程序编译

编辑

4、RTL图

编辑

5、管脚分配

编辑

6、仿真图

Testbench

编辑

仿真图

顶层模块

Uart波特率为115200,仿真时为便于验证正确性,将发送和接收回环,验证接收到得数是否等于发送得数

编辑

上图为顶层模块,先后发送了0x35(00110101)和0x76(01110110),可以看到接收端成

功接收到这两个数

发送模块

编辑

发送0x35(00110101)和0x76(01110110)的波形

接收模块

编辑

接收0x35(00110101)和0x76(01110110)的波形

部分代码展示:


//UART
module uart_top(
    input sys_clk,          //外部时钟
    input sys_rst_n,        //外部复位信号,低有效
 input send_key,//发送按键
 input [7:0] data_in,//发送数据输入 
 output [7:0] recv_data,//接收的数据(led显示)
    //uart接口
    input  uart_rxd,         //UART接收端口
    output uart_txd          //UART发送端口
    );
     
wire       uart_done;               //UART发送使能
wire [7:0] uart_data;               //UART发送数据
//UART接收模块
uart_recv i_uart_recv
(                 
.sys_clk        (sys_clk), 
.sys_rst_n      (sys_rst_n),
.uart_rxd       (uart_rxd),
.uart_done      (uart_done),
.uart_data      (uart_data)
);
//UART发送模块
uart_send i_uart_send
(                 
.sys_clk        (sys_clk),
.sys_rst_n      (sys_rst_n),  
.uart_en        (send_key),
.uart_din       (data_in),
.uart_txd       (uart_txd)
);
assign recv_data=uart_data;//输出接收数据
endmodule

代码文件(付费下载):





1、代码文件需要付费后才可见。
2、支付问题请联系微信公众号客服。
3、优质Verilog/VHDL代码资源,所见即所得。
Verilog/VHDL资源下载 » uart异步串口通信电路设计Verilog代码Quartus

发表评论

模板文件不存在: ./template/plugins/comment/pc/index.htm

注册为本站会员,充值100得150,详情咨询客服

目前为止共有 *** 位优秀的会员加入! 立刻加入会员