ICC2/FC是如何计算利用率Utilization的?

科技   教育   2024-03-26 08:40   上海  


本文选自知识星球,更多干货知识以及后端笔记、视频教程等,欢迎加入星球进行查看。

最新星球刚刚上线基于GPT4和个人IC设计知识库的IC设计 AI机器人 ,星球成员可以免费使用!!AI机器人24小时随时随地都能立刻回答用户的提问哦,效果非常棒!

AI机器人还有绘图功能哦,最近几期的封面都是用AI机器人绘制的。

AI机器人的所有功能介绍如下:

基于GPT4和个人IC设计知识库的IC设计机器人v1.0正式上线

同时星球QQ群还有分享高达55万+字的个人数字后端设计笔记,欢迎加入。

ICC2/FC是如何计算利用率Utilization的?

在ICC2/FC中我们可以用下面的命令去报告设计的利用率Utilization:

report_utilization


ICC2/FC利用率的计算公式如下:

Utilization  =  Demand / Capacity

Demand就是标准单元的占用面积(不考虑Physical only cell,后边会有另外一篇文章来详细的讲解如何自己用命令去算出这个面积,具体它都包含哪些部分,工具是如何计算keepout margin对util的影响的,如何处理overlap的,并且会去和report_util的报告做对比、分析);

Capacity就是所有可用空间的面积(也就是整体的面积减去那些被Macro和Hard blockage占用的面积)。


另外,ICC2/FC计算利用率是基于Site row的,不是简单的使用面积。

如下图所示,一个物体(比如Macro或者 Hard blockage)它所占用的site的面积是大于或者等于它自身的面积的。因此实际的利用率其实是等于或者小于工具报告的值的。在这个示例中,工具在计算利用率的时候,其实下图绿色高亮的site部分都是被Macro遮挡的部分,都是会从分母里面去掉的。

另外,也会有一些其他的物体和设置会影响利用率的计算:

•  Macro或者Cell上的Keepout margin(但是它们影响利用率的计算是通过影响分子还是分母这一点是不一样的)

•  Chimney sites (什么是Chimney Sites可以看星球链接:https://t.zsxq.com/18JYMjyIZ)

•  Padding of plan groups

•  Guard band of voltage areas

•  Sliver size setting


report_utilization报告示例

下面是report_utilization命令输出的示例:

icc2_shell> report_utilization -verbose

****************************************
Report : report_utilization
Design : ORCA_TOP
Version: T-2022.03-SP3-CS3-VAL
Date   : Sun Mar 17 03:27:52 2024
****************************************
Utilization Ratio:0.4672
Utilization options:
- Area calculation based on:site_row of block ORCA_TOP/place_opt
- Categories of objects excluded:hard_macros macro_keepouts soft_macros io_cells hard_blockages
Total Area:678847.8506
Total Capacity Area:355617.5997
Total Area of cells:166159.6013
Area of excluded objects:
- hard_macros         :269120.1976
- macro_keepouts      :56440.2995
- soft_macros         :0.0000
- io_cells            :0.0000
- hard_blockages      :0.0000

Utilization of site-rows with:
- Site 'unit':0.4672

0.4672


其中Utilization Ratio = Total Area of cells / Total Capacity Area = 166159.6013/355617.5997 = 0.46724


下面尝试手工计算一下Total area:

Total area = Total capacity area + Sum of the area of excluded objects

= Total capacity area + Area of hard_macros +Area of macro_keepouts + (其他几个部分都是0)

= 355617.5997 + 269120.1976 + 56440.2995

= 681178.0968

你知道这里的结果为什么和报告里面的Total Area:678847.8506不匹配么?

你知道工具报告里面的Total Area:678847.8506是怎么计算出来的么?两者的差异是由于什么引起的?



其实这个差异是由于Macro的keepout margin是有overlap引起的,工具在计算Total area的时候其实是会去除掉macro_keepouts里面重叠的部分的,防止重复计算!!因此,工具实际计算Total area里面的macro keepouts的面积是小于你在报告里面看到的macro_keepouts的值的!!


工具实际使用的Area of excluded objects=Total area - Total Capacity Area

= 678847.8506 - 355617.5997

= 323230.2509


另外,其实我们也可以自己用命令去计算Excluded objects的面积的,也就是Macro和macro_keepouts的面积,这里我们可以去掉overlap重复计算部分的面积:

icc2_shell> change_selection [get_cells -hierarchical -filter "is_hierarchical==false && is_hard_macro==true"]

icc2_shell> change_selection -add [get_keepout_margins -of [get_cells -hierarchical -filter "is_hierarchical==false && is_hard_macro==true"]]

icc2_shell> compute_area [get_attribute [get_selection] boundary]

320341.44301700

可以看到,它比上面工具用的值(323230.2509)要小一些,因为这里没有考虑macro和macro_keepouts占用的Site的面积,而工具计算的时候其实是会考虑的(本文最前面有讲解)。


参考文献:

SolvNet: How is utilization calculated in the IC Compiler II tool?

https://solvnetplus.synopsys.com/s/article/Utilization-Calculation-1576010707179




星球简介


目前星球中一共分享了19本+系统性的、整理成册的笔记,高达55万字+,2024年星球将分享更多私人笔记,逐步完善整个IC设计生态。
以后知识星球也会陆续会开放:
《Timing/DRV修复的专题笔记》 《ICC2 flow教程》 《Makefile在IC设计中的应用》和 《RedHawk教程笔记》 等等。
目前已上传的笔记有:
  • 低功耗设计技术总结 - 3万字,129页
  • IR drop的分析与修复总结 - 4.3千字,20页
  • 数字后端理论及实践-ICC干货笔记 - 11万字,423页
  • 数字后端理论及实践-Innouvs教程(第4版)- 5.7万字,316页
  • ICC2教程-星球精编版 - 2万字,125页
  • 数字后端理论及实践-Innouvs教程(第5版)- 11.8万字,635页
  • 面试笔试题整理 面试笔试经验分享(第1版)- 1.6万字,48页
  • 面试笔试题整理 面试笔试经验分享(第2版)- 2.3万字,87页
  • ICC2 ICC与Innovus的命令对照(第1版)
  • Tcl与DesignCompiler教程(第1版)- 6.1万字,183页
  • DRC规则讲解、DRC的检查与修复(第1版)- 7.3千字,26页
  • Congestion的分析与修复专题(第1版)- 1.2万字,41页 
  • Perl-Tk教程(第1版)- 1.6万字 73页
  • 星球精华推文分类整理合集(第1版)- 1.8万字,75页
  • 星球精华推文分类整理合集(第2版)- 4.4万字,160页
  • 面试笔试题整理 面试笔试经验分享(第3版)- 2.7万字,96页
  • 星球精华推文分类整理合集(第3版)- 6.6万字,240页
  • 时序分析与sdc专题笔记(第1版) - 3.1万字,115页
  • 星球精华推文分类整理合集(第4版)- 8.4万字,296页
  • 更多教程、笔记持续更新中。。。 


集成电路设计及EDA教程
知识 前端 后端 DFT 低功耗 验证 EDA 1rtl检查:LEDA 2仿真:VCS 3逻辑综合:DC 4形式验证:Formality 5布局布线:ICC 6STA:PT 7功耗分析:PTPX 8DRC LVS:Calibre
 最新文章