首页 / 资讯中心 / 文章详情

Virtuoso 模拟 IC 设计全流程:从原理图到后仿的入门实战

Virtuoso 模拟 IC 设计全流程:从原理图到后仿的入门实战 ★ FEATURED ARTICLE
简介这份资源是西安交通大学国家集成电路人才培养基地编写的 Cadence Virtuoso 入门培训教材面向零基础或初涉 IC 设计的在校学生与转行工程师帮助其快速建立模拟集成电路设计与仿真的完整认知。内容从 Cadence 概述与运行环境配置讲起依次覆盖 Composer 原理图输入、器件添加与连线、元件参数设置、Symbol 创建与编辑再到基于 ADE 的电路仿真流程以及版图设计与布局布线要点形成从概念到物理实现的入门闭环。资源包共 1 个 doc 文档约 1.44MB篇幅精炼、目录层级清晰便于按章节顺序自学或作为课程配套讲义查阅。目前已有 6175 人学习说明其在 IC 入门群体中具有较高参考价值。读者可借此掌握 Virtuoso 基本操作路径理解模拟电路设计流程为后续深入学习定制器件模型、系统级集成等高级内容打下基础。1. 从一份 58 页的培训讲义说起模拟 IC 入门到底该先跑通哪条链路很多人第一次打开 Virtuoso面对 CIW 窗口和一堆库文件是懵的菜单能点器件能拖但不知道从原理图到版图再到后仿这条链路哪一步会卡住。这份 58 页的培训讲义的价值不在于讲了多少理论而在于它把一条最小可复现的链路完整走了一遍——从建工作目录、配环境变量到画反相器、建 Symbol、跑 ADE 仿真再到 Virtuoso 版图、Assura DRC/LVS/RCX、最后后仿真。对集成电路学习者和刚接触 IC 设计入门的同学来说它解决的是“工具链跑不通”这个最前置的问题。适合谁适合已经知道 MOS 管是什么、但还没独立跑完一次完整设计流程的人。下面我按这份资料的章节顺序把每一步的关键参数、常见翻车点和我的实操习惯拆开讲。2. 环境与工作库启动 Virtuoso 前必须落地的四件事2.1 工作目录与四个配置文件多人共用的工作站上第一件事是隔离自己的工作空间。讲义里用mkdir建目录、cd进入然后执行cds.setup自动配置。这套流程背后对应四个文件缺一个都可能出问题文件作用缺失后的典型现象.cshrc环境变量、软件路径、license 指向敲icfb提示 command not found.cdsenv各工具的初始设置工具能开但默认参数不对cds.lib库管理文件首次运行自动生成库管理器里看不到自己的库.cdsinit初始化设置与快捷键绑定快捷键全部失效讲义特别提到快捷键失效时要把安装目录下的.cdsinit拷到工作目录这是血泪经验——很多人以为软件坏了其实只是初始化文件没加载。拷贝命令长这样# 把默认初始化文件拷到自己的工作目录路径按实际安装位置替换 cp /cad/cds/IC5141/tools/dfII/cdsuser/.cdsinit /home/yourname/workdir逻辑说明.cdsinit是 SKILL 脚本Virtuoso 启动时会在当前目录查找并执行它里面定义了键绑定和默认行为。参数上唯一要注意的是目标路径必须是你执行icfb时所在的目录否则不生效。2.2 技术文件TF 与 display.drf 的分工TFTechnology File文件由工艺方提供定义了版图图层、符号化器件、GDSII 导出时的层号映射display.drf控制版图显示颜色。两者要一起拷到工作目录。讲义里建库时选择Compile a new techfile并填入 TF 路径这一步决定了你的库能不能画版图。常见做法是只做原理图仿真可以先不挂 TF但只要涉及版图库必须绑定正确的 TF否则 LSW 图层窗口是空的。2.3 建库与启动icfb 与库管理器启动命令是icfb后台运行主控窗口 CIW 是后续所有操作的入口。建库走Tools - Library Manager - File - New - Library输入库名后弹出 Technology File 设置选编译新 techfile 并指向 TF 文件。建完后当前目录下会自动生成同名目录存放库文件。这里有个容易忽略的点库名和目录名绑定后期改库名不能只改文件夹要走库管理器操作否则cds.lib里的映射会断。2.4 环境跑通的验证标准怎么判断环境真的配好了我的习惯是建完库后立刻新建一个空 schematic放一个analogLib里的nmos4执行Check and Save快捷键大写 X看 CIW 输出区有没有报错。没有报错、状态栏显示 saved说明库、TF、初始化文件三者都对上了。这一步花两分钟能省掉后面画完电路才发现存不进去的返工。3. Composer 画反相器器件、连线、参数与端口的实操细节3.1 添加器件与旋转放置反相器需要四个元素PMOS、NMOS、vdd、gnd。添加器件三种方式等价——菜单Add - Instance、快捷键i、工具栏按钮。点Browse打开库浏览器勾选Show Categories分类显示路径是analogLib - Actives - pmos4 - symbol。选中后窗口自动填好 Library/Cell/View点Hide隐藏窗口鼠标上就挂着器件按r旋转左键放置ESC退出。注意vdd和gnd只是全局电源地标识不是独立电源器件vdd本身不提供电压。仿真时必须有gnd否则不收敛——这是新手最常见的仿真失败原因之一。3.2 连线与线命名连线用wwire narrow总线用大写Wwire wide别混。进入命令后起点终点各点一次左键可以连续画多段画完按ESC退出。给线命名用l输入名字后把标签放到线附近如果离得远需要再点一下目标线完成绑定。命名不是装饰ADE 里选输出节点、后仿提取寄生网络都靠这些名字定位。3.3 参数设置pPar 函数与单位陷阱选中器件按q打开属性框。PMOS 的 model name 填p18栅长填常量0.18u栅宽填函数pPar(wp)NMOS 对应n18和pPar(wn)。pPar的作用是把栅宽做成可传递参数上层调用这个 cell 时给wp/wn赋值即可这是层次化设计的基础。单位写法有两个坑一是不要自己加单位后缀0.18uM是错的系统会自动换算二是如果非要写单位数值和单位之间必须留空格否则M会被识别成变量。模型名p18/n18里的 18 代表 1.8V 电源域具体模型参数在工艺方提供的 SPICE 模型文件里仿真时要另外指定该文件路径。3.4 端口、检查与保存端口用p放置输入Vin方向选 input输出Vout方向选 output分别放到左右两条水平线上。完成后按大写X执行Check and SaveCIW 会输出检查结果。这里要养成读 CIW 输出区的习惯警告和错误都写在那里不看就等于闭眼调试。3.5 Composer 的两个操作陷阱第一多数命令会一直保持激活状态直到你调用别的命令或按ESCdelete尤其危险忘记退出会连续误删。第二Undo 默认只能撤销一次可以在 CIW 的Options - User Preferences里改到最多 10 次。我的习惯是每完成一个命令就按一次ESC保存用大写S别等画完一大片再存。4. Symbol 与 ADE 仿真把反相器变成可复用模块并跑出波形4.1 从 Cellview 生成 Symbol打开反相器 schematic走Design - Create CellView - From CellviewLibrary/Cell 已自动填好确认 To View Name 是symbol点 OK。弹窗会自动识别原理图里的输入输出端口默认输入在左输出在右确认即可。生成的默认 Symbol 是绿色矩形加引脚红色矩形是点选热区。习惯上反相器画成三角形加小圆圈删掉绿色矩形用Add - Shape - Polygon重画引脚位置保持不动。4.2 搭仿真测试台新建一个 schematic 作为测试台从自己的库调出刚建的invertersymbol再放analogLib的vdc、vpulse、gnd。输入接脉冲源模拟翻转输出接负载电容。这一步的关键是测试台和被测电路分属不同 cell改被测电路不会影响测试台这是模块化仿真的基本纪律。4.3 ADE 里的设计变量与仿真设置打开 ADELaunch - ADE L在Setup - Model Libraries里加载工艺方提供的 SPICE 模型文件路径指向.mdl文件。然后在 ADE 的变量区定义wp、wn给初值比如2u。仿真类型选tran停止时间按电路规模定反相器看翻转特性一般几十纳秒够用。输出选Vin和Vout两条网络的电压Outputs - To Be Plotted - Select on Schematic直接点线最省事。# ADE 仿真设置要点非代码按界面字段对照 Analysis : tran Stop Time : 50n Model Library : 工艺方 .mdl 文件路径 Design Var : wp2u, wn1u Outputs : /Vin, /Vout参数说明停止时间太短看不到完整翻转太长浪费机时变量初值决定管子尺寸先给合理值跑通再扫参数。保存当前仿真设置为 state下次直接加载不用重配。4.4 看波形与结果分析跑完Netlist and Run波形窗口里看输入输出时序关系重点看翻转阈值、上升下降时间、是否有明显延迟。如果波形是一条直线先查gnd有没有接、模型文件路径对不对、变量有没有赋值。讲义里还提到仿真结果分析实操上就是量几个关键点输出高电平是否接近 vdd、低电平是否接近 0、翻转点是否在输入摆幅中点附近。5. 版图到后仿Virtuoso Layout、Assura 三件套与寄生回标5.1 画反相器版图的基本顺序新建 layout view先确认 LSW 图层窗口可见层设置正确依赖 TF 和 display.drf。画法顺序是先 NMOS 的有源区、多晶硅栅、源漏接触再 PMOS 放 N 阱里然后信号线连接、电源地连接、衬底接触。每一步都要对照设计规则手册讲义里专门强调“参阅设计规则手册”因为最小线宽、间距、包围这些数字错了DRC 一定报。衬底接触容易被漏掉漏了 LVS 会报衬底网络未连接。5.2 DRCAssura 跑法与错误定位Assura - Run DRC选规则文件跑完在结果浏览器里逐条看错误。讲义提到两个高级功能值得记住屏蔽器件exclude cells和屏蔽错误waive前者用于跳过不需要检查的单元后者用于确认无害的错误。屏蔽掉的错误还能作为 DRC 运行参数传入方便团队统一口径。修错误的原则是先修系统性错误比如某层间距全错再修个例。5.3 LVS版图与原理图对不上怎么查LVS 前要准备好网表提取设置跑完看报告里的不匹配项。常见三类器件数量不一致多半是并联管子没识别或衬底接触缺失、网络名不匹配端口名或线名拼写差异、参数不匹配W/L 比例对不上。查的时候从报告末尾的器件列表倒推先定位是哪个网络再回版图看连接。5.4 RCX 寄生提取与后仿Assura RCX提取寄生电阻电容输出寄生网表。后仿流程是先跑层次化Hierarchy把寄生网表挂到原理图上再分别对不带寄生和带寄生的版本跑 ADE 仿真对比波形差异。讲义里把这两步分开写是有道理的——先确认功能正确再看寄生带来的延迟和波形退化否则分不清是设计错还是寄生影响。6. 避坑与排查五个让新手卡半天的真实问题6.1 快捷键全部失效现象软件能启动但i、w、q都没反应。原因工作目录下没有.cdsinit初始化脚本没加载。解决从安装目录拷一份到当前工作目录重启icfb。6.2 仿真不收敛或波形全平现象ADE 跑完没有波形或输出恒为某值。原因测试台缺gnd或模型文件路径没配或设计变量未赋值。解决按“地—模型—变量”顺序排查先看 CIW 和仿真日志的报错行。6.3 参数写成 0.18uM 后器件尺寸异常现象管子尺寸变成离谱数值或报变量未定义。原因单位后缀被当成变量参与解析。解决只写0.18u让系统自动换算必须写单位时数值与单位间留空格。6.4 建库时没挂 TF后面画不了版图现象LSW 图层窗口空白版图工具无法选层。原因建库时选了不编译 techfile 或 TF 路径填错。解决重建库并正确指向 TF 文件或通过技术文件管理重新附着别手动改目录结构。6.5 DRC 通过但 LVS 报衬底未连接现象DRC 干净LVS 报告衬底网络缺失。原因画版图时漏做衬底接触tap。解决在 NMOS 接地的 P 型衬底区和 PMOS 的 N 阱区补上对应接触重新跑 LVS。7. 进阶技巧用参数化与 state 管理把重复劳动压到最低跑通一遍反相器只是起点真正省时间的是把可复用的东西固化下来。第一个技巧是参数化pPar不只用于栅宽可以把关键尺寸都做成变量在 ADE 里用参数扫描一次跑多组比手动改尺寸重跑快得多。第二个技巧是 state 管理ADE 里Save State把模型路径、变量、输出、仿真设置打包存下来换项目时Load State直接复用避免每次重配模型库路径这种低效操作。第三个技巧是版图复用反相器版图画完后存成独立 cell缓冲器版图直接调用两个反相器拼接讲义里“画第二个反相器”“画缓冲器版图”就是这个思路层次化不仅省事LVS 和 RCX 的层次化提取也更干净。验证方法上我一般用“三步对照”原理图前仿波形、带寄生的后仿波形、关键节点延迟差值三者放在同一张图里对比。如果后仿延迟比前仿大出一个数量级先怀疑 RCX 提取的寄生网络有没有正确回标而不是急着改设计。参数表可以这样整理检查项前仿后仿判据输出高电平≈vdd≈vdd偏差小于 5%翻转延迟基准值略大增量在合理寄生范围内上升/下降时间基准值变缓无明显振铃从那以后我每次开新项目都强制先跑一遍“空 schematic Check and Save 一次最小 tran 仿真”这条冒烟链路确认环境、模型、变量三件事都通再开始画正式电路。这个习惯帮我挡掉了大半“以为是设计问题其实是环境问题”的返工。希望帮到你。本文还有配套的精品资源点击获取
阅读完成 · 觉得有帮助?
咨询建站