当前位置:网站首页>(4)UART應用設計及仿真驗證2 —— TX模塊設計(無狀態機)

(4)UART應用設計及仿真驗證2 —— TX模塊設計(無狀態機)

2022-07-05 23:10: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://yzsam.com/2022/186/202207052254238760.html