名称:串口UART发送及接收设计Verilog代码Quartus DE2开发板
软件:Quartus
语言:Verilog
代码功能:串口UART发送及接收
FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com
本代码已在DE2开发板验证,DE2开发板如下,其他开发板可以修改管脚适配:
演示视频:
设计文档:
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
阅读全文
681