UART的RTL逻辑设计部分 - uart_rx

本文详细介绍了UART接收模块(UART_RX)的逻辑设计,包括IDLE、REC(串并转换)和ARB(仲裁校验位)三个状态。在REC状态中,通过计数器进行稳定采样,将串行数据转换为并行数据。在ARB状态,校验数据有效性,并通过valid&ready或异步FIFO进行数据传输握手。文中还探讨了跨时钟域问题和亚稳态解决方案。
摘要由CSDN通过智能技术生成

当UART完成了模块分解和输出之后,就可以开始设计逻辑了,设计好了再写代码!!!!


接受模块的流程应该是这样的:先是空闲,然后rx出现低电平表示单bit数据来了,开始串转并,转好之后判断校验位,未通过直接丢掉,通过了就等待下级的ready信号,当ready为高就发出去,

可以看到整个过程包含了三个状态

IDLE:等待rx低电平到来

REC:串并转换过程

ARB:根据校验位裁决收到的数据是否有效,有效就等待ready将收集的数据发出,否则直接抛弃。

转换图如下:

在这里插入图片描述

可不可以在等待发送rx_data的时候进行新的串并转换呢?可以,但你无法保证新的串并转换之后rx_data还未发送。所以UART_RX也分两种方式——valid&ready写握手 和 异步FIFO

其实将ARB纳入到REC也是可以的,UART_TX那边不把计算校验位纳入到TRANS里了嘛

1. IDLE:等待串数据到来

刚开始闲着,等待rx那边低电平出现,出现了就说明来数据了,然后转入REC阶段开始接受。

但是这里要注意一个点:rx来

  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Starry丶

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

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

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

打赏作者

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

抵扣说明:

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

余额充值