热度 2| |
”哪里有坑补哪里“
“路见不平,以身填坑”
对,没错!说的就是filler。
在满屏撒完stdcell之后,还剩下一些地方空空如也,这个时候Filler就要躺平天下!
Filler Cells的作用和分类
Filler Cells通常用在route之前用来填充没有stdCell的区域,以保证电源线和地线保持连接。同时避免一些DRC方面的问题。
分类一:按照type的名字分类分为FIL*,FILE*,FILEP*。
FIL* cells的内部是空的,没有特殊结构;FILE* cells的内部在VDD和VSS线之间包含了P/N MOS门电容;FILEP* cells只包含PMOS电容,用来减少cell的leakage.
用法:design中需要使用哪些类型的filler可以从headLef文件中抓出所有filler 、莱确定。Encounter中加filler的命令:<CMD> addFiller -cell {fillername} -noDrc -powerDomain {VCC_PD} -prefix {Filler_};
其中,{ } 中的内容根据实际情况填;
-noDrc 这一项是针对FIL*这种类型的filler,不需要检查DRC,节省时间;如果是FILE/FILEP这种类型则需要检查DRC,因为他们的构造特殊有cap的metal存在,为了避免short在加的同时检查DRC;也就是说需要先加FILE/FILEP,check DRC,如果还没填满,再加FIL的filler;一般在28nm以下的制程的design中需要加带cap的filler;
-powerDomain 如果design有多种电压区域则需要分区域加相应的filler;
-prefix 根据自己的命名习惯加上filler的instance name的前缀名。
分类二:按照使用区域的不同分为Cell Filler,I/O Filler,Metal Fill。
Cell Filler就是加在stdCell之间的空地的;I/O Filler是加在I/O PAD之间,保证一定顺序的连接关系的;Metal Fill,也叫dummy,是区别于前两种的一种金属填充,一般是在绕线之后为了满足金属密度的要求而添加的。
其中I/O filler在添加的时候需要根据具体的pad之间的连接关系选择合适的filler;在Encounter中的使用命令是:<CMD>addIoFiller -cell { } -side {left/top/right/bottom} -from { } -to { };
Metal fill的添加目前有两种方法,一种是使用PVS工具添加,一种是使用命令来添加。Encounter 中的命令<CMD>deleteMetalFill
<CMD>setMetalFill -layer "1 2 3 4 5 6 7 8" -windowSize 125 125 -windowStep 62.5 62.5 -minDensity 10 -maxDensity 85 -preferredDensity 10
<CMD>setMetalFill -layer -minWidth -maxWidth -minLength -maxLength -activeSpacing -gapSpacing
<CMD>setMetalFill -layer -timingAware sta
其中的各项参数需要根据自己的实际需要层数和LEF文件中的参数要求共同确定。
到这里,Filler的贡献就介绍得差不多了,在cell的江湖中还有很多和filler志同道合的cell施展身手,比如wellTap,endCap,TiHILo cell等,虽然有时候像螺丝钉一样的存在,却也能在关键时刻拯救世界。