UART的RTL逻辑设计部分 - uart_tx

本文详细介绍了UART_TX模块的逻辑设计,包括基于valid&ready的Slave写握手和基于异步FIFO的Master读握手。在IDLE状态等待数据,TRANS状态进行并串转换,利用状态机实现UART的数据发送。同时,讨论了如何通过异步FIFO提高效率,并提供了相应的状态机时序图和代码实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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


还是先从外围模块开始,UART_TX模块的功能比较简单,将多bit数据按照波特率解构成单bit发送到tx上即可。

由于tx端每一拍的数据都不同,即当前tx输出会与之前tx_data有关,因此输出输入是时序逻辑关系,此处使用状态机进行设计。

状态设计两种:IDLE和TRANS。咱先用语言描述每个状态要干啥 以及状态转移条件,再翻译成时序图,最终形成代码

IDLE状态下,一直等待要发送的数据出现,出现了就转入TRANS状态

TRANS状态下,将待发送的数据按照帧格式和波特率单bit发送,发完了转回IDLE。

状态转换图如下:

在这里插入图片描述

1. IDLE:等待并数据到来

IDLE状态什么都不用做,只需找到一个条件判断有待发送数据即可进入TRANS状态。

1.1. valid&ready 的Slave写握手

UART_TX的接口都给出了tx_data、tx_data_valid和tx_ready,摆明了告诉你将UART_TX当作Slave通过写握手判断数据到来。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Starry丶

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

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

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

打赏作者

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

抵扣说明:

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

余额充值