如何才能成为数字IC后端ECO专家?

如何才能成为数字IC后端ECO专家?

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

临近 618,这几天很多粉丝私信表达希望小编知识星球搞个优惠活动。但是之前也有收到不少朋友的私信,有的是希望星球要提高门槛,因为觉得人数多了,大家都学会了,以后跳槽竞争比较激烈。有的是希望星球不要搞优惠活动,因为觉得自己没赶上活动心理不平衡。

本着公平的原则,综合考虑,吾爱 IC 社区知识星球对于新用户不会搞优惠活动 (特别的日子可能会偶尔搞一两次,暂定中秋和过年)。对于老用户需要续费的朋友仍然会不定期搞优惠活动。

为了感谢老用户对小编的支持,凡是今日续费的老会员,均可以按照160 元续费。好了下面直接进入今天的主题。今天主要分享数字 IC 后端设计实现中 ECO 的概念,种类以及实现流程。

2019 年数字 IC 后端校招笔试题目(附数字后端培训视频教程)

史上最全的数字 IC 后端设计实现培训教程(整理版)

通常在数字 IC 设计实现中所讲的 ECO 主要是指Timing ECOFunction ECO。前者主要是指在 timing signoff 阶段,为了实现 PPA 而进行的 timing fixing。后者是指为了修改电路功能而进行的功能改动。

Timing ECO

在 Prime Time 进行 timing signoff 阶段,主要涉及 leakage optimization,setup time,hold time ,max transition,max_capacitiance 和 max_fanout 的 violation fixing。在数字后端实现中通常所讲的 timing eco 脚本就是指为了 fixing 这类 violation,从 PT 中写出的一个脚本,其中包括 size_cell,insert_buffer,add_buffer_on_route 等命令。这些命令并不会改变电路的任何功能

做过一两个项目的工程师都知道,对于普通的这类 timing eco 其实是非常简单的,无非就是利用 size down 或者 vt swap 来做 leakage 优化,利用 sizeup 进行 setup violation fixing,利用 DMSA 进行 hold violation fixing,利用 insert buffer,vt swap,sizeup,add_buffer_on_route 等方法来解 max transition。关于更多细节,请移步小编知识星球查看提问。

Function ECO

  • Tapeout 前 ECO

很多公司(特别是大公司),他们一般都有规定哪个阶段必须 RTL freeze,这个时候不会也不允许再更新新的 RTL,即使后面仿真验证有 bug。为什么不让更新 RTL 呢?因为此时数字后端工程师可能都做好布局布线,timing 也没什么大问题了,都准备开始修 timing 了。

如果此时 release 新的 RTL,那就意味着需要重新跑整个 flow,从综合到 PR,再从 PT fixing timing 到物理验证 PV。这样势必影响整个项目的 Schedule。因此,此时数字前端负责写 coding 的工程师只能在 final RTL 的基础上,通过写 ECO 脚本的方式来实现功能上的 ECO。

当需要做 function eco 的模块比较小,而且整个 flow run time 比较短,比如两三天就可以完成整个数字后端的 PR,Timing Fixing。那么完全可以更新 RTL,重新综合,重新跑 flow。这种解决方法特别适用于**设计规模小,****eco 动静大 ** 的情况。

  • Tapeout 后 ECO

随着市场竞争愈演愈烈,大部分公司都面临着 Timing-TO-Marget 的压力。因此大部分公司都会在timing signoff 阶段后期就开始 release GDSII 给 foundary 进行流片(此时 Timing Fixing 和 Physical Vertification 均未收敛)。为何敢这么做呢,请大家思考下。只要 foundary 还未开始 Metal Layer 的加工制造,此时你可以做任何的 function eco,而且代价极低(人力和时间成本)。

但是如果你发现 design bug 需要进行 ECO 时,foundary 厂已经完成若干层金属层的加工制造,那么此时做 ECO 就需要考虑能否通过高层来完成 ECO(尽量不改底层金属)。除非 Function ECO 改动小,而且改动的 cell 相隔很近,否则存在很大的困难。

  • 芯片回来后 ECO

一个新的设计可能有不少 bug,而且还不容易被发现。这些 bug 需要在产品不断投入使用中才能够不断被发现。当芯片回来后需要做 Function ECO,此时只能通过改动最少的 layer 来减少 ECO 成本。它不像 Tapeout 后 ECO 那样,还有机会不花钱来完成 ECO。

下面通过一个案例来分享下芯片 Tapeout 后 Function ECO 的流程和实现细节。有了这个 ECO 实现案例,从此你可以打遍天下无敌手。

案例分享:

如何才能成为数字IC后端ECO专家?_第1张图片

  • 根据设计 ECO 需求编写 ECO 脚本

这里需要 create 一个异或门 XOR,并把 AND 输出的 net 与 U12 输入端的 net 都断开,并将它们与 XOR 的输入输出分别进行连接。命令主要用到:

Disconnect_net , connect_pin ,connect_net 和 create_cell。

值得特别指出的是 connect_pin 请务必带**上 ****-incr 的选项 **,否则形式验证 formal 一定是过不了的。Create 后的 cell,需要与 deisgn 中预先留好的 spare cell 或者 ECO cell 进行替换。

  • ICC/ICC2 中完成 ECO

根据 ECO 需求,比如只能动 M1,VIA1,M2。此时在做 ECO Route 时需要设定好freeze layer

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

  • Dummy 修改

由于 ECO 只改了几层 layer,为了确保其他 layer 的一致性,dummy 的更改可以进行手工修改,也可以引导工具对某些层进行重插 dummy。

  • Layout Verus Layout

按照设计要求的 ECO 完成 ECO route 后,需要进一步确认 PR 工具是否真的只动了我们 freeze 之外的 layer。要完成这个比对工作,我们需要调用 calibre 来完成两个 layout 之间的比对,这个过程一般我们称之为 LVL。

  • 形式验证 FM

基于特定的 ECO 脚本完成 Function ECO 后,需要 PR 工具写出 eco 后的 netlist,进行形式验证,从而确保改动后的功能与预期功能一致。这个过程主要涉及 RTL 与 DC 综合 netlist 的比对和综合后的 netlist 与 eco route 后 netlist 之间的比对。

  • DRC&LVS 检查

完成 ECO Route 和 LVL 比对后,还需要进一步检查 DRC 和 LVS 检查。小编之前无数次提到过修 DRC 千万别手工去 fixing,而是引导工具自动完成所有 DRC 的 fixing 工作。但是本案例所述的 Function ECO 背景不一定适用哦。比如本案例的 M1,VIA1,M2 在修 DRC 后也必须保证这些层的 pattern始终保持不变。因此在修 DRC 时会受 layer 的约束,不会像 Tapeout 前那样可以随心所欲修 DRC。

LVS 的检查内容和流程吾爱 IC 社区公众号之前也分享过,大家可以点击下面链接进行查看。

LVS 就是这么简单!(数字后端物理验证篇)

  • Timing Signoff

完成 DRC&LVS 检查后,还需要在 Prime Time 中再进行 timing 的 signoff。本案例是在原有两个 cell 之间添加一颗 XOR,理论上讲不会有 timing 的相关问题。但是如果两个要 ECO 的 point 相隔比较远,而 ECO 需要将这两个 cell 进行连接。那么连线后一定会存在 max transition 和 setup 的 violation。而要修复 max transition 和 setup violation,只能在这两颗 cell 中间插若干颗的 buffer。此时要怎么插 buffer 呢?这个留给大家作为思考题,欢迎大家前往小编知识星球上讨论交流(因为公众号没有留言功能)。

很多人经常问我,数字 IC 后端工程师的价值到底是什么?在老板看来你的价值就是要给公司带来效益,替公司省钱。当需要做 ECO 时,你能够尽量不花一分钱来修复 bug。

在小编看来,你想要让自己更有价值,唯一的途径就是不断学习,不断实践,不断积累工作经验。如果你们公司有一个很好的平台,有很多的牛人,那么请好好珍惜利用起来。如果你身边缺乏一个好的平台和资源,那么你可以来小编知识星球,我相信一定能够帮助到你们。

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

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

  • ICC/ICC2 lab 的编写

  • 基于 ARM CPU 的后端实现流程

  • 利用 ICC 中 CCD(Concurrent Clock Data)实现高性能模块的设计实现

  • 基于 ARM 四核 CPU 数字后端 Hierarchical Flow 实现教程

  • 时钟树结构分析

  • 低功耗设计实现

  • 定期将项目中碰到的问题以案例的形式做技术分享

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

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

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

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

欢迎关注 “吾爱 IC 社区

微信号:ic-backend2018

点击下方 “阅读全文” 了解更多

https://mp.weixin.qq.com/s/uf34hvde7NotBJ0wkggs3Q

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