串口通信控制模块发送端Verilog代码Quartus DE2-115开发板
名称:串口通信控制模块发送端Verilog代码Quartus DE2-115开发板
软件:Quartus
语言:Verilog
代码功能:
串口通信控制模块发送端
编写波特率可设置的串口通信控制程序,使得发送端(通过FPGA的四个拨码开关发送
0~15内的整数),接收端(在PC上通过串口调试助手进行显示)观察数据是否与发送端一样。

FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com
本代码已在DE2-115开发板验证,DE2-115开发板如下,其他开发板可以修改管脚适配:
演示视频:
设计文档:
1. 工程文件

2. 程序文件

3. 程序编译

4. 管脚分配

5. Testbench

6. 仿真图



部分代码展示:
//UART发送端
module uart_send(
input clock, //系统时钟
input reset, //系统复位,低电平有效
input write_strobe, //发送使能信号
input [3:0] data_in, //待发送数据
output transmitinf, //表示这种发送
output reg s_out //UART发送端口
);
//parameter define
parameter CLK_FREQ = 50000000; //系统时钟频率
parameter UART_BPS = 9600; //串口波特率
localparam BPS_CNT = CLK_FREQ/UART_BPS; //为得到指定波特率,对系统时钟计数BPS_CNT次
//reg define
reg uart_en_d0;
reg uart_en_d1;
reg [15:0] clk_cnt; //系统时钟计数器
reg [ 3:0] tx_cnt; //发送数据计数器
reg tx_flag; //发送过程标志信号
reg [ 7:0] tx_data; //寄存发送数据
//wire define
wire en_flag;
assign transmitinf=tx_flag;
//*****************************************************
//** main code
//*****************************************************
//捕获uart_en上升沿,得到一个时钟周期的脉冲信号
assign en_flag = (uart_en_d1) & (~uart_en_d0);
//对发送使能信号uart_en延迟两个时钟周期
always @(posedge clock or negedge reset) begin
if (!reset) begin
uart_en_d0 <= 1'b0;
uart_en_d1 <= 1'b0;
end
else begin
uart_en_d0 <= write_strobe;
uart_en_d1 <= uart_en_d0;
end
end
//当脉冲信号en_flag到达时,寄存待发送的数据,并进入发送过程
always @(posedge clock or negedge reset) begin
if (!reset) begin
tx_flag <= 1'b0;
tx_data <= 8'd0;
end
else if (en_flag) begin //检测到发送使能上升沿
tx_flag <= 1'b1; //进入发送过程,标志位tx_flag拉高
tx_data <= {4'b0000,data_in}; //寄存待发送的数据,前4bit补0
end
else
if ((tx_cnt == 4'd10)&&(clk_cnt == BPS_CNT/2))
begin //计数到停止位中间时,停止发送过程
tx_flag <= 1'b0; //发送过程结束,标志位tx_flag拉低
tx_data <= 8'd0;
end
else begin
tx_flag <= tx_flag;
tx_data <= tx_data;
end代码文件(付费下载):
![]()
1、代码文件需要付费后才可见。
2、支付问题请联系微信公众号客服。
3、优质Verilog/VHDL代码资源,所见即所得。
Verilog/VHDL资源下载 » 串口通信控制模块发送端Verilog代码Quartus DE2-115开发板
2、支付问题请联系微信公众号客服。
3、优质Verilog/VHDL代码资源,所见即所得。
Verilog/VHDL资源下载 » 串口通信控制模块发送端Verilog代码Quartus DE2-115开发板
发表评论
模板文件不存在: ./template/plugins/comment/pc/index.htm