ICC 1 flow overview 布局布线流程 上帝视角

24 篇文章 94 订阅

overview

1. 输入:参考库,门级网表,时序约束文件(.sdc)实用新的文件格式ddc 包含.v和.sdc文件.工艺文件.tf 也就是所谓的technology library; 管脚排列文件 .tdf文件 TLU+文件 (.tluplus)

中间进行预布局(粗布局coarse placement)placement CTS route

>2. 输入 layout

>3. **静态时序分析 后仿真(formality) DRC LVS ** 不属于ICC 的部分;

2.创建reference library;

reference lib 包含以下几个部分: standard cell lib 标准单元库; pad library 管脚库; macro cell

标准单元库 standard cell 包含: inverter 反相器 buffers 缓存器 ands ors nands muxes filp_flops触发器

pad cell 包含: 信号pad 电源pad

macro cell 包含设计中用到的一些宏模块, SRAM PLL(分频器)等宏模块;

以上几个cell 也是版图设计中的基本的操作对象;

> 所用的标准单元库 有tap 工艺和tapless 工艺 两类:tap 和tapless 的区别 电源的VDD和VSS 布局方式; tapless 工艺一般在苦衷会提供tie cells

3. pad的排列文件

pad area的组成 1. input/output/inout pad

2. power pad and Corner pads

3. pad fillers 连接两个相邻的pads

4. P/G ring

管脚排列文件(.tdf)

pad的几个属性, name side order 名字 在那条边,次序;

4. floorplan

主要内容:

确定芯片的尺寸;

标准单元的排列形式

IO及macro cell的位置

power ring 的分布

以macro cell的floorplan为例:

macro的布局原则: 1.所有macrcell都贴边角放置,macro 按组排放.根据信号流的走向放置,macro之间留有布线的通道,所有macro的pin方向都朝向core的内部;

主要流程:

1. 整体规划

1. 添加physical only cell

2. 装载引脚排列文件 .tdf

3. 芯片面积,标准单元补助方式的选择

4. macro cell 的放置

5. 添加 tap cell

2. 电源.地的规划

1. 将标准单元,宏单元,IO,P,G与P/G逻辑相连;

2. 在core 和IO之间加入 P/G ring

3. 加 strap

4. 将 p/g ring连接到 IO 的 p & G

5. 预步 STD PG rail

3. 加pad filler

> strap 的作用是吧 core ring 连接至 core 内 减少 IR drop

4. 效果预估 congestion_map

我们可以看到在查看 congestion_map

在layout view 上 可以看到几条 蓝色的线 上面标有 1/10 他们一般标在 GRC 的边缘 是穿过GRC的net的数量 比上可用的routing track;

overflow = 1 - 10 = -9 这是十分met的

5.report_congestion:

根据经验, 一般最大的overflow 如果超过10,基本上这个设计是无法不同的, 最好不要超过 3 -5; 另外 总共的overflo如果超过2% ,在后续的设计中也很难布通;

5. placement;

布局:placement 是确定每个标准单元位置的过程;所有的标准单元,都应放在 placement row 里面 当然不光有row 它是网格状的 ;

一个合理的布局的基本要求:

每个单元都放在有效的位置上;

单元之间没有重叠;

整个布局的额过程依靠 icc_shell 命令: place_opt 当然此命令之前有许多设置;

placement 是blockage 驱动的 叫 拥塞驱动(congestion qudong ),标准单元的之间是需要布线的,如果一个区域 (是不是也是GCR)如果一个区域的布线要求大于他的布线资源 就会产生congestion;,显然 当标准单元过于密集时,就很容易导致congestion;会影响到后面的routing;

placement 也是时序驱动的 timing driven; 时序驱动使得ICC的布局时 会尽量将关键路径的 标准单元靠近放置;以减少net上的RC;从而减少延迟,尽量满足时序要求;

timing和congestion是一对折中的因素;

为了计算线的烟垂; ICC必须知道每条线的寄生电阻和寄生电容; 这些信息来源于:TLU+文件 .tluplus;

在布局之后,每个单元有了自己的物理位置,此时的STA 静态时序分析就不采用WLM 的方式了,而是采用virtual routing (VR)的技术去估计延迟;此时的VR 与正式的routing还是有点区别; 它是链接的pin之间的最短距离;

在综合阶段,时钟和一些高扇出信号(如reset set enable)被设置为ideal net 或者 dont_touch;在placement之后 对这些路径,要进行高扇出综合 (HFS) ,HFS是嵌入在 ICC的place_opt 命令之中的;

6. 时钟树综合

时钟树的布线规则和一般的布局布线规则有所不同; 叫Non_default_rule;例如双倍间距,双倍宽度,屏蔽等;这些规则可以保证时钟线对串扰不敏感,并增强其抗电迁移的能力;

先定义 non_default_rule

define_routing_rule my_routing_rule \

-widths {METAL3 0.4 METAL4 0.6 METAL5 0.6}

-spaceing {METAL3 0.5 METAL4 0.65 METAL5 0.65}

在定义 CTS 用 non_default_rule:

set_clock_tree_options -root clk -routing_rule my_route_rule -layout_list "METAL3 METAL4 METAL5"

命令: clock_opt

布线命令: route_opt

在CTS之后需要检查是否出现新的问题:

包括新的congestion,新的是时序违反

使用以下命令: report_constraint -all

在placement以及CTS之后 设计中最好不要存在 setup的违例;在CTS 之后开始修hold_up的违例;

report_timing 报告setup_slack

report_timing -delay_type min

report_clocks

report_clock_tree -summary

7.布线 routing;

route clock nets

route signal nets

optimize

在floorplan阶段,已经完成了电源地网络的布线,routing阶段组要是标准单元的信号线的连接;

关于布线的几个概念: track : pitch ; trace ; grid point

整个布线都是基于track 网格的,网格由行列划分 之间的间距称为pitch ; 基于格点的布线,要求所有的金属字线都在track之上,实际走出的金属线称为 trace,两条track的交点称为 grid point

不同的金属走线的方向是不同的,奇数层的金属默认走水平方向,偶数层金属默认走竖直方向;

routing主要有四个步骤:

1. global routing

2. track assignment 布线通道分配

3. detail routing 详细布线

4. search and repair 布线修补

8.可制造型设计和物理验证 DFM

design for manufacture的问题;

  • 3
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

旺旺脆兵兵

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值