• 注册
  • 查看作者
  • 如何才能成为数字IC后端ECO专家?


    临近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 optimizationsetup timehold time ,max transitionmax_capacitiancemax_fanoutviolation fixing。在数字后端实现中通常所讲的timing eco脚本就是指为了fixing这类violation,从PT中写出的一个脚本,其中包括size_cellinsert_bufferadd_buffer_on_route等命令。这些命令并不会改变电路的任何功能

     

    做过一两个项目的工程师都知道,对于普通的这类timing eco其实是非常简单的,无非就是利用size down或者vt swap来做leakage优化,利用sizeup进行setup violation fixing,利用DMSA进行hold violation fixing,利用insert buffervt swapsizeupadd_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比较短,比如两三天就可以完成整个数字后端的PRTiming Fixing。那么完全可以更新 RTL,重新综合,重新跑flow。这种解决方法特别适用于设计规模小,eco动静大的情况。

     

    • Tapeout后ECO

     

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

     

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

     

     

    • 芯片回来后ECO

     

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

     

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


    案例分享:



     

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

     

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

     

    Disconnect_net , connect_pin ,connect_netcreate_cell

     

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

     

    • ICC/ICC2中完成ECO

     

    根据ECO需求,比如只能动M1VIA1M2。此时在做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,进行形式验证,从而确保改动后的功能与预期功能一致。这个过程主要涉及RTLDC综合netlist的比对和综合后的netlisteco routenetlist之间的比对。

     

    • DRC&LVS检查

     

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

     

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


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

     

    • Timing Signoff

     

    完成DRC&LVS检查后,还需要在Prime Time中再进行timingsignoff。本案例是在原有两个cell之间添加一颗XOR,理论上讲不会有timing的相关问题。但是如果两个要ECOpoint相隔比较远,而ECO需要将这两个cell进行连接。那么连线后一定会存在max transitionsetupviolation。而要修复max transitionsetup 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


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


  • 0
  • 0
  • 0
  • 2.18w
  • 请登录之后再进行评论

    登录
  • 单栏布局 侧栏位置: