zoukankan      html  css  js  c++  java
  • 后端设计的基本流程是什么?

    如果有人问我,数字后端最重要的是什么,我一定回答他:是流程

    但是对于很多非后端的人来说,后端究竟干什么一直是一个模糊的概念。有些人认为可能就是跑跑flow,弄弄工具;有些人认为全是dirty work,完全手动,毫无技术含量。就我个人来说,不止一次遇到一些前端的人不仅对后端完全不懂,甚至认为RTL写好验证通过后一颗芯片基本就能做出来,言语之间还带着一些蜜汁优越感......

    那么后端流程究竟是什么呢?首先,后端的总体工作用一句总结就是:运用给定的输入,在给定的时间内做出符合signoff条件的PR结果并满足各种验证。

     

    下图对数字后端流程做了大致描述。

    1. 输入是整个数字后端工作的开始,也是最根本的基础。它包含了后端流程需要的所有文件:综合/DFT后的网表(netlist)、时序约束sdc、timing&physical等库文件、signoff的条件和设置以及各种EDA工具所需要的工艺文件。

      需要指出的是,在流程相对完善的公司,一般工程师可能并不需要过分关注Library、signoff条件或者工艺文件等东西,甚至不需要对sdc有太多了解也可以把自己的block做到收敛。但是我还是强烈建议各位养成认真了解每一个项目的好习惯。

    2. Floorplan是一个后端设计最为重要的两个部分之一(另一个为CTS)。它直接影响芯片的PPA(power, performance and area)。一个好的floorplan能够明显减少迭代次数,并能缩短设计周期。关于如何评价一个floorplan好坏,我们将在未来另开文章详细解说。

      就我个人观察,新手在做floorplan的时候常常不知道从哪里下手,很多时候为了赶时间而随便做几个版本,然后直接扔出去跑Place,哪个版本的结果好就用哪个。这样的结果就是很难积累经验,也很难培养真正解决问题的能力。

    3. Place,又称PlaceOpt。主要内容是调用工具的算法对标准单元进行自动摆放。目前的主流PR工具在这方面都比较成熟,但是较新的次世代工具innovus和icc2还会遇见很多问题,需要配合EDA厂商一起慢慢完善。

    4. CTS(Clock Tree Synthesis)。主要内容是根据floorplan和place的结果合理构建时钟树,并对有timing关系的clock进行balance。主流PR工具对于clock相对简单的design都支持的比较好,但是对于clock domain多且结构复杂的design,想要做到一个skew,latency和power都比较理想的clock tree是工作量很大且很有技术含量的工作,因此很多大公司的项目都是单独分出人来负责时钟树的构建。 

      需要指出的是,除了传统的clock tree,近些年还有大量的定制化clock tree结构陆续出现并在流片后实现了比较好的效果,比如fishbone, H-tree等。本人在此方面也有过开发经验,如果大家有兴趣以后可以开一篇或者几篇文章详细说一说。

    5. Routing,包括布线后的优化,主要是调用PR工具的算法对design中的net进行自动布线,并在布线后继续优化timing, area和power等。对于Routing,最重要的就是能否绕通,也就是是否能够将绕线后的drc/short降至最低甚至0。需要指出的是,这部分routing的对象不包括power,analog等特殊net,因为这些net通常有特殊的约束,因此需要设计者根据工艺、floorplan以及其他constraint自行设计。

    6. Verfication,即验证。主要包括一下几种:

                

              这里虽然只是简单的列举的verification的分类,但是实际上上面的每一个种类水都很深,大公司更是每个门类都有专门的team。但是反过来说,一旦进入到上述的某个领域且持续做很久的话就很难再跳出来,尤其是对应届生来说,在做职业规划的时候需要好好考虑。

            7. 一切都没有问题之后,就可以signoff了,也就是我们常说tapeout。对于foundry长来说,主要需要后端提供的GDSII或者OASIS文件来制作各层的mask并逐层制造芯片。但是在实际中可能会复杂一些。Tapeout一般来说是一件各方都很重视的事情,因此在流程严格的公司可能会涉及各种review和check,在交付foundry厂之后通常foundry的后端team还会再做一次Physical的验证来保证质量。在这些方面大家有过几次流片经验之后就会慢慢熟悉起来。

  • 相关阅读:
    关于springMVC转换json出现的异常
    jQuery实现,动态自动定位弹窗。JS分页,Ajax请求
    servlet为什么要配置web.xml
    Jmeter系列(4)- Jmeter 脚本录制
    后缀数组模板
    NOIP2016 玩脱记
    TERSUS无代码开发(笔记21)-流程执行顺序思考(转载)
    ===>===>===>特色思TERSUS常用功能整理
    TERSUS无代码开发(笔记20)-本地开发测试mysql数据库连接
    TERSUS无代码开发(笔记19)-mysql-connector-java-5.-bin.jar下载方法
  • 原文地址:https://www.cnblogs.com/lelin/p/12612839.html
Copyright © 2011-2022 走看看