本文选自知识星球,更多干货知识以及后端笔记、视频教程等,欢迎加入星球进行查看。
最新星球刚刚上线基于GPT4和个人IC设计知识库的IC设计 AI机器人 ,星球成员可以免费使用!!AI机器人24小时随时随地都能立刻回答用户的提问哦,效果非常棒!
AI机器人还有绘图功能哦,最近几期的封面都是用AI机器人绘制的。
AI机器人的所有功能介绍如下:
基于GPT4和个人IC设计知识库的IC设计机器人v1.0正式上线
同时星球QQ群还有分享高达55万+字的个人数字后端设计笔记,欢迎加入。
在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
其中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
星球简介
低功耗设计技术总结 - 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页 更多教程、笔记持续更新中。。。