TS流的CRC譯碼器設(shè)計
3 UART設(shè)計
UART的程序采用了自頂向下的分模塊設(shè)計方法,其功能模塊主要分為波特率產(chǎn)生模塊、起始位檢測模塊、發(fā)送模塊和接收模塊四部分。各個模塊分別編寫好并且仿真通過之后,再在頂層對其進(jìn)行例化,使各個模塊能夠連接起來。
3.1 波特率產(chǎn)生模塊
設(shè)計采用的波特率為9 600 b/s,幀格式為1 b起始位,8 b數(shù)據(jù)位,無奇偶校驗位,1 b停止位。波特率的產(chǎn)生主要是使用累加的方法,當(dāng)累加到一定值的時候,就給clk_bps一個時鐘的高電平,從而產(chǎn)生波特率。產(chǎn)生波特率的部分代碼如下:
波特率產(chǎn)生的RTL視圖如圖3所示。本文引用地址:http://m.butianyuan.cn/article/189722.htm
3.2 起始位檢測模塊
起始位是UART傳輸數(shù)據(jù)的開始,因此起始位檢測的好壞至關(guān)重要,本設(shè)計采用了邊沿檢測技術(shù)來檢測起始位,當(dāng)起始位的那個下降沿到來的時候,H2L_sig端口就會產(chǎn)生一個時鐘周期的高電平,為下面的接收做好準(zhǔn)備,起始位檢測的部分代碼如下:
起始位的RTL視圖如圖4所示。
3.3 發(fā)送模塊
發(fā)送模塊主要功能就是將FIFO里8 b的數(shù)據(jù)按9 600 b/s波特率一位一位地發(fā)送出去,最后再加上停止位,其RTL視圖如圖5所示。
評論