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

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