FIFO(First In First Out)是一种先进先出的存储结构,经常被用来在FPGA设计中进行数据缓存或者匹配传输速率。

本文主要介绍FIFO深度计算的方法,FIFO的一个关键参数是其深度,也就是FIFO能够存储的数据条数,FIFO深度设计的合理,可以防止数据溢出,也可以节省FPGA资源的消耗。

在FPGA设计中,我们通常采用的都是“自顶向下”的设计方法,即现有顶层设计,再有细节设计。比如先有整个项目的功能框图、数据流程图等,然后再细分功能到一级模块,每个一级模块再细分到二级、三级甚至更低级别的模块。除了每个模块的设计,如何把模块连接起来?也是一个很有趣且重要的话题,这就是我们通常说的内部模块接口。这里先介绍几种常见的内部模块接口。

1 概述

随着数字技术的快速发展,数字信号处理已深入到各个学科领域。在数字信号处理中,许多算法如相关、滤波、谱估计、卷积等都可通过转化为离散傅立叶变换(DFT)实现,从而为离散信号分析从理论上提供了变换工具。但DFT计算量大,实现困难。快速傅立叶(FFT)的提出,大大减少了计算量,从根本上改变了傅立叶变换的地位,成为数字信号处理中的技术之一,广泛应用于雷达、观测、跟踪、高速图像处理、保密无线通信和数字通信等领域。

目前,硬件实现FFT算法的方案主要有:通用数字信号处理器(DSP)、FFT专用器件和现场可编程门阵列(FPGA)。DSP具有纯软件实现的灵活性,适用于流程复杂的算法,如通信系统中信道的编译码、QAM映射等算法。DSP完成FFT运算需占用大量DSP的运算时间,使整个系统的数据吞吐率降低,同时也无法发挥DSP软件实现的灵活性。采用FFT专用器件,速度虽能够达到要求。但其外围电路复杂,可扩展性差,成本昂贵。随着FPGA发展,其资源丰富,易于组织流水和并行结构,将FFT实时性要求与FPGA器件设计的灵活性相结合,实现并行算法与硬件结构的优化配置,不仅可以提高处理速度,并且具有灵活性高。开发费用低、开发周期短、升级简单的特点。针对某OFDM系统中FFT运算的实际需要,提出了基于FPGA的设计来实现FFT算法,并以16位长数据,64点FFT为例,在QuartusⅡ软件上通过综合和仿真。

随着人工智能、深度学习在市场越来越受欢迎,除了GPU、众多独角兽公司的AI专用芯片,FPGA同样是深度学习的热门平台之一。本文将给大家介绍5款强大到不可思议的FPGA开发板,当然价格也是高的离谱,肯能对于大多数工程师来说,这些属于求而不得的高端“玩具”。

RTG4开发套件

RTG4-DEV-KIT是Microsemi公司的产品,当然目前的话已经被Microchip收购,这是一套为高端的客户提供的评估和开发平台,主要用于数据传输,串行连接,总线接口等高密度高性能FPGA的高速设计等应用 。

该开发板采用RT4G150器件,采用陶瓷封装,提供150,000个逻辑元件,具有1,657个引脚,下图是RTG4-DEV-KIT开发板的外设接口功能图。

FPGA的用处比我们平时想象的用处更广泛,原因在于其中集成的模块种类更多,而不仅仅是原来的简单逻辑单元(LE)。

早期的FPGA相对比较简单,所有的功能单元仅仅由管脚、内部buffer、LE、RAM构建而成,LE由LUT(查找表)和D触发器构成,RAM也往往容量非常小。

现在的FPGA不仅包含以前的LE,RAM也更大更快更灵活,管教IOB也更加的复杂,支持的IO类型也更多,而且内部还集成了一些特殊功能单元,包括: