自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(32)
  • 收藏
  • 关注

原创 介绍一下PR工具中的blockage

Blockage是PR工具中的一个重要概念,我今天就简单说一下它是什么,以及它的分类、作用,再说一下类似blockage的一些概念。Blockage意为阻塞物,在这里就是指防止工具触碰的区域。总的来说blockage可以分为两类:placement blockage和routing blockage。Placement blockage的区域禁止tool摆放cell进来,routing blockage的区域禁止绕线。需要注意routing blockage是要分层的,包括via层也可以上routing

2022-01-14 20:27:04 3636 5

原创 什么是串扰crosstalk

串扰是芯片后端设计中非常普遍的现象,它会造成逻辑信号的预期之外的变化。消除串扰的影响是后端的一个重要课题。首先,什么是串扰?它是如何产生的?芯片的信号线之间会存在耦合电容,因此一条信号线的变化会影响周围的线(信号线之间的耦合电感一般可以忽略)。对于工程师来说了解这么多就可以了,不过这样的解释有点循环论证的感觉,因为耦合电容就是因为两端金属线互相影响而抽象出来的概念。最根本的原因就是一条信号线的跳变会造成周围空间电磁场的变化,而变化的电磁场会在周围的导线感应出电流。十几年前老的工艺可能还可以忽略寄生电容,

2022-01-11 21:02:36 3215

原创 什么是ABS view?

ABS view是abstract view的简写。其实我猜测也是为了口头表达方便,硬是把abstract view说成ABS,乍一听以为是防抱死系统。类似的还有cell的obstruct,可以表达为OBS,这个可能之后再来讲。今天先来简单介绍一下ABS view。我先说一说什么是view,然后讲一下ABS view的作用。这里所谓的view,确实好像也没有特别好的中文来对应。按我的理解,概括来说指的是我们的设计所呈现的细节程度。拿ICC2所用到的view来举例,包含整个设计所有信息的称为desig

2022-01-10 20:46:32 905

原创 简单介绍一下电迁移现象

电迁移简写为EM,electromigration,这是一种很基本的电学现象,可能在电路课上讲的少,反而物理课上会听过。EM对现在的芯片设计有很大影响,已经成为后端设计一个不可忽视的重要现象了。今天我就来简单介绍什么是EM,以及它会带来的影响。EM在很早就被发现了,甚至在芯片诞生之前人们就发现了EM现象,但一直到芯片出现之后,随着工艺越来越先进,EM所带来的影响才慢慢显著起来。它指的是:在通电导体中,由于电子的移动,会与金属离子产生碰撞,导致金属离子移位,宏观上表现为金属变形,对于芯片中纳米级很细的导线

2022-01-09 15:13:41 5562 1

原创 一种测试标准单元lib的方法

不知道大家有没有想过,拿到手一个标准单元的lib,它里面的那些参数是怎么得出来的?我们做出来的芯片成品,真的会按lib里描述的那样,timing的值分毫不差吗?可能很多人觉得在仿真工具上这个芯片完全没问题,流片出来的就也一定没问题,其实不一定。这些lib都是由fab做好了之后给我们的,而他们要保证自己的lib没有问题,就一定要进行流片后的测试。其实芯片在流片出来之后,我们所能观察的手段就非常有限了,应用最多的方法就只是伸进去一个探针,来测芯片某一点的逻辑信号。但只要用这种方法,再加上一些特别的设计,就可

2022-01-08 22:03:12 903 1

原创 梳理一下芯片后端要用到的各个文件

今天我就来总结一下我在做后端APR的时候遇到的文件有哪些,我会尽量把我所知道的重要文件类型都列出来,每一种文件就用一两句话简单介绍。netlist网表文件,verilog文件格式,记录了芯片里各个instance的逻辑连接关系。 Lib,liberty timing file,记录了cell的timing信息及一定power信息。有的时候也可以用不可读的.db文件代替。 Lef,library exchange format,记录了cell的形状、大小、出pin的信息、blockage的信息。让更高

2022-01-07 22:04:35 2472 1

原创 介绍两种时钟树的结构

今天来聊一聊时钟树。首先我先讲一下我所理解的时钟树是什么,然后介绍两种时钟树结构。时序器件传递信号的时候需要依赖时钟,而STA一项关键的检查就是不能有setup/hold violation。如果对于同一时钟域的两个时序器件,如果他们接收到的时钟之间有相位差,有可能会使setup/hold更难满足,如果产生violation,芯片就会发生逻辑错误。而时钟从时钟源到sink是需要一定的传播时间的,距离时钟源越远的器件传播时间越长。有的时候data的传播方向和clock的传播方向相同,如果不做任何时钟树处理

2022-01-06 22:00:42 2244

原创 聊一聊锁相环PLL

今天想来聊一下芯片设计中的一个重要macro——PLL,全称Phase lock loop,锁相环。我主要就介绍一下它是什么以及它是如何工作的。芯片的时钟可以自己产生,可以由几个反相器接在一起构成一个简单的振荡器产生时钟,它的频率可以到很快的速度,但是时钟周期却没那么固定,一会快一会慢的。而从芯片外面来的晶振一般具有稳定的时钟周期,但频率只能是在兆赫兹的量级。PLL就是利用外部晶振作为参考时钟,来输出一个周期稳定的高频率的时钟,这个时钟供芯片的时序电路使用。可以说PLL是整个芯片的源头,从PLL出来的时

2022-01-05 21:26:11 1645

原创 芯片设计的NDR是什么

今天突然想聊一聊route相关的问题,讲一讲NDR是什么,我也梳理总结一下我对NDR的认识。NDR是non default rule的缩写,它指的是在绕线的时候给某些net制定的特殊的绕线规则。现在工具在绕线之前需要制定一个default rule,默认所有net都按default rule来绕。比如我们规定某一层的线宽、线间距等,tool就会按照这个规则,加上自己的绕线算法,最后得出符合要求的绕线。而对于指定了NDR的net,tool就会额外照顾一下,因为NDR的rule和default rule有所

2022-01-04 21:04:01 3419 1

原创 DFT的简单介绍(下)

上回书说到SA0和SA1的测试方法。这种测试方法是建立在一个前提上的,就是我们可以任意改变输入信号的逻辑值。如果这个输入正好就是整个芯片的输入还好办,直接在芯片外部改变即可。但很多时候我们需要测试芯片内部的各个逻辑单元,它们的输入就会是在芯片内部,不那么好调整了,这可咋办呢?这个时候人们就想到了芯片中的重要元件——寄存器。如果我们给寄存器存储相应的测试的逻辑值,让这些reg的存储的数据作为我们DFT测试的输入,不就可以达到控制输入信号的目的了吗?但这种方法有一定局限性,这样我们的DFT测试输入位置必

2022-01-03 21:07:16 1156

原创 DFT的简单介绍(上)

对于我每天一千来字的文章来说,这个题目起的着实有点大。要知道现在的DFT所涉及的内容实在太多了,以至于催生了专门的DFT team和专门做DFT的工程师。但是对于芯片设计中的每一环,对DFT所要做的工作都必须有所了解,今天我就把我所理解的DFT简单介绍一下。DFT全称为Design for Test,可测性设计。就是说我们设计好一个芯片后,在仿真时可能99%的用例都通过了,怎么保证流片出来的实际芯片也能正常工作呢?这里大家必须建立一个概念就是,不管是前端后端,总之只要是设计阶段,不管是waveform还

2022-01-02 20:22:53 2201 1

原创 两种timing分析模式-- GBA & PBA

今天想来聊一聊STA相关的内容。GBA和PBA是在做STA分析的时候的两种分析模式,在PrimeTime里是这么命名的,在Quantus(cadence家的STA工具)里面好像是别的名字,但实质内容是一样的。我就简单梳理一下这两种模式到底是什么。GBA全称为graph based analysis,是工具默认的分析方式。它是说工具在从lib中读取cell的delay的时候,永远是读取由最差transition产生的delay。Transition又可以叫slew,是指信号跳变所需的时间,rise tra

2022-01-01 21:49:33 3476

原创 芯片Block的划分问题

后端在floorplan阶段,如何摆放macro是一个很重要的问题。如果采用层次化设计,对于每一个block来说都需要在block内部把所分配的macro摆好。如果某一个block里的macro很多,又很大,std cell再多一些,utilization就会很大,相应的这个block的floorplan就比较难做,而其他block的utilization很小,这样的design就不太好。我们总是希望所有的block都能有差不多的utilization,平均且充分地利用芯片的每一块面积,这就需要在block

2021-12-31 20:26:44 1615

原创 介绍一下天线效应

天线效应,或者说它的全称工艺天线效应(PAE,process antenna effect),是一种芯片制造过程中产生的效应。我们后端设计时也必须严格遵守相应的天线效应的rule,否则可能会发生MOS管的损坏,以至于影响良率。今天就来简单说一说什么是天线效应,以及消除的办法有哪些。要想理解antenna,必须了解金属层是如何制造的。现代工艺采用了一种叫离子刻蚀的方法,在制造每一层metal layer的时候,会先在这个layer上铺满金属,而后通过离子刻蚀去掉不要的部分,留下来的就是我们画的net走线了

2021-12-30 19:58:24 3088

原创 layout相关--芯片中相邻单元的漏电流

看到这个题目,可能不少朋友都会满脸问号,我们知道cell内部会有leakage,难道cell与cell之间也会有leakage吗?对,没错,今天就想稍微讲解一下这个问题,以便于我们后端理解cell中一些奇怪的工艺。首先,所谓漏电流,就是指管子不导通的时候流过的电流,即pn结在反向截止状态时,也会有一个很微弱的电流流过,我们就称之为leakage。对于MOS管来说,它的source、substrate、drain中总会存在一个这样的leakage。那么相邻cell的leakage是如何产生的呢?这就要从l

2021-12-29 20:40:51 2627

原创 何谓芯片的“时钟”

今天想来聊一聊芯片设计中的一个非常基础的概念——时钟。对于外行来说听到这个词可能会感觉迷茫,猜一个大概意思吧可能也不太准。对于芯片工程师来说时钟这个词就像每天喝水吃饭一样平常,以至于可能从来不会注意它的存在。我也趁此机会,通过写文章的方式,梳理一下我所理解的芯片时钟是怎么一回事。提起时钟,就不得不先说芯片的两种逻辑——时序逻辑(sequential)和组合逻辑(combinational)。组合逻辑比较好理解,他就是我们常说的与或非这种逻辑门,输出信号逻辑仅仅依赖于输入信号的逻辑,或者按我的理解,组合逻

2021-12-28 20:37:27 1768 1

原创 芯片的IR drop是什么

IR这个词并不是什么缩写,这里的I就是指电流,R是指电阻,他们放在一起相乘,得出来的结果就是电压。所以说IR drop就是指电压降,哈哈,刚接触芯片后端会看到太多缩写,突然来个IR一时会反应不过来是电压。所谓电压降,就是指从芯片源头供电到instance所消耗的电压,对于flipchip封装形式,就是从bump到instance PG pin的电压降。Instance实际得到的电压就是供电电压减去电压降的部分。比如bump接的外界输入电压Vdd 5V,Vss 0V,这个bump的电压到某一个instan

2021-12-27 20:45:15 14255 2

原创 电气规则检查-ERC

ERC全称为electrical rule checking,翻译为电气规则检查。检测的是GDS版图中是否存在电学连接问题,属于PV(physical verification)的一个项目。这也算是一个后端signoff的基本概念,今天就给大家简单介绍一下ERC。什么叫电气规则呢?其实它的种类也不多,主要包括:1. MOS的gate不能直接连supply。2. cell input永远不能floating。3. 一个cell的driver最多一个,或者说output不能发生short。 4. N/P区(

2021-12-26 21:44:43 14783 1

原创 展平式设计和层次化设计方法

今天给大家聊一聊芯片后端的两种设计思路:展平式设计(flatten)和层次化设计(hierarchical)。其实在很多工程项目中应该都有类似的设计方法学,对于芯片设计来说也不例外,这两种设计思路决定了我们的芯片将会如何物理实现。展平化的设计方法是一种自下而上的设计思路,这种设计方法会一下子导入所有芯片中所需要的元件,而每个元件都要经过充分的验证,确保各个元件的功能无误。而后将所有这些原件组合,构成整个芯片系统。工程师在设计的时候,可以随意调动任意一个原件,也就是说所有元件都是看得到的,没有所谓的黑匣子

2021-12-25 21:14:09 1248

原创 介绍一下芯片OCV

OCV全称是on chip variation,指的是在同一片wafer上,因为片上工艺的误差,导致不同位置的chip性能不一样。另外对于同一块chip,不同位置上的同一类cell的性能也会有差异。这些差异所影响最大的就是timing相关的东西,delay、transition什么的都会有所影响。为此我们引入OCV的概念,用来在设计阶段模拟这些片上误差。举一个具体的例子让大家更好理解OCV的概念,比如一个cell的lib中的延时是10ns,同样的电路,同样的input和output,这颗cell做出来的

2021-12-24 21:23:46 1885

原创 介绍三种芯片timing model

今天想来聊一聊timing model。Top层在做STA的时候,为了速度的考量,有的时候不会把所有block都做flatten(展平化)处理,而Timing model就是block在给更高层级用的时候所抽取出来的timing信息集。目前我知道有三种,ETM、ILM和HS,下面我分别来介绍一下。ETM全称是Extracted Timing Model,它的思想很朴素,就是会把每个port的timing信息都保留下来,block内部的信息一概不知。从外来看,一个ETM就像一个黑盒子,只能看到block的

2021-12-23 21:02:45 2075

原创 简单说一说闩锁效应LUP

闩锁效应,latch up,是个非常重要的问题。现在的芯片设计都不可避免的要考虑它。我今天就简单地梳理一下LUP的一些问题。啥是所谓的latch up呢?一句话总结起来很简单:CMOS中形成了两个BJT,基极和集电极接在了一起,形成正反馈回路,电流大到一定程度可能会使芯片失效甚至烧坏芯片。这两个BJT其实就是一个npnp的结构,pmos的源/漏、n阱、nmos的p衬底构成一个pnp的BJT,而pmos的n阱、nmos的p衬底、nmos的源漏构成一个npn的BJT。这两个BJT共用了nmos的p subs

2021-12-22 21:17:56 3203

原创 芯片设计中verilog是什么

相信不少人都听过verilog这个词,今天我就想讲一讲我所理解的verilog是什么。Verilog是一种硬件描述语言,它最基本的功能,就是把一份电路图用代码的形式表示出来,然后让计算机理解一份代码所对应的电路。硬件描述语言有很多,现在主流的基本就是verilog,或者它的升级版systemverilog。之前上学的时候还接触过VHDL,但现在好像慢慢地没什么人在用了。Verilog代码和C、Java这种计算机编程语言有本质的不同,verilog里基本所有写出来的东西都会对应实际的电路。声明变量的时

2021-12-21 21:36:28 1254

原创 介绍一下芯片的VIA pillar

Via pillar,又可以叫Via ladder。貌似Cadence家喜欢叫pillar,synopsis喜欢叫ladder,我也不知道它们为啥不能统一一下名称。这应该是这两年新出的概念,主要应用在5nm及以下先进工艺制程中。我就以我个人的理解稍微介绍一下这种技术。Pillar,柱子,ladder,梯子。它指的是这样一种结构:当需要把金属从低层连到高层时,比如M1到M5,每一层都多添加一些shape,这些shape分别与上下层彼此通过VIA相连,最终连到M5再合并为一个shape出来,中间的M2到M4

2021-12-20 21:17:24 2269

原创 芯片后端设计的DRC是什么

DRC的全称为design rule check,也就是设计规则检查。广义上DRC会包含很多分类,只要是设计规则广义上都可以成为DRC。然而一般来说我们在后端设计的时候DRC就特指PV(physical verification)的DRC。那么它具体指的指什么意思呢?首先我们知道,人类的技术水平永远是有限的,芯片在制造的时候必须要满足一定的规则才能制造出来。就比如一台光刻机,它的分辨率最低能到多少,我们gate length才能制造到多少一样。并且到了纳米级工艺的时候,芯片中的量子效应愈发明显,要保证电

2021-12-19 14:18:49 8740 1

原创 简单说一说芯片设计的DPT技术

今天想来简单聊一聊DPT技术-double pattern technology,也就是双层掩模版技术,在目前先进工艺下,这项技术已经应用的很普遍了。我们知道,在光刻的时候,需要制造出芯片各个层的掩模版mask。就像刻印章一样,掩模版上留下金属走线的路径,把掩模版盖在wafer上后,光照下来就只能照在wafer没有被盖住的空的地方,mask盖住的地方没有收到照射。用这种方法就相应能刻蚀出各个层的金属走线了。这只是我一个大致的理解,具体的工艺流程肯定还要复杂的多,这里只是想快速回顾一下mask的作用。

2021-12-18 14:36:55 1242

原创 SOCV/POCV下寄存器的hold margin问题

我们都知道,在做hold time检查的时候,是需要从lib中读取reg的hold requirement time,或者说hold margin。最基本的,hold margin应该也是一个input transition及output load的函数。那么,如果考虑socv/pocv的时候,hold margin的mean和sigma值要如何计算呢?其实我对这个问题的理解还不够深入,感觉还是比较复杂的,我只能大概说一下我的想法。Mean值就比较朴素,应该可以直接查lib得到。不过需要注意的是,有些l

2021-12-17 20:27:16 1281

原创 芯片后端signoff的RC corner指什么?

今天想聊一聊STA相关的RC corner的问题。我先简单介绍一些什么是signoff的corner,然后重点聊一聊RC corner。芯片在工作的时候,不同的工艺、电压、温度会影响芯片的性能,我们不能保证所有芯片都工作在相同的环境中,比如我们的手机在东北要能用,在东北的澡堂子也要能用,所以我们必须要在不同环境下一一检查芯片,确保不会出现错误才行。一般说来,我们只要检查几个极端的环境,让芯片工作最快的时候和最慢的时候都满足要求,那么一般的环境也就可以满足。我们就称这些极端的环境为corner。一般set

2021-12-16 20:29:21 6030 2

原创 LEF和GDS匹配问题

我们在APR的时候,所用到的std cell或者IP、macro都是要吃LEF的,而最终交付生产的时候要生成GDS文件给工厂。那么这两个文件都是什么意思呢?需要注意哪些问题?我今天就来详细探讨一下。首先,什么是LEF?全称为library exchange format,注意这里的L是library,不要把LIB搞混了,LIB是liberty。它是一种库交换格式,只记录了在APR时所要用到的最基本的物理信息,多一点都不记录。什么意思呢,各位想一想后端设计的时候,我们要摆放连线一个cell或者IP,需要什

2021-12-15 20:46:21 2358

原创 聊一聊芯片后端的标准单元-standard cell

Standard cell,标准单元,或者简称cell,可以说是数字芯片后端最基本的概念之一了,甚至可能没有接触过后端的同学也有所耳闻?那么,它到底是什么呢?我们为何要设定标准单元呢,以及这些cell是怎么应用到我们的后端设计中的呢?我就来以我个人的理解阐述一下这几个问题。首先,在芯片设计最早期,门电路不多,晶体管都靠手画在图纸上,所有芯片都是一些逻辑简单的全定制芯片的时代,是不存在什么标准单元的概念的。那时的工程师们只需要把一个一个的晶体管摆好,电路就可以正常工作了。但是随着集成化越来越高,所有的门电

2021-12-14 21:13:14 5928

原创 芯片后端的APR指什么?

APR,全称为auto placement & route。目前已经基本成为芯片后端设计的代名词了,因为在芯片后端设计中,可以说placement and route是至关重要的两步,并且在EDA tool如此发达的今天,靠人工一个个手摆cell,再去绕线是不现实的。因此使用工具可以说是现代芯片设计的必须的事情,所以我们经常说做芯片后端,有的时候就是指代做APR,或者说做芯片物理设计等等。当然需要明确的是,芯片后端所涵盖的内容不仅仅是APR,只是APR是其中一个重要的部分了。可能在早期,我们还会

2021-12-13 20:10:34 7988 1

原创 芯片后端设计在整个芯片制造流程中的位置

芯片设计分为哪些步骤?为什么要分为前端后端?前端后端分别是什么意思?我尽可能的详细阐述一下,给刚刚入行的人做一个小科普。可能有许多人在网上都看过芯片的制造过程,还有很多视频讲解,从沙子开始,一步一步到晶圆,再到一个个小chip,再封装出来给客户来用。不过这是芯片的制造过程,而不是所谓的设计过程。我现在想要分享的是数字芯片后端设计的知识内容,我这个店铺所有文章也将会全部围绕后端设计来展开。可能每一篇都涉及一个小小的方面,积少成多,后端本身也需要我们在工作中不断累积经验,不断学习。今天这一篇是我写的第一篇文

2021-12-12 13:53:21 1065

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除