FPGA的最终面积不但和要实现的功能有关,而且和不同人的不同设计方法有关,比如同样一个buffer,用block memory 和 coregen 的方法可能面积很省,但是如果直接用RTL编码产生,而且不幸没有综合成blockmem而是综合成了一大堆的寄存器和LUT则面积会很大,大到不可想象(我有个这样的经历)。所以要在设计前就估计出面积不太可行。除非公司开发的产品有很强的延续性,那样的话可以根据原来的项目进行近似的推算,这是可能的。 那么在ISE里面如何看到自己设计的部分的面积呢。 1. 在ISE项目中打开“view design summary”。 2. 在右侧design summary窗口中选择“detailed reports”中的“map report”。 3. 出现如下所示的内容。我们分析一下。 Design Summary -------------- Logic Utilization: 1. FPGA资源利用率 Number of Slice Flip Flops: 11,555 out of 178,176 6% Slice内部FF寄存器利用率:6% Number of 4 input LUTs: 21,446 out of 178,176 12% 4输入LUT利用率:12% Logic Distribution: 2. 被使用的FPGA资源分布情况 Number of occupied Slices: 16,079 out of 89,088 18% 占用的Slice数目:18%。 为什么Slice利用率是18%而上面的LUT利用率是12%呢?简单说明一下。假如一个Slice有两个LUT,片内总共有100个单位的Slice,也即有200个单位的LUT,那么如果我们的设计使用了24个单元的LUT,而这些LUT分布在18个Slice里面时,恰好就是现在的这种情况了。即 Slice利用率18% (18/100),LUT利用率12%(24/200)。 Number of Slices containing only related logic: 16,079 out of 16,079 100% Slice里面只有互相相关的逻辑,这种Slice所占比例:100% Number of Slices containing unrelated logic: 0 out of 16,079 0% Slice里面有互不相关的逻辑,这种Slice所占比例:0% *See NOTES below for an explanation of the effects of unrelated logic Total Number of 4 input LUTs: 25,027 out of 178,176 14% 3. 4输入LUT的利用率:14% Number used as logic: 21,446 设计用LUT数目:21446 Number used as a route-thru: 787 布线路由用LUT:787 Number used for Dual Port RAMs: 2,596 双端口RAM用LUT:2596 (Two LUTs used per Dual Port RAM) 每个双端口RAM由两个LUT构成 Number used as 16x1 RAMs: 64 用做16x1RAM的LUT:64 Number used as Shift registers: 134 用做shift register的LUT:134 4. 其他 Number of bonded IOBs: 495 out of 960 51% Number of BUFG/BUFGCTRLs: 8 out of 32 25% Number used as BUFGs: 8 Number used as BUFGCTRLs: 0 Number of FIFO16/RAMB16s: 19 out of 336 5% Number used as FIFO16s: 0 Number used as RAMB16s: 19 Number of DCM_ADVs: 2 out of 12 16% Number of BSCAN_VIRTEX4s: 1 out of 4 25%
Number of RPM macros: 12 5. 等效门数 Total equivalent gate count for design: 1,681,068 这是一个168万门的设计。 Additional JTAG gate count for IOBs: 23,760 附:6. 等效门数的意义 本文在edacn.net发布以后,很多人回帖或者发信给我询问我等效门数的意义。我想这个问题不能一句话说完,就逐一做一下说明吧。 (1). 等效门数是对ASIC实现的大概估计。这里包含了两个意思:一呢是对ASIC实现的估计,也就是说ASIC实现的时候是在168万门左右的数量级;二呢是个大概估计,所以要强调的是等效门数仅供参考,和最后真正的ASIC结果可能会相去甚远,比如可能是100万门,也可能是300万门,甚至我们无法理解的数目。 (2). 等效门数的单位是二输入的NAND和NOR,这一点未经确认,但是有这样的印象,因为在CMOS工艺里面NAND、NOR、NOT和XOR是基本的门结构。 (3). 对ISE是否足够智能要保持怀疑。比如我们的设计中用到了一个BlockMem,ISE在计算等效门的时候可能不会区分这个blockmem是被用作了RAM,ROM,还是异步FIFO。但是这些不同的应用在ASIC的时候,综合出来的结果是不同的。在deepchip ESNUG里贴了这样的内容,可以参考一下(原文见:http://www.deepchip.com/items/0356-05.html): Frag Virtex ASIC equivalent gates --------------------------------------------------- 4-input LUT
文章评论(0条评论)
登录后参与讨论