分享

Physical Verification 介绍——DFM & Insert Dummy

 mzsm 2022-06-22 发布于湖北

本公众号【读芯树:duxinshu_PD】主要介绍数字集成电路物理设计相关知识,才疏学浅,如有错误,欢迎指正交流学习。

是集成电路物理设计的第六个系列【Physical Verification】的第七篇文章,本篇文章主要介绍DFM & Insert Dummy相关内容

01

什么是DFM?

  • DFM = Design For Manufacturability

  • 可制造性设计指的是通过避免制造过程中的各种问题来提高芯片良率的方法。

  • 芯片在制造过程中最主要的问题是short和open,这两个问题都可以使芯片完全失效。

    图片

  • 如果芯片在制造过程中金属密度过低,可能会造成过度刻蚀问题。

    图片

02


How to Improve the DFM? 

  • Wire Widdening and Spreading

    图片

  • Redundant Via Insertion

    图片

  • Filler Cell:Filler Cell相关内容参考:Physical Cell 介绍——Filler Cell

  • Metal Fill: 金属的密度不能过高,过高容易出现Metal Liftoff问题;也不能过低,过低容易出现Metal Over-etching问题。

03


Insert Dummy Calibre Flow

  • Insert ODPO Dummy

calibre -drc -hier 64 -turbo 64 -hyper -nowait ./insertODPO_setup.tcl | tee ./log/design_insertODPO.log###insertODPO_setup.tclLAYOUT PATH '../dataout/gds/design.mergecell.gds.gz'LAYOUT PRIMARY designLAYOUT SYSTEM GDSIIDFM DEFAULTS RDB GDS FILE './gds/design.dm_ODPO.gds' PREFIX DM_ODPO_DRC CCELL NAME YES CELL SPACE XFORMDFM SUMMARY REPORT '../rpts/design.dm_ODPO.summary' REPLACE HIERDRC ICSTATION YESINCLUDE './dumExcl.tcl'INCLUDE '../rules/dummy_FEOL.rule'
  • Insert Metal Dummy

calibre -drc -hier 64 -turbo 64 -hyper -nowait ./insertMetal_setup.tcl | tee ./log/design_insertMetal.log###insertMetal_setup.tclLAYOUT PATH '../dataout/gds/design.mergecell.gds.gz'LAYOUT PRIMARY designLAYOUT SYSTEM GDSIIDFM DEFAULTS RDB GDS FILE './gds/design.dm_METAL.gds' PREFIX DM_METAL_DRC CCELL NAME YES CELL SPACE XFORMDFM SUMMARY REPORT '../rpts/design.dm_METAL.summary' REPLACE HIERDRC ICSTATION YESINCLUDE './dumExcl.tcl'INCLUDE '../rules/dummy_BEOL.rule'
  • Insert FinCut Dummy

calibre -drc -hier 64 -turbo 64 -hyper -nowait ./insertFinCut_setup.tcl | tee ./log/design_insertFinCut.log###insertFinCut_setup.tclLAYOUT PATH '../dataout/gds/design.mergecell.gds.gz'LAYOUT PRIMARY designLAYOUT SYSTEM GDSIIDFM DEFAULTS RDB GDS FILE './gds/design.dm_FinCut.gds' PREFIX DM_FinCut_DRC CCELL NAME YES CELL SPACE XFORMDFM SUMMARY REPORT '../rpts/design.dm_FinCut.summary' REPLACE HIERDRC ICSTATION YESINCLUDE './dumExcl.tcl'INCLUDE '../rules/dummy_FinCut.rule'

04


Exclude Dummy File

  • 有时需要指定某些区域不能加入任何Dummy。

    >LAYOUT POLYGON 2 llx lly urx ury layer  #指定区域{(llx lly) (urx ury)}不加入layer的dummy。

LAYOUT POLYGON 2 llx lly urx ury ODBLK         #FEOLLAYOUT POLYGON 2 llx lly urx ury POBLK         #FEOLLAYOUT POLYGON 2 llx lly urx ury DM1EXCL       #BEOLLAYOUT POLYGON 2 llx lly urx ury DVIA1EXCL     #BEOLLAYOUT POLYGON 2 llx lly urx ury COD_BLOCK     #FinCutLAYOUT POLYGON 2 llx lly urx ury COD_BLOCK2i   #FinCut

05


Merge GDS Calibre Flow

  • Merge Cell Flow

calibredrv -a layout filemerge -mode overwrite -in design.APR.gds -in all_stdcell.gds [-indir ./stdcell/] -gdsput design.mergecell.gds [-oasisout design.mergecell.oas] -topcell design | tee design.mergecell.log
  • Merge Dummy Flow

calibredrv -64 ./merge_dummy.tcl | tee ./log/design.merge_dummy.tcl###merge_dummy.tclset Topcell designset PreMergeGds ./design.mergecell.gdsset DM_ODPO_GDS ./design.dm_ODPO.gdsset DM_METAL_GDS ./design.dm_METAL.gdsset DM_FinCut_GDS ./design.dm_FinCut.gds
set L0 [layout create $PreMergeGds -dt_expand -preservePaths]set LODPO [layout create $DM_ODPO_GDS -dt_expand -preservePaths]$L0 import layout $LODPO FALSE rename -dt_expand -preservePaths$L0 create ref $Topcell DM_ODPO_${Topcell} $x $y $mirror $angle 1 #the dummy top name should consist with insert Dummy prefix
set LM [layout create $DM_METAL_GDS -dt_expand -preservePaths]$L0 import layout $LM FALSE rename -dt_expand -preservePaths$L0 create ref $Topcell DM_METAL_${Topcell} $x $y $mirror $angle 1 #the dummy top name should consist with insert Dummy prefix
set LF [layout create $DM_FinCut_GDS -dt_expand -preservePaths]$L0 import layout $LF FALSE rename -dt_expand -preservePaths$L0 create ref $Topcell DM_FinCut_${Topcell} $x $y $mirror $angle 1 #the dummy top name should consist with insert Dummy prefix
layout0 gdsout design.mergecell_dm.gds.gz#layout0 oasisout design.mergecell_dm.oas.gz

Layout command:

layout all #returns a list of all current layout object handleslayout copy #copies data from a source layout into a destination layout, after flattening it to the specified depthlayout copy2 #copies all geometries and cell references that touch or are contained within the selection region, preserving any hierarchy that exists.layout create command #create a new layout or to create a view of or manipulate an existing layout.layout createCache #creates a cache file that can be used to enable faster loading of a layoutlayout delete #deletes the specified layoutlayout droasis #opens a disk-resident OASIS file in read-only mode.layout filemerge #performs a disk-based merge of multiples GDS files, multiple OASIS files, or a combination of GDS and OASIS files without loading them into memory.layout filtershapes #removes polygon shapes from the layout file hierarchy.layout merge #merges two layouts, with automatic renaming of the cells to prevent name conflicts.layout overlays #returns all defined overlay handles.layout peek #returns information from a layout database without loading the file into memorylayout tbmode #specifies the text box extent treatment behavior#some exampleslayout create design.gds -dt_expand (expands datatypes so that each layer and datatypes combination is mapped to a different layer in the new layout) -preservePaths (perserves path definitions when reading an input layout database)$L import layout {handle | file} (handle or filename of the layout to import into $L) del (TRUE or FALSE : whether to delete the input layout) mode (append: cell already exists, appends imported elements to the existing cell; overwrite: cell already exists, it is deleted and the new version of the cell is used; rename: cell already exists, the imported version gets renamed the extension_WBx, where x is an integer)$L create ref incell (the name of the cell in which to palce the cell reference) recell (the name of the cell that is to be referenced) x y (the coordinates at which to place the origin of the cell reference, database units) mirror (specify the mirror to apply to the cell reference, 0: do not apply a mirror; 1: mirror across the x axis of the cell) angle (the angle of rotatio to apply to the cell reference in a counter-clockwise direction around the cell origin) mag (the magnigiccation to the cell reference, 1: no magnification)$L gdsout file.gds.gz #write the layout to a GDS-formatted file$L oasisout file.oas.gz #write the layout to a OASIS-formatted file

06


参考文献

Calibre DESIGNrev User Guide

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约