时间:2024-08-09 来源:网络搜集 关于我们 0
之前的文章中,我们聊了FPGA芯片有六个主要模块,分别是可编程输入输出单元(IOB)、基本可编程逻辑单元(CLB)、数字时钟管理(DCM)、嵌入块式RAM(BRAM)、丰富的布线资源、内嵌的底层功能单元和内嵌专用硬件模块。那么我们在使用FPGA进行开发过程中,到底该依据什么来进行器件选型呢?今天我们来谈一谈这个问题。
我们在学习和工作中,大多数人在进行选型的时候,一般考虑最多的是逻辑资源和I/O资源,即逻辑在板子上面是不是能放得下,I/O是不是够用,当然这是必须要首先考虑的条件,但是这还远远不够。
逻辑资源和I/O资源,只是一个器件硬件资源的两类,除过这两类之外,还包括以下资源:
布线资源存储资源锁相环资源DSP资源硬核处理器资源随着FPGA的不断升级,逻辑资源的快速扩展,目前主流FPGA器件的逻辑资源,基本上能够满足大多数一般的应用。在这种前提之下,其他因素的重要性,开始显现出来。
在实际的工作过程中,现在有两个问题,变得越来越突出。
器件的发热问题电路的运算速度较低问题虽然说FPGA的散热问题一直存在,但是随着数字系统的越来越复杂,这个问题变得很突出。
在实际工作过程中,我们通过对比发现,I/O资源消耗太多的系统,往往发热比较严重。器件发热的坏处是非常明显的,会影响器件的稳定性、可使用时间等等,所以在选型过程中,器件的散热问题,应该受到重视。
另外,通过对比发现,I/O资源过度使用,会影响电路运行速度,严重的甚至不能达到原来的时钟设计目标。
因为我从事的工作,大多在图像处理领域,在图像处理过程中,有大量的乘、除,甚至多维的卷积运算,BRAM等存储资源的使用,以及各种滤波操作,所以大概总结了下面几条:
参加运算的比特位宽越大,在进行乘、除、卷积这类复杂运算的时候,消耗资源越大;滤波器窗口越大,使用BRAM资源越多,局部布线资源的耗费越大;双向I/O的使用越多,局部布线资源的耗费越大;经过上面的分析,给出几个小的器件选型建议:
逻辑资源够用,肯定是首要考虑的乘、除、卷积这类复杂操作较多的设计,尽可能选用DSP资源比较丰富的器件;滤波操作较多的设计,尽可能选择存储器资源较丰富的器件。但是这类器件的价格一般比较高,所以需要仔细考量。针对锁相环资源,个人感觉Xilinx的数字锁相环,相位控制要比Interl(Altera )的模拟锁相环的控制精度要好(这个是个人感受)。对布线资源的考虑权重,应该加强。今天我们聊了一些,在FPGA选型过程中应该注意的小点。随着设计的复杂度上升,我们在器件选型时,要考虑也变得越来越多。