ISE 综合面积报告分析

来源:互联网 发布:北风网php 百度云 编辑:程序博客网 时间:2024/04/30 09:22

原文URL: http://blog.sina.com.cn/s/blog_8383808c0100ywmw.html

Ref: http://www.baisi.net/viewthread.php?tid=307745

FPGA的最终面积不但和要实现的功能有关,而且和不同人的不同设计方法有关,比如同样一个buffer,用block memory 和 coregen 的方法可能面积很省,但是如果直接用RTL编码产生,而且不幸没有综合成blockmem而是综合成了一大堆的寄存器和LUT则面积会很大,大到不可想象 (我有个这样的经历)。所以要在设计前就估计出面积不太可行。除非公司开发的产品有很强的延续性,那样的话可以根据原来的项目进行近似的推算,这是可能 的。那么在ISE里面如何看到自己设计的部分的面积呢?

1. ISE项目中打开“view design summary”
   在右侧design summary窗口中选择“detailed reports”中的“map report”
2. 出现如下所示的内容。我们分析一下。
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% 输入LUT利用率:12%
Logic Distribution:
被使用的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分布在18Slice里面时,恰好就是现在的这种情况了。即 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%
4输入LUT的利用率:14%


Number used as logic:             21,446
设计用LUT数目:21446


Number used as a route-thru:         787
布线路由用LUT787


Number used for Dual Port RAMs:    2,596
双端口RAMLUT2596


(Two LUTs used per Dual Port RAM)
每个双端口RAM由两个LUT构成
Number used as 16x1 RAMs:            
用做16x1RAMLUT64


Number used as Shift registers:      134
用做shift registerLUT134
其他


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
( d/ o- a) W6 U这是一个168万门的设计。
Additional JTAG gate count for IOBs:  23,760

附:6. 等效门数的意义
本文在edacn.net发布以后,很多人回帖或者发信给我询问我等效门数的意义。我想这个问题不能一句话说完,就逐一做一下说明吧。
(1). 等效门数是对ASIC实现的大概估计。这里包含了两个意思:一呢是对ASIC实现的估计,也就是说ASIC实现的时候是在168万门左右的数量级;二呢是 个大概估计,所以要强调的是等效门数仅供参考,和最后真正的ASIC结果可能会相去甚远,比如可能是100万门,也可能是300万门,甚至我们无法理解的 数目。
(2). 等效门数的单位是二输入的NANDNOR,这一点未经确认,但是有这样的印象,因为在CMOS工艺里面NANDNORNOTXOR是基本的门结构。
(3). ISE是否足够智能要保持怀疑。比如我们的设计中用到了一个BlockMemISE在计算等效门的时候可能不会区分这个blockmem是被用作了 RAMROM,还是异步FIFO。但是这些不同的应用在ASIC的时候,综合出来的结果是不同的。在deepchip ESNUG里贴了这样的内容,可以参考一下(原文见:

Frag      Virtex ASIC equivalent gates
    4-input LUT            6
    4-input ROM           32
    3-input LUT           na
    16x1 RAM              64
    32x1 RAM             128
    Shift Reg LUT      64
    CLB flop               8
    CLB latch              5
    IOB flop               8
    IOB latch              5
    IOB Sync latch        na
    TBUF                   3
    Block RAM         16,384
    BSCAN                 48
    Clk DLL            7,000
    F5 MUX                 3
    F6 MUX                 3
    MUXCY                  3
    XORCY                  3
(4). ASIC厂商和工艺的不同决定了等效门数只会是个general的参考数。不同的工艺在综合相同结构的时候,产生的门数也会不同,但是ISE的报告里面没有提及这一点,足见这是一个参考用得数据,且不可当真
(5). 等效门数的意义在于:
一、作为增量设计时的参考,评估新模块的大小和在全系统中占有的比例;
二、可以用等效门数作为一阶估计,预测大致的ASIC规模比如1XXX万门的设计就当作是1000门左右的设计。
最后,切记,等效门数并不等于最后ASIC的门数,而且可能很不等效。


0 0
原创粉丝点击