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