数字IC后端实现40天速成篇(上)

数字IC后端实现40天速成篇(上)

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

为了更好服务好大家,现把小编目前这边的主营业务向大家汇报下。其中对于设计外包这块,欢迎有后端外包需求的朋友联系小编(微信号:ic-backend2018),当然如果你有资源也可以介绍给我,一定有丰厚的现金奖励(抽成 5 个点)。

社区目前主营业务

1 技术咨询(包括技术难题咨询,项目 tapeout review 等)

支持个人与公司的项目技术支持。

2 项目外包服务(承接范围从综合到 GDSII out)

小编拥有近 11 年数字 IC 后端实现经验,精通数字 Top,高性能 CPU,复杂时钟结构的设计实现。先后顺利 tapeout 过 40 颗 +大型 SOC 芯片,面积最大为 150mm2。

涉及的主要工艺有T55,T40,T28,T22,T16,T12,T7,GF40,GF28,GF22,SMIC55,SMIC40,SMIC28,SMIC14,SMIC12,UMC28等工艺。

3 IC 后端训练营

提供高端服务器和公司实际项目给学员实操,每日及时解答所有学员当天所有疑难问题。实操遇到问题还可以申请远程协助登录服务器一起解决实际项目问题。

对于应届生或者想转行的同学,可以通过这个训练营进行学习实战,在一个月左右即可拿到理想的 offer。

4 知识星球高端技术学习交流社区

数字IC后端实现40天速成篇(上)_第1张图片

5 研究生毕业设计指导(仅数字 IC 后端实现方向,可以提供先进工艺库和使用项目数据)

提供四核 A7 顶层低功耗设计实现数据和指导,工艺可以根据需要选择 TSMC 28 或 TSMC16 等先进工艺(也可以支持 7nm 工艺)。学生可以根据这个项目来展开论文,提供技术和写作指导。

下面直接进入今天的主题。今天小编带大家再来一起盘点下数字 IC 后端实现到底要学哪些东西,到底能否一个月内速成入门呢?

答案显然是肯定的。今天我们先从数字后端 PR 角度来全面解析到底应该掌握哪些东西。

  • initial design

当数字 IC 后端工程师拿到综合后的netlistconstraint后,就需要把设计的 netlist 和 constraint 读进来,并创建到一个 database 中去。因为工具保存数据都是有自己一套 library 的管理方式,方便存储设计相关的东西。

数字 IC 后端设计实现流程之 initial design

这里的 netlist 其实就是一个设计的电路图,只不过它是以 netlist 的形式来呈现出来。constraint 就是设计约束文件,这个文件是告诉工具 timing 相关的 spec 需求,让工具基于这样的约束条件进行一个优化。它的主要组成部分为如下:

1 create_clock&create_generated_clock

定义设计中的每个寄存器的时钟工作频率

2 input &output delay

设置 IO 端口的 delay 值,目的是优化内部逻辑 path

3 set_clock_group

设置时钟同步异步关系

4 timing exception

这里主要是指设置 false path,multicycle path,disable timing arc 等 timing exception。

为了让工具认到 netlist 中的各种标准单元和 macro,我们就需要指定好设计用到的所有标准单元库和 macro 库,即标准单元的 lef(标准单元的 Milkyway)和macro 的 lef

为了让工具知道如何摆放标准单元和基于一定的绕线规则做绕线工作,我们还需要指定工艺的 tech lef(tech file)。这个tech lef 其实就是一个简易版的 calibre drc rule 文件。

由于 PR 工具每个阶段要计算 timing,那么就需要做 RC 抽取,因此,我们还需要读入 QRC 文件(tluplus 文件)。

为了让工具在优化的过程能看到更多的 view 或 scenario,我们还需要配置 mcmm 文件。比如我们训练营项目 T28, 我们在 PR flow 中加入了两个 view,分别是 cortexa7_view_cmax 和 cortexa7_view_cmin。前者用来优化 setup 的 timing,后者用于做hold fixing用。

数字IC后端实现40天速成篇(上)_第2张图片

到这里,设计导入就算全部完成了。关于设计导入的更多细节,可以查阅下面这个专题分享。如果还有疑问的,可以进一步提问交流。

https://alidocs.dingtalk.com/i/team/QqWXw0n4YVY3gm31/docs/QqWXwVg3lZR3gz31?corpId=dingcd9df953ab4a15574ac5d6980864d335# 「Design Import 专题」

  • Floorplan&Powerplan

Floorplan 的工作就是摆放 macro 和 port。Powerplan 的工作是创建标准单元和 macro 的供电网络,目的就是让所有的 device 都能有个正常的工作电压。

很多初学者可能会有这样的疑虑,为何工具不能自己摆放 macro 和 port 呢?主要原因有以下几点:

1 工具摆放 macro 的位置是随机的,大概率不是我们想要的。

2 对于 block level 的 io port 摆放位置是顶层指定好的,不能由工具随意摆放。随意摆放后与 top 无法拼接起来。

macro 的摆放主要遵循原则

1 macro 尽量围绕四周摆放(摆放 core 区域有何利弊?)

2 macro 摆放要符合 data flow

数字IC后端实现40天速成篇(上)_第3张图片

https://alidocs.dingtalk.com/i/team/QqWXw0n4YVY3gm31/docs/QqWXwVg3l3bnoz31?corpId=dingcd9df953ab4a15574ac5d6980864d335# 「A7 data flow 后端教程」

3 有直接交互的 macro 要摆放在一起,减少线长

数字IC后端实现40天速成篇(上)_第4张图片

4 macro 间的 channel 要预留好

https://alidocs.dingtalk.com/i/team/QqWXw0n4YVY3gm31/docs/QqWXwVg3lJ9yrz31?corpId=dingcd9df953ab4a15574ac5d6980864d335# 「macro channel 间距计算教程」

摆放 io port 的脚本及 GUI 界面操作方法见下面这个专题分享。

https://alidocs.dingtalk.com/i/team/QqWXw0n4YVY3gm31/docs/QqWXwVg3l3qe9z31?corpId=dingcd9df953ab4a15574ac5d6980864d335# 「Innovus /ICC2 摆放 pin 步骤」

我们知道金属 metal 是有电阻的,而且越高层的 metal,其电阻值越小。而 powerplan 这步就是为了给所有的标准单元和 macro 创建一个最小电阻供电网络。只有这样才能确保我们的IR Drop足够好。

IR Drop 分析之 Redhawk 分析流程

数字 IC 设计后端实现前期预防 IR Drop 的方法汇总

所以,在我们训练营中,我们采用的是 M8 和 M9 最为主 powerplan 的 mesh,然后通过 M8 再打孔到 rail 上。

当然,我们实际项目中也不可能为了保证 ir drop 足够好,无限制地增加 power 的密度。因为 powerplan 越密,占用的绕线资源就越多,可用于时钟和信号的绕线资源自然就少了。

下面这个专题是训练营项目案例,主要目的就是考察 powerplan 密度对绕线资源的影响。

https://alidocs.dingtalk.com/i/team/QqWXw0n4YVY3gm31/docs/QqWXwVg3lZBaoz31?corpId=dingcd9df953ab4a15574ac5d6980864d335# 「分享一个 powerplan 对绕线资源影响的案例(面试可以分享这个过程)」

关于 powerplan 的详细规划教程,可以查阅下面这个专题分享。

https://alidocs.dingtalk.com/i/team/QqWXw0n4YVY3gm31/docs/QqWXwVg3l3Er5z31?corpId=dingcd9df953ab4a15574ac5d6980864d335# 「A7 powerplan 教程」

在这个阶段,我们还需要加入一些列的physical only cell,比如 tapcell,endcap cell 以及 decap cell 等等。关于常用 physical only cell 的介绍,可以看下面这个专题分享。

https://alidocs.dingtalk.com/i/team/QqWXw0n4YVY3gm31/docs/QqWXwVg3l30Prz31?corpId=dingcd9df953ab4a15574ac5d6980864d335# 「physical only cell 介绍」

做完 floorplan 和 powerplan 后,我们就需要做 powerplan 的连接性检查,主要检查 power&ground 是否有 short,open 以及是否有 drc。

https://alidocs.dingtalk.com/i/team/QqWXw0n4YVY3gm31/docs/QqWXwVg3lJp95z31?corpId=dingcd9df953ab4a15574ac5d6980864d335# 「每个阶段跑完到底要检查哪些东西?」

  • Placement

这个阶段的工作就是基于设计约束条件来做标准单元的摆放,使得我们的timing,congestion,power都能满足设计需求。

这里的 timing 不仅仅指 setup,hold,removal 和 recovery,它还包含 timing drc,比如 max transition,max capacitiance,max fanout 等参数。

数字后端实现 place 过程进阶

想要彻底掌握 placement 各种技巧,这个一定可以如你所愿!

Place_opt 步骤详细解析(另附两周年活动中奖名单)

这个阶段仅需要一个命令就可以跑完。跑完 place 不是就结束了,而仅仅刚刚开始。我们需要根据产生的一系列 report 来分析 timing 是否能满足我们的需求。

关于跑完每个阶段,工程师到底应该看哪些 report,这里小编写了一个专题分享,感兴趣的可以参考下。初学者,可以无脑照搬即可。

https://alidocs.dingtalk.com/i/team/QqWXw0n4YVY3gm31/docs/QqWXwVg3lJp95z31?corpId=dingcd9df953ab4a15574ac5d6980864d335# 「每个阶段跑完到底要检查哪些东西?」

为了让大家能看懂 timing report,小编又编制了手把手教你看懂 timing report 的教程。

https://alidocs.dingtalk.com/i/team/QqWXw0n4YVY3gm31/docs/QqWXwVg3lPRnKz31?corpId=dingcd9df953ab4a15574ac5d6980864d335# 「Timing report 到底该怎么看?」

https://alidocs.dingtalk.com/i/team/QqWXw0n4YVY3gm31/docs/QqWXwVg3lgDRxz31?corpId=dingcd9df953ab4a15574ac5d6980864d335# 「setup 和 hold 基本概念及计算公式(校招必备)」

为了让大家能把 timing report 对应到 layout 上,让大家有个更直观的感受,特地编写了一份无脑的 highlight timing path 的专题教程。

https://alidocs.dingtalk.com/i/team/QqWXw0n4YVY3gm31/docs/QqWXwVg3lPLP9z31?corpId=dingcd9df953ab4a15574ac5d6980864d335# 「两个工具 highlight timing path 的方法」

如果发现 placement 后的 timing report 不是很好,那这里又提供了常用优化 timing 的几种方法。

https://alidocs.dingtalk.com/i/team/QqWXw0n4YVY3gm31/docs/QqWXwVg3lqEWRz31?corpId=dingcd9df953ab4a15574ac5d6980864d335# 「优化 Timing 方法之 path group 和 region 用法」

如果发现 placement 后存在 local congestion 问题,还可以参考下面这个专题分享来添加 module 和 instance padding来解决 congestion 问题。

https://alidocs.dingtalk.com/i/team/QqWXw0n4YVY3gm31/docs/QqWXwVg3l9Ey9z31?corpId=dingcd9df953ab4a15574ac5d6980864d335# 「Module &Instance Padding」

为了更好理解工具的行为,我们还需要对 place 的所有子步骤子过程进行一个全面的了解。因此,小编特地编写了一份工具每个阶段的 log 解读。

https://alidocs.dingtalk.com/i/team/QqWXw0n4YVY3gm31/docs/QqWXwVg3lqoagz31?corpId=dingcd9df953ab4a15574ac5d6980864d335# 「ICC2&innovus log 解读」

到此为止,placement 这个过程的内容我们也都有了。如果你是初学者,你就按照这个来掌握,不会的直接给我背下来,然后再慢慢理解。如果你能做到这个程度,找工作肯定是小意思了。

限于篇幅,今天就介绍到 placement 这里了,下一期我们继续从时钟树综合讲起,一直会讲解到 timing signoff 和 physical signoff(timing,drc&lvs 均 clean)。

好了,今天的内容分享就到这里。另外,因为公众号更改推送规则,小编分享的每篇干货不一定能及时推送给各位。为了避免错过精彩内容,请关注星标公众号,点击 “在看”,点赞并分享到朋友圈,让推送算法知道你是社区的老铁,这样就不会错过任何精彩内容了。

如果你想和小编有更进一步的沟通交流的机会,欢迎加入小编知识星球,让我们一起学习成长,共同进步。相信在这里能让你成就一个更完美的自己

小编知识星球简介(如果你渴望进步,期望高薪,喜欢交流,欢迎加入 ****)

在这里,目前已经规划并正着手做的事情:

  • ICC/ICC2 lab 的编写
  • 基于 ARM CPU 的后端实现流程
  • 利用 ICC 中 CCD(Concurrent Clock Data)实现高性能模块的设计实现
  • 基于 ARM 四核 CPU 数字后端 Hierarchical Flow 实现教程
  • 时钟树结构分析
  • 低功耗设计实现
  • 定期将项目中碰到的问题以案例的形式做技术分享
  • 基于 90nm 项目案例实现教程(ICC 和 Innovus 配套教程)
  • 数字 IC 行业百科全书

吾爱 IC 社区知识星球星主为公众号” 吾爱 IC 社区” 号主,从事数字 ic 后端设计实现工作近十年,拥有55nm,40nm,28nm,22nm,14nm等先进工艺节点成功流片经验,成功tapeout 过三十多颗芯片

这里是一个数字 IC 设计实现高度垂直细分领域的知识社群,是数字 IC 设计实现领域中最大,最高端的知识交流和分享的社区,这里聚集了无数数字 ic 前端设计,后端实现,模拟 layout 工程师们。

在这里大家可以多建立连接,多交流,多拓展人脉圈,甚至可以组织线下活动。在这里你可以就数字 ic 后端设计实现领域的相关问题进行提问,也可以就职业发展规划问题进行咨询,也可以把困扰你的问题拿出来一起讨论交流。对于提问的问题尽量做到有问必答,如遇到不懂的,也会通过查阅资料或者请教专家来解答问题。在这里鼓励大家积极发表主题,提问,从而促进整个知识社群的良性循环。每个月小编会针对活跃用户进行打赏。

最重要的是在这里,能够借助这个知识社群,短期内实现年薪百万的梦想!不管你信不信,反正已经进来的朋友肯定是相信的!相遇是一种缘分,相识更是一种难能可贵的情分!如若有缘你我一定会相遇相识!知识星球二维码如下,可以扫描或者长按识别二维码进入。目前已经有 1237 位星球成员,感谢这1237位**童鞋的支持!欢迎各位渴望进步,期望高薪的铁杆粉丝加入!终极目标是打造实现本知识星球全员年薪百万的宏伟目标 **。

数字IC后端实现40天速成篇(上)_第5张图片

欢迎关注 “吾爱 IC 社区

微信号:ic-backend2018

数字IC后端实现40天速成篇(上)_第6张图片

https://mp.weixin.qq.com/s/wcTJVZfah-8qohWmVP_PQQ

你可能感兴趣的:(后端)