ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

从原理图到GDSII:用Virtuoso和PDK跑通振荡器全流程

从原理图到GDSII:用Virtuoso和PDK跑通振荡器全流程 从一张满载噪声的仿真波形到一个能拿去流片的GDSII文件中间隔着的不是灵感而是上百次被Virtuoso和PDK按在地上摩擦的经验。我最近用TSMC 65nm工艺在Cadence Virtuoso里完整跑了一个振荡器项目从原理图搭建、Pcell参数化器件调用、Spectre仿真、版图绘制到DRC/LVS验证和最终的GDSII导出每个环节都踩过坑也都有了对应的解决办法。这篇实战笔记就是把这些东西沉淀下来不讲虚的理论框架全部是操作级别的细节和排查经验。适合正在用Virtuoso做模拟/混合信号设计、对PDK Pcell还不算熟悉、以及准备做第一次全流程交付的同学参考。如果你已经熟练到可以闭眼画版图那这篇也可以当个工具手册以后遇到类似报错直接翻过来对照。1. 项目整体设计与流程选型思路写电路项目最忌讳上来就开画。我这次在TSMC 65nm工艺上做振荡器目标非常明确用PDK提供的Pcell器件搭一个能起振、频率可控、版图验证全过的环形振荡器最后交付GDSII。先把这个项目的地图画清楚后面每一步才不会被带偏。1.1 技术路径与每个节点的产出物整个流程可以拆成六个阶段环境准备、原理图设计、前仿真验证、版图绘制、物理验证、数据交付。每个阶段都有一个明确的产出物比如原理图的产出物是schematic加symbol前仿的产出物是瞬态波形和性能指标版图的产出物是layout database物理验证的产出物是DRC/LVS clean的报告最后是GDSII文件和配套的网表。下面这个小表是我每次做项目都会对照检查的清单方便随时确认自己走到哪一步了。阶段核心工具产出物常见坑环境准备Virtuoso PDK安装脚本可用的library和techfile版本不匹配启动失败原理图设计Schematic Editor Pcellschematic与symbolPcell参数丢失或不显示前仿验证ADE L/ADE XL Spectre波形与性能指标corner设置不对PWL导入失败版图绘制Layout Editor Pcelllayout database布线短路匹配性差物理验证Calibre/AssuraDRC/LVS clean报告short定位难金属密度不够数据交付Stream OutGDSII 网表外部库引用未清除层次错误不要小看这个表格很多人在中间某个阶段迷失方向就是因为没有意识到每个阶段的产出物到底是什么。比如你在原理图阶段如果symbol没有建好后面跑LVS时网表就会对不上等版图画完了才发现要回头改原理图这种返工最让人崩溃。1.2 为什么必须用PDK里的Pcell来搭电路PcellParameterized Cell本质上是一个参数驱动的器件模板。平面电感、Poly电阻、MOS管在PDK里都是以Pcell形式提供的你输入宽度、长度、指数、并联数等参数它自动生成满足该工艺DRC规则的版图并且在原理图和版图之间保持同一套参数这样LVS才能把两边对上。实际工作中我见过太多人图省事觉得电阻就是两条线自己画个矩形加两个孔就行。这在学习demo里没问题但一到真实工艺里就会被DRC按在地上摩擦金属密度不够、硅化物层缺了、接触孔阵列间距不对。更致命的是手画器件没有对应的CDF参数LVS网表里提取不到这是一个阻值X的电阻匹配阶段直接报错。Pcell的价值不是省那几分钟画图时间而是保证设计数据从原理图到版图再到网表的全链路一致性。1.3 交付物到底要交什么流片前的交付物不只是GDSII一个文件。以我这次的交付为例完整清单包括顶层cellview的GDSII文件、保留或打平的版图数据库视foundry要求、CDL或SPICE格式的顶层网表、DRC clean报告、LVS clean报告、引脚映射文件pin map。有些项目还会要求时序、功耗、IR drop等补充报告。这个清单不同foundry会有细微差别TSMC 65nm的标准流程里一般会要求你提交GDSII和LVS网表其他报告存档备查。建议在项目启动前就去确认清楚别等最后一天才去补齐材料也别因为少了某个报告导致流片时间被推迟。2. 环境准备与PDK装载最容易翻车的第零步很多人在Virtuoso里折腾半天发现PDK的Pcell菜单出不来、某些skill脚本报错、版图里显示乱码八成不是操作问题而是版本不匹配。TSMC 65nm的PDK通常会明确标记支持的Virtuoso版本范围比如IC6.1.7或ICADVM 20.1以上。我这次用的是IC6.1.7搭配对应版本的PDK安装后第一件事就是检查cds.lib和display.drf有没有被正确引用。2.1 版本匹配是最低调的大坑如果PDK提供了自检脚本有些厂商会附带skill函数或启动时会打印日志先在干净环境里跑一遍能省掉后面无数排查时间。具体来说启动Virtuoso时可以先看CIW窗口的日志里面会打印PDK加载信息。如果出现“*Error* load:cant access file...”或“undefined variable”这类报错基本可以断定是PDK初始化脚本没有找对路径。这种问题一般出在环境变量上比如CDS_INST_DIR、CDS_LIC_FILE、PDK_DIR设置不对或者你用的是bash而PDK脚本是csh写的shell兼容性就会出问题。TSMC PDK官方给的多半是csh风格的初始化脚本你如果偏偏在.bashrc里source了它可能不会报错但某些变量压根没进来后面Pcell就时灵时不灵。碰到这种情况建议切换到csh环境或者在bash里手动把脚本里用到的环境变量全部export出来。2.2 建库attach的正确动作在Virtuoso里新建library时最关键的一步是选择“Attach to an existing technology library”并选中TSMC 65nm的PDK库。如果选成“Dont attach”或“Compile a new techfile”后面调用PDK器件、跑DRC/LVS都会因为技术文件不匹配而报出各种奇怪错误。attach完成后库的techfile和display.drf才算是真正生效你才能在版图里看到正确的层次颜色和规则约束。我遇到过一种情况库是从同事那里拷来的里面已经有cellview但attach信息丢了结果打开版图层次颜色全乱DRC也跑不了。修复方法其实不难在Library Manager里选这个库右键选择Attach重新指定PDK库即可。注意attach后最好把库里的cellview重新check一次确保tf信息更新到位否则旧cellview可能还是用旧技术文件的数据。2.3 启动后的第一轮自检清单环境装好后别急着画原理图先做一个两分钟的自检。第一在Library Manager里能看到PDK库的cell列表随便打开一个NMOS的schematic和layout确认Pcell能正常显示。第二在schematic里按i调用器件确认instance的CDF表单能弹出来。第三跑一个最简单的DC仿真确认spectre能调用到PDK的model file。第四打开layout确认display.drf的层次和颜色正常。这四步都过了环境基本靠谱。如果某一步挂了先排查PDK安装路径、环境变量和license。不要急着画图“环境不对后面全是白干”这句话我说过很多次但每次都有人不信然后花更长时间在错误的跑道上反复试错。3. 原理图搭建与仿真Pcell参数决定成败我这次做的是五级反相器环振原理图结构并不复杂五个反相器首尾相接每一级反相器由PMOS和NMOS组成再加一个电流镜偏置电路来调节充放电电流从而调节振荡频率输出端加一级buffer避免测试负载影响振荡器本身。PDK里提供的Pcell器件足够覆盖这些需求MOS管用nch和pch电阻用rppolypoly电阻需要滤波的话再用mimcap。3.1 振荡器拓扑与Pcell器件选型这里有一个非常重要的认知Pcell里的参数很多但并不是所有参数都要你去理解。刚开始用的时候你只需要关注和设计直接相关的几个比如MOS管的w、l、m、fingers电阻的width、length、segments电容的width、length。把这些参数和PDK文档里的电气特性对应起来比把每个参数都试一遍更有意义。我的经验是选好一个器件后先用默认值跑一次仿真看波形在哪里不对再回头调参数效率会高很多。以65nm工艺来说核心电压1.2V最小栅长60nm但环振里我不会直接把管子拉到最小尺寸。太小尺寸的管子对寄生和失配非常敏感版图上一点点偏差都会造成频率不稳定。我这次用的NMOS是W/L2um/60nmPMOS是W/L4um/60nm指数都设为1。通过电流镜调节尾电流实测仿真频率大概在1GHz附近。如果你跟着做可以先从这个尺寸起步再根据仿真波形微调。3.2 Pcell参数调整的一个隐蔽问题需要留意的是修改Pcell参数的地方。在schematic里按q选中器件会弹出属性窗口这里改的是实例参数instance parameters。如果你的库在底层定义里已经写了固定的W/L而你又想在实例层覆盖要确保参数的“local”选项被正确勾选否则会出现你改了数值但仿真还是用底层默认值的情况。这个问题很隐蔽我之前吃过亏波形怎么调都不对最后发现是实例参数没生效。另外一个常见的坑是电阻阻值不显示。遇到的时候先不用怀疑Pcell坏了大多数情况下只是symbol上的文字显示没有刷新。处理顺序是这样先选中电阻实例按q看CDF参数里r或rValue是否已经填好如果参数没问题就检查symbol上是否勾选了显示该参数的annotation。在Virtuoso里通过Edit - Component Display - Annotations可以控制symbol上显示的文本属性。如果你从其它库copy器件过来导致CDF丢失那就不只是不显示的问题了通常还会伴随仿真报“unknown parameter”这种情况直接删除重放一个PDK原始器件重新设置参数别在原器件上修。3.3 ADE L中设置工艺角别再点错了仿真环节我先说热词里出现频率特别高的“ADE L工艺角怎么设置”。原理其实很简单Spectre在仿真时需要指定model library工艺角就是在一堆model文件里选一组对应的corner。打开ADE L - Setup - Model Libraries在Model Library File一栏添加PDK提供的模型文件并在Section一栏填上corner名比如tt、ff、ss。温度也要一起扫TSMC 65nm工艺一般建议至少覆盖-40、25、125三档。你可以用ADE L的设计变量功能把温度变成变量再在corners设置里创建一个corner文件把corner和温度组合起来。很多老工程师的习惯是用corner tt 25、corner ff -40、corner ss 125这样固定组合来跑三组简单直接。对于振荡器来说ff/ss之间的频率偏差可能到20%-30%这个范围在前期设计就要留足裕量否则后仿一出来频率偏了你又得回版图重新调。还有一种情况你在Model Library里已经把Section写成了tt但跑完corner扫描后发现所有corner的结果都一样。这通常是corner配置没有通过ADE L的Corners工具统一管理仿真时只用了默认模型。建议在ADE L里用Setup - Corners打开corners配置窗口把要跑的corner、温度组合全部定义好然后选择“Run all corners”一次性把所有情况跑完。如果你的PDK自带corner定义文件直接import进来会更省事。3.4 PWL波形文件的导入文件格式是最大杀手PWLPiecewise Linear波形文件通常用来模拟传感器输出、数字码型或者自定义激励。在Virtuoso里最常用的方法是调用analogLib中的vpwlf电压源PWL文件也有ipwlf用于电流源。双击该源在File一栏填上波形文件的路径如果有多个文件可以用{}括起来。文件内容格式是每行两个数一个是时间秒一个是电压伏时间要从0开始递增最后一行加一个end表示文件结束不同版本要求略有差异我习惯无论版本如何都写上不加白不加。我踩过的坑主要有三个。第一文件路径不能用中文也不能含空格否则Virtuoso在解析路径时会直接报找不到文件。第二文件里的时间必须是严格递增的中间出现相等或递减仿真会直接崩。第三如果文件特别长建议用分段导入或者先在别处把波形压缩到关键点不要导入几百万行的文件去拖慢仿真器。如果波形数据来自Matlab用Matlab把信号先写成一个两列的文本文件再导进来是最顺的操作路径。用惯了之后你会发现PWL其实没那么神秘它就是一张时间-电压对照表文件里写什么仿真器就输入什么。3.5 瞬态仿真的起振问题就靠“踹一脚”环振在理想仿真器里是可以自激振荡的因为数值噪声会提供一个无限小的初始扰动。但在实际仿真中经常出现“怎么等都不起振”或者“起振非常慢”的现象。我的做法是在其中一个反相器的输出节点上设置一个初始条件IC比如用ic0强制让该节点从0开始等效于手动注入一个扰动同时给电源VDDB加上一个1us的上升沿模拟真实的power-on过程。这两种方法都可以显然后者更接近物理实际。仿真参数上Stop Time我一般设5us保证起振后至少能看到几个完整周期来测量频率Maxstep不要设太粗对1GHz的振荡器至少设到10ps否则波形会明显失真。同时建议打开tstab参数瞬态稳定时间让spectre自动跳过起振阶段再记录波形后处理时会方便很多。简单说起振问题本身不是电路有问题而是仿真环境没有提供合适的扰动和分辨率这两个方向先查基本能解决90%的“不起振”问题。4. 版图设计用Pcell快速布局但别迷信Pcell确定schematic无误之后进入版图阶段。在Virtuoso里最常用的方式是在Layout Editor中通过菜单Launch - Layout XL然后选择Generate Layout from Source它会根据原理图里的连接关系自动把PDK Pcell对应的版图实例放置到版图窗口中并保留连接关系。这一步能省掉大量手动放置器件的时间特别是当你有一堆MOS管需要按照连接关系摆放时XL的飞线指引能非常直观地告诉你怎么布局接线最顺。4.1 从原理图生成版图Pcell实例的正确利用这里要注意一个细节Generate Layout生成后Pcell实例在版图里仍然是参数化的你可以双击某个器件修改参数修改后它会动态更新几何形状。但如果你做了某些操作导致Pcell被“打散”比如用Flatten或者手动编辑了Pcell内部的形状那么它就从“参数化单元”变成了“普通多边形组合”后面再想改参数就改不了了而且DRC/LVS时还可能因为丢失Pcell属性而报错。所以我的原则是Pcell能不动内部就坚决不动所有修改尽量通过参数窗口完成。实际操作中有人为了把两个器件贴得更近会手动去挪Pcell内部的多边形这是非常危险的动作。你把MOS管的源漏区手动拉长了一点可能确实通过了当下的DRC但一旦某天你想把W/L从2u改成3uPcell重新生成后你手动改过的东西全没了或者直接报参数冲突。Pcell的定位是“可参数化复用的器件模板”你要扩展尺寸就改参数不要改几何。4.2 布局规划与匹配性模拟设计的基本功环振版图的摆放不复杂但也不能随手乱放。五级反相器我建议按顺序一字排开保证每级反相器到电源和地的路径长度尽量一致。如果这里偷懒后仿时各级的寄生电容不平衡波形占空比会变差频率抖动也会变大。差分结构的电路讲究common centroid匹配环振虽然是单端结构但级间的对称性同样重要尤其是最高频的输出级和buffer之间要留好位置避免级间互耦。在65nm工艺下衬底噪声耦合不能忽略。我把振荡器核心电路的外围加了一圈保护环guard ring接地端接PSUB用来隔离外部噪声串扰。这个保护环在PDK里通常也有对应的Pcell或者用层次生成不要自己手动画一个矩形就完事必须确保它满足该层次的设计规则否则DRC会报一堆孔和间距错误。版图设计里很多类似保护环、dummy结构的东西看似简单实则规则极多用PDK自带的Pcell永远是最稳的。4.3 布线、过孔阵列与电源地网络版图里最容易出问题的往往是电源地网络。振荡器虽然功耗不大但瞬态电流都在翻转瞬间集中出现电源线上的寄生电阻和电感会造成很大的压降和毛刺。我的做法是用高层金属比如M6/M7走一圈电源环环宽尽量做大然后在环上均匀打via阵列连接到下层金属核心MOS管的源端与电源环之间的连接线用最低电阻的金属层组合不要用一根细线串联多个器件那样寄生电阻会直接影响振荡频率。关于via的规则65nm工艺对via的尺寸和间距有严格要求Pcell自动生成的接触孔比如源漏区的contact一般没问题真正需要你手动处理的是连接金属与金属之间的via阵列。很多DRC报错都是因为手动加via时没有对齐到金属网格或者via密度不够。这里有个笨办法但很有效凡是双金属跳线先自动生成一组via再手动复制并排布成阵列最后用DRC去验证不要靠肉眼判断够不够。4.4 Dummy、金属密度与天线效应65nm工艺的DRC对金属密度有明确要求密度过低或过高都会报错。如果你画完了版图发现某块区域金属密度不达标最简单的办法就是加dummy金属填充。Virtuoso里有自动加dummy的菜单一般在Calibre或PDK的fill工具里也可以手动复制一块符合规则的dummy pattern铺上去。注意dummy金属要遵守间距规则且不能影响信号线的电磁环境高频信号的周围尽量不要铺整块的dummy留一点间隔。天线效应是MOS栅氧化层在工艺刻蚀过程中积累电荷导致击穿的问题。在65nm工艺下如果一条net连接了大面积的金属而直接接到栅极DRC会报antenna violation。处理手段是在靠近栅极的位置断开金属跳到下层再从另一处回到上层相当于把“天线”截断。我这次设计中有两三处报了antenna都是通过跳线解决的。改完后记得重新跑一遍DRC确认天线效应这种错误不及时处理等流片回来栅极被击穿哭都来不及。5. DRC/LVS验证与GDSII导出流片前的最后一道关DRC报错通常是三种几何规则间距、宽度、包围、密度规则、天线规则。拿到DRC报告后不要一条条地看先按错误码分类统计一下看看哪类占多数往往一个修改动作可以消掉几十条同类错误。例如金属间距错误经常是因为某条走线离另一条太近把整根线统一推远即可。5.1 DRC报错分门别类地处理我推荐在Virtuoso里用Calibre Interactive跑DRC跑完后在版图里用results browser逐条查看点一条它会在版图上高亮对应的violation。有的错误显示为红色小方块要注意calibre结果的display layer有时和Virtuoso自己的display layer重叠容易看花眼建议把无关层次临时关掉只保留有关的金属层。还有一个技巧DRC报错经常是“连环报”。比如你把一条线拉得太长间距错误可能报了十几次因为它和周围好几根线都不够间距。这种情况下不要一条条去修回到布局里把这条线的位置或走向调整一下可能十几次报错直接清零。修完一轮再跑一遍DRC确认没有新增错误然后进入下一轮。5.2 LVS对不上先查short再查labelLVS是让schematic和layout在电气上等价的核心验证。跑LVS最常见的报错就是“netlist mismatch”或“connectivity mismatch”这时候要用calibre的short/label定位功能。我的排查顺序是这样的先看有没有open和short短路在版图里会产生“short net”Calibre会把短路的位置标出来通常是相邻metal因为间距不够桥接在一起如果没有short再看端口label看看顶层pin的名字、层次是否和schematic里的端口名一致一个字母大小写不一致LVS就认不出。还有一个高频问题电源地和信号地混用。有些PDK里ground有PGND和AGND之分如果你在版图里统一接了同一个netLVS会跑出一个“extra net”或“missing net”的报错。振荡器这种模拟模块我习惯把模拟地和数字地分开虽然最终封装时可能连在一起但在芯片内部通过单点连接可以显著减少噪声耦合。LVS验证时每次报错都先看它报的是netlist error还是layout error这样可以快速缩小范围不用整个版图从头到尾翻。5.3 GDSII导出的干净姿势LVS clean之后终于可以导出GDSII了。在Virtuoso里选File - Export - Stream Out或者命令行用strmout命令。关键是设置Output File写top.gdsLibrary Name选择你的顶层库Top Cell Name选择顶层cellviewLibrary List里只留当前库和PDK库别把你随便建的临时库也带进去。如果GDS里有来自外部库的引用foundry拿到手后很大概率会报错这个一定要提前清掉。有些人在导出前还会做一步flatten把所有层次打平。是否flatten要看foundry要求TSMC的GDSII一般允许保留层次结构但建议至少把顶层打平一层确保顶层没有残留的外部引用。导出完成后用文本编辑器或者专门的查看器打开gds文件头部确认单位数据库单位通常65nm PDK是1n或1u和层号符合预期。如果想做更细致的几何检查可以用Matlab读入GDS社区里有很多读GDS的开源工具自己写脚本去查某些层的覆盖情况或可疑图形这一步虽然繁琐但在正式tapeout前能多一道保险。5.4 后仿与EMX嵌入的进阶玩法如果做得更深入一点在导出GDSII之前最好先做一遍后仿验证。常见的做法是用Calibre PEX或QRC抽取寄生参数生成带寄生的网表再在ADE L里对被提取的view做仿真看看加上寄生后振荡频率偏移了多少、功耗涨了多少。对于高频路径比如振荡器里的互连线和敏感的反馈线还可以用EMX这类工具嵌入Virtuoso在版图上选中一段区域设置端口后直接跑电磁场仿真提取s参数模型再拼回电路做联合仿真。EMX的好处是比全芯片EM提取速度快得多而且和Virtuoso的集成度高右键就能操作。不过我这次环振的工作频率在1GHz附近互连线长度很短寄生主要是电容PEX就够用了EMX更适合LC振荡器里电感的验证。你要是做VCO或者上GHz的互连线建议一定把EMX纳入流程。但从流程完整度来看后仿这个步骤千万不能跳过——前仿干净并不代表版图出来之后性能还一样寄生参数对振荡器频率的影响尤其明显有时候偏个30%都很正常提前知道了才能决定到底要不要回去改版图。6. 高频坑位实录与避坑清单把网络热词里出现频率最高的三个问题单独拿出来说。这三个问题我这次全都遇到过也算是替大家把雷踩了一遍。6.1 三个高频问题的根源与解决电阻不显示阻值。这个现象我在前面提过本质是CDF参数或symbol annotation的问题。补充一个更隐蔽的原因当你在schematic中对一个电阻使用了r 2k这样的表达式而PDK的Pcell要求的是segments或width/length这种几何参数那么CDF里没有对应的显示映射阻值自然就不显示。解决办法是回到PDK手册查这个电阻Pcell到底支持哪几个参数名用对了名字才会显示。ADE L里工艺角设置后跑出来没变化。这种情况我也遇到过一次原因是Model Library的Section名写错或者写好corner后没有用ADE L的Corners工具统一管理导致仿真时还是用默认模型。在ADE L里用Setup - Corners打开corners配置窗口把要跑的corner、温度组合全部定义好然后选择“Run all corners”一次性把所有情况跑完。如果你的PDK自带corner定义文件直接import进来会更省事。PWL文件导入报错。报告的错误通常是*Error* cant open file或*Error* line ... contains illegal characters。前者检查路径后者检查文件格式英文逗号或空格分隔都可以但行尾不要有隐藏的空格或换行符问题最后一行的end有的版本必须单独一行。如果文件是Windows编辑器保存的CRLF格式建议先转成LF再导入。我后来养成一个习惯所有PWL文件都在Linux下用命令行或脚本生成避免Windows编辑器的格式残留问题。6.2 排查工具与小技巧分享几个我觉得利用率特别高的小技巧。Virtuoso的CIW窗口不是摆设很多错误日志、加载信息都在里面遇到奇怪问题先翻CIW最后几十行。有时候报错被淹没在很多正常信息里可以在CIW里用鼠标点一下然后输入命令过滤关键字比肉眼翻日志快很多。用Skill脚本批量提取实例属性比手动一个个点高效得多。比如我想检查整个schematic里所有电阻的阻值是否是预期值写一个几行的skill脚本就能把整个设计扫一遍并输出报告。类似这样的自动化检查可以在进入LVS之前就提前暴露很多低级错误。Calibre的results browser里可以直接双击错误定位到版图坐标同时打开原理图对照两边高亮能快速判断是否真的违反规则。这个功能很多人没用起来导致改错误时还有在版图里手动搜索坐标效率低不少。在跑LVS之前先跑一遍ERC电气规则检查。很多浮空、未连接的问题在ERC阶段就能暴露比到LVS再查高效得多。我这次的环振里有一个偏置管的栅极一开始就没接好ERC报了个floating pin我一分钟就修掉了如果直接去跑LVS估计要从一堆报错里翻半天才能找到这个原因。6.3 避坑速查表现象可能原因快速处理方法PDK Pcell菜单不出现版本不匹配或路径错误检查cds.lib和CIW初始化日志电阻阻值不显示symbol annotation未勾选或CDF映射错误按q检查参数用Component Display调整显示仿真起振失败缺少初始扰动加IC或电源ramp瞬态波形有明显锯齿Maxstep太粗设置Maxstep为周期的1/100DRC报金属密度不足局部金属面积不够加dummy metalLVS报端口缺失label层次不对或名字不一致核对pin名和层次GDS带外部库引用Library List设置不干净重新Stream Out并清空库列表如果这张表里有一半你都已经经历过了那说明你已经入门了剩下的一半留着以后慢慢踩。我在整个项目中最深的体会是在Virtuoso里看似每一个孤立的问题背后往往都连着PDK的数据结构、工具版本和设计流程这三者共同构成了一套系统工程。当你开始习惯从这几个维度去思考一个报错你基本就脱离了“纯操作员”的层次开始真正理解这些工具在干什么。最后聊点掏心窝的话。从原理图到GDSII这个流程跑下来最大的感受是真正难的从来不是某一个功能怎么用而是你如何保证每一步自己都没理解错。画版图之前我花了很多时间在确认PDK器件的参数含义上跑LVS之前我反复检查schematic和layout的端口名是否一致。这些功夫看着不起眼但它们能让后面所有的验证环节顺利通过。对于第一次做全流程的人我建议不要贪快每走完一个环节就停下来对照交付物清单检查一次。流片是一个一次性的游戏多花一天验证换来的是省下几个月的改版周期这笔账怎么算都不亏。
返回列表