芯片设计这个圈子有个很有意思的现象:很多人做了好几年的模块级设计,跑过无数次仿真,画过不少版图,但一提到“流片”这两个字,还是会有点心里没底。不是怕功能做不对,而是对整个从核心电路到最终GDS文件交付的流程链条缺乏完整的掌控感。尤其是像Seal Ring这种平时不怎么有人提、但流片前绕不开的东西,真到了要交给Foundry的时候,才发现这里面的坑比你想象的多得多。
今天我想结合这些年实际跑过的流片项目,把整个流程从头到尾理一遍。这篇东西不会讲得太发散,就聚焦在一件事上:从你手里的核心电路(无论是一小块模拟IP、一个数字模块,还是一个完整的SoC切片),到最终交给晶圆厂的那个GDS文件,中间到底要经过哪些环节,每个环节都在干什么,哪些地方最容易被忽略,哪些地方出了事会让你多花一大笔钱甚至直接报废一批晶圆。
如果你正准备Tapeout,或者打算在接下来一两年内参与完整的流片项目,这篇内容应该能帮你建立一个比较清晰的全局视图。
1. 先建立全局观:一次流片到底是如何运转的
先说个我自己的感受。刚入行那会儿,我觉得流片这件事就是“把版图画完,丢给Foundry,等芯片回来”。后来真正完整跟了一轮项目,才发现这个想法错得离谱。从电路设计到晶圆回来,中间隔着一条非常长的链路,而且每个环节都有自己独立的工具链、数据格式和验收标准。
1.1 从项目立项到Tapeout的完整阶段划分
一个典型的流片项目,大致可以拆成这样几个阶段:
- 规格定义阶段:确定芯片的功能指标、功耗预算、面积预算、工艺节点、封装形式。这个阶段通常由架构师和产品经理主导,主要输出是芯片规格书(Specification)。
- 设计与验证阶段:前端工程师做RTL设计或原理图设计,验证工程师搭验证环境(UVM、数模混合仿真等)。模拟电路在这个阶段还要做前仿真(Pre-Sim),确保原理级功能正确。
- 物理实现阶段:数字后端做逻辑综合、布局布线、时钟树综合、时序收敛;模拟版图工程师做版图绘制、匹配设计、静电防护设计。这个阶段的核心产出是GDSII或OASIS格式的版图数据。
- 物理验证阶段:对完整版图做DRC(设计规则检查)、LVS(电路版图一致性检查)、DFM(可制造性设计检查)、IR drop分析、电迁移分析等。
- 签核与数据交付阶段:所有检查通过后,生成最终GDS、网表、时序文件、功耗文件等,人工核查后打包发给晶圆厂,同时准备光罩数据。
- 晶圆制造与封装测试阶段:这是后道工序,但流片过程中要提前和Foundry沟通好划片槽(Scribe Line)、Seal Ring、对准标记等布局细节,否则后道跑不通,前道做得再好也白搭。
这个链条里,最容易被“只做前端或只做后端”的人忽略的,其实是最后两个阶段。尤其是物理验证和签核数据准备,看起来都是“跑工具”的事情,实际上藏着大量的经验判断。
1.2 为什么“从核心电路到Seal Ring”这个说法其实点出了关键
标题里把“核心电路”和“Seal Ring”放在一起,我理解是有很深用意的。
核心电路决定的是芯片的“功能天花板”——你这个芯片能不能跑,跑起来性能如何,功耗大不大,第一颗样片回来能不能点亮,这些问题基本都在核心电路设计阶段就定了。
而Seal Ring决定的是“量产良率”和“芯片可靠性”的下限。它围在整个芯片最外围,像一圈城墙一样把芯片核心区域保护起来。切割晶圆时的机械应力、封装时的热应力、芯片边缘的裂纹扩散、湿气侵入、静电泄放路径,这些全都要靠Seal Ring去扛。
功能做对了,只是流片成功的第一步;良率和可靠性做得住,才是一颗芯片能从“工程样品”变成“可量产产品”的关键。所以我说,学会画核心电路是本事,把Seal Ring这些“边角料”做明白,才是真正完整的能力。
2. 核心电路设计阶段:决定芯片功能天花板的战场
核心电路的设计是整个流程的起点,也是最简单又最复杂的事情。说简单,是因为工具的自动化程度已经很高了;说复杂,是因为在你动手之前,有一大堆约束和边界条件需要先理清楚。
2.1 规格拆分与架构落地的关键判断
拿到一份规格书,第一步不是急着画原理图或者敲RTL代码,而是先把指标拆开,逐条核对可实现的裕量。
举个例子,规格书上写着“这个ADC在采样率100MS/s、输入频率10MHz时,SNDR不低于68dB”,那你要做的不是直接拍胸脯说能做,而是要先算清楚:这个68dB对应的有效位数是11位左右(SNDR=6.02N+1.76,N≈11),考虑到采样开关的热噪声、比较器失调、时钟抖动等因素,你的实际设计目标至少要做到70dB以上才能留出足够裕量。
这种话听起来像废话,但我在实际项目里见过太多“照着指标设计、仿真也过了、流片回来发现Spec达不到”的案例。问题通常不是仿真不够准,而是在设计起点就没有把裕量留够。
所以做核心电路设计的第一条经验就是:所有仿真指标都要对Spec留出至少10%-20%的余量,特别是那些受工艺角(PVT)影响大的参数。
2.2 模拟电路设计与数字电路设计的方法论差异
模拟和数字的流程在核心电路设计阶段就开始分叉了。
模拟设计是“自底向上”的,核心是晶体管级的原理图设计、版图绘制、寄生提取、后仿真验证。每一步都需要工程师的人工判断,特别是版图阶段的匹配性设计、对称性走线、关键信号隔离,这些没有CAD工具能替你做决定。
数字设计则是“自顶向下”的,核心是行为级建模、逻辑综合、布局布线。现代化数字流程的自动化程度非常高,只要你约束写得合理,工具能帮你处理绝大部分细节。
但这两种方法论,并不是完全割裂的。现在做数模混合芯片,最大的难点之一是数字模块的开关噪声会通过衬底耦合到敏感模拟电路里。所以模拟版图里经常要加保护环(Guard Ring)和深N阱隔离,数字后端在布局时也要尽量把高翻转率的模块放得离敏感模拟电路远一点。这些协同优化的判断,往往决定了流片回来后的第一版能否稳定工作。
2.3 前仿真与后仿真的预期管理
在核心电路设计阶段,仿真验证几乎是每天都要做的事。
模拟电路的前仿真相对简单,用的是理想化的寄生参数,速度快、迭代方便。但真正见真章的是版图完成后的后仿真——提取出真实寄生电阻、寄生电容之后,再看电路是否依然满足所有指标。
这里有个很关键的预期管理问题:后仿结果比前仿差是必然的,问题是差多少。
我记得有个项目里,一个LDO电路的负载瞬态响应,前仿过冲只有180mV,后仿直接飙到320mV,逼近了Spec的350mV上限。当时排查了很久,最后发现是版图里功率管的栅极走线电阻太大,高频响应被严重拖慢。后来把栅极走线加宽、缩短,过冲降回到了240mV左右。
这件事给我的教训是:后仿真不是“验证”而是“修正”,你要做好心理准备,前后仿真差距大是常态,关键是要能从差距里读出版图到底哪里出了问题。
3. 物理实现阶段:别让版图毁了你的好设计
版图设计这个环节,在芯片设计流程里经常被低估。很多做前端的人觉得“版图就是画个图,拖拖线而已”,但实际上,版图的质量直接决定了芯片能不能在极端工况下稳定工作。
3.1 布局规划的“动线”思维
好的布局规划,很像是在设计一座城市的交通动线。电源要从供电Pad进来,像城市主干道一样贯穿芯片;时钟信号要像城市环路一样均匀分布,确保每个模块的时序余量一致;敏感模拟信号要走独立小巷,避开数字主干道的噪声干扰。
具体到操作层面,布局规划时要先想清楚几个问题:
- 哪些模块对噪声最敏感?它们必须放在离开关电源和高速数字电路最远的位置。
- 哪些信号线需要最短的走线路径?比如高速SerDes的TX/RX对、晶振输入信号、bandgap的PTAT电流镜像,这些都是布局优先级的最高层。
- 电源域怎么划分?不同电压域之间要留出隔离空间,避免闩锁效应(Latch-up)。
这里我特别想强调一个新手容易忽略的点:布局规划不是后端工程师一个人的事,一定要拉着前端设计工程师一起过。因为只有前端工程师最清楚哪些信号是真正敏感的,哪些模块之间有强耦合风险。前端画完框图丢给后端就不管了,是很多项目返工的根本原因。
3.2 布线策略:信号完整性与可靠性的平衡
布线阶段的策略选择,直接反映一个团队的功底。
首先,电源网络(Power Mesh)的设计要走在信号布线前面。金属层的高度、网格的密度、IR drop的容忍范围,这些都必须在布线启动之前就定下来。等信号线布得差不多再补电源网格,往往会导致大量绕线、增加寄生,甚至影响时序收敛。
其次,在信号布线时,要考虑层分配问题。以TSMC N28这样相对传统的工艺为例,底层金属(M1-M3)通常用来做标准单元内部的走线和短距离信号互联,中间层(M4-M6)跑中等长度的总线,顶层厚金属(M7-M8)做电源、时钟和长距离高速信号。这个层分配原则,本质上是阻抗和寄生电容的权衡。
作为模拟版图工程师,你还要额外关心信号线之间的串扰。同一层走线并行走太长,会产生不可忽略的耦合电容,导致信号抖动甚至串扰噪声。解决的办法除了拉开间距,还可以在敏感信号之间插入接地线作屏蔽。
3.3 时钟树综合与时序收敛的实操心得
数字部分到了布局布线阶段,时钟树综合(CTS)是最核心的关卡之一。
时钟树的目标很简单——让时钟信号尽可能同时到达每个触发器(Flip-Flop)的时钟端。但实际做起来,要考虑的因素非常多:
- 时钟偏移(Skew):不同触发器的时钟到达时间差。skew越大,时序裕量越难保证。
- 时钟偏斜(Jitter):PLL和缓冲器带来的随机抖动,这个在高速接口设计里尤其致命。
- 时钟树的功耗:时钟树通常是芯片里翻转率最高的网络,功耗占比很大,需要合理选择缓冲器的驱动强度。
在做CTS的时候,我习惯先跑一版“快速CTS”看看大致规模和时序状况,然后检查clock tree report里的skew值。如果某一条时钟路径的skew异常大,通常就能顺着report找到问题:可能是某条路径上的缓冲器选型不合适,也可能是这个时钟域跨了太远的物理距离。
时序收敛是整个物理实现阶段最磨人的部分。setup violation的修复相对简单,加buffer、换更高驱动强度的cell、优化逻辑结构都能解决。但hold violation在芯片实际工作温度下会变得比较棘手,尤其是在慢工艺角下跑出来的hold时序,到了快工艺角可能就违例了。所以我的习惯是,做hold修复时一定要同时检查多个corner的结果,不能只看最差的那一个。
4. Seal Ring:被无数人忽略、却决定芯片生死的“城墙”
接下来重点说标题里另一个主角——Seal Ring。为什么单独拎出来讲?因为在我接触过的项目里,Seal Ring的设计和验证是最容易被“想当然”对待的部分,但它直接关系到流片后芯片切割和封装的成败。
4.1 Seal Ring到底是什么,它解决什么问题
先给没接触过的朋友建立个基础概念。Seal Ring(密封环)是在芯片最外围、沿着划片道(Scribe Line)内侧绘制的一圈连续密闭的金属和介质层堆叠结构。它贯穿芯片的所有金属层,和衬底、阱区连接在一起,形成一圈完整的“围墙”。
这圈围墙主要干四件事:
- 阻挡切割裂纹:晶圆切割(Die Sawing或Laser Grooving)时,刀片或激光会在芯片边缘产生机械应力和微裂纹。如果没有Seal Ring的阻挡,裂纹可能直接扩展到核心电路区域,把器件和走线破坏掉。
- 防止湿气和化学污染:芯片封装后,周围环境的水汽、离子污染物可能沿着芯片边缘的介质层界面向内渗透,导致金属腐蚀和漏电。Seal Ring作为致密的物理屏障,能有效延缓这种渗透路径。
- 提供应力缓冲:封装过程中芯片会承受热膨胀带来的机械应力,Seal Ring可以在一定程度上疏导应力,避免应力集中到内部电路上。
- 作为静电泄放的辅助路径:虽然主要静电防护靠PAD上的ESD器件,但Seal Ring本身连接衬底或阱区,能帮助均匀分布一部分边缘区域的电荷。
说得再直白一点:Seal Ring是芯片的“围墙和护城河”,它平时不参与芯片功能,但一旦缺了它或者它做得不合格,那这颗芯片哪怕电路设计得再完美,切割的时候也可能直接碎掉、裂纹渗透到核心区导致漏电、封装后可靠性测试惨不忍睹。
4.2 Seal Ring的物理结构与设计规范
从结构上看,一个典型的Seal Ring包含以下几个部分:
- 衬底层和阱区:通常在N阱或P衬底上做一圈注入区,形成和衬底或者阱的接触。这里的关键是接地或者接固定电位,确保整圈Seal Ring不会浮空。
- 介质堆叠层(Via/Contact层):每一层金属层之间必须有足够的通孔(Via)堆叠,形成纵向导通的通道。
- 金属层堆叠:从M1往上一直到顶层厚金属(如AP层、RDL层),每一层都要画上连续的金属环。金属环的宽度通常由Foundry的Design Rule明确规定,一般在5μm到20μm之间,具体看工艺和封装应力等级。
在实际操作中,Seal Ring的绘制往往不是工程师手动画的,而是从Foundry提供的PDK里的Pcell直接调用,或者从之前流过的项目的GDS里复制过来,再做尺寸调整。但这里就出现了一个大坑:不同工艺、不同PDK版本的Seal Ring规格可能差异很大。
比如,TSMC的某个工艺节点可能要求Seal Ring在低K介质层里做特殊的应力释放结构(比如开槽或应力环),而其他代工厂没有这个要求。你如果直接把上家工艺的Seal Ring结构搬过来用,可能画完DRC就会出现一堆应力相关的violation,甚至直接导致工艺制造缺陷。
所以,从PDK里找现成的Seal Ring Pcell是最稳妥的做法,自己画出来的东西一定要逐层和Design Rule Manual里的“Process Monitor / Seal Ring”章节核对。
4.3 Seal Ring周边的常见坑:防护环、划片道、角落处理
Seal Ring画对了,不代表万事大吉。真正容易出问题的地方在它周边的细节处理。
第一个坑是防护环(Guard Ring)和Seal Ring的关系。很多工程师把器件区的Guard Ring误认为是Seal Ring,其实两者不是一回事。Guard Ring通常包在具体的敏感模块外围(比如PLL周围、Bandgap周围),用于隔离衬底噪声和闩锁电流;Seal Ring则固定在芯片最外围,一个芯片通常只有一圈(或者极少数情况下做双环结构)。两者之间要留出足够的间距,不能混淆。
第二个坑是划片道(Scribe Line)内的对准标记和测试结构。划片道是晶圆上芯片与芯片之间的空白区域,通常用来放置光刻对准标记(Alignment Mark)、工艺监控结构(如SRAM测试条、电容测试结构)。这些结构不能和Seal Ring打架,特别是当划片道宽度比较窄时,要提前确认好Seal Ring外边缘到划片道中心的距离,确保切割锯片不会伤到Seal Ring。Foundry一般会在Design Rule里给出明确的“Scribe Line Width”和“Seal Ring to Scribe Line Center”的最小值,照着做就行,怕的是你没看这页规矩。
第三个坑是**角落处理(Corner)。**Seal Ring在四个角落怎么闭合,是个细节活。很多团队的惯例是在转角处切成45度斜角,而不是直角,因为直角的金属堆叠在应力集中情况下更容易开裂。但具体是45度斜接、90度直角重叠,还是做外扩的“L形”拐角,各家Foundry建议不一样,PDK里的Pcell通常已经设计好拐角样式,不太建议自己改造。我自己踩过一次坑,手动改了拐角后DRC没报错,但LVS跑出了一个“seal ring net floating”的warning,后来查了半天才发现是拐角处的金属层没接上。
4.4 Seal Ring与ESD方案的协同设计
Seal Ring虽然主要功能是机械保护和环境隔离,但它和芯片的ESD防护策略是有协同关系的。
一般来说,芯片的ESD防护路径是:外部静电从Pad打进来后,通过连接在Pad上的ESD钳位器件(如GGNMOS、SCR、二极管)泄放到地。但静电放电是个极高速的过程,如果芯片边缘的电荷无法快速泄放,积累在边缘就可能引发闩锁或介质击穿。
Seal Ring在此时扮演的角色,是提供一个“低阻抗的边缘泄放路径”。因此Seal Ring必须连接到芯片的衬底或主接地网络,不能让它处于浮空状态。浮空的Seal Ring不仅起不到保护效果,反而可能成为电荷累积点,诱发闩锁效应。
所以在LVS验证阶段,不要忽略Seal Ring的连接关系。很多LVS工具默认会忽略Seal Ring,或者允许它浮空。但从芯片可靠性角度,你最好还是主动确认一下:这个芯片的主地网络,是否和Seal Ring的衬底接触区域有明确的电位绑定。
5. 物理验证与签核:流片前的最后一道关卡
所有版图画完之后,就要进入物理验证阶段。这个阶段跑的就是DRC、LVS、DFM、IR drop、电迁移等一系列检查。很多人觉得这些检查就是“跑批处理脚本”,其实每一项的背后都需要人工判断。
5.1 DRC检查的正确打开方式:不是报错清零就完事
DRC是Everybody最熟悉的物理验证步骤。原则上,最终签核的GDS必须做到DRC Clean——也就是零违规。但实际上,有些DRC violation是可以申请“Waiver”(豁免)的,因为你可以在版图说明文档里给出合理的解释。
举两个我遇到过的真实情形:
第一种,Foundry的DRC deck对某个金属密度的check很严格,比如要求M5金属密度不超过70%,但你的电源网格在某一小块区域确实没办法降密度,因为那里走了一堆大电流的地线。这种情况下,如果密度超限区域面积很小、位置不敏感,可以写waiver说明,Foundry的工程师审核后通常能批准。
第二种,DFM相关的DRC,比如金属线端的“天线效应”检查。如果你的版图在某个小区域有一根因天线效应可能受损的栅极连接,但后面已经通过加二极管来修复了,那就可以针对这条rule申请waiver。
这里我的经验是:不要把所有DRC violation都当成“必须清零”的目标。拿到DRC报告先分类:哪些是硬性的物理规则,绝对不能含糊;哪些是可以合理的waive的;哪些是工具理解错了、需要调整rule deck才能正确反映物理事实的。一个成熟的后端工程师,最值钱的技能之一就是能准确判断violation的性质和风险等级。
5.2 LVS检查:不只是“电路和版图长得一样”
LVS(Layout vs. Schematic)检查的核心目标是确认版图里实现的电路网络和原理图设计保持一致。但实际跑LVS时会遇到很多“聪明过头”的情况。
比如版图工程师为了匹配性,可能在两个mos管周围放了一堆dummy器件。这些dummy管子并不参与电路功能,但它们在LVS视角里是实实在在的器件,可能被误判成“多余器件”而报错。处理好这个问题的标准做法,是在版图里给dummy器件标记特殊的layer,让LVS工具识别并排除它们。
另外一个经典问题是ESD器件的识别。有些工艺里ESD保护器件会被LVS工具误认为是普通MOS管,导致netlist对比时报错。你需要确保ESD器件的识别层在LVS deck里被正确处理。
跑LVS的时候,目标不只是“pass”,而是要理解工具报出来的每一个error或warning背后的原因。如果只是不断修改版图把工具跑绿,而不理解工具为什么报错,那后面换corner、换工艺版本的时候大概率会翻车。
5.3 时序签核与功耗签核:多视角确认流片风险
数字芯片的物理签核(Signoff)通常是多步骤的。最常见的一套组合是:
- 时序签核:在多个PVT Corner下跑静态时序分析(STA),确认setup和hold都满足。
- 功耗签核:用向量(或者用无向量模式)跑功耗分析,确认芯片在典型场景下的功耗不超过封装和电源系统的承受能力。
- 电源完整性签核:跑IR drop和电迁移(EM)分析,确认电源网格在最差负载情况下的压降可以接受,金属连线的寿命有保障。
- 可靠性签核:包括ESD检查、闩锁检查、栅氧化层完整性(GOI)等。
这里我特别想提醒一件事:签核时用的PVT角要足够全。很多项目在流片前只跑TT/SS/FF三个角,觉得足够了。但如果你的芯片工作环境很宽(比如汽车电子的-40℃到125℃),建议你敢不敢都跑到——这个看预算和时间。最理想情况下应该把SS/FF下的低温和高温组合都覆盖到,因为有些时序违反只在“高速慢角”或者“低压快角”这些交叉条件下出现,而不跑它你就会在下一次流片后拿到一堆fail。
5.4 芯片级“顶图检查”:拿到GDS之后的第一件事
在所有物理验证跑完之后,很多人就直接把GDS打包发给Foundry了。但你还有一件事要做:用GDS查看器(比如KLayout、Calibre Layout Viewer或者Virtuoso的GDS导入功能)完整地浏览一遍整张版图。
这一步听起来像“画蛇添足”,但它的价值在于,你看到的是一张集成了所有IP、所有模块、所有PAD、Seal Ring、划片道的完整芯片图像。人工浏览时通常能发现一些工具检查不出来的问题,比如:
- 某个金属层的网络上有一根孤立的走线,看起来像是残留物;
- 两个IP之间的空白区域过大,浪费了面积;
- PAD的排布不够均匀,导致封装时牵线困难;
- Seal Ring在某个角落看起来有缺口或重叠异常。
特别是对于第一次流片的团队,这一步是防止“低级失误”的最后保险。
6. Tapeout数据交付:最后一公里最容易翻车
流片数据交付,看起来只是“打包发个文件”,实际操作中翻车概率出奇地高。很多项目前前后后做了半年都没事,反而是在最后这一两周因为数据格式、文件命名、版本号问题炸了锅。
6.1 GDS/OASIS格式选择与StreamOut的坑
大多数Foundry现在都接受两种数据格式:GDSII和OASIS。GDSII是老牌格式,兼容性好,但文件体积大、StreamOut时间长;OASIS体积小、速度快,但很多老工具链支持得不够好。
我的建议很简单:Follow Foundry的喜好。Foundry在PDK里放了一份“Tapeout Data Preparation”的文档,里面详细写了他们要求的数据格式、层号映射、文件命名规则。照着做,没错。
StreamOut的时候有个高频出错点:layer map的一致性。你的版图里画的“layer 11”在Foundry的GDS里可能代表的不是同一个物理层次。每个工艺节点都有自己的layer map文件,你导出GDS时必须使用和PDK配套的map文件,否则Foundry读进来后会发现层信息错乱。
6.2 数据包检查清单:漏了任何一个都会拖慢进度
一个完整的Tapeout数据包,通常应该包含以下内容,缺一不可:
- 最终版GDS或OASIS文件(芯片全视图+顶层单元级视图)
- 逻辑网表(用于LVS复核的SPICE或CDL网表)
- 时序约束文件(SDC)
- 时序模型库文件(如用于验证的.lib文件)
- 功耗模型文件(比如CPF或UPF)
- 模拟后仿波形文件(如果需要Foundry额外支持)
- 说明文档(Waiver清单、版本变更记录、特殊注释)
准备这些文件时,最忌讳的是多个版本并存。文件管理器里如果出现“chip_final_v3_202310.gds”“chip_final_ver2_backup.gds”这种命名,离出错就不远了。Tapeout前的数据冻结,必须做到:网络驱动器上只有一个版本目录,用日期和修订号统一命名,旧的版本目录直接归档或者删除。
6.3 Tapeout Review Meeting:为什么最后还要开一次会
很多公司流程里,在正式提交给Foundry之前会有一个Tapeout Review Meeting。别把这个会当成走形式,它是整个项目组最后一次从全局视角审视芯片设计质量的机会。
会议的常规议程会包括:
- 设计经理汇报规格达成情况,列出已知风险和豁免项;
- 物理设计负责人汇报DRC/LVS/DFM的最终状态和waiver清单;
- 验证负责人汇报功能仿真的覆盖率和最终回归结果;
- 封装测试负责人确认PAD坐标、电源地位置、封装图的匹配性;
- 项目经理确认流片预算、时间节点和工艺协议版本。
这个会议的价值在于,它强制每个角色在流片前重新思考一遍自己负责的领域是否还有遗留问题。哪怕不能100%消除风险,也能逼着团队把已知的隐患列全,避免事后追责时互相甩锅。
7. 从项目实操中总结出的几条保命经验
最后聊几条我个人的实操体会,不一定适合每个团队,但如果你正处在流片项目的关键节点,应该会有参考价值。
第一,工艺协议(Process Agreement)一定要在项目早期就和Foundry确认清楚。包括光罩层数、金属层堆叠方案、是否需要额外层用于RDL、良率测试结构的要求等。这些东西对芯片成本和流片周期的影响极大,早期确认能帮你省下大量的返工时间。
第二,Waiver和异常清单的管理要有专人负责。每次Waiver的申请、审批、更新,都要落实到人,并且要和Foundry保持持续沟通。不要等到最后签核那天才把一堆violation丢给Foundry的工程师,那样只会白白增加被拒的概率。
第三,模拟电路的后仿真不要怕麻烦。我见过太多项目因为时间紧,后仿只跑了TT corner,结果流片回来发现芯片在低温下有问题,甚至有的芯片在量产过程中在某个特定的电压温度组合下大面积失效。后仿真花掉的时间,和流片失败、重新tapeout的成本相比,几乎可以忽略不计。
第四,人手允许的情况下,找一个“不参与设计的人”来做Tapeout数据的最终检查。设计者对自己的作品太熟了,容易看不见问题。让一名没有参与过这个模块设计的工程师从头到尾过一遍数据清单和GDS内容,往往能发现设计团队自己漏掉的细节。
第五,Seal Ring和Dummy金属填充(Metal Fill)的问题要尽早规划。Dummy金属填充如果布得太晚,可能导致大量DRC violation,而这些violation一多,Seal Ring附近的结构可能就会被工具“顺手”修改,造成意想不到的物理违背。我自己经历过一次因为Dummy填充策略没定好,导致Seal Ring附近一小块区域的金属密度超标,最后为了满足DFM规则,不得不人工修改了整整两天的版图才解决。
芯片设计这条链路,越往后越枯燥,越到后面越是细节决定成败。核心电路决定你的功能上限,而Seal Ring、DRC、Tapeout数据这些“不起眼”的环节,决定的是你能否真的拿到一颗能用的芯片。愿每一位即将流片的朋友,都能在review的时候看到自己的版图整整齐齐、Seal Ring稳稳当当,然后平平安安地把GDS发出去,安安心心地等晶圆回来。