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

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

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

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
    下载

相关推荐