当前位置:网站首页>(4)UART应用设计及仿真验证2 —— TX模块设计(无状态机)

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

2022-07-05 22:54:00 少卿不在大理寺

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

版权声明
本文为[少卿不在大理寺]所创,转载请带上原文链接,感谢
https://blog.csdn.net/CAUC_learner/article/details/125536807