资讯动态

Smic40nm PDK中pmos器件识别与版图层次查看实战指南

发布时间:2026/9/2 22:42:34 来源:尧图企业网站定制
刚接手一颗 Smic40nm 工艺的项目时第一件事往往不是急着画版图而是先把 PDK 里的器件认清楚。尤其是模拟电路里最常用的 pmos如果连器件层次、CDF 参数、symbol 与 layout 的对应关系都没弄明白后面做 LVS、跑 Monte Carlo、做可靠性检查时很容易被各种隐蔽问题卡住。本文以 Smic40nm PDK 中的 pmos 为例完整梳理一套器件识别与层次查看方法内容覆盖 PDK 目录结构、原理图符号、版图层次、CDF 参数、常见识别误区和排查思路适合刚开始接触 40nm 工艺的模拟 IC 设计工程师、版图工程师以及相关专业学生。1. 为什么要在 PDK 中做器件识别1.1 器件识别到底在识别什么PDKProcess Design Kit工艺设计套件是晶圆厂提供给设计者的“接口层”它把工艺的物理规则、器件模型、版图层次、DRC/LVS 规则、参数化单元Pcell打包成 EDA 工具可以直接调用的形式。在 Virtuoso 等环境中从库里调出一个 pmos本质上是调用了 PDK 中预先定义好的一个参数化单元。器件识别简单说就是回答三个问题这个器件的 symbol、schematic、layout 分别是如何组织的它的核心参数W、L、Finger、Multiplier、Model Name在 CDF 里如何体现从版图层次上看它用到了哪些图层这些图层与物理结构如何对应很多初学者拿到 PDK 后习惯直接拖一个 nmos/pmos 进 schematic 开始仿真模型能跑通就不再关心器件内部结构。这种做法在简单电路里问题不大但一旦涉及多个器件并联后的版图匹配finger 与 multiplier 的 LVS 识别差异不同 VT 类型器件的混用可靠性设计ESD、天线效应检查自热效应、寄生参数提取。就会发现对器件“内部身份”不清楚根本没办法判断问题出在哪一层。1.2 pmos 和 nmos 的识别差异从电路符号上看pmos 和 nmos 的主要区别在于pmos 的源漏空穴导电电流方向从 Source 流向 Drain符号上通常多一个圆圈nmos 的源漏电子导电电流方向从 Drain 流向 Source两者在版图中的阱区类型不同pmos 通常做在 NWell 中nmos 通常做在 PWell/PSub 中pmos 的寄生二极管方向是 NWell 到 P 型有源区即从衬底端指向阱端而 nmos 的寄生二极管是从 PSub 指向 N 型有源区。这些区别看起来基础但在 Smic40nm PDK 里同一个 pmos 会因为 VT 类型不同、工作电压不同、是否有 ESD 保护而对应完全不同的 model name 和版图层次组合。器件识别就是先把这些差异建立一张对照表后面使用才不会手足无措。2. 环境准备与 Smic40nm PDK 目录结构2.1 软件环境与 PDK 安装本文示例以 Cadence Virtuoso IC 6.1.8 及以上版本为主使用环境为 Linux 服务器。Smic40nm PDK 的安装方式不同版本略有差异但通常都会提供以下内容pdkInstall.pl或类似安装脚本smic40ll或smic40lp等工艺库名称包含 DRC、LVS、QRC、PEX 等 runset 文件包含 CDF、callback、pcell 等 Virtuoso 支持文件提供 Spectre/HSPICE 模型文件。如果你的项目使用的是Smic40ll工艺库名可能是Smic40ll、smic40llrvt、smic40llhvt这样的组合具体以你拿到的 PDK 版本为准不要照搬网上别人截图里的库名。版本差异很大最好先查看 PDK 自带的README或Release Note。# 在 PDK 安装目录下查看目录结构 cd /path/to/smic40_pdk ls -la预期你会看到类似于pcell、model、runset、cdsLib、doc这样的目录。其中最关键的两个是pcell参数化单元定义和docPDK 使用文档。2.2 建立自己的测试库为了不影响别人的设计建议先建一个独立测试库专门用来做器件识别实验。在 Virtuoso 中通过 CIWCommand Interpreter Window菜单执行File - New - Library Name: test_pmos_study Attach to: Smic40ll也可以直接在.cdsinit里通过 SKILL 函数创建库。下面给出一段可用的 SKILL 示例执行后会在当前工作目录下创建库并 attach 到工艺库。; 创建测试库并 attach 到工艺库 let( (libName techLib) libName test_pmos_study techLib Smic40ll when( not(ddGetObj(libName)) dbCreateLib(libName) dbAttachLibTech(libName techLib) ) printf(Library %s is ready, attached to %s\n libName techLib) )这段脚本的思路是先检查同名库是否已经存在不存在就创建并 attach存在则直接输出提示。实际使用时需要把techLib改成你机器上已经 attach 的工艺库名称。2.3 通过 Library Browser 定位 pmos完成测试库创建后打开 Library BrowserTools - Library Browser在工艺库中找到PrimeCell或者AnalogLib、Smic40ll_analog之类的 view 列表展开 pmos 相关 cell。通常在 PDK 中pmos 会按下面几种形式命名pmos通用 pmos通常带有默认阈值pmos_lvt/pmoslvt低阈值 pmospmos_hvt/pmoshvt高阈值 pmospmos_25/pmos_33耐压器件或 I/O 器件。Smic40nm 的模拟/射频 PDK 中还会区分rf版本器件例如pmos_rf。它们和普通 pmos 的 model 不同版图上可能有额外的 dummy 层次或防护环层次要求。这里需要特别提醒千万不要只凭 cell name 猜测器件类型。同一个pmos名字在不同 PDK 版本里的默认参数可能完全不同一定要打开具体 cellview 查看 CDF 参数和 model name。3. Smic40nm pmos 的核心结构与层次拆解3.1 从物理结构理解层次为了看懂版图需要先回到物理结构。pmos 做在 NWell 中源端和漏端是 P 注入区栅极是多晶硅Poly栅氧化层厚度由器件类型决定。一个标准的 Smic40nm pmos 在版图上至少包含以下功能层次层次名称功能识别要点NWELL深 n 阱pmos 整体必须落在 NWELL 内DIFF / OD有源区定义源漏扩散区域PO / GATE多晶硅栅与有源区交叉形成沟道P / NIMPP 型注入 / N 型注入pmos 的源漏需要 P 注入NWell 接触需要 N 注入SN / SP选择层区分 P 与 N 区域M1 及以上金属层互连引出源漏栅这只是一个通用清单。Smic40nm PDK 的具体层次名可能叫OD也可能叫DIFF可能是NWELL也可能是DNW不同版本差异较大所以实际查看时要以 PDK 提供的 layer map 文件为准。3.2 nmos 和 pmos 的层次对比把 nmos 和 pmos 放在一起对比器件识别就更加直观阱区pmos 在 NWELL 中nmos 通常在 PWELL/PSUB 中如果工艺有双阱则 nmos 也可能在 PWELL 中。注入类型pmos 的 source/drain 是 P 注入nmos 的 source/drain 是 N 注入。衬底连接pmos 的 bulk 接 NWell所以 NWell 上需要 N 注入和 Metal 连接nmos 的 bulk 接 PSub/PWell需要 P 注入做衬底接触。寄生二极管方向pmos 中寄生二极管从 Source/DrainP指向 NWell即阳极在有源区阴极在 NWellnmos 中寄生二极管从 PSub 指向 Source/DrainN。在版图识别时如果看到一块有源区周围既有 NWell 又有 N 注入那基本可以判断这是 pmos 或 pmos 的 guard ring 结构。如果看到有源区被 P 包围同时周围有 PWell/PSUB 接触则是 nmos。3.3 pmos 导通条件与电流方向的快速判断热词里经常出现“pmos 导通条件”“pmos 管电流方向”这里也简单澄清一下以便和 PDK 层次识别衔接。pmos 导通条件是栅源电压Vgs小于阈值电压Vth也就是栅极相对源极要足够负。对增强型 pmos通常说Vgs Vth时导通Vth 为负值。pmos 的电流方向定义是 Source - Drain但在 schematic 符号中传统画法是电流从 Source 流入、从 Drain 流出。由于载流子是空穴实际漂移方向与电场方向一致这一点经常让初学者混淆。在版图识别中通过 source/drain 的 P 注入对称性可以看出 pmos 的源漏其实是对称结构真正区分 source 和 drain 要靠外部电路连接关系而不是靠版图本身。这也是为什么 PDK 里的 pmos symbol 上Source 和 Drain 在物理上可互换但仿真模型里通常区分 source/drain 端子以便正确描述体效应和寄生电容。4. 以 pmos 为例的层次查看实战4.1 在 Schematic Editor 中查看 pmos 实例在测试库中新建一个 cellviewCell Name: pmos_look View Name: schematic Tool: Composer-Schematic从 Library Browser 中拖一个 pmos 到原理图中。选中该 instance按Q打开属性编辑框。你会看到类似下面的内容CDF 参数名示例值说明Model Namepmoslvt / pmoshvt仿真模型名影响器件阈值W1u单 finger 沟道宽度L40n沟道长度Smic40nm 最小 L 通常为 40nmFinger1叉指数量Multiplier1并联重复单元数量NF / Number of Fingers1某些 PDK 会用 NF 替代 FingerTotal Width1uW * Finger * Multiplier 的显示值凡是 CDF 里能够修改的参数几乎都对应着 Pcell 在版图中的结构变化。例如把Finger从 1 改成 4layout 会显示成 4 个并联的栅指把Multiplier改成 2则对应两个完全独立的单元并联。实际操作中如果你只想快速确认这个 pmos 是哪种阈值器件重点关注Model Name和W、L参数即可。4.2 在 Layout Editor 中查看版图层次在同一个 cell 下新建 layout viewCell Name: pmos_look View Name: layout Tool: Virtuoso Layout Editing然后通过菜单Launch - Layout XL软件会自动从 schematic 生成一个或多个版图。如果没有自动生成可以手动选择Create - Pin先把 pmos 对应的 layout 打开按E键进入编辑模式。如果需要查看具体层次按CtrlF打开 Layer 选择窗口或者在 LSWLayer Select Window中勾选要显示的层次。一个典型 Smic40nm pmos 的版图核心区域你应当能看到一层大块的NWELL覆盖整个器件一条POPoly横跨有源区有源区两侧被P覆盖形成源漏源漏和 NWell 接触区域分别通过M1引出可能还有一层PCELL或BOUNDARY标记整体范围。在 Virtuoso 中可以直接使用测距工具检查沟道长度k 键 - 测量 poly 与 active 的交叠区域也可以按ShiftK打开标尺列表查看所有测量结果。这是器件识别中最常用的几何确认手段查看 poly 宽度确认 L 是否等于 PDK 里设置的 40nm查看 active 的宽度确认 W 是否符合设置。4.3 通过 CDF 回调函数理解参数联动Smic40nm PDK 的 Pcell 之所以能做到“改一个参数自动关联其他参数”是因为 CDF 里挂载了 callback 函数。比如修改Finger时Total Width会自动变成W * Finger * Multiplier。这一逻辑在.cdsinit或者 PDK 的callback目录中定义。我们可以通过 SKILL 读取 CDF 参数验证参数之间的计算关系。下面这段 SKILL 脚本读取当前选中的 pmos 实例的 CDF 参数; 读取选中 instance 的 CDF 参数 sel hiGetCurrentWindow() inst geGetSelectedSet(sel) when( inst car(inst) let( (cdf) cdf cdfGetCDF(car(inst)-cellName) printf(Cell: %s\n car(inst)-cellName) foreach( param cdf-parameters printf(%-20s %L\n param-name param-value) ) ) )这段脚本只是演示思路。不同 Virtuoso 版本的cdfGetCDF返回结构可能略有不同建议在 CIW 里逐行执行验证。真正的重点不是脚本本身而是理解 CDF 参数是分层的有cell级默认值、instance级覆盖值、还有model级定义值。当你在 schematic 里看到某个参数变灰不可编辑时很可能是因为它是通过 callback 自动计算出来的衍生参数比如Total Width。4.4 将 pmos 参数同步到 symbol 上热词里有一个很实际的问题怎么将 schematic 的 pmos 及 nmos 的参数弄到 symbol 上调整。这个需求在做 Top 仿真、快速改器件尺寸时非常常见。标准做法是在 symbol 上直接添加可显示的 CDF 参数打开 symbol view选中Instance的边框或 symbol body按Q打开属性在 Label 或 Properties 中添加需要显示的 CDF 名称例如w、l、fingers、multiplier保存 symbol回到 schematic 中选中 instance按Q时这些参数就会直接出现在属性表单顶层。另一种写法是通过 SKILL 修改 symbol 的instParameters属性将参数添加到 symbol 显示列表中。不过这类操作有一定的 PDK 依赖不同 PDK 对 symbol 参数的封装方式不一样建议优先使用 Virtuoso 自带属性面板手动添加。4.5 使用 Layout XL 的 Connectivity 高亮确认层次在复杂版图中只靠肉眼找 NWELL 和 Poly 并不高效。更实用的是利用 Connectivity 高亮功能Launch - Layout XL Connectivity - Highlight - Nets选中 schematic 中 pmos 的 source 节点layout 中对应的 Metal、Active、Contact 都会被高亮。再选中 bulk 节点就能看到 NWell 接触路径。这种连线追踪法是识别 pmos 与周围隔离环、阱接触关系最直观的手段。在 Smic40nm 工艺中pmos 通常周围要求放一段 NWell 环或 Double Ring以确保 latch-up 防护。通过 Connectivity 高亮可以快速检查该 pmos 是否被正确包在 NWell 环内有没有漏接 bulk。5. 常见问题与排查思路5.1 器件识别常见问题表问题现象常见原因解决思路找不到 pmos cell工艺库名不对或 PDK 未 attach确认库名重新 attach tech libraryCDF 里没有 Model Name打开了非 Pcell 的普通 symbol确认当前 view 是否为 PDK 提供的 Pcell修改 Finger 后 Total Width 不变callback 未加载重新执行 PDK 的 setup 脚本或检查.cdsinit加载顺序Layout 中看不到 NWELL层次显示被关闭在 LSW 中勾选 NWELL 层次LVS 报告 pmos 参数不匹配W/L 提取方式与 CDF 设置不一致检查 LVS runset 中的 device extraction 选项误把 nmos 当成 pmos阱区或注入类型判断错误对照 NWELL、P/N 层次确认symbol 上无法显示参数参数未加入 instance 的显示列表在 symbol 属性中添加目标 CDF 参数5.2 典型问题打开 Layout 后看不到有源区 P 层次如果从 PDK 库中调用的 pmos layout 看起来非常“空”很可能是因为 LSW 窗口把部分层次过滤掉了。Smic40nm PDK 的 Pcell 内部使用了很多 derivation 层次例如DIFF_P、DIFF_N甚至有些保护环层次在默认显示列表里不出现。排查步骤按CtrlF打开 Layer 过滤窗口在 Search 栏输入P或NIMP勾选可见性并点击 Apply如果依然看不到确认当前 techfile 是 Smic40 的 techfile而不是其他工艺的 techfile。5.3 典型问题LVS 报告 pmos 子电路识别失败跑 LVS 时如果 Extractor 无法把版图上的 pmos 归一到 CDF 中的 model name通常会报告类似 “unrecognized device” 或 “property mismatch”。这通常不是器件本身画错了而是 LVS 的 device generation 对识别条件有要求P Active区域必须落在NWELL内Poly必须与 Active 形成交叉source/drain 的接触孔必须完整。解决思路是先在 Layout XL 中执行Connectivity - Extract - Extract All检查提取出来的器件参数再检查 LVS runset 中device定义里 netlist 映射的 model name 是否与 CDF 一致。如果发现映射的 model name 是pmos但 schematic 中 CDF 的 model name 是pmoslvt就需要在 LVS compare 规则里调整 mapping 文件或者统一修改 schematic 里的 model name。5.4 典型问题pmos 源漏接反导致电流方向检查异常尽管 pmos 物理上源漏对称但在某些提取流程中source/drain 会被 CAD 工具根据电势自动标记。如果 schematic 中 source/drain 连接方式和 layout 中不一致LVS 一般不会报错但寄生参数提取后的电路行为会异常。排查时建议在 schematic 中查看 pmos 的 source 和 drain 分别连接到了哪个节点在 layout 中用 Connectivity Highlight 分别高亮两个节点检查是否与 CDF 中定义的 symbol 端口方向一致。对于电流方向敏感电路比如电流镜、全差分对务必保持 pmos 的 source 与衬底电位方向一致。5.5 排查清单初次接触 Smic40nm PDK 时可以按下面这个清单快速排查库名和 attach 是否正确。调用的 pmos 是 Pcell 还是普通 symbol。CDF 中 model name 与预期阈值类型是否匹配。Layout 中 NWELL 覆盖范围是否足够。P 注入是否覆盖了 source/drain 区域。bulk 端是否通过 NWell 接触正确引出。沟道宽度 W 与 Poly 的实际几何宽度是否一致。沟道长度 L 是否满足 DRC 最小尺寸。LVS mapping 中 model name 是否一致。保护环/guard ring 是否按要求添加。6. 最佳实践与工程建议6.1 建立器件参数速查表项目初期建议先用一个表格把 Smic40nm PDK 中会用到的 pmos 器件整理清楚包括cell 名称model name最小 L可用 W 范围阈值类型适用电压域是否有 rf 版本版图中需要额外注意的层次。这个表可以由每个工程师维护也可以由项目组共享。后面做设计 review、版图 review 的时候这张表能省掉大量重复确认时间。6.2 不要随意修改 PDK 自带的 callback很多初学者为了让某个参数联动更“顺手”会去修改 PDK 库中的 callback 文件。在 Smic40nm 这类正式流片用的 PDK 中任何对 Pcell 定义或 callback 的修改都可能导致 LVS 提取异常甚至影响最终流片层。正确做法是在 test library 中验证不修改 PDK 原始库如果确实需要特殊结构用上层 cell 包一层而不是改底层 Pcell。6.3 利用 layer map 做层次对照在做 GDS 导入导出、或对接第三方工具时Smic40nm PDK 的 layer map 文件非常重要。建议每位版图工程师都保留一份 layer map 的拷贝并对照 PDK 文档做注释。这样在跑 DRC/LVS 或者做层号检查时能快速确认当前看到的NWELL、P对应的实际 GDS 层号。但注意layer number 在不同 PDK 版本间可能不同不要在文章中写死某个具体层号。应当在项目内部以 PDK 的layermap文件为准。6.4 关注 bulk 与 NWell 连接pmos 最常见的版图错误之一是 bulk 端没有接到正确的电位。在 Smic40nm PDK 中pmos 的 bulk 必须连接到 NWell而 NWell 通常连接到电路中最高的电位对普通逻辑/模拟电路来说通常是 VDD。如果直接调用 PDK 里的 pmos 但忘记接 bulkLVS 有时候会通过“全局衬底”默认连接通过但 PEX 提取后的寄生 BJT 和二极管特性会不对。最好在 schematic 阶段就显式画出 NWell 接触而不是依赖全局电位。6.5 版本管理谁改的 PDK 要记录PDK 升级在项目周期中很常见。Smic40 的 PDK 从早期版本到后续版本cell name、model name、callback 行为都有可能变化。建议在项目环境中记录 PDK 版本号并在每次 PDK 升级后跑一次全模块的回归仿真和 LVS 检查确认器件参数没有发生变化。6.6 安全合法使用 PDK 文件最后再强调一点PDK 文件是晶圆厂授权给设计公司的核心资产。使用 Smic40nm PDK 时要注意许可证范围不得私自拷贝、传播或上传到公共平台。项目内部共享可以但跨项目、跨公司使用前必须确认授权边界。工程上的“器件识别”也应当只发生在已获得合法授权的环境内。7. 总结与后续学习建议本文从 Smic40nm PDK 的目录结构入手围绕 pmos 器件依次梳理了PDK 器件识别的基本思路symbol、schematic、layout、CDF 四个维度pmos 与 nmos 在阱区、注入、寄生二极管方向上的差异Smic40nm pmos 的版图核心层次NWELL、Active、Poly、P等的查看方法通过 Virtuoso 的 Library Browser、Layout XL、Connectivity Highlight、CDF 参数面板进行实战操作常见 LVS、显示、参数联动问题的排查思路项目中管理 PDK 器件参数、版本和 callback 的工程建议。下一步推荐的学习路线是先用本文方法把你项目里用到的 pmos/nmos 全部整理成一张速查表。打开 PDK 自带的 demo cell逐层查看版图对照 layer map 做笔记。跑一遍 DRC/LVS 和 PEX观察不同 W/L/Finger/Multiplier 对提取结果的影响。如果做模拟设计再深入学习 Smic40nm 的 rf 器件、mom/mim 电容、varactor 的层次结构。器件识别看起来是入门操作但它决定了你后续所有仿真、版图、验证工作的数据源是否正确。建议每一位刚接触 Smic40nm PDK 的工程师都花半天时间专门做一次完整的 pmos 层次查看训练。动手把层次打开、把 CDF 读一遍、把 model name 记清楚后面很多问题会少踩很多坑。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价