
简介这份资源是一份集成电路版图设计实验报告面向微电子、集成电路设计与相关专业学生也适合初次接触Cadence版图工具的学习者。报告围绕OP电路展开完整呈现从电路搭建到版图设计的整个流程内容包括建库、调用器件、连线、加电源地、检查保存与导出网表并详细演示电流镜、差分对管、电阻电容的版图绘制以及通过公共端合并节省面积等技巧。同时报告给出了DRC设计规则检查和LVS一致性验证的具体操作与报错结果能帮助读者理解常见布局和连接缺陷的修正方法。资料以1个PDF文件打包大小约3.81MB浏览便捷前后实验步骤和心得体会连贯完整。目前已有313人学习下载对于正在完成实验报告、备考或准备从事版图设计工作的学生而言是一份兼具操作性和参考价值的实用材料。1. 版图设计实验练的不是画图而是物理思维说真话我第一次做版图设计实验之前以为这个实验的重点就是把网表里的管子照着画出来。结果在Cadence Virtuoso里对着空白的版图窗口坐了十分钟连先画哪一层都不知道。后来连续被DRC、LVS折腾到半夜才慢慢意识到版图设计实验真正训练的不是鼠标操作而是对物理约束的敏感度哪里能放器件、哪里不能放、为什么不能放、改动之后会让什么指标变差。这个认知层面的转变才是这门实验最值钱的部分。1.1 实验报告要交付的不只是“一张图”很多同学把版图设计实验当成画图作业认为DRC和LVS没过就改两笔过了就交差。实际上一份完整的版图设计实验报告应该交付五样东西可运行的原理图、通过DRC的版图、通过LVS的一致性结果、寄生参数提取后的后仿真数据以及设计过程中每个关键决策的说明。这五样东西合在一起才构成一次完整的物理设计闭环。我在做这个实验的时候选用的测试电路是CMOS反相器。反相器虽然简单但它涵盖了版图设计的全部核心工艺层N阱、有源区、多晶硅栅、注入层、接触孔、金属互连和阱/衬底接触。换句话说跑通一个反相器的版图你就知道一个标准单元是怎么从设计规则变成可制造图形的后续不管是画与非门、触发器还是运放底层逻辑都是一样的。1.2 先理解版图设计里的三个核心概念版图设计这门课绕不开三个概念图层、设计规则和层次化设计。图层对应的是制造过程中不同掩膜版比如有源区层AA或OD对应浅槽隔离区域刻蚀前的硅表面定义多晶硅层Poly对应栅极金属层对应互连线。理解图层的本质之后你画版图的时候就是在用抽象图形描述真实的物理结构——每一层图形都对应一道具体的工艺步骤。设计规则Design Rule是工艺厂给出的最小几何约束规定线宽、间距、覆盖面积的下限。它不是随便定的而是由光刻分辨率、刻蚀偏差、对准容差等工艺能力共同决定的。设计规则检查DRC就是把你的版图和这套几何约束逐条比对确保做出的掩膜在工艺线上能顺利成型。层次化设计则是把大电路拆成小单元先做小单元版图再通过实例引用拼装成大系统。反相器就是这个“小单元”。层次化不只是方便管理更重要的是让验证可以分模块跑哪里出错哪里改不至于整个芯片堆在一起无从下手。2. 实验环境准备——工艺库选择与工具链配置版图设计是一个高度依赖工具链的工作环境配得好后面能省下大量时间。我见过不少人在实验课上花两个小时装PDK、改路径、调显示文件真正画图的时间反而被挤占。所以环境准备这部分值得认真对待。2.1 工具链怎么选为什么用Virtuoso Calibre 0.18μm PDK绝大多数高校和中小型设计公司做版图设计实验选用的组合都是Cadence Virtuoso做原理图和版图编辑Siemens EDA的Calibre做DRC、LVS和寄生参数提取工艺库则用0.18μm CMOS工艺的PDK。选0.18μm工艺而不是更先进的工艺原因很实际它的设计规则数值都落在微米级线宽、间距都够直观手动画图时你能清楚看到每个尺寸对不对。先进工艺的设计规则动辄几十上百条很多规则还相互耦合比如金属密度、CMP填充规则之类用0.18μm工艺来学原理和流程是在用一个可控的复杂度不要让初学者一开始就淹没在规则细节里。Virtuoso在版图编辑领域是事实标准界面和各种快捷键的资料也是最全的。Calibre作为验证工具规则文件语法清晰、报错定位准确RVEResults Viewing Environment能把DRC/LVS错误直接高亮到版图上排查效率比纯看报告高很多。2.2 建立库和导入PDK的完整步骤环境搭建的第一件事是把PDK挂到你的工作库上。我在实验中用是SMIC 0.18μm工艺的PDK不同厂家的PDK目录结构略有差异但基本流程是一致的在工作目录下准备好cds.lib文件通过DEFINE语句指向PDK安装路径在Virtuoso里通过File - New - Library创建自己的实验库创建库时选择Attach到一个已存在的Technology File也就是PDK提供的tf文件把display.drf或PDK自带的显示资源文件加载进来让每一层都有正确的颜色和填充图案我踩过的最典型的坑是没有在创建库的时候正确attachTechnology File结果版图编辑器里所有图层都是空的画出来的矩形默认落在某个不存在的层上。这个问题在LSWLayer Select Window里选层时就能发现——如果列表里只有几层基础显示层说明tf没挂上。2.3 画图前的效率设置正式画图之前有几项设置很值得花两分钟做掉。第一是网格设置在Options - Display里把Grid Spacing设成工艺最小分辨率的整数倍0.18μm工艺通常用0.005μm或0.01μm这样画出来的图形天然对齐工艺栅格DRC时能少很多莫名其妙的间距错误。第二是打开DRDDesign Rule Driven功能。Virtuoso支持在编辑过程中实时用DRC引擎做增量检查边画边标出当前违反规则的图形。虽然实时检查会带来一点性能开销但对新手而言它的价值是巨大的——你能第一时间知道自己画错了哪里而不是憋到最后一次性面对几十个报错。第三是快捷键。Virtuoso默认的快捷键非常顺手.5是放大、ShiftZ是缩小、I放实例、P画路径、R画矩形、L打标签、C复制、M移动、S拉伸。练熟这几个键画版图的速度能提升一倍不止。3. 反相器版图核心实操——从布局规划到金属互连环境配好之后进入最关键的部分画反相器的版图。这个环节最容易犯的错误是上手就画不先做布局规划。布局规划决定了版图的面积、线长和寄生参数它比后面任何一步精细操作都重要。3.1 画图前先画“楼层平面图”我的习惯是先在草稿纸上画一个示意图把主要的模块位置定下来。反相器的版图结构非常标准PMOS放在N阱里NMOS放在P型衬底上电源VDD从顶部走地GND从底部走输入从一侧进输出从中间引出。根据这个策略我确定了器件的尺寸参数PMOS的宽长比设为4μm/0.5μmNMOS设为2μm/0.5μm。之所以PMOS做宽一倍是因为空穴迁移率大约是电子的三分之一到二分之一为了让反相器的上升时间和下降时间尽量对称PMOS需要更大的宽度来补偿迁移率的差距。平面布局上我采用了从下到上的顺序底部是NMOS的有源区和P衬底接触中间是输出节点上方是PMOS的有源区和N阱接触。这样的好处是电源和地的金属连线可以走同一条竖直通道互不交叉也方便后续把单元拼接成标准单元库。3.2 按层搭建的绘制顺序反相器版图的绘制顺序我建议按制造工序的理解来一层一层往上叠第一步画N阱。在N阱层上画一个矩形把PMOS区域以及它周围接触区都包进去。N阱必须足够大一方面要给PMOS有源区留够空间另一方面在阱边缘和NMOS之间有最小间距要求。第二步画有源区。PMOS和NMOS各画一块有源区两块有源区之间保持距离。poly栅会横跨有源区把它分成源区和漏区。第三步画多晶硅栅。用一条竖直的Poly条同时穿过PMOS和NMOS的有源区这样两个晶体管的栅极自然就是同一个电气节点也就是反相器的输入端。Poly穿过有源区的部分就是沟道长度0.5μm的位置。第四步画注入层。PMOS有源区画P注入NMOS有源区画N注入这两个注入层决定了器件类型。很多LVS报错就是漏画了注入层导致工具分不清你画的是NMOS还是PMOS。第五步画接触孔和金属。在源漏区、阱接触区、衬底接触区上开接触孔然后用Metal1把它们按连接关系连起来。这里要注意接触孔不能直接压在Poly和Active的边缘上每层都要求有足够的覆盖包围。3.3 连线顺序和引脚标注的经验连线顺序直接影响后续修改的便利程度。我的顺序是先连最内部的输出节点把PMOS漏和NMOS漏用一条M1短接再连电源和地最后连输入poly栅的引出线。这里有一个容易忽略的细节VDD和GND的走线宽度要比信号线宽。因为电源线上承担的是整个单元的充放电电流线太窄会导致压降特别是在标准单元阵列里电源线还要承担来自相邻单元的电流。我在实验中把VDD和GND的M1走线宽度设为1μm而内部信号线只要满足最小宽度即可。引脚不能漏。在版图上打Label和实际的电气连接是两回事你必须用in或Label功能给输入、输出、VDD、GND四个端口做标记而且Label的层次必须和对应金属层一致。比如输出走的是M1Label就要放在M1层否则LVS会认为这个引脚不存在。这一步是新手最容易踩的坑后面会专门讲。3.4 接触孔和图形的规整性接触孔不要一个个零散地摆能阵列就阵列。源漏区面积允许的情况下用多个接触孔并联既能降低接触电阻也能提高工艺容差——万一某个孔没开好还有冗余孔保证导通。阱接触和衬底接触同样建议放一排孔保证电流均匀分布同时减小闩锁效应的风险。另外整个版图尽量做成左右对称或者上下对称的结构。对于单个反相器来说对称性意义不大但对称思惟要养成本能。后面画差分放大器、电流镜、锁存器的时候版图的对称性直接决定匹配精度对称的版图在共模噪声下能保持更好的平衡性。4. DRC与LVS——验证环节的报错复盘与排查链路画完一版版图接下来就是验证环节。多数人做实验时最痛苦的不是画图而是DRC报错一屏、LVS又报错一屏根本不知道从哪里下手。这一节我把自己真实遇到的报错类型和排查思路完整梳理出来。4.1 DRC最常见的几类错误及成因我做完第一版反相器版图之后跑了一遍DRC报错数量大约是54个。听起来很多但归一下类就清晰了绝大多数错误集中在以下几类错误类型常见成因解决办法最小间距违规Poly到Poly、Metal到Metal间距不够拉大对应图形间距最小宽度违规Poly、Metal或Active线宽过窄加宽图形接触孔覆盖不足Contact到Metal1或Active覆盖不满足规则加大接触孔周围包覆面积有源区面积不足画的有源区太小不满足最小面积限制适当扩展AA矩形阱与阱间距违规NWell间距过近不满足不同阱的隔离要求拉开NWell距离排查时不要看到一个错就改一个。先把RVE里的错误在版图上高亮出来对照规则文件和测量工具确认原因再批量修改同一类错误。这类错误往往有相关性比如Poly间距的问题是整块区域都拉得太近改一个点通常意味着这一排图形都要调整。4.2 DRC排查的完整链路我的排查流程是固定的实测下来效率很高。先跑DRC在Calibre Interactive里加载DRC rule文件选择Run DRC得到结果报告和RVE窗口。然后逐个看错误在RVE里双击错误条目版图窗口会自动缩放并高亮到出错位置。我的习惯是先看前五个错误如果前五个都是同一根因就回到版图里把这一类问题整体处理掉而不是在RVE里一个个双击。定位之后用Virtuoso里自带的Verify - Markers能看到错误的标记范围。这时候用测量工具k键快速量一下引发错误的两个图形之间的距离对照Design Rule文本确认具体违反的是哪一条再决定是拉伸还是移动图形。修完之后必须整版重跑一次DRC不能只跑局部区域。因为版图是联动的你为了修一个间距挪了某个矩形可能又导致另一个位置的间距出了问题。重跑之后RVE里的错误列表会全部刷新这时候再看数量变化趋势而不是纠结单个错误是否消失。4.3 LVS报错的典型场景与排查思路DRC全绿只说明几何合法不说明电气连接正确。LVS是工具提取版图的器件和连接关系然后和原理图做一致性比对。它的报错类型主要分三类器件不匹配、节点不匹配、端口不匹配。器件不匹配最常见的原因是注入层画错了。比如把P有源区和N有源区画反了或者漏画了注入层工具会把PMOS识别成NMOS或者在识别器件时报告尺寸不符。节点不匹配通常是某条连线没接上比如M1和Poly之间漏画了Contact孔导致这条线在电气上是断开的。我排查LVS错误的方法是先看Summary栏里的统计数。假如报告显示Instance mismatch: 1首先是对比版图和原理图里的器件个数、类型和尺寸。如果是Net mismatch则用Calibre RVE里的Highlight Net功能在原理图和版图之间交叉高亮同名网络直接看哪一端亮不起来那就是断点所在。还有一个很容易忽视的点LVS会在报告中给出Unconnected pins之类的警告别把它们当成无害提示。哪怕最终LVS判定通过这些警告也可能是版图里存在潜在问题比如某段M1悬空。规范做法是把所有警告逐条消掉再提交报告。5. 寄生参数提取与后仿真——版图的质量最终由性能验证DRC和LVS过了版图至少在“规则”和“连接”两个维度上正确了。但正确不等于好用。同样是反相器两个版图的面积一样、连接一样实际电路速度可能差出一大截差在哪里差在寄生参数上。5.1 寄生参数从哪里来PEX提取流程怎么走版图里的每一根Poly导线、每一块扩散区、每一段金属走线都不是理想导体。它们自带电阻和电容这些就是寄生参数。在0.18μm工艺里最主要的寄生来自几个地方Poly栅极本身的电阻、源漏扩散区的结电容、M1走线的电阻、M1与衬底以及层间介质之间的耦合电容。实验中的提取流程是在Calibre里切到PEX模式输入提取规则文件选择输出寄生参数类型RC、RCC或CCC生成提取后的带寄生网表然后拿到Virtuoso的Analog Design Environment里做后仿真。这里有个细节要提一下提取类型要根据仿真目标来选。只关心延迟就选RC关心串扰或噪声耦合需要选带耦合电容的CC类型。对反相器来说RC已经足够用默认值一般没问题。5.2 前仿真与后仿真的数据对比我在实验里对比了原理图前仿真和版图后仿真的结果。仿真条件相同都是3.3V电源、室温、输出端接100fF负载电容。测得的一组典型数据如下指标前仿真后仿真偏差上升传播延迟89.2 ps112.6 ps26.2%下降传播延迟84.7 ps103.4 ps22.1%输出上升时间186.5 ps224.3 ps20.3%输出下降时间172.8 ps205.7 ps19.0%可以看出后仿真的延迟普遍比前仿真高20%到30%这就是寄生参数造成的性能退化。原理图仿真时你理想化地认为连线没有电阻、节点没有电容可实际版图里的源漏结电容、走线电容和接触电阻都会拖慢信号。如果后仿真结果显示延迟比前仿真恶化太多板图优化的方向不是盲目加大管子尺寸而是先降寄生。最有效的三个手段是让源漏共用有源区减少扩散区的总面积从而减小扩散结电容在Poly栅表现较宽时用多条M1接触孔沿栅极长度方向排列降低栅极信号传播的等效电阻把M1走线缩短或加宽尤其是输入和输出这种关键路径上的线走线尽量直达。5.3 可靠性相关的版图习惯后仿真之外还有几个可靠性相关的习惯我觉得实验报告里值得提一下尽管它不直接影响这一次的仿真数据。第一个是阱接触和衬底接触。PMOS所在N阱里必须有N阱接触并接到VDDNMOS附近必须有P衬底接触并接到GND。这些接触离器件越近越好否则阱和衬底电位不稳定容易激活寄生三极管严重时引发闩锁效应。第二个是电源线能宽就宽。我在前面提过电源线要考虑电流密度实验里看似只有几个微安的充放电电流但标准单元要能承受从别的单元汇入的电流而且电迁移寿命和电流密度直接相关线越细“晚年”出问题的概率越高。第三个是尽量把关键信号走在一起的长度降下来。版图编译的时候输入和输出两段M1线对寄生电容的影响最显著你在它们旁边放了一根长的电源线或者长的悬空线等于在加耦合电容会让后仿延迟进一步恶化。做完这几个方向的优化之后我把反相器版图的延迟又跑了一遍后仿真传播延迟大概往回拉了8到12个ps。这说明在同样工艺、同样管子尺寸的前提下版图质量对性能的影响是真的可以量化的这也是为什么“版图设计”在集成电路设计流程里从来都不是一个可以糊弄过去的环节。本文还有配套的精品资源点击获取