精华内容
下载资源
问答
  • 适合初级后端工程工程师学习 介绍了后端设计的概念、流程,以及各阶段的主要 任务和所使用的软件工具;并简要介绍了当前较为热门 的层次化设计方法和低功耗设计后端实现技术。
  • 数字后端流程

    2019-03-19 11:42:59
    一篇比较详细的数字后端流程,适合初学者,是刚入门的莱鸟的好教材。
  • 数字后端FAQ.pdf

    2021-02-05 17:44:50
    数字后端FAQ.pdf
  • 数字后端笔面试题集锦,共150道左右的题,带书签,涵盖设计流程、文件格式、STA等,对于找数字IC后端的朋友很有帮助
  • 数字后端流程与工具

    2017-03-01 20:36:57
    电子科技大学通信学院数字后端流程与工具
  • 描述了IC数字后端设计技术全局。介绍了芯片设计流程。
  • 数字后端基本认识

    千次阅读 2021-05-17 12:50:40
    1、数字后端的目的 传统上将布局布线前的工作称之为数字前端(Front End)设计,而将布局布线之后的工作称为数字后端(Back End)设计。布局的目的在于产生制作掩膜所需的GDSII文件。同时也产生布局后的网表文件...

    1、数字后端的目的

    数字前端设计:在集成电路设计中,从Verilog/VHDL代码(RTL级)编写验证再通过综合( synthesis)转换成门级网表( gate netlist)的过程。

    数字后端设计(backend design):门级网表的物理实现,即把门级网表转换成版图,

    完整的后端设计由后端半定制后端全定制两个设计部分组成:
    1)后端全定制设计是指在设计初期最先按照设计需求设计出的物理单元库,物理单元库由标准单元库、IP库及满足特殊需求的定制部件单元等组成。该物理库为后续后端半定制设计提供物理实现基础。
    2)后端半定制设计是指使用布局布线工具并基于后端全定制阶段完成的标准单元库及IP库并根据前端设计完成整个芯片的组装与实现,这个过程又称为数字后端设计(自动布局布线-APR)
     

    传统上将布局布线前的工作称之为数字前端(Front End)设计,而将布局布线之后的工作称为数字后端(Back End)设计。

    布局的目的在于产生制作掩膜所需的GDSII文件。同时也产生布局后的网表文件(Netlist)及标准延迟文件(SDF)。

    运用给定的输入,在给定的时间内做出符合signoff条件的PR结果并满足各种验证。

    2、数字芯片后端工程师要做什么

    主要工作就是接收数字前端提交的代码,最终交付一个完整的芯片布局布线结果。

    工作职责

    (1) 从事SoC物理实现(P&R)工作,包括版图设计(floorplan)与后端验证(LVS/DRC)等
    (2.)利用工具实现自动布局布线

    3、使用的EDA工具

    后端设计软件:

    布局布线APR(Auto Placement &Route):Innovus/Encounter ,ICC2/ICC

    综合工具:(带DFT)Synopsys DCGenus

    物理验证(PV):Mentor Calibre

    静态时序分析(STA):Synopsys PrimeTimeTempus

    功耗分析(PA)Redhawk,Voltus,PTPX


    仿真工具:

    Mentor modelsim/Questasim
                                                      

    数字后端设计流程:                                                                                                              

    preview

    数字后端工作的开始——数据输入:

    它包含了后端流程需要的所有文件:综合/DFT后的网表(netlist)、时序约束sdc、timing&physical等库文件、signoff的条件和设置以及各种EDA工具所需要的工艺文件。

    Floorplan阶段

    直接影响芯片的PPA(power, performance and area)

    对整个设计进行一个宏观的规划,包括像模块大小的规划,Macro的摆放,电地power走线的规划。出pin的规划。decap的摆放,endcap的摆放,welltap的摆放等等。

    Place阶段(或PlaceOpt)

    主要内容是调用工具的算法对标准单元进行自动摆放。

    对于网表中标准单元的摆放,根据优化的命令进行诸如插入buf,优化逻辑等等操作。旨在在设计初期,基于当前宏观floorplan 的规划下进行优化,进而可以看到工具导出的理想时钟树下的时序情况。

    CTS阶段(Clock Tree Synthesis)

    主要是时钟树的生长,基于设计约束中的关于时钟的定义约束进行时钟树的生成,在满足时钟drv约束的前提以及个人关于时钟约束的前提下生成树。

    主要内容是根据floorplan和place的结果合理构建时钟树,并对有timing关系的clock进行balance。

    Route阶段

    包括布线后的优化,主要是调用PR工具的算法对design中的net进行自动布线,并在布线后继续优化timing, area和power等。

    对设计中所有的单元进行信号线的连接。保证满足时序要求。同时会对绕线过程中的DRC进行修复工作。

    最重要的就是能否绕通,也就是是否能够将绕线后的drc/short降至最低甚至0。

    这部分routing的对象不包括power,analog等特殊net,因为这些net通常有特殊的约束,因此需要设计者根据工艺、floorplan以及其他constraint自行设计。

    ECO阶段(Engineer Changing Order)

    主要是对于工具无法完全修掉的问题进行手动fix。

    分类:

    Logic ECO:

    对网表的逻辑功能的修改。

    原因在于在芯片设计的后期阶段,前端工程师可能会发先设计上的某些bug而需要对电路做修改,而此时的schedule已经不允许进行重新综合,因此会选择在PR的网表上进行逻辑修改,一般情况是会增加一些逻辑或者将某些逻辑的net重新连接。

    Physical ECO

    主要是针对PR工具无法完全fix的问题进行手动修正。

    一般包括Timing ECO,drc fix等。

    Chip Finish Process阶段

    主要是对PR基本完成的网表在进行流片前为量产、良率已经后期改版做一些优化和准备。

    一般包括插入filler cells、insert metal fill、修复antenna,某些flow可能会选择在这个时机插入tap或者boundary cells。

    Verfication

    验证,主要包括:

    preview

    一切都没有问题之后,就可以signoff(或tapeout)

    参考:

    数字IC设计全流程介绍

    大概聊聊一些数字后端入门的基本流程吧

    献给芯片设计新手:后端设计的基本流程是什么?

    展开全文
  • 数字后端流程一【Design Compile】实例笔记
  • 数字后端低功耗

    2021-06-25 20:10:10
    数字后端低功耗 - 多种低功耗技术及其在IC后端布局中的应用 低功耗技术及其后端物理实现–多阈值电压技术
    展开全文
  • 数字后端基本概念

    千次阅读 多人点赞 2020-08-04 20:05:28
    数字后端基本概念macroBox坐标方向standard cellEndCapWelltapblack boxrowtrackFillerDecapGridLitho GridFinFET GridBlockagePlacement Blockage图形界面Routing BlockagePinBlockagekeep out marginsize ...

    个人将基本概念重新整理
    原碎片来源:Tao_ZT
    个人空间 https: //blog.csdn.net/Tao_ZT

    macro

    macro
    Macro,中文名宏单元。这是设计中最常见的一个单元了,Macro是一个宽泛的概念,通常我们把它分为硬核(Hard Macro)和软核(Soft Macro)。硬核就是我们最常见的Hard Marco,包括Memory,PLL等各种IP,他的逻辑在自己本身内部已经集成好,对于core本来来说并不可见。而软核就是包含逻辑的一层hierarchy,通常是place&route好的partition。下图就是一个常见的hard macro。

    在这里插入图片描述

    Macro有他自己单独的lef,里面会定义它的形状以及pin的位置等等信息。

    MACRO PLLCLK

    CLASS BLOCK ;

    FOREIGN PLLCLK 0 0 ;

    ORIGIN 0 0 ;

    SIZE 300.00 BY 280.00 ; Macro形状

    SYMMETRY X Y R90 ;

    PIN ib

    DIRECTION INPUT ;

    USE SIGNAL ;
    PORT
    LAYER Metal1 ;
    RECT 0.00 181.00 0.30 182.00 ; Macro Pin位置
    END
    END ibias
    PIN clk
    DIRECTION INPUT ;
    USE SIGNAL ;

    Macro的位置,我们在布局规划介绍会决定,通常这是很重要的一个步骤,Macro的位子决定了设计时序的收敛与否。

    Box

    Box, 我们在做design planning的第一步就是确定floorplan的box,也就是设计的区域。这个区域可以划分为三个边界,如下图所示:

    在这里插入图片描述

    上图中,按对应的颜色框框可以分为:Die Box,IO Box,Core Box.

    红色框,也就是最外面一圈,我们称为Die Box,也就是用来放置IO单元,包括Pad,Io Filler等

    绿色框,也就是最里面一圈,我们称之为Core Box。是整块芯片的核心区域,放置std cell,hard macro等功能单元.

    黄色框,就是io pad内部与core box之间的margin称为IO box, 它并没有任何实际限制,在不违反物理规则的情况下,很多Pad也可以伸进core area.

    坐标

    在后端软件中,我们用到最多的就是生成一个box,比如创建一个blockage,定义芯片的形状等。所以,学会通过坐标来表示一个box是最基本的知识点。

    Rectangle Box: 首先我们来介绍的是最简单的矩形Box的坐标定义方法。对于这种Box,我们只需要记住Box左下角(llx,lly)和右上角(urx,ury)的两点坐标就行,下图中例子用坐标表示就是(100,100,400,200)

    在这里插入图片描述

    Rectilinear Box:对于不规则的图形的表示方法,就有点复杂了。分为两种,Box List和Polygon。

    Box List:所谓Box List,是把一个不规则图形分成两个规则的矩形,分别记录两个图形的左下角和右上角坐标,就能表达出这个图形了。

    下图例子用坐标表示就是(100,100)(400,200)(300,200)(400,400)

    在这里插入图片描述

    Polygon: BoxList只能支持简单的不规则图形,假如你需要画一个U字形或者T字形,这时你就需要采用Polygon了。在Polygon表示方法中,我们需要记录每个拐点的坐标,然后依次顺序写出来,用顺时针或者逆时针顺序都是可以的。如上图换成polygon形式表示就是:

    (100,100)(100,200)(300,200)(350,400)(400,400)(400,100)

    在这里插入图片描述

    方向

    方向的表示方法。在数字后端中,我们是如何去表征各个单元的方向的呢?
    在这里插入图片描述

    首先N,S,W,E就是大家熟悉的North, South, West, East. 另一种写法分别称为Rotate 0,Rotate 180,Rotate 90,Rotate 270。每个标准单元默认都放置于左下角,也就是R0位置,逆时针旋转90度就是R90位置,依次类推。

    而FN,FS,FW,FE则代表Flip North,Flip South,Flip West, Flip East,表示反转以后的方向,对应着Mirror Y(沿Y轴翻转),Mirror X(沿X轴翻转),Mirror XR90,Mirror YR90。

    standard cell

    Standard cell,中文名标准单元。这是设计中最基本的逻辑单元了,是基本门和简单逻辑电路。我们平时常用的buffer, inverter, register等都属于标准单元。

    standard cell的时序信息记录在.lib文件中

    cell (INVX12_CSC28SL) {

    area : 0.86528;

    cell_footprint : “inv”;

    threshold_voltage_group : “LVT”;

    pg_pin (VDD) {

    pg_type : primary_power;

    voltage_name : “VDD”;

    }

    物理信息记录在lef文件中,

    MACRO INVX12_CSC28SL

    CLASS CORE ;

    ORIGIN 0 0 ;

    FOREIGN 0 0 ;

    SIZE 1.26 BY 0.64 ;

    SYMMETRY X Y ;

    SITE unit ;

    PIN VDD

    DIRECTION INOUT ;

    USE POWER ;

    SHAPE ABUTMENT ;

    PORT

    LAYER M1 ;

    RECT -0.052 0.6 1.612 0.68 ;

    。。。

    standard cell在netlist中完成例化,INVX12_F_CSC28SL是cell名字,U28是例化以后的名字。

    INVX12_F_CSC28SL U28(

    .Z(n21), .A(n24)

    );

    下图就是stardand cell在软件中的样子。他们被安放在row上

    在这里插入图片描述

    EndCap

    今天要介绍的数字后端基本概念是boundary cell,也被称为endcap Cell。Endcap是一种特殊的标准单元。在后端物理设计中,除了与,非,或等一些常见的标准单元外,还有一些特殊的物理单元(physical cell),它们通常没有逻辑电路,不存在与netlist当中,但是对整个芯片的运行,稳定却起着举足轻重的作用。那endcap cell就是其中一种,它俗称为拐角单元,作用是确保每个nwell都是nwell enclosed,类似一个封闭环。主要加在row的结尾(两边都要加) , 以及memory 或者其他block的周围包边,如下图所示:

    在这里插入图片描述

    使用方法:

    命令

    create_boundary_cells

    使用前需要指定放在left_boundary,right_boundary,top_boundary,bottom_boundary等cell,可以查询所用工艺库的工艺手册,如下图所示:
    在这里插入图片描述

    create_boundary_cells \

        -left_boundary_cell $left_boundary_cell \
    
        -right_boundary_cell $right_boundary_cell \
    
        -top_boundary_cells $top_boundary_cells \
    
        -bottom_boundary_cells $bottom_boundary_cells \
    
        -top_right_outside_corner_cell $top_XXX_cell \
    
        -top_left_outside_corner_cell $top_XXX_cell \
    
        -bottom_right_outside_corner_cell $bottom_XXX_cell \
    
        -bottom_left_outside_corner_cell $bottom_XXX_cell \
    
        -bottom_left_inside_corner_cells $bottom_XXX_cells \
    
        -bottom_right_inside_corner_cell $bottom_XXX_cell \
    
        -top_left_inside_corner_cell $top_XXX_cell \
    
        -top_right_inside_corner_cell $top_XXX_cell \
    
        -prefix          "ENDFILL" \
    
        -separator "_"
    

    Welltap

    Tap cell, 也被称为welltap cell。这也是一种特殊的物理单元。 welltap是只包含well contact的cell,将衬底接到电源和地网络,避免衬底悬浮。主要防止CMOS器件的寄生闩锁效应(latch-up)

    一般tap cell的作用范围是30~40um, 即每隔60um左右放置一个tap cell,具体的数据要参考工艺商给的document

    well tap cell一般交错摆放,类似棋盘分布。如下图所示:

    在这里插入图片描述

    使用方法

    命令

    create_tap_cells

    例: set tap_cell [get_lib_cell */SC8T_TAPZBX7_CSC28SL]

    create_tap_cells \

    -lib_cell $tap_cell \

    -pattern stagger \

    -distance 60 \

    -offset 15 \

    -prefix “WELLTAP” \

    -separator “_” \

    -skip_fixed_cells
    在这里插入图片描述

    black box

    BlackBox, 中文名大家肯定很熟悉——黑盒子。在物理设计中,BlackBox类似于一个Hard Macro,它内部的东西完全看不见,只是一个黑盒子,但是它又类似于一个Module Boundary。 它可以被改变形状,而且它可以被分配pin和被分割出去(partition)。如下图所示,灰色的形状就是Black Box。

    在这里插入图片描述

    那BlackBox 有什么作用呢?其实BlackBox是一种较为粗糙的模型,由于它看不见里面的东西,这样的结构使得它做任何implementation速度都很快,取而代之的精准度就会相对较低。

    使用方法:

    命令:

    create_blackbox u0 -boundary {{50 50} {200 200}}

    row

    Row。我们知道row是表征Floorplan横向排列的一个重要网格,可以将它解释为“排”,它对std cell的摆放起着限制约束作用。Row是placement的基础,因为需要摆放std cell的地方,就必须要首先创建row。下面我们来介绍下Row的各个内容和属性。

    Row是由SITE组成的。SITE定义的是最小的布局单位。如下图所示

    在这里插入图片描述

    我们可以在Lef中找到Site定义:

    SITE unit_8t site名字

    CLASS CORE ; site类别

    SYMMETRY X Y ; site方向

    SIZE 0.100 BY 0.640 ; site宽度,高度

    END unit_8t

    SITE的类别通常分为core和pad,分别对应着std cell的row和io cell的row。SITE的方向通常有X,Y,R90三个参数。X代表可以沿X轴翻转,Y代表可以沿Y轴翻转,R90代表可以任意翻转。SIZE定义了site的宽度,通常std cell都是site的整数倍高度,宽度。

    有了SITE定义以后,我们就可以生成最基本的row了,如下图所示:

    在这里插入图片描述

    Row也有自己的方向,如上图箭头所示,通常相邻的row会相互abut并且flip,这样相邻site可以共用一根电源线,节省Power资源。

    所有std cell都必须snap到row上面,这是最基本的place规则。

    在这里插入图片描述

    默认的std cell摆放方向遵从Row的方向,即方向箭头一致,但是根据cell本身的symmetry,std cell的摆放位置也可以有如下选择:

    在这里插入图片描述

    这是最常见的row,实际design中,我们还能经常见到一些其他种类的row。

    常见的有double height,trible height的row,用来摆放两倍高,三倍高的cell。

    在这里插入图片描述

    这边值得注意的是,一般我们只允许创建整数倍高的row,而在Voltage island中,我们允许创建非整数倍高的Row,比如默认电压区域用的是9T单元,而在Voltage island中我们使用了12T的cell,这时候就需要创建非整数倍高度的row。如下图所示

    在这里插入图片描述

    在这里插入图片描述

    Row这栏就是和Row相关的一些信息。

    Standcell Row:显示core里面的row。

    IO Row就是IO区域的Row。

    Row Pattern:显示具体组成row的site。

    在这里插入图片描述
    Macro pattern:显示macro的site显示,这个没怎么用过。

    track

    Track是指走线轨道,和row一样,可以约束走线器的走线方向。信号线通常必须走在track上。Std Cell的高度通常用metal2 track pitch来表示,常用的 std cell 库有 7T /9T /12T,就是以 track 来区分的, 9T 就是说 std cell 的高度范围内可以走九条线,所以一般来讲, 7T cell 的 size 最小, 9T cell 的 size 稍大。

    下图中五颜六色的线条就是每层layer上定义的track走线轨道

    在这里插入图片描述

    通常我们在design的technology lef中定义Track的属性,如下图所示:

    LAYER M1

    TYPE ROUTING ;

    DIRECTION VERTICAL ;

    PITCH 0.090 0.064;

    OFFSET 0.000 0.000;

    MAXWIDTH 2 ;

    WIDTH 0.032 ;

    上述M1 layer的定义中,TYPE ROUTING代表这是一层走线层,我们还有其他的type包括Implant,Masterslice等。

    DIRECTION代表这层Metal prefer走线方向,这边值得注意的是,每层track会分为pref track和non pref track。pref track就是这层layer上主流的走线方向,那剩下的non pref track就是非主流方向。因此上述例子中的主流走线方向就是vertical(纵向),非主流就是横向(honrizontal)。通常。走non-pref track的wire会比较宽,这样就比较占用绕线资源。所以,一般不推荐使用non-pref track。特别是在先进工艺的设计中,绕线资源极其紧张,一般很少用到non-pref track.

    PITCH就是每条track之间的间距,上述例子中,垂直方向间距是0.09,水平方向是0.064.

    OFFSET就是第一条track偏离起始点的距离

    WIDTH就代表默认这层layer上wire的宽度,MAXWIDTH就代表最高不能超过多少width

    在这里插入图片描述

    Filler

    Filler cell,通常是单元库中与逻辑无关的填充物,可以分为IO filler以及普通的standard cell filler。

    IO filler,也叫作pad filler,通常是用来填充I/O 单元与I/O单元之间的空隙。为了更好的完成power ring,也就是ESD之间的电源连接。通常是在Floorplan阶段时添加。

    使用方法:

    create_io_filler_cells

    create_io_filler_cells -reference_cells FILLER
    在这里插入图片描述
    standard cell filler,也是为了填充std cell之间的空隙。主要是把扩散层连接起来满足DRC规则和设计需求,并形成power rails。这个在route之前,之后加都可以。

    使用方法:

    create_stdcell_fillers

    create_stdcell_fillers \

    -lib_cells {mylib/FILL_2X mylib/FILL_1X}
    在这里插入图片描述

    Decap

    Decap cell。 中文名,去耦单元,这是一种特殊的Filler cell。当电路中大量单元同时翻转时会导致冲放电瞬间电流增大,使得电路动态供电电压下降或地线电压升高,引起动态电压降,俗称IR-drop。为了避免IR-drop对电路性能的影响,通常在电源和地线之间放置由MOS管构成的电容,这种电容被称为去耦电容或者去耦单元,它的作用是在瞬态电流增大,电压下降时向电路补充电流以保持电源和地线之间的电压稳定,防止电源线的电压降和地线电压的升高。

    使用方法

    create_stdcell_fillers

    需要注意的是Decap cell是带有metal层的,为了不影响工具routing resource,一般建议是最后routing全部结束后再加,加完之后再添加普通的不带metal的filler.
    在这里插入图片描述

    Grid

    Litho Grid

    Litho Grid,中文名,光刻格点。又被称为制造单元格点,这是最基本的网格单元,任何元件都要对Litho Grid上,不然就无法被制造,它定义在design的technology LEF(最前面几行)中。如:

    MANUFACTURINGGRID 0.001 ;

    这就代表着改设计的制造单元格点间距为0.001, 起始点是Die Box的lower left角上,如下图所示:

    在这里插入图片描述

    这个实际用处不大,一般工具也不会出现不在Litho Grid的情况

    FinFET Grid

    FinFET Grid,它也是一种设计格点。介绍该格点前,我们首先来了解一下什么是FinFET技术。

    FinFET称为鳍式场效晶体管(Fin Field-Effect Transistor;FinFET)是一种新的互补式金氧半导体(CMOS)晶体管。Fin是鱼鳍的意思,FinFET命名根据晶体管的形状与鱼鳍的相似性。闸长已可小于25纳米,未来预期可以进一步缩小至9纳米,约是人类头发宽度的1万分之1。由于在这种导体技术上的突破,未来芯片设计人员可望能够将超级计算机设计成只有指甲般大小。FinFET源自于传统标准的晶体管—场效晶体管 (Field-Effect Transistor; FET )的一项创新设计。在传统晶体管结构中,控制电流通过的闸门,只能在闸门的一侧控制电路的接通与断开,属于平面的架构。在FinFET的架构中,闸门成类似鱼鳍的叉状3D架构,可于电路的两侧控制电路的接通与断开。这种设计可以大幅改善电路控制并减少漏电流(leakage),也可以大幅缩短晶体管的闸长。

    在这里插入图片描述

    简单来说,是一种新型的3D多闸道晶体管,采用FinFet技术设计,可以大大地提高芯片处理速度以及大幅度降低功耗,这在当今注重低功耗设计的手机芯片中尤为重要,FinFet技术是推动芯片技术走向16/14nm的重要节点。

    在这里插入图片描述

    了解了FinFet技术概念后,我们再来看下FinFet grid概念,这是对应于Floorplan中对应于FinFet引入的网格单元,在FinFet设计中,所有元件(包括macro)都要对齐到FinFet grid上, 它的定义在technology LEF中:

    PROPERTYDEFINITIONS

    LIBRARY LEF58_FINFETSTRING "

    VERTICAL HORIZONTAL 的关键字分别对应了X/Y轴的pitch

    是不是感觉和前文说的那些高端概念并什么太大关系?其实后端工具已经把这些复杂技术简单化的体现在软件中的应用里了

    Blockage

    在这里插入图片描述
    Obstruct:显示hard和soft blockage。

    Area Density:显示partial blockage.

    Macro blkg:显示macro-only blockage

    Routing blkg:显示普通的routing blockage.

    Fill blkg:显示metal fill的blockage
    在这里插入图片描述
    trim blockage:显示trim metal上的blockage(在7nm Advance node上,wire终点需要trim metal相连)。下图中右边wire的两端就是trim metal.左边的blockage就是trim metal blockage
    在这里插入图片描述

    图形界面

    Placement Blockage

    Placement Blockage. Placement blockage是大家在floorplan时经常用的一种人为约束。可以有效控制区域的density。从而避免congestion的问题,提高routing的效率。

    Placement blockage的类型很多,一共分为9种,分别对应hard, hard_macro, soft, partial, category, rp_group,allow_buffer_only,allow_rp_only,register

    hard: 是约束最严格的blockage,该区域范围内,place,legalize, optimize,CTS等任何阶段都不能摆放instance。

    在这里插入图片描述

    hard blockage

    hard_macro: 该区域内不允许摆放hard macro,在自动macro placement阶段工具不会摆放macro在该区域。
    在这里插入图片描述

    hard macro blockage

    soft:该区域内,在placement阶段不允许摆放instance,但是在legalize,optimize阶段时允许摆放instance的

    在这里插入图片描述

    soft blockage

    partial: 如果要使用partial blockage,首先要人为设计一个阻碍百分比值。在该区域内,工具会block住阻碍值的instance。如果设定了block百分比值是40%,就说明该区域至少会block40%的instance,也就是说该区域最多允许摆放60%的instance. 值得注意的是partial blockage也是只在placement阶段起作用,在legalize,optimize阶段时都不起作用。

    在这里插入图片描述

    partial blockage

    category: 这是一种特殊的partial blockage,在某些区域,如果我们不想摆放某种指定的instance,可以把这些instance都指定为一个category,然后category blockage下面的区域就不会摆放这些instance

    在这里插入图片描述

    category blockage

    rp_group: 这也是一种特殊的partial blockage,rp_group blockage的区域不允许摆放relative placement instance,很少用到,如果有用relative placement flow的童鞋可能会用到。

    在这里插入图片描述

    rp_group blockage

    allow_buffer_only: 这也是一种特殊的partial blockage, 该blockage区域只允许摆放buffer,当然也是只在placement阶段起作用,在legalize,optimize阶段时都不起作用。

    在这里插入图片描述

    allow_buffer_only blockage

    allow_rp_only:这也是一种特殊的partial blockage, 该blockage区域只允许摆放relative placement group,不过hard macro依然可以摆放。

    在这里插入图片描述

    allow_rp_only blockage

    register:这也是一种特殊的partial blockage, 该blockage区域不允许摆放register,当然也是只在placement阶段起作用,在legalize,optimize阶段时都不起作用。

    在这里插入图片描述

    图形界面

    Create Placement Blockage键在这里插入图片描述

    功能非常简单,创建一个Placement blockage。快捷键是Shift+Y。

    Placement blockage是大家在floorplan时经常用的一种人为约束。可以有效控制区域的density。从而避免congestion的问题,提高routing的效率。

    其实在Innovus中,一共有4种placement blockage, 对应的type分别是hard, soft, partial, Macro_Only。

    Hard:打hard blockage的区域,在设计的任何阶段都不能摆任何block和cell。对应着下图的左下角。

    Soft:打soft blockage的区域,在placement阶段不能摆standard cell. 但是在place opt, CTS, ECO place, place legalization时可以被place。对应下图的左上角。

    Partial:打partial blockage的区域,需人为设定一个百分比值,而在place之后,该区域的place density不能超过设定的百分比。对应着下图的右下角。

    Macro_Only: 打macro_only blockage的区域,不允许Macro Placer摆放macro. 但是对standard cell来说, 可以任意摆放,相当于一个free area. 对应于下图右上角。
    在这里插入图片描述

    使用方法就是点一下这个键,然后在GUI上圈住想要打placement blockage的区域。点击F3出现如下设置界面。可以选择placement blockage的类型,以及partial blockage的密度。

    注意:密度只能以5%递增。

    在这里插入图片描述

    register blockage

    Routing Blockage

    routing blockage(绕线阻碍物)。这个概念很简单,就是给某些金属加上blockage属性,让工具走线时不通过该区域。

    可以使用命令create_routing_blockage创建
    在这里插入图片描述

    PinBlockage

    Pin Blockage(引脚阻碍物)。这是一种pin constraint,用于Pin assignment中。从名字中大家也能理解,带有pin blockage的区域,place pin时,不会将pin打在该区域。

    需要注意的是Pin blockage只能打在module boundary的边界。下图中绿色部分就是pin blockage。该区域内,不允许放置pin。
    在这里插入图片描述

    使用方法:

    命令:

    create_pin_blockage -boundary {{100 100} {200 200}} -layers {M1 M2}

    GUI
    在这里插入图片描述

    keep out margin

    今天我们要介绍的数字后端基本概念是Keepout Margin(避开圈)。 这也是blockage的一种,只是比较特殊,它会随着cell一起移动,有点类似覆盖在这个cell上,在这个光圈内的区域不能放置其他单元。当几个Macro之间有congestion问题时,可以添加一些Keepout Margin,阻碍buffer, inverter的插入。下图中的外面一圈就是Keepout Margin。我们可以添加的Keepout Margin的种类有很多,我们可以添加hard placement blockage, soft placement blockage, route blockage等。

    hard: 是约束最严格的blockage,该区域范围内,place,legalize, optimize,CTS等任何阶段都不能摆放instance。

    soft:该区域内,在placement阶段不允许摆放instance,但是在legalize,optimize阶段时允许摆放instance的。

    在这里插入图片描述

    使用方法:

    命令:

    create_keepout_margin -type hard -outer {10 10 10 10} [get_cells RAM1]

    size blockage

    Size Blockage,中文名称是扩散阻碍物。这个blockage大家很少看到。Size Blockage形状如下:(紫色)
    在这里插入图片描述

    相对于其他blockage,这个blockage的使用频率很低。用处也不大,它可以阻止resize line穿过Size Blockage。换而言之,在做resize Floorplan时,被Size Blockage覆盖住的地方不会被resize,macro的相对位置会被keep住。但这只对自动resize Floorplan时有用,对于手动画resize line的方式,相对位置无法被keep住。

    对照上下两图,当做了resize Floorplan将design的沿X方向扩大100um以后,Size blockage覆盖住的区域(红圈处),macro之间的相对位置不会变。

    在这里插入图片描述

    使用方法

    addSizeBlockage

    addSizeBlockage -name sBlkg1 -box 200 200 400 400

    GUI图形界面
    在这里插入图片描述

    mode

    今天要介绍的时序基本概念是Mode(模式). 这是Multiple Scenario环境下Sign off的一个重要概念。芯片的设计模式包括最基本的功能function模式,以及各种各样相关的测试模式。

    PD的同学应该比较熟悉Function, Scan Shift, Capture, ASST这些模式。其实如果细分,这些还能划分出好多新的模式,如下图所示。这些名词可能你经常看见,但是你知道他们具体检测啥,有啥作用嘛?下面我就来分别简单介绍下这些模式。

    在这里插入图片描述

    Function

    这个模式不用过多介绍,就是大家最常见的功能要求模式,即标准时序约束模式。

    Scan Shift

    这个模式大家也很熟悉,移位扫描模式。先介绍下基本的Scan chain概念:由于芯片内部是一个黑盒子,在外部难以控制。我们将芯片中的所应用的普通寄存器替换成带有扫描功能的扫描寄存器,首尾相连成串,从而可以实现附加的测试功能,这就是Scan chain的概念。下图一就是扫描寄存器,下图二就是将扫描寄存器串起来的Scan Chain

    在这里插入图片描述
    在这里插入图片描述

    因此,当Scan enable端接1,扫描寄存器工作在scan shift模式,把数据pattern移出来,通常这个模式下的时钟频率都很慢,一般就几十Mhz。如下图所示:
    在这里插入图片描述

    DC capture

    capture mode通常分为低速和高速模式,分别对应DC capture和AC capture. Capture模式下,Scan enable信号接0,扫描寄存器工作在正常模式下,这时候开始检查function上的pin连接。 低速DC capture也就是我们经常说的Stuck-at模式,主要检查我们平时常见的stuck-at 0/1错误。比如下图中的 inverter A端如果被接到了VSS端的话,就是一个stuck at 1的fault。

    在这里插入图片描述

    AC capture

    AC capture也被称为At-speed Structural Test(ASST),是一种高速测试模式,主要测试芯片中的延迟故障,也就是transition。随着半导体制造工艺的不断发展,片上器件的几何尺寸越来越小。此时,由于制造工艺异常,材料纯度不够,环境杂质等因素影响所造成的随机缺陷,导致电路中某些信号transition time变长,如果这种变化造成关键路径上的延迟不满足最大延迟要求,那么整个电路就不能工作在正常频率下。我们称这种故障为延迟故障。如下图的inverter,如果它下降的transition time延迟,就会导致它整个propagation delay超出理想限定的范围。

    在这里插入图片描述

    现在高性能超大规模的芯片的故障也越来越多地表现为延迟故障,而不是传统的stuck-at 故障。因此这个ASST模式也是很重要的,通常会单独作为一个模式定义在mcmm环境中。

    At Speed MBIST

    MBIST也分为高速和慢速,只不过一般都在高速下测试,慢速很少用到,高速模式下一般测试memory的读写功能。MBIST,全称Memory Built-In Self-Test。MBIST是面向嵌入式芯片存储器的测试方式,用于测试存储器工作是否正常。芯片内部有一个BIST Controller,用于产生存储器测试的各种模式和预期的结果,并比较存储器的读出结果和预期结果。

    在这里插入图片描述

    为什么需要MBIST?

    在扫描链很长而且数量很多时,单芯片测试时间是很长的,而且高级测试仪器的价格也急速攀升,因此BIST技术就应运而生。

    采用BIST技术的优点在于:降低测试成本、提高错误覆盖率、缩短测试时间、方便客户服务和独立测试。MBIST模式一般覆盖在function模式下面

    Slow MBIST

    低速Mbist, 一般情况下用不着,只做调试用,或者用于某些高速测不到的情况。

    Boundary Scan

    Boundary Scan,我们称之为边界扫描。是欧美一些大公司联合成立的一个组织——联合测试行动小组(JTAG),主要为了解决PCB板上芯片与芯片之间互连测试而提出的一种解决方案。边界扫描是在芯片的每一个输入输出引脚上增加一个存储单元,然后再将这些存储单元连成一个扫描通路,从而构成一条扫描链。由于这条扫描链分布在芯片边缘,因此被称为Boundary Scan。总之,该模式主要测试芯片IO上的信号,一般包含在function mode下面。

    在这里插入图片描述

    Macro Test

    该模式下,主要测试一些Analog模块以及其他一些IP。

    IDDQ

    IDDQ全称 Integrated Circuit Quiescent Current,即静态电源电流,这是一种主要检测器件漏电的模式。IDDQ测试目的是测量逻辑状态验证时的静止(稳定不变)的电流,并与标准静态电流相比较以提升测试覆盖率。

    IDDQ测试运行一组静态IDD测试的功能序列,在功能序列内部的各个独立的断点,进行6~12次独立的电流测量。测试序列的目标是,在每个断点验证总的IDD电流时,尽可能多地将内部逻辑门进行开-关的切换,toggle率尽可能高。 IDDQ测试能直接发现器件电路核心是否存在其他方法无法检测出的较小的损伤。

    在这里插入图片描述

    好了,Mode的介绍就到此为止了。我们平时的mcmm文件里并不会分得这么细,大部分Mode都会合并,一般最后剩下的只有function, scan shift, asst等几个主要的模式,其他的可以通过设置case值来切换。

    bound

    今天我们要介绍的数字后端基本概念是Placement Bound(布局约束)。Bound是一个约束的概念,用来控制placement的摆放,通常,在一个Bound区域里的standard cell会摆放得更近一些。个人感觉bound对timing的优化作用有限,有时候反而不如不用,因为很多standard cell并不是你想放的地方工具就觉得好。

    Bound按照类型,可以分为move bound和group bound。move bound需要指定固定的区域,属于这个bound里面的standard cell会尽可能摆放在这个区域;而group bound没有固定的区域,它的位置会随着standard cell的移动而移动。

    而这两种bound按照约束强弱,又可分为soft, hard, exclusive三种类型。

    soft bound: 工具会尽可能将standard cell摆放到bound区域内,但也可能摆放到外面,可以认为该区域“可以进,可以出”

    hard bound: 工具必须将standard cell摆放到bound区域内,但该区域可以摆放别的standard cell,可以认为该区域“可以进入,不可以出去”

    exclusive bound: 工具必须将standard cell摆放到bound区域内,而且该区域不可以摆放别的standard cell,可以认为该区域“不可以进入,不可以出去”

    在这里插入图片描述

    使用方法:

    命令:

    move bound

    create_bound -name movebound -boundary \

    {{100 100} {200 200}} [get_cells attr*]

    group bound

    create_bound -name groupbound \

    [get_cells adder*]

    GUI
    在这里插入图片描述

    dummy metal

    今天我们要介绍的数字后端概念是Metal Fill,也被称为dummy metal。就像名字一样,它是一种dummy,没有实际的连线功能,只是为了满足Metal Density。 通常在最后route完之后添加。

    使用方法:

    signoff_create_metal_fill

    prompt> signoff_create_metal_fill -mode add \

    -coordinates {{100 150} {300 200}}

    在这里插入图片描述

    当然一般推荐在Calibre里面加会比较好~

    Halo

    placement Halo

    Placement Halo,布局晕环。这是大家在floorplan时经常用的一种人为约束。同样可以起到阻止摆放std cell的作用。和blockage有点类似,但是,用法有所区别。Halo是基于cell生长,可以跟着cell一起移动,而blockage则是基于area, 在两个macro之间congestion比较严重时候 可以在之间加入一些halo。如下图所示

    在这里插入图片描述

    使用方法

    addHaloToBlock

    addHaloToBlock -allBlock 5 5 5 5

    GUI 图形界面
    在这里插入图片描述
    Route Halo,中文名绕线光晕。相比于我们经常使用的placement halo,Route Halo很少用到。其实它也是一种基于cell移动的Halo.如下图所示:

    在这里插入图片描述

    它的作用也是阻止信号线的走线,是为了防止SI的violation. 使用了Route halo以后,只有与边界正交,或者离pin很近的信号线才是允许的。 具体如下图所示:

    在这里插入图片描述

    使用方法

    addRoutingHalo

    addRoutingHalo -space 10 -top M7 -bottom M3 -allBlock

    Net

    Net。中文名线网,这个是最基本的概念了,对初学者来说,不要把它与wire混淆概念。Net是一个逻辑概念,存在于verilog语言中。线网用于对结构化器件之间的物理连线进行建模,描述器件之间的连线关系。如器件的管脚,模块的端口,与门或门的输入输出等等,都需要用线网来描述。

    以一位全加器为例,所有与门、或门、异或门的输入输出都是线网类型的信号。线网类型的信号必须要有器件来驱动它的,否则线网信号的值为高阻(z)。线网信号不存储逻辑值,它代表的是物理连线,它的值随着驱动器件输出的变化而变化。

    在Verilog HDL中,一共有11种类型的线网信号,分别是:wire、tri、wor、trior、wand、triand、trireg、tri1、tri0、supply0、supply1,其中最常用的就是wire型线网,在绝大部分设计中都可以只用wire来定义线网信号。

    Wire

    Wire。需要注意的是,后端工具里面的wire并不是指verilog网表里的wire线型。它是将net物理化的概念,每一条net在后端工具里面是由许多小段的wire组成,每一小段wire我们称之为wire segment.

    wire按照类型可以分为Regular Wire(信号线),Special Wire(电源线),Patch Wire(补丁线)。

    Regular Wire就是我们平常见到的信号连线,连接各个Signal Pin的金属线段。每层金属层上的Regular wire默认的宽度都是一样的。

    在这里插入图片描述

    Special Wire就是电源接地线,平常我们所见到的power ring,stripes,power rail等都是Special Wire。一般用高层金属走线。

    在这里插入图片描述

    Patch Wire,我们称之为补丁线。这是先进工艺中的一种走线,用于修复Min Area,Min Step等DRC,不属于任何net。
    在这里插入图片描述

    Pin

    Pin,中文名叫做引脚。在一个设计中,Pin的种类分为好几种。

    Instance Pin: 器件上的输入输出引脚,负责信号的传送

    在这里插入图片描述

    IO pin:模块的输入输出端口,也称为IO port。负责外部信号的传递输送

    在这里插入图片描述

    Physical Pin: Physical Pin是IO pin具体物理化的信息,该引脚用于底层模块与上层模块拼接时的接口,类似一个纽扣一样,定义模块走线的起点和终点。它也是有具体的金属层参数信息,和普通wire一样。

    在这里插入图片描述

    Partition Pin: 切分模块的引脚。用于在顶层模块未切分时,定义physical pin的位置,这个阶段的physical pin,我们称之为partition pin。和Physical Pin一样,他具有实际的金属层参数信息。

    在这里插入图片描述

    Port

    Port。中文名端口,也被称为Terminal。负责信号的传输。

    在芯片顶层,Port是信号输入点。如下图所示:

    在这里插入图片描述

    在这里插入图片描述

    而在子模块设计层面,port也被称为IO pin,相当于I/O单元的作用。

    在这里插入图片描述

    IO buffer

    IO Buffer。主要是指放置在block level的port附近的buffer,可以起到增强port的吸引力的作用, 提高一下驱动port的驱动能力,防止block外面wire太长,而使得计算delay不准。

    在这里插入图片描述

    使用方法

    attachIOBuffer

    attachIOBuffer -baseName iobuffer -in bufx4

    在这里插入图片描述

    Via

    是Via。中文名称互连线通孔。我们知道,芯片的连线有不同层的金属互连线相互连接。而Via的作用就是连接这些不同层的金属。如下图所示:

    在这里插入图片描述

    一个完整的通孔是由三层组成的,包括两个互连层和一个cut层,cut层可以理解为连接两层互连线的接口。比如V23,就代表着Metal 3与Metal 2之间的Via,中间是cut层,Metal 3是它的top metal, Metal 2是它的bottom metal。如下图所示:

    在这里插入图片描述

    Via的种类也分好多种,按照功能划分,可以分成regular via(信号线通孔)和power via(电源线通孔)。这个很好理解,信号线之间的连接用regular via,通常比较小一点;电源线之间的连接使用power via,通常会大一点。

    按照cut的形状,可以分为square(正方形)和bar(长方形)via,bar via拥有更大的cut面积,电阻可以更小一点。
    在这里插入图片描述

    按照cut的数量,可以分为single cut(单孔)和double cut(双孔),面积允许的话,一般建议尽量选择双孔的Via,电阻会较小。

    在这里插入图片描述

    飞线

    是Flighline。中文名称是飞线。这是图形界面上查看连接关系非常实用的一个功能,主要是用于显示各个object之间的连接关系。

    这种连接关系主要包括显示pin与pin之间的连接,macro与macro之间,module与module之间以及macro和instance属于哪个module。如下图所示:

    在这里插入图片描述

    一般地,我们有两种显示flightline的方式,第一种是通过gravity风格,是默认的方式,会在几条线中间取一个重心点,另一种方式是显示所有点对点的连线,需要勾选setting=> Flightline => Show Flightline From Output pin

    在这里插入图片描述
    原碎片来源:Tao_ZT
    https://blog.csdn.net/Tao_ZT

    展开全文
  • 数字后端设计流程小结

    千次阅读 2019-10-19 13:48:38
    数字后端设计流程小结 博主微信:flm13724054952,不懂的有疑惑的也可以加微信咨询,欢迎大家前来投稿,谢谢! 引言 传统上将布局布线前的工作称之为数字前端(Front End)设计,而将布局布线之后的工作称为数字后端...

    数字后端设计流程小结

    博主微信:flm13724054952,不懂的有疑惑的也可以加微信咨询,欢迎大家前来投稿,谢谢!

    引言

    传统上将布局布线前的工作称之为数字前端(Front End)设计,而将布局布线之后的工作称为数字后端(Back End)设计。布局的目的在于产生制作掩膜所需的GDSII文件。同时也产生布局后的网表文件(Netlist)及标准延迟文件(SDF)。本人认为作为一名数字IC设计工程师,也许可以只懂前端设计,但是如果对数字后端设计也熟悉掌握,也不是一件坏事,反而可以使我们在做前端设计的时候,考虑时序约束,功耗面积等因素而更加严谨。前后端设计的融会贯通,让电路从设计到实现,可以更好的了解芯片的整个设计流程体系。本文主要是讲作者将自己在做完数字后端设计的流程之后的小总结。数字后端设计流程主要有DC约束综合,PR版图验证,PT时序验证,FM形式逻辑验证。

    DC约束综合

    通常我们说的综合是指逻辑综合。逻辑综合就是使用综合工具将较高层次的RTL级电路描述转换为基于目标工具库和特定约束条件的门级网表的过程。DC综合包括了转译(Translation),映射(Mapping),优化(Optimization)三个过程。
    转译:将电路转译为与工艺无关的功能组成的逻辑电路。划重点–工艺无关–逻辑电路;
    映射:将转译得到的电路通过特定工艺库的单元来实现。划重点–有制造工艺–与设计工具库单元有关;
    优化:根据你约束的时序面积等约束条件对电路进行改进。划重点—你约束了的电路。
    自己对DC约束综合的小结注意点:
    • DC时序设计约束主要考虑电路有充足的setup time即可,可以暂时不要考虑hold time。可以PR时候来修复hold time;
    • Tmax指的是建立时间setup time的最大延迟,Tmin指的是保持时间hold time的最小延迟;
    • 在无设计规格要求下,Tmax一般可设为时钟T的40%,不过一般会有规格或者与模拟工程师其他工程师确定商量;
    • 输入约束语法可以简介为set_input_delay -max 40T…,set_input_delay -min 0…;
    • 没有跨时域交互的电路,其他不同时钟的电路可以约束不考虑他们的路径,set_false_path…,方便后面PR布线;
    • create_generated_clock可以使顶层时钟与模块内部时钟同源无相位差。

    PR版图验证

    PR是指对DC约束综合产生的网表文件进行布线,生成反标文件.sdf(后仿真的约束文件)及数字版图(作为芯片流片的数据)
    自己对PR版图验证的小结注意点:
    • 把DC综合的网表文件跟时序约束文件放到PR的目录下,是作为PR生成版图的电路文件;
    • 设置时钟树的约束.cts(需要时钟buffer可以通过工艺库文件查看名字);
    • 然后设置版图布线时顶层pin的位置**.ioc;
    • 修改PR约束的参数如布线的长宽,约束的文件路径等;
    • 检查布线的时序,encounter的(timing analysis);
    • timing write sdf可以生成反标文件.sdf,作后仿真用;
    • 用cadence生成版图,进行版图验证,shift + F,ctrl + F可以查看版图的细节或者不看细节;
    • 设置参数,跑DRC看有没有violation。
    PR布线遇到hold time为例,有以下三种解决方法
    • 在允许的情况下,可以通过增大布线的长宽,增大版图的面积;
    • Route里面的area route可以修复优化core的局部错误;
    • 通过EDA工具来人为细节的修改布局布线。

    PT时序验证

    PT时序验证主要是对寄存器,对电路路径进行时钟约束,查看各个模块的延迟时间slack是否满足。
    自己对PT时序验证的小结注意点:
    • 设置好搜索路径.load_parasitics,库链接路径.link_path;
    • 读入设计的约束参数,定义时钟约束,不确定性uncertainty,涉后时间timing_derate等约束;
    • 进行setup跟hold的快速,正常,慢速三种时序约束的时序分析;
    • 检查时序报告,看violated path的比例,整体的slack情况。

    FM形式验证

    FM形式逻辑验证主要包括三个流程:
    • map:dc mapping阶段得到的netlist与RTL形式验证;
    • incr :dc mapping阶段得到的netlist与综合最后得到的netlist的形式验证;
    • pnr :dc 综合最后得到的netlist与PR后得到的netlist的形式验证。

    后端设计工具

    • 仿真工具:Mentor modelsim/Questasim
    • 综合工具(带DFT)Synopsys DC
    • 时序分析:Synopsys PT
    • 形式验证:Cadence LEC
    • 后端APR(Auto Placement &Route)Cadence SoC Encounter
    • 后端参数提取:Mentor Calibre

    后端设计相关资料

    下载链接:http://bbs.eetop.cn/thread-611900-1-1.html
    链接:https://pan.baidu.com/s/1yG67FCqHCo8Dn9S8oJyltQ&shfl=sharepset 提取码:u7go

    展开全文
  • 数字后端概念——NDR

    2020-12-23 15:05:16
    转载来源:数字后端基本概念介绍(NDR) 今天我们要介绍的数字后端基本概念是NDR。全称是Non default routing rule, 非默认绕线规则。一般用于设置clock时钟走线的规则。 众所周知,时钟的翻转频率较高,clock path...
  • 数字后端CTS合集

    千次阅读 2019-10-09 11:02:49
    以下资料是我之前写过的,芯片数字后端中的一些概念介绍,主要是Optimize部分。整理了一下,做成合集,方便大家查询。点击标题就可以选择文章查看,会直接挂在公众号的主页菜...
  • 今天要介绍的数字后端基本概念是方向的表示方法。人生在世,最重要的是方向感。那在数字后端中,我们是如何去表征各个单元的方向的呢?首先N,S,W,E就是大家熟悉的North,...
  • 以下资料是我之前写过的,芯片数字后端中关于时序设计部分的一些基础概念介绍。整理了一下,做成合集,方便大家查询。这部分不大在行,写得比较简单,应该网上资料也有,后续我会多写...
  • 数字后端面试问题

    万次阅读 2016-12-10 12:00:41
    数字后端面试问题 - mikiah的专栏 - 博客频道 - CSDN.NET http://blog.csdn.net/mikiah/article/details/7929669001)Why power stripes routed in the top metal layers? 为什么电源走线选用最上面的金属层? ...
  • 数字后端流程学习1

    千次阅读 2019-09-28 10:28:05
    数字后端流程学习 1.数据准备 2.布局规划 3.布局 4.时钟树综合 5.布线(route) 6.签核(signoff) Innovus软件使用介绍 encounter到innovus 数据准备: 物理文件;时序文件; 你好! 这是你第一次使用 ...
  • IC设计职位介绍之“数字后端设计工程师” 数字后端处于数字IC设计流程的后端,属于数字IC设计类岗位的一种。在IC设计中,数字后端所占的人数比重一直是最多的,而且随着芯片规模不断加大,后端工程师需要的人数将会...
  • 数字后端处于数字IC设计流程的后端,属于数字IC设计类岗位的一种。在IC设计中,数字后端所占的人数比重一直是最多的,这也是现阶段数字后端工程师招聘量巨大的原因。 一般来说,数字后端按岗位类别可以分为:逻辑...
  • Patch Wire,称之为补丁线。... 还可以用来修复EM violation,对容易产生EM效应的金属线采用打patch wire的形式,起到加宽这一段金属线的作用,从而提高载流能力。...数字后端基本概念介绍(Wire) ...
  • 以下资料是我之前写过的,芯片数字后端中Innovus/EncounterdbGet命令使用方法的介绍。整理了一下,做成合集,方便大家查询。点击标题就可以选择文章查看,会...
  • 以下资料是我之前写过的,芯片数字后端中的一些概念介绍,主要是Placement部分。整理了一下,做成合集,方便大家查询。点击标题就可以选择文章查看,会直接挂在公众号的主页...
  • 以下资料是我之前写过的,芯片数字后端中的一些Innovus/Encounter命令的中文介绍,主要是时序分析部分。整理了一下,做成合集,方便大家查询,按照字母顺序从上往下...
  • 以下资料是我之前写过的,芯片数字后端中的Hierarchical Flow介绍。这部分刚开始写,篇数不多,以后会逐步补上。先整理了一下,做成合集,方便大家查询。点击标题就...
  • 以下资料是我之前写过的,芯片数字后端中的一些概念介绍,主要是Optimize部分。整理了一下,做成合集,方便大家查询。点击标题就可以选择文章查看,会直接挂在公众号的主页菜...
  • 数字后端基本概念介绍——Track

    千次阅读 2019-10-09 11:05:41
    今天要给大家介绍的数字后端基本概念是Track。Track是指走线轨道,和row一样,可以约束走线器的走线方向。信号线通常必须走在track上。Std Cell的高度通常...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 99,517
精华内容 39,806
关键字:

数字后端