分享

数字后端设计实现中route阶段的那些事

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

文章右侧广告为官方硬广告,与吾爱IC社区无关,用户勿点。点击进去后出现任何损失与社区无关。

校园招聘当属 “金九银十”,小编这个时候也是比较忙的时候。目前正奔波忙碌于各大校园招聘的面试工作。因此,公众号更文频率降低希望各位粉丝能够理解。另外,如果你们在笔试或者面试的过程中遇到技术或者非技术上的问题,比如某道题的解答,offer 的选择等问题,都可以添加小编微信 (ic-backend2018),进行讨论交流。

Route stage

Target:

将 standard cell,ip 和 memory 的逻辑连接变成实际的物理连接。

Input:

  • Place 好的 design

  • Fixed number of metal/copper layers(基于现有 Metal Stack 可以用来绕线的 layer)

Output:

  • 将所有的逻辑连接全部实现物理连接,确保无 DRC,Short 和 Open;

  • 满足 setup 和 hold t time 要求。

Route 阶段遵循的原则

  • Timing driven routing

  • Timing budget for each net

  • Minimize critical paths

  • Signal integrity aware

  • Crosstalk 最小

  • DRC clean

  • Rule based versus Model based

  • Double via ratio

Route 细分步骤

整个 route 过程可以细分为三个阶段,分别是 Global route,Track Assignment 和 Detail route。

Global Route

Input:

Cell and macro placement

Routing channel capacity per layer/per direction

Goal:

Perform fast ,coarse grid routing through global routing cells (GRCs)

这个过程需要考虑以下几个因素

  • Wire length

  • Congestion

  • Timing

  • Noise/SI

通过 global routing 可以预估 design 的 congestion 情况。

Congestion =(required routing resources> availablerouting resources)

Global route 阶段,tool 使用 placement 的 engine 来预估 design 的 congestion 并解决 congestion issue。

如果任何一个 gcell 存在 congestion,工具在做 global route 时就会避开 congestion 区域来做 global route,如下图所。在数字后端实现中,我们偶尔也会碰到 congestion 估算不准确导致 congestion map 与实际绕线资源不匹配的情况。

比如下图中红色那段 net 之所以出现 detour,是由于工具估算 congestion 时发现如果直接走 virtual route 那段路,会出现 short 或者其他的 physical drc。而实际情况有两种可能性,一种是工具预估的 congestion area 绕线资源确实很紧张,另外一种则是 congestion area 中绕线资源还是比较宽松。

Track Assignment

For nets that tranverse multiple GCells

Assign each net to a specific track and lays down the actual metal traces

Makes long,straight traces and reduce via numbers

Detail Route

Detail route dones actual routing. means actual routing metal connections. it checks also physical drc’s.

Detail routing does not work on the entire chip at the sametime like track assignment, instead it works be rerouting within the confines of a smallarea called an “sbox”.

sbox : divide the block into mini boxes these are used forthe detail route.

Search and Repair (remove physical drc violations like short, spacing)

通常情况下 detail route 后很有可能存在一些 short 和 drc,此时需要做一遍 search and repair 来进一步修复 DRC,从而得到一个 DRC 相对 clean 的 database。因此,如果你发现 design 中有 short,可以将迭代次数调大,让工具自己解这部分 short。

当然解 short 的方法有很多,小编在知识星球上也推送过了,比如删除 short 的 net,重新 route,比如改变 route 的方向等等。

Grid based and Gridless routing

Grid based routing 是指工具在分配实际走线时,是按照 Metal 的 track,使得 metal 的中心点是落在格点上。相邻两根金属线之间的间距我们称之为 wire pitch,如上图所示。Wire pitch 等于 metal 的最小宽度(Wire width)加上线间距 (Wire distance)。基于 Grid based 的 routing 更简便,更高效。

吾爱 IC 社区小编之前回答过 “关于如何预留 Memory 之间的间距”,其实就是基于上面这个图来计算出来的。

Gridless routing 则是金属走线不需要严格按照金属层的 Track 来布线。采用这种方式比较复杂,而且 runtime 会更久点。现在大部分的工具都是基于 Grid based 进行绕线的。

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

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多