(4)UART应用设计及仿真验证3 —— RX模块设计(无状态机)

本文探讨了UART接收(RX)模块的设计,采用无状态机的方法。主要涉及六个关键部分:检测下降沿触发接收、设定接收时间段、位计数、数据接收与计算、数据校验。在详细描述每个步骤后,作者指出存在一些细节问题,表示后续将进行优化。
摘要由CSDN通过智能技术生成

 去除了状态机的RX模块要怎么设计呢?先梳理一下要完成哪些模块

1)判断什么时候收到数据?即检测帧数据中的start位,通过检测出现下降沿从而判定开始接收数据。—— negedge_detect

2)判断接收单帧数据的时间段?从检测到start位开始,到最后的停止位传完。总共跨越11个bit位,然后再第12个bit位的中途就可以关闭。——start_recieve_flag

3)每bit计数clk,进入数据接收区域了再开始算,脱离这个区域就清零。——baud_cnt

4)计算bit数,1bit起始位+8bit有效数据位+1bit校验位+2bit停止位。—— bit_cnt

5)数据传输,有效数据位的数据接收,bit_cnt>=1,bit_cnt<=8——rx_data

6)数据校验,check_mode_bit,^{rx_data,check_mode_bit} == CHECKMODE

//2022.6.30
//edgar.yao
//uart rx blaock

module uart_rx(
        input           clk,
        input           rst_n,
        input           rx,

        output[7:0]     rx_data,
        output          rx_data_valid
);

parameter               CHECKMODE       = 1;
parameter               BAUD_NUM        = 50_000_000/115200;

//(1)define all 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

少卿不在大理寺

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值