我是靠谱客的博主 呆萌冰棍,最近开发中收集的这篇文章主要介绍(4)UART应用设计及仿真验证2 —— TX模块设计(无状态机),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

前言:再次回顾这个小项目已是几个月后了,在后续的学习中,新的老师在不断强调,实际工作中尽量少用状态机,整理文章时忘了当时他咋说的了。所以我试着自己重新写一下UART,整理一个不带状态机的版本。

这里有几个基础的逻辑点要再次回顾一下:
1)完整的一帧数据格式包含:起始位,有效数据位,校验位,停止位;
2)计算单bit数据的传输时间:利用baoud(波特率)和clk(系统时钟),波特率单位bit per second,时钟Hz单位time per second ,所以时钟除以波特率得到的就是time per bit,即每bit对应多少个时钟周期;
3)参考信号:传输信号baoud_cnt_half,每bit计数到一半的时候,传递数据;切换计数信号baoud_cnt_end,每bit计数完的时候,进入下一轮计数周期;位计数bit_cnt,计算一帧数据中传递到第几位了;传输过程标志信号start_flag,贯穿每一次的数据传输。

上代码:

//date:2022.6.30
//edgar.yao
//uart_tx block


module uart_tx(
        input           clk,
        input           rst_n,
        input[7:0]      cmd_data,
        input           data_valid,

        output          tx,
        output          tx_read

最后

以上就是呆萌冰棍为你收集整理的(4)UART应用设计及仿真验证2 —— TX模块设计(无状态机)的全部内容,希望文章能够帮你解决(4)UART应用设计及仿真验证2 —— TX模块设计(无状态机)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(55)

评论列表共有 0 条评论

立即
投稿
返回
顶部