串口通信USART接收程序

本文介绍了一种使用Verilog编写的串口接收程序,配置为8位数据位,1位停止位,无校验位和流控,波特率由专用模块生成。通过时序图理解串口通信过程。

使用Verilog代码编写的串口接收程序:

数据位8位,停止位1位,校验位没有,流控没有

波特率由波特率模块生成

串口时序大致如下图所示:


module uart_recv(GClk,clk_bps,reset,rx_en,Rxd,datain,rx_ok);
input GClk,clk_bps,reset,rx_en,Rxd;
output [7:0]datain;
output rx_ok;
//neg_rx:__/\______________________________
//rx_ok:_________________________________/^\_
//rx_en:^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
//RxAv:____/^^^^^^^^^^^^^^^^^^^^^^^^^^^^\___

wire clk_bps;
reg [7:0]data;//接收数据缓存
reg [7:0]data_temp;
reg rx_ok;
reg [3:0]BitPos;//结构位置定义
/*  捕获rx的下降沿,即起始
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值