分享

从此没有难做的floorplan(数字后端设计实现floorplan篇)

 雨在路上 2022-06-09 发布于广东

Floorplan 是数字后端设计实现中最关键的步骤之一,floorplan 做的好,能够加快时序的 signoff 以及 physical 方面 DRC 和 LVS 的 signoff 工作。如果 floorplan 做的不好,不仅仅是 timing QOR 会比较差,而且还会影响 routabilty,从而影响芯片的面积。建议阅读下吾爱 IC 社区之前推送的文章 如何评价数字后端设计中 floorplan 的好坏?

想要加吾爱 IC 社区微信技术交流群的,请先加小编微信,邀请入群(各位老铁,文章末尾的福利别忘记了哦)。

1. 模块的 partition

block 的形状往往是负责 top 实现的工程师给出的。一个比较有经验的数字后端工程师,在切模块形状的时候,往往会考虑如下几点:

是否能够节省 chip 面积(比如 IP 边边角角,top 用不到的区域,是否可以给 block)

基于 block 现有的 boundary,block implementation 的风险如何(需要对 block 的 timing 和 physical 有较深的认知)

pin assignment or IO placement(是否有 feedthrough 的需求等)

考虑 top 和 block 接口的 timing

图 1 Abutted and Non-Abutted floorplan

这里需要指出的是,top 给你一个 block 的 boundary 后,你应该尽快去做模块的后端实现评估(Timing,Congestion,Area 以及 Hold fixing 等情况)。假如评估后发现实现难度很大,或者搞不定,此时需要及时向负责人汇报,共同解决问题。虽然还是建议自己努力去解决问题,但是在实际项目中需要控制好时间节点,总不能评估半个月后发现不行,继续埋头苦干半个月吧。

2. Voltage area creation

对于 multi-voltage 和 multi power domain 的设计,有的数字后端工程师喜欢 create voltage area,创建 Voltage domain。有的则喜欢在前期阶段和前端沟通后,对不同的 Voltage domain 进行切分,比如将 Gated domain,不同的 voltage domain 单独切出来,后端实现单独 hardening,这样数字后端工程师实现时只需规划好各个模块的 powerplan 规划即可(不需要 run based UPF flow)。

对于一个 flatten 的 design,如果存在多个 voltage domain,此时往往需要通过创建 voltage domain,后端实现时需要 load 对应的 UPF,引导工具来做对应的 placement(UPF 坑可能比较多哦)。

常见的创建 voltage domain 的方法有两种,如图 2 和图 3 所示。一种是各个 voltage domain 是 abutted 在一起的,另外一种则是各个 domin 间是存在 channel(Non-Abutted)。

图 2 Voltage area (Abutted)

图 3 Voltage area (Non Abutted)

3. Macro(含 Memory,IP)和 IO placement

在摆放 Memory 和 IP 前必须注意 poly 的方向。90nm 及以下工艺都要求 memory,ip,io 的 poly orientation 必须和 standard cell 的 poly orientation 保持一致(FAB 提供的 DRC runset 会 check 这条 rule)。

建议阅读之前推送的文章,文中也涉及到 Poly 方位的问题:

Final netlist release 前,你应该做好哪些工作?

图 4 Macro orientation 示意图

**根据 data flow 和 design hierarchy 来摆放 Macro。如果有 reference 的 floorplan,可以作为 **参考(仅仅是参考哦!)****,比如 ARM 的 CPU 和 GPU,官方都会提供 reference 的。

图 5 Macro placement

那么,如果你没有前端给你的 data flow,也可以通过 icc 中 create_plan_group 来创建对应的逻辑 group,可以非常清楚地知道各个子模块间(含 Memory)的逻辑连接关系,如图 6 所示。

图 6 通过查看逻辑连接关系规划 placement

出 pin 方向讲究多

考虑绕线资源和 timing。memory 出 pin 方向尽量靠 core logic 区域。

memory 之间是否需要留 space

如果两个 memory 之间的通道,你想工具摆放 cell,那么需要确保它们之间有对应的 power strap,否则会导致 rail floating,如图 7 所示。如果需要留 space,那留多少合适呢?留大了浪费面积,留小了则可能导致 rail floating,绕线资源不够等问题(这个问题留给大家思考,比较简单)。

图 7 memory 之间 space 规划

原则上 Memory 要摆放在 boundary 边上。(为什么要摆放在四周?什么时候可以摆放在 core 区域?)

IP 的摆放需要考虑和 core logic 保持一定 space,这个 space 需要留多少,vendor 都会给出一个建议值的,遵守他们的 rule 就行。

4. 添加 placement blockage 和 routing blockage

memory 之间需要加什么类型的 blockage

blockage 分为 hard,soft 和 partial 三种类型。具体功能这里不多说,大家都很清楚。如果 memory 之间想预留点空间,摆放 buffer,则可以添加 soft blockage 或者 partial blockage 中的 buffer only 类型,如图 8 所示。图中 SRAM 之间的 channel 是否可以摆放 Register? 如果不可以,为什么?

IP 周围需要加 placement blockage 和 routing blockage

加 placement blockage 是防止 core logic 的 standard cell 摆放太靠近 IP,从而对 IP 造成干扰。加 routing blockage 是阻止 core logic 在 IP 限定 range 内走线。

IO 需要和 core logic 区域保持一定的距离,防止 LatchUp 效应。

图 8 添加 blockage 示意图

图 9 LatchUp 示意图

5. Adding power switch cell

对于一个要做 power domain 的模块,我们需要添加 power switch cell。通过这个 power switch 来控制该模块中 standard cell 电源的开关。power switch 有两种类型。一种是 HEADER,通过关断 VDD 来实现 poweroff。另外一种是 FOOTER,通过关断 VSS 来实现 poweroff。power switch cell 有一个 Global power pin,一个 Local power pin。

至于 power switch cell 需要加多少合适,留给大家思考(主要考虑 IR Drop)。

IR Drop 分析之 Redhawk 分析流程

图 10 power switch added in required power domain

图 11 Power switch 类型

6. 添加一些特殊 cell (Well Taps, EndCaps, Spare Cells, Metal ECO-able cells etc)

Well Tap cell

目前大部分的 standard cell library 提供的标准单元都是 tap-less(substrate connections are not done)。因此我们在 floorplan 阶段需要按照 FAB 的要求来添加 Well-tap cell,将 wells 连接到 VDD/VSS 上。

EndCap Cells

endcap cell 一般是摆放在 Macro 周围和每条 row 的首尾两端,主要目的是确保 Macro 周围的环境和 core logic 的环境是一样的。

Spare cells

spare cell 字面的意思就是备用的 cell。这里 cell 一般是用来做 ECO 用的。至于这类 cell 在哪个阶段 insert,以何种方式 insert,留给各位思考。另外还有一种是 ECOCAP CELL,这类 cell 也是用来做 ECO 的(他们何有区别,各自的优缺点分别是什么?)。

数字 IC 设计中 ECO 的那些事,其实并不是事!

7.Qualify floorplan

做完以上这些工作后,如何去 quailfy 一个 floorplan,powerplan 呢?

verify_pg_nets 检查是否存在 floating pins (floating shapes 是否可以 skip?)

run drc to check poly orientation

review floorplan of IP with vendor

由于篇幅有限,本文对于 powerplan 只是简单提及,powerplan 完全可以作为一个专题来讲,留在后续做分享。

相关文章推荐(不看保证后悔)

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多