如何分析FPGA的片上资源使用情况

FPGA设计有哪些指标来评估资源消耗?_52RD研发论坛
FPGA设计有哪些指标来评估资源消耗?Markmars Post at
16:09:00用ISE综合&XST&synthesis&report&里的&寄存器/加法器/复用器&&等&的数量还是用&&&&&&XST&synthesis&report&里Device&utilization&summary:&&Slices&/Slice&Flip&Flops/4&input&LUTs&等&的数量用&&&&&&Map&Report&里&Total&equivalent&gate&count&for&design&&&等价逻辑门数可不可以Vincentvan Post at
8:45:00&P&以前记录的,贴上来给你做个参考&/P&&P&PGA等效门数的计算方法有两种,一是把FPGA基本单元(如LUT+FF,ESB/BRAM)和实现相同功能的标准门阵列比较,门阵列中包含的门数即为该FPGA基本单元的等效门数,然后乘以基本单元的数目就可以得到FPGA门数估计值;二是分别用FPGA和标准门阵列实现相同的功能,从中统计出FPGA的等效门数,这种方法比较多的依赖于经验数据。&&对于第一种方法,FPGA包括LUT/FF/RAM等资源,分析各种资源等效门数时,总原则是等效原则,就是实现相同的功能,在标准门阵列中需要的门数就是FPGA该资源等效门数,例如实现一个带寄存器输出的4输入XOR,在FPGA中需要用一个LUT和1个FF实现,在标准门阵列中一般要用21个与非门实现,于是1个LUT+1个FF等效于21个门。对ESB(BRAM),由于用标准门阵列实&现1bit的RAM时一般需要4个门,因此ESB/BARM&做RAM使用时,1bit等效4个门,对Altera&FPGA中一个2048bit的ESB,等效门数为8K。光靠这些数据还不能比较准确地计算出FPGA的等效门数。因为这只是一种简单情况,实际情况要复杂很多。&例如,如果实现的是带寄存器输出地2输入XOR,FPGA也要用1个LUT+FF,而标准门阵列只需要8个NAND,于是1个LUT+1个FF只等效于8个门。同时特定功能的实现,在不同的标准门阵列系列中需要的门数也不一样,因此等效门的计算只能是个大概的数值。&也就是说对于某一具体型号FPGA的门数估计,与FPGA资源的用途有密切关系。LUT用于实现2输入XOR和4输入XOR等效门数不一样(分别为1和13);FF不带异步清零、复位、时钟使能和带这些端口的等效门数不同(分别为8和13);ESB(BRAM)做RAM使用时,1bit等效4个门,1个2048bit的BRAM等效8K门,但是做查找表使用时可能只相当于不到200门。因此估计FPGA的等效门数需要做更细致的分析。&图1显示了EP20K系列的等效门数等参数,下面以EP20K1000E为例详细说明FPGA等效门数的估计方法。&&&&(1)计算逻辑阵列的等效门数:估算EP20K1000E的门数时,把FPGA特定资源和LCA300K标准逻辑阵列的门数(LSI&LCA300K&Data&Book)比较,可以对FPGA等效门做出估计。FPGA一个LUT+FF等效门数计算如图2所示&即LUT+FF等效于8~21个门,上限和下限分别由实现简单函数、复杂函数分别界定。&APEX20K的等效门数也可以根据经验数据获得,把超过100个针对4输入LUT的设计用FPGA实现,同时用LCA300K&gate&arrays和Design&Compiler实现,比较相同的设计FPGA所用的LE数目和LCA300K所用的门数可知,每个LE相当于12个门。EP20K1000E有38400个LE,于是相当于46万门。&&&&&(2)计算ESB的等效门数&RAM中一个bit所需要的门数与RAM的体系结构、工艺、厂商等有关,一般而言,1bit相当于4个门,Altera也采用这个标准,这样可以方便地估计ESB等效门数。&计算ESB等效门数也可以采用和LSI&LCA300K比较的方法,即通过与实现相同容量RAM在LCA300K所用的门数相比较,从而得到ESB的每一bit相当于多少门,从而计算出ESB的等效门数,参考图3。&从上表可见,4gates/bit是一个比较合适的估计,于是EP20K1000E的ESB等效门数为160&ESBs&X&2,048&bits&per&ESB&X&4&gates&per&bit&=&1,310,720&gates,即约为130万门。&总而言之,对EP20K1000E,LUT+FF等效门数约为46万(经验数值),ESB全用作RAM时等效门数约为130万,所以最大系统门数为170万。&&&&&&&结论:FPGA等效门数估计方法可以是把FPGA资源基本单元(如LUT+FF,ESB)和实现相同功能的标准门阵列相比得到FPGA基本单元等效的门数,然后乘以单元的个数得到整个FPGA等效门数。也可以是实现很多设计,和用标准门阵列相比,从中统计出等效门数。FPGA的等效门数估计一般分为LUT+FF和ESB(BRAM)两部分,LUT+FF等效于8~21个门,典型值为12;ESB做RAM使用时,一般相当于4门/bit,此时估计出的门数最多,如果ESB做乘积项/LUT则等效门数大大减小,例如对EP20K1000E,前者为130万,后者为2万不知道,你们能不能看懂,看懂的在解释一下.&&/P&[br]&p&align=right&&font&color=red&+1&RD币&/font&&/p&maxin Post at
19:36:00&P&每个公司的开发产品和FPGA产品不太一样,&/P&&P&这里谈谈XILINX&FPGA的一些资源查看方法,&/P&&P&首先系统总容量由以下部分组成:&/P&&P&slices&/P&&P&LUT&/P&&P&RAM&/P&&P&Global&clock&/P&&P&以及专用乘法器&/P&&P&在综合之后,会详细生成一个资源占用表,但是这个其实很不准确,&/P&&P&以我使用的V4&FX系列来说,大概600万门级的逻辑单元,这是以slices来表述的,如果生成报表说你已经占用了大约75%以上,一般情况下,&/P&&P&再进行大规模的逻辑设计已经不太可能,不过可以仔细看一个参数,就是slices的利用率,一片slices利用率如果达到50%,着说明你的设计非常饱满,但XST综合能力比较差,资源利用率不高,因此如果利用率在50%一下,说明你其实还有很强大的空间可以供你操作。我推荐在ISE下采用synplify这个综合工具,开发手段使用HDL类的语言。&/P&&P&这里不详述了,等有机会,将自己工作中的一些心得贴出,供大家参考和批评&/P&&P&align=right&&FONT&color=red&+3&RD币&/FONT&&/P&[align=right][color=#000066][此贴子已经被作者于&18:32:49编辑过][/color][/align]将片外调试的优点融入FPGA片上调试之中
> 将片外调试的优点融入FPGA片上调试之中
将片外调试的优点融入FPGA片上调试之中
片上调试已出现了很多年,成为传统复杂设计调试方法的一种常用替代方式,将虚拟测试夹具放于设计任何地方而不是采用昂贵的通用I/O引脚是可编程逻辑器件才有的性能。但片上调试也有一些不足之处,本文将讨论片上调试的局限,并介绍如何把片上调试与片外深采样存储特性结合起来。 随着FPGA密度不断增加,工程师们需要经常使用新方法对FPGA实现的设计进行测试和验证。设计人员传统上使用逻辑分析仪、示波器和总线分析仪通过测试夹具来探查信号,这些测试夹具和连接器与FPGA上用户定义的I/O引脚相连,部分引脚(最常见的是64个)被分配给调试和验证,因此对于引脚分配,设计人员不得不在全面调试与设计实现之间进行协调。工程师经常还要安排时间给引脚加上片上逻辑以便选择信号或信号组,驱动I/O和后面的连接部分以供调试。尽管该方案可减少分配给调试的I/O引脚数量,但这项工作单调乏味,而且通常不能提供正确调试设计所需的可见性,此外测试夹具和连接器占用了宝贵的电路板空间,并会引入信号完整性和时钟问题(特别是在高速电路板设计上),同时成本也很高。 测试复杂FPGA设计的另一个方法是把部分FPGA逻辑资源专用于&逻辑分析&内核,这些内核的功能类似于传统的逻辑分析仪,包括触发、数据采集和采样存储,但却位于FPGA中,可直接接触到设计的信号和节点。逻辑分析内核的数据存储在FPGA本地存储器中,经由JTAG端口可以读出,这样就不必占用宝贵的通用I/O引脚。由于逻辑分析内核位于FPGA内部,可利用高速互连总线、快速存储器和系统时钟,而无须把这些信号引出芯片,因此可提供传统调试和验证方法中没有的可见度和精确性。 领先的FPGA供应商能提供方便的工具,把逻辑分析和总线分析内核直接插入到FPGA设计中,并带有先进的接口,支持测试和测量供应商主流逻辑分析仪的多种特性和功能。 片上调试的局限 这种片上调试的主要局限在于逻辑内核本身使用了FPGA资源,更重要的是还用到了采样存储器。实现逻辑或总线分析内核所需的逻辑非常少(一般少于FPGA逻辑单元的3%),因为这些内核很小,所以它们可以放在被测逻辑附近不用的逻辑里。但与之相反,片上采样存储会占用大量片上存储资源。片上逻辑与总线分析内核使用FPGA内部RAM,根据用户定义的触发条件存储采集到的样品数据,仅仅32K采样数据就需要用到FPGA的全部RAM单元。 除此以外,时间也是调试多个系统问题的关键因素之一,长时间采样需要更多片上存储器。解决这个问题的一个常用方法是一旦完成调试和验证就把逻辑分析内核去除,尽管这释放了FPGA设计的逻辑和存储器资源,但也意味着逻辑分析内核不能用在以后的设计中。 采样存储器的数量由FPGA里的RAM数量决定,在某些情况下,它限制了对发生在较长时间里的复杂事件进行调试。片上调试解决方案希望通过提供先进的支持,允许用户定义复杂触发情况来克服这个局限,基于多事件的触发条件让用户只能捕捉与特定事件相关的数据,从而节约片上存储器资源。虽然该方法可以更好地利用有限的片上存储器,但它需要知道错误发生在逻辑中的什么地方,而这常常是一个不断演进的迭代过程,要仔细研究引起错误的具体设计问题。因此尽管该方法可以用于调试,但它太费时,且需要大量思考和对设计的深入认识,从而大大影响了验证能力,而且通常无法把设计&分解&成多个小部分塞入受限片上资源进行验证。 传统测试和测量设备制造商围绕这个问题,提供了带有很深采样存储和复杂触发能力的测试设备。当设计出现问题时,用户要尽量多采集数据,经常要好几秒,然后利用提供的工具查看数据,发现设计中的问题,这样能确保工程师抓到事件,但在查看数据发现问题时需要有耐心。 将两者优点结合起来 理想的解决方案是把传统片外调试设备的扩展采样存储器与片上调试的优点结合在一起。这种方法能使用户把虚拟测试夹具放在FPGA设计任意位置,接触内部信号和节点,并使用传统逻辑和总线分析仪设备的片外深采样存储器。它没有使用片上存储资源,相反,存储器都在片外。 该解决方案带来了很多好处。用户可以调试现在很多FPGA设计中常见的复杂数据交换事件,调试复杂的控制逻辑、存储器和I/O接口、处理器系统以及详细的状态机等,这些都要求在较长时间内捕捉样品数据。复杂数据交换事件需要用户捕捉所有活动以全面分析事件,当采样存储限制取消后,还可以再加上时间标记。 这种新方法最有用的地方在于实现了片上验证。完全调试一个FPGA设计既费时又需要大量的计算,新的组合式方案可让用户利用现实世界几乎无穷的测试向量在片上调试FPGA。在软件仿真环境里即使仿真10秒的功能也要用多达100天的时间,而在现实条件下仿真设计功能还能揭示软件仿真环境下无法看到的异步和信号完整性等异样情况。 片上逻辑和总线分析内核通常把采样数据写入片上存储单元,也可对这些内核进行修改而把数据写到片外,但需要一个新接口。现在多数片上调试工具利用JTAG接口与安置在FPGA里的逻辑和总线分析内核进行通信,这是一个相对较慢的串行连接(10MHz),但对确定逻辑和总线分析内核参数如触发条件来说正好,甚至对存储在片上存储器里的空载采样也足够,但是它不能支持结合片内、片外解决方案所需要的快速片外数据传输率,需要一个专用高速端口,就是说要为调试分配I/O引脚,这样就抵消了片上调试方法的一个重要优点。有一个方法是利用诸如时分复用技术把数据压缩到少量I/O引脚中,然后在片外将数据传给外部采样存储器。分析表明,这样只要分配20个I/O引脚就可以捕捉高达79个数据信道,并以与片上方法相当的速率在片外传输。 本文结论 片上调试作为调试复杂FPGA设计的一个可行方法而出现,目前正在开发的新技术以及现在已出现的技术则通过融合片外逻辑分析设备存储单元对该方案进行改进。这样不仅发挥了片上调试的作用,如片上实时验证,而且提供了一种经济的方法可以取代目前昂贵的逻辑和数据分析设备。
分享给小伙伴们:
我来说两句……
最新技术贴
微信公众号二
微信公众号一}

我要回帖

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信