[Craftor原创]带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的发送部分是可用的,接收部分不可用,需要读者自行修改,但不影响发送部分和整体的使用。

优质内容筛选与推荐>>
1、Java学习package、import语句
2、各种协议优略势对比
3、ES6
4、[业界资讯]Ubuntu 9.10新壁纸及更多...
5、[Objective-c 基础 - 1.3] OC带返回值的类方法


长按二维码向我转账

受苹果公司新规定影响,微信 iOS 版的赞赏功能被关闭,可通过二维码转账支持公众号。

    阅读
    好看
    已推荐到看一看
    你的朋友可以在“发现”-“看一看”看到你认为好看的文章。
    已取消,“好看”想法已同步删除
    已推荐到看一看 和朋友分享想法
    最多200字,当前共 发送

    已发送

    朋友将在看一看看到

    确定
    分享你的想法...
    取消

    分享想法到看一看

    确定
    最多200字,当前共

    发送中

    网络异常,请稍后重试

    微信扫一扫
    关注该公众号