全面介绍充满魔性的Placement

相信每个数字后端PR工程师都知道Placement。它是我们设计芯片的两大目的之一——布局布线(Place&Route)。这也是最体现EDA工具的实力强大之处。可能大家平时只是简单的运行一个命令,但是对工具来说,要把几千万个标准单元在几个小时之内正确地摆放好,这是一件非常困难的事情。那今天我们就来学习一下这充满魔性的Placement。

笼统划分的话,Floorplan之后,CTS之前的的stage都归为Placement(现在place已经与preCTS合并为place_opt,传统的create_placement并不推荐使用,但是为了方便理解,这边还是分章节介绍)。那Placement主要摆放了哪些东西呢?我罗列了一下,主要有以下几类:
1) Standard cell
2) Jtag cell
3) Scan cell
4) Spare cell
5) EndCap cell
6) Welltap cell
7) Decap cell
8) Logic Tie_high/Ti_low cell
9) Filler cell
10) Low power cell

Placement有很多限制约束:
1) Placement blockages
Placement blockage的类型很多,一共分为9种,分别对应hard,hard_macro, soft, partial, category,rp_group,allow_buffer_only,allow_rp_only,register。

2)Placement Bound
Bound是一个约束的概念,用来控制placement的摆放,通常,在一个Bound区域里的standard cell会摆放得更近一些。

3) Keepout Margin
这也是blockage的一种,只是比较特殊。它会随着cell一起移动,有点类似覆盖在这个cell上,在这个光圈内的区域不能放置其他单元。当几个Macro之间有congestion问题时,可以添加一些Keepout Margin,阻碍buffer, inverter的插入。

4)Cell Spacing Constraint
该约束可以控制standard cell与standard cell之间以及standard cell与各种boundary之间的摆放间距。

5)Voltage Area
对于multiVoltage的设计,所有的standard cell都必须摆放在对应的voltage area 中,相当于一个exclusive的move bound。

Placement的状态又可以分为unplaced, placed, legalize_only, fixed,locked
unplaced:该instance还未被摆放
placed:该instance已经被摆放,但可以被其他命令移动
legalize_only:该instance已经被摆放,但只能被legalize移动
fixed:该instance已经被摆放,可以被resize,但是不能被其他命令移动
locked:该instance已经被摆放,任何命令,包括手工,都不可以动它

整个Place过程分为两大步:coarse placement(粗摆放)和legalization(合理化)

coarse placement实现的是一个从无到有的过程,它并不会关注standard cell的位置合理性(包括oriention,是否在row上,是否有overlap等等)。工具根据timing,congestion等因素会给standard cell一个大致的位置,所以称之为coarse placement。

而legalization则主要负责将standard cell的位置合理化,但只是在一个小范围内变化,并不会对整个placement的布局产生太大变动。也许会产生新的timing violation,通常会被后面的optimize修掉。

最后,我们如何来运行placement呢?

现在的placement已经和prects的optimize合成在一起,敲击place_opt就可以跑完整个place和optimize的过程。整个命令也可以阶段性的拆分为五步initial_place, initial_drc, initial_opto, final_place, final_opto
initial_place:初步的placement,运行coarse placement
initial_drc:初步的drc修复过程,做一些high fanout synthesis和drc的修复
initial_opto:初始的优化,开始修复timing, congestion, power等因素
final_place:进一步优化timing和routability
final_opto: legalize placement

介绍到这就结束了,虽然现在的工具越来越智能,placement也只是敲一个命令而已。但熟悉这些基本概念,能让我们更好地利用工具,进一步提升我们的工作效率。

转载于:https://blog.51cto.com/14075497/2343818

  • 4
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值