• 方案介绍
  • 附件下载
  • 相关推荐
申请入驻 产业图谱

串口UART发送及接收设计Verilog代码Quartus DE2开发板

09/16 10:09
681
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

2-24101GZ231103.doc

共1个文件

名称:串口UART发送及接收设计Verilog代码Quartus  DE2开发板

软件:Quartus

语言:Verilog

代码功能:串口UART发送及接收

FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com

本代码已在DE2开发板验证,DE2开发板如下,其他开发板可以修改管脚适配:

DE2开发板.png

演示视频:

设计文档:

1. 工程文件

2. 程序文件

3. 程序编译

4. RTL图

5. 管脚分配

6. 仿真图

Testbench

整体仿真图

发送数据产生模块

UART发送模块

UART接收模块

接收数据显示模块

部分代码展示:

module uart_send(
    input      sys_clk,                  //系统时钟
    input         sys_rst_n,                //系统复位,低电平有效
    
    input         uart_en,                  //发送使能信号
    input  [6:0]  uart_din,                 //待发送数据
    output  reg   uart_txd                  //UART发送端口
    );
    
//parameter define
localparam BPS_CNT  = 5208;        //为得到指定波特率,50000000/9600=系统时钟频率/串口波特=5208
//reg define
reg        uart_en_d0; 
reg        uart_en_d1;  
reg [15:0] clk_cnt;                         //系统时钟计数器
reg [ 3:0] tx_cnt;                          //发送数据计数器
reg        tx_flag;                         //发送过程标志信号
reg [ 6:0] tx_data;                         //寄存发送数据
//wire define
wire       en_flag;
//*****************************************************
//**                    main code
//*****************************************************
//捕获uart_en上升沿,得到一个时钟周期的脉冲信号
assign en_flag = (~uart_en_d1) & uart_en_d0;
                                                 
//对发送使能信号uart_en延迟两个时钟周期
always @(posedge sys_clk or negedge sys_rst_n) begin         
    if (!sys_rst_n) begin
        uart_en_d0 <= 1'b0;                                  
        uart_en_d1 <= 1'b0;
    end                                                      
    else begin                                               
        uart_en_d0 <= uart_en;                               
        uart_en_d1 <= uart_en_d0;                            
    end
end

点击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=1223

  • 2-24101GZ231103.doc
    下载

相关推荐