training-28nm-floorplan

training-28nm

floorplan

endcap welltap分布情况

endcap在左边分布是ENDTIEL(靠边)和ENDCAPL组合分布,在右边是ENDTIER(靠边)和ENDCAPR组合。在上边和下边是ENDTIE。

welltap从上到下覆盖整个core区域。

cell分布

在这里插入图片描述
在这里插入图片描述
cell分布在M0层,M1层电源线穿过cell并与cell里的VDD和VSS相接。memory一共占从M0到M4,pin在M2,电源线在M4。

如果想和core区域的std连接,可以用于布线的资源,memory之间缝宽度内M2到M4的布线资源,以及M4层以上的布线资源。所以建议缝宽度达到要求。

层叠结构

在这里插入图片描述

电源规划

  1. 定义全局连接关系

    globalNetConnect VDD -pin VDD -type pgpin -all -override
    globalNetConnect VDD -pin VDD -type pgpin -all -override
    
  2. 添加电源环power ring

  3. 添加power stripe

    也负责添加via。

    addStripe
    
  4. 添加电源轨道followpins或power rail

    为std cell提供供电网络。需要在每条row上打上电源线,然后std cell放上面,就能实现供电。

    sroute -connect {corePin}
    
  5. 通电

    供电IO单元和power ring连接起来,形成一个完整的供电网络。

  6. 添加电源通孔

  7. 一些操作

    删除所有电源线

    deleteAllPowerPreroutes
    

    替换via cell

    #VIA1替换 1、2层之间
    deselectAll
    editSelectVia -cut_layer VIA1 -net {VDD VSS}
    dbGet selected.via.name -u
    editChangeVia -net VDD -area {0 0 9000 9000} -from VIAGEN12_RECT_1 -to TSEDI_V12_2x1
    editChangeVia -net VSS -area {0 0 9000 9000} -from VIAGEN12_RECT_1 -to TSEDI_V12_2x1
    
    #VIA2替换 2、3层之间
    deselectAll
    editSelectVia -cut_layer VIA2 -net {VDD VSS}
    dbGet selected.via.name -u
    editChangeVia -net VDD -area {0 0 9000 9000} -from VIAGEN23_RECT_1 -to TSEDI_V23_2x1
    editChangeVia -net VSS -area {0 0 9000 9000} -from VIAGEN23_RECT_1 -to TSEDI_V23_2x1
    
    #VIA3替换 3、4层之间
    deselectAll
    editSelectVia -cut_layer VIA3 -net {VDD VSS}
    dbGet selected.via.name -u
    editChangeVia -net VDD -area {0 0 9000 9000} -from VIAGEN34_RECT_1 -to TSEDI_V34_2x1
    editChangeVia -net VSS -area {0 0 9000 9000} -from VIAGEN34_RECT_1 -to TSEDI_V34_2x1
    
    #VIA4替换 4、5层之间
    deselectAll
    editSelectVia -cut_layer VIA4 -net {VDD VSS}
    dbGet selected.via.name -u
    editChangeVia -net VDD -area {0 0 9000 9000} -from VIAGEN45_RECT_1 -to TSEDI_V45_2x1
    editChangeVia -net VSS -area {0 0 9000 9000} -from VIAGEN45_RECT_1 -to TSEDI_V45_2x1
    

添加IO

  1. 创建group

  2. 添加pin到group

  3. 创建pin guide,规划区域,规划区域时规划的面积一定要包含core area以外,否则pin guide不能成功。

  4. 布置IO

createPinGroup cpupingrp -cell cpu_sys_top -excludePin sameLayer
addPinToPinGroup -cell cpu_sys_top -pinGroup cpupingrp -pin *
createPinGuide -area {250 1116.082 450 1126.082} -name cpupingrp -cell cpu_sys_top layer {5}
assignIoPins -pin * -moveFixedPin

添加Halo

deleteHaloFromBlock -allMacro
addHaloToBlock left bottom right top -allMacro -snapToSite

添加physical cell

deleteInst *welltap*
deleteInst *ENDCAPL*
deleteInst *ENDCAPR*
deleteInst *ENDTIE*

source ../tcl/encounter_db_proc.tcl
source ../tcl/addEndCapTie_28.tcl

addWellTap -checkerBoard -cell SEF_TAPDS -prefix welltap -cellInterval 58

deleteFiller -prefix GFILL
add_gate_array_filler -cell SEG_DCAP_ECOCT_12 -stepx 49.98 -stepy 50.4 -prefix GFILL

检查

checkPlace #检查重叠,是否缺少模块,是否超过core area。

macro摆放原则

  1. macro出pin方向朝向core区域
  2. IO方向检查,对于不同的边,IO放在不同的layer上,例如IO在上下两边,则需放置在电源线为H的layer;IO在左右两边,则需放置在电源线为V的layer。
  3. macro出pin走线至core区域,最大长度要在400um以内。
  4. memory之间间距控制在3um左右,背靠背时,也需要有1um的间距。缝大于3um,就需要打placementblockage。
  5. macro pin摆布为V的时候,优先摆放左右两边,优先把Pin直接露出来。
  6. 优先摆放和其他模块有较多联系的macro。
  7. block尽量贴近于正方形。
  8. 属于一个大module的macro放在一起,避免走线过长。
  9. 小的macro可以叠层,来创造更多靠边放置的资源。
  10. 避免狭窄区域,避免旮旯区域。
  11. 尽量不要留大缝,因为不打算插buffer cell,控制长度在400um以内就可以。

库类型

  1. SVF时7T,SEF是9T。

结尾

本次项目目前做完floorplan,后续持续更新PR等各个环节的设计要点和思路,希望各位老铁关注我联系我!

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值