带FIFO的UART收发器设计(转发)
?
UART的結構大家并不陌生,用HDL語言寫一個UART收發器也并不難。本文中作者給出一個可以應用到實際工程中的UART收發器,并且是經過驗證的。
?
UART的結構如上圖所示。其核心在于兩個FIFO的運用。其實收和發兩個部分是獨立的,完全可以分開單獨使用,作者為了方便起見,將兩者放在了一起。
原理也比較簡單,以發送為例。FIFO是8位的,只要上層模塊不停地往發送FIFO里填數據,發送器就會自動從FIFO里讀數據,并將數據轉換成串行的向外發送。
更具體一點,就是檢測到FIFO的不為空的時候,就去讀數據,一直讀到FIFO為空。上層的模塊在FIFO滿的時候,就不要寫數據了,以避免數據溢出而丟失。所以,在不同的FPGA芯片上實現該UART的時候,可以根據需要自己選擇適合的FIFO長度。
接收的時候也類似,這里就不多說。
?
源代碼:
http://myfpga.googlecode.com/files/fifo_uart.rar
說明,fifo_to_uart.v是UART的頂層文件,top.v是測試程序。如果要用到具體的FPGA上,需要自己添加一個FIFO,最好是FPGA自帶的FIFO核,直接例化。
另外,此UART的發送部分是可用的,接收部分不可用,需要讀者自行修改,但不影響發送部分和整體的使用。
轉載于:https://www.cnblogs.com/tureno/articles/2637849.html
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的带FIFO的UART收发器设计(转发)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 链表(list)
- 下一篇: Hack Into Linux Pack