1.track的定义
EDA工具根据LEF(或tech file)中每层金属的pitch大小,在芯片内部自动生成各层金属连续的、规则的绕线轨道(routing track),routing track指的就是绕线的路径。
tech lef示例
tech file示例
DEF中保存的TRACK信息如下示例:
TRACKS Y 9000 DO 187 STEP 9000 LAYER M5
Y: TRACK的方向
9000:TRACK的起始位置
DO:TRACK的数目
STEP:相邻间隔
LAYER:使用的层数
2.track的作用
用6T、7T,9T等来描述standard cell的高度,比如7T就是等于7个track的高度(这里一般是M1、M2的水平方向的track),一般情况下,参与绕线的金属层track的pitch(间距)等于min spacing+min width(如下图)。
track图示
同一工艺,cell越高(track越多)的库,其速度越快,相应的功耗和面积也越大。
为了让standard cell出pin时能尽量减少绕线长度,一般会校准track位置,使standard cell的pin on track(即pin shape中线与同层金routing track重合,不然出pin再拐到track上平白浪费绕线资源)。
3.track的创建
举例来说,6P5T(6.5 track)的情况,track在每个ROW的分布是不一样的,为了满足pin on track,采用了如下脚本(ICC2)重新创建track。
#track pitch 0.1,core row高度0.65
remove_track -layer ME2
set height 0.65
set core_bbox [get_attribute [get_core_area] bbox]
set p [lindex [lindex $core_bbox 0] 0]
set q [lindex [lindex $core_bbox 0] 1]
set r [lindex [lindex $core_bbox 1] 0]
set s [lindex [lindex $core_bbox 1] 1]
set coord [expr $q + 0.025]
for {set i $q} {$i < $s} {set i [expr $i+$height]} {
lapped test $i
}
foreach j $test {
set coord1 [expr $j+0.025]
set y2 [expr $j+$height]
set bound_bbox "{$p $j} {$r $y2}"
create_track -bbox $bound_bbox -layer ME2 -space 0.1 -dir Y -coord $coord1
}
调整前
调整后