TS流的CRC譯碼器設計
3 UART設計
UART的程序采用了自頂向下的分模塊設計方法,其功能模塊主要分為波特率產生模塊、起始位檢測模塊、發送模塊和接收模塊四部分。各個模塊分別編寫好并且仿真通過之后,再在頂層對其進行例化,使各個模塊能夠連接起來。
3.1 波特率產生模塊
設計采用的波特率為9 600 b/s,幀格式為1 b起始位,8 b數據位,無奇偶校驗位,1 b停止位。波特率的產生主要是使用累加的方法,當累加到一定值的時候,就給clk_bps一個時鐘的高電平,從而產生波特率。產生波特率的部分代碼如下:

波特率產生的RTL視圖如圖3所示。本文引用地址:http://www.104case.com/article/189722.htm
3.2 起始位檢測模塊
起始位是UART傳輸數據的開始,因此起始位檢測的好壞至關重要,本設計采用了邊沿檢測技術來檢測起始位,當起始位的那個下降沿到來的時候,H2L_sig端口就會產生一個時鐘周期的高電平,為下面的接收做好準備,起始位檢測的部分代碼如下:
起始位的RTL視圖如圖4所示。
3.3 發送模塊
發送模塊主要功能就是將FIFO里8 b的數據按9 600 b/s波特率一位一位地發送出去,最后再加上停止位,其RTL視圖如圖5所示。
評論