原创 如何知道你的FPGA设计等效于多少门

2009-8-30 11:36 3948 7 7 分类: FPGA/CPLD

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条评论)

登录后参与讨论
我要评论
0
7
关闭 站长推荐上一条 /2 下一条