目录
当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通过写握手判断数据到来。