global routing cells、bus guide

G cell,全称global routing cells。 同样的它也是我们定义的一种grid, G cell grid对routing过程中起着相当重要的作用。

我们知道绕线过程可分为global route(全局绕线)和detail route(详细绕线)。globalroute以gcell cell作为绕线参考网格,工具在绕线时会试图寻找gcell中的最短path, gcell还有很大的一个用处是产生congestion map(拥堵图表)。

我们可以在DEF或者floorplan文件中看到GCell Grid的定义.

[GCELLGRID

   {X start DO numColumns+1 STEP space}...

   {Y startDO numRows+1 STEP space ;} ...]

 X Y 分别代表水平和垂直方向

start 代表第一根grid的位置

DO numColumns+1,DO numRows+1 代表grid横竖的数量

STEP space 代表grid之间的间距

产生的grid效果如下图所示:

那么gcell是如何对guide global routing的呢?通常一个gcell中会占有10几个track(根据design的不同有所变化),global routing的目标是使得每个gcell的容量占有率在85%左右。

当gell中的track需求量高于容量时,该处地方的route就会产生congestion(拥塞)的问题。通过global route的report我们可以清楚地看见每层layer上的congestion描述:

 

也可以产生 congestion map,在GUI上更形象地看到设计中出现拥塞的地方。颜色的定义方式如下图所示:

产生congestiong map以后,在图形界面上可以看到:

3.

busGuide

constraint,它可以guide bus net的走线。如图所示:粉红色部分形成bus guide后,在这个bus guide中,Inst A和Inst B的bus net必须按照粉红色的走线方式走线。
 

 Bus Guide可以有效地降低design中routing resource. 如下图所示,没有bus guide时,两个hard macro之间的bus net走线非常乱,极大地浪费了走线空间;相反,当两者之间添加bus guide以后,相关的bus net都在对应的channel里走线,合理地利用了空间。

使用方法

 

createBusGuide

BusGuide与net group相关联。因此,创建Bus Guide前,我们首先需要创建对应的net group

<CMD> createNetGroup test-spacing 2

  <CMD> addNetToNetGroup test –net {mc[0] mc[1] mc[2] mc[3]}

 <CMD> createBusGuide -netGroup test -layer {1:4} -rect {464 1240 528 1260}

这里需要指出的是,所画的Bus Guide必须要把两端的instance bus pin给完全覆盖住,这样,bus guide才会有效果

4.

Net Group

这也是一种net或者pin的约束,经常与bus guide或者pin guide关联使用,它可以将几条net,或者bus net加到一个group中,然后与bus guide或者pin guide关联。这样,做pin assign或者 bus routing时,net group中的net具有较高的权重,会尽可能地走在一起。

使用方法

createNetGroup  

addNetToNetGroup  

createNetGroup bundle1 

addNetToNetGroup bundle1 -net cpua[2:10] 

创建net group bundle1,将bus net cpua[2:10]加到net group bundle1中

6.Bump

这是用于FlipChip技术的一种object,可以理解为“焊球”。用于倒置过来扣在封装板上的焊球。如下图所示

 

 Bump通过RDL routing(Redistributed layer,通常是铝层)连接着IO pad cell。

 

通常bump是呈正六边形的,但这不是必须的,我们也可以定义rectangle的形状。我们在LEF中定义bump属性,记住的是它的class是coverbump

MACRO BUMPCELL    

CLASS COVERBUMP ;    

ORIGIN 0 0 ;    

SIZE60.0 BY 60.0 ;   

  SYMMETRY X Y ;    

PIN PAD        

DIRECTION INPUT ;        

USE SIGNAL ;        

PORT            

LAYER M9 ;            

POLYGON 17.25 0.0 42.75 0.0 60.0 17.25 60.0 42.75 42.75 60.0 17.25 60.0 0.0 42.75 0.017.25 ;           

 END   

END PAD       

     OBS          

       LAYER via89 ;       

        POLYGON 17.25 0.0 42.75 0.0 60.0 17.2560.0 42.75 42.75 60.0 17.25 60.0 0.0 42.75 0.0 17.25;      

 END

END BUMPCELL

使用方法

create_bump_array

create_bump_array -lib_cell BUMP -delta {140 140} \

-bbox {{410 450} {1175 3278}} -name left

create_bump_array -lib_cell BUMP -delta {140 140} \

-bbox {{2620 450} {3325 3278}} -name right

create_bump_array -lib_cell BUMP -delta {140 140} \

-bbox {{1100 450} {2650 1125}} -name bottom

create_bump_array -lib_cell BUMP -delta {140 140} \

-bbox {{1100 2555} {2650 3250}} -name top

create_bump_array -bbox {{1100 1150} {2650 2550}} \

-pattern staggered_1 -lib_cell {BUMP} -delta {140 140} -name pg_bump

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值