• [Craftor原创]带FIFO的UART收发器设计


    UART的结构大家并不陌生,用HDL语言写一个UART收发器也并不难。本文中作者给出一个可以应用到实际工程中的UART收发器,并且是经过验证的。

    image

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

  • 相关阅读:
    RDLC报表开发技巧备忘
    C#3.0"扩展方法"简记
    将activity转化成view
    取消logcat输出
    低栏的项目切换
    android edittext 限制文本框输入的长度和提示信息
    android如何调用dotnet编写的webservice
    iphone 式退出
    几种tabhost的总结(1)
    切换浏览示意图
  • 原文地址:https://www.cnblogs.com/craftor/p/1912505.html
Copyright © 2020-2023  润新知