• 注册
  • 查看作者
  • 数字IC 设计实现hierarchical flow系列(二)

     

    上周吾爱IC社区小编分享了数字IC设计实现Hierarchical flow中关于逻辑综合,布局布线阶段的相关内容。今天我们继续分享下半部分内容-----寄生参数提取(RC Extraction),静态时序分析(Static Timing Analysis)。限于篇幅,物理验证部分内容放在下期。

     

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


    Dummy添加

     

    在芯片chip finish阶段需要插dummy,而插dummytiming会有所变化,因此在最后阶段的RC抽取时必须事先把designdummy插好。


    一般foundary都会提供插dummyutility,我们可以利用它在calibre中自动完成dummy insertion,从而满足foundary要求的polymetal density等要求。如果某些个别地方仍然有min或者max density的violation,需要找foundary进行确认,是否可以waived

     

    寄生参数提取

     

    业内比较公认的寄生参数提取工具是Synopsys家的Star-RC。如果你们公司不是特别牛逼,没有一套自己的signoff标准或者经验体系,请严格按照业界的标准来做。所以不要问能不能用calibre来提取RC,能不能在ICC中抽RCtiming等类似问题,甚至面试的时候跟面试官说你是在ICC中抽RCtiming的。因为这些问题都暴露了一个问题-----你做的数字后端很不专业。

     

    STAR-RC作为一个业界公认的RC抽取工具,必然要考虑到几大主流工具数据转换问题。因此RC抽取主要有两种常用方式,一种是Milkyway Flow,另外一种是LEF/DEF Flow

     

    • Milkyway flow

     

    RC抽取的Milkyway flow如下图所示。这种主要针对数字IC后端实现用的工具是ICC或者ICC2,RC抽取时只需告诉工具designmilkyway database即可,无需进行任何的转换。

     

     

    对于hierarchical方式实现的design,还需要提供子模块的Fram ViewCELL View。对于层层嵌套的设计,特别需要注意Fram viewcell view的一致性问题,否则RC抽取可能不准确。在抽取RC时需要将子模块的模块名称填入skip cell中。

     

    Milkyway方式RC抽取的官方参考脚本如下:

     

    MILKYWAY_DATABASE:      /project/local/angela/design.mw

    BLOCK:design

    SKIP_CELLS: *

    NETS:*

    NETLIST_FILE:

     

    MAPPING_FILE: nxtgrd/layer.map

    OPERATING_TEMPERATURE:125

    TCAD_GRD_FILE: cln28hpm_1p08m+ut-alrdl_5x2z_cbest.nxtgrd


    MAGNIFY_DEVICE_PARAMS:NO

    MILKYWAY_ADDITIONAL_VIEWS: FILL (带dummy

    BUS_BIT: []

    HIERARCHICAL_SEPARATOR: /

    MILKYWAY_EXPAND_HIERARCHICAL_CELLS: NO

    EXTRACTION: RC

    COUPLE_TO_GROUND: NO

    COUPLING_MULTIPLIER: 1

    REDUCTION: LAYER

    METAL_FILL_POLYGON_HANDLING:FLOATING

    NETLIST_FORMAT:SPEF

    EXTRACT_VIA_CAPS:YES

    DENSITY_BASED_THICKNESS:YES

    NETLIST_COMPRESS_COMMAND:gzip -q -f

    NUM_CORES: 8

     

    • LEF/DEF flow

     

    LEF/DEF流程如下图所示。这种方式比较适用于PR是在cadence家工具innovus中做的,当然ICC/ICC2也可以写出def,走lefdef flow

     


    LEF/DEF flow的参考脚本与milkyway flow大同小异,限于篇幅,参考脚本请移步小编知识星球查看下载。

     

    同样对于hierarchical实现的设计,RC抽取时也需要提供子模块的lefdef文件,并在skip cell中填入对应需要flatten的各个子模块的module名字。

     

    RC抽取的数据准备

     

    从前面介绍的RC抽取流程和参考flow中,可以知道整个RC抽取需要以下数据信息:

     

    • Milkyway Database/LEF DEF

     

    • Nxtgrd

     

    • Layer map

     

    • Skip cell

     

    • Temperature

     

    有了以上所讲述的Flow后,就可以轻松对deisgn进行RC Extraction了。但是我们应该如何确保工具抽的RC文件SPEF是否正确呢?很多新手都是为了抽RC而去抽RC,抽完也完全不知道准确与否。如果你抽完RC并不能保证抽取结果是否正确,那prime time中的timing还准确吗?因此小编总结下RC抽取应该要reviewchecklist,有了它从此不用担心RC抽取出现问题。


    RC抽取的checklist

     

    • nxtgrd和温度检查

     

    • Dummy

     

    • 是否存在shortopen

     

    关于short和open,这里简单提一下,因为实在是太重要了。如果你的design中存在short或者open,STAR-RC一定会报出来,一旦报出来基本上都是真的short或者open,所以请认真对待。


    如果你确定你的database中并没有short和open,而工具仍然报出来,那么问题可能会变得很严重。因为大概率是database和milkyway不一致导致的。在出现问题,排除问题时,请首先相信工具,排查自身问题,往往大部分问题都是人为粗心导致的。


    限于篇幅,关于checklist的细节可以前往知识星球上提问交流。


    静态时序分析STA

     

    在当今的工艺制程下,设计的规模都非常大,使用传统flatten方式来进行timing signof的方法已经慢慢不被大家所接受。一方面是整个timing signoff周期更长,另外一方面是对server提出了更高的挑战。


    • prime time input&outputs



    • 静态时序分析Prime Time参考flow




    对采用hierarchical方式的设计来说,其timing signoff主要要用到子模块的ETM,ITM和netlist。

     

    • ETM(Extracted Timing Model)

     

    ETMs use abstraction to minimize the amount of data while attempting to preserve accuracy.


    ETMs replace respective blocks in hierarchical timing analysis, which significantly speed-up analysis and reduce the memory footprint for the full-chip analysis.

     

     

    • ILM(Interface Logic Model)


    The components within an ILM include a netlist, parasitic loading, constraints, and aggressor information pertinent to the preserved logic inside the ILM. ILMs are highly accurate and can also speed up analysis considerably, while reducing the memory footprint.


    ETMILM的定义和模型上看,ILMETM更为准确,但是由于其大小较大,因此在hierarchical设计实现时更偏向于使用ETM模型。

     

    • SPEF

     

    通常情况,我们为了更准确地看接口处的时序,我们还需要各个子模块提供各自的寄生参数文件SPEF。这种方式其实你们也可以理解成flatten方式来进行timing signoff。由于这种方式还是各个子模块分别进行RC抽取,各自的工作仍然是并行的,我们仍然将这种timing signoff称之为hierarchical timing signoff

     

     STA的checklist


    • Library是否已经update到新版本


    这里所说的library是指标准单元,memory,IP等library的db文件。在timing signoff时,请务必检查所有用到的db是foundary或者vendor release的最新版本。


    • Timing Constraint是否完备


    因为工具的分析结果是基于特定的constraint文件,所以如果你提供的timing constraint不正确或者不完备,那么结果可能就不准确甚至是错误的。



    • SI等参数变量是否正确设置

    CRPR能补偿crosstalk吗?


    • RC参数反标是否正确


    PT跑完后,要养成查看RC反标情况的习惯。我们可以通过report_annotated_parasitics来查看,结果如下图所示。请问下图的report中是否所有net都反标上了?



    • Timing Signoff标准是否符合要求


    对于hierarchical方式实现的设计,对于接口处的时序约束是否正确。比如我们抽子模块ETM时,已经含有ocv所带进的derate值,如果在顶层分析时序时又对接口处再额外加derate值,则会出现过度悲观的情况。


    对于hierarchical方式实现的设计,可能各个子模块实现所用的library不一样,比如B模块是用12Track做的,而top是用9Track来做实现的,那么接口处的derate值应该如何设置呢?design的clock uncertainty应该如何设置呢?


    以上为今天分享的内容,关于数字IC hierarchical设计实现Flow中物理验证(DRC和LVS的详细内容)过程的内容分享,敬请关注下期内容。


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


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

    • 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后端设计实现领域的相关问题进行提问,也可以就职业发展规划问题进行咨询,也可以把困扰你的问题拿出来一起讨论交流。对于提问的问题尽量做到有问必答,如遇到不懂的,也会通过查阅资料或者请教专家来解答问题。在这里鼓励大家积极发表主题,提问,从而促进整个知识社群的良性循环。每个月小编会针对活跃用户进行打赏。 


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



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

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