2. Virtuoso设计环境搭建

模拟IC设计不是“打开软件就能画电路”的线性动作,而是一套围绕项目工作区展开的工程化环境。Virtuoso本身由多个可独立启动的工具组成:原理图编辑器(Schematic Editor)、符号编辑器(Symbol Editor)、版图编辑器(Layout Editor)、ADE Assembler/Explorer、Virtuoso Visualization & Analysis(ViVA)等。环境搭建的目标,是让这些工具共享同一套库路径、工艺库、仿真模型和启动配置,从而做到“一次配置、长期复用”。

一、启动方式与工作目录

Virtuoso的启动依赖两个环境变量:CDS_INST_DIR指向Cadence安装根目录,PATH中包含$CDS_INST_DIR/tools/bin。启动前必须先确定工作目录,因为Virtuoso会在当前目录下生成.cdsinit、.cdsenv、cds.lib等配置文件,并默认把仿真、日志、波形输出到该目录。推荐做法是为每个项目建立独立目录,例如:

mkdir -p ~/projects/ota_5t/{cds,sim,doc,script}
cd ~/projects/ota_5t/cds
virtuoso &

其中cds存放库定义与启动脚本,sim存放仿真结果,doc存放设计说明,script存放Ocean脚本或SKILL脚本。这样做的直接好处是:不同项目的cds.lib互不干扰,仿真数据不会混在一起,项目可以整体打包迁移。

二、库管理:cds.lib与库路径

Virtuoso通过cds.lib文件把“逻辑库名”映射到“物理目录”。库分为两类:一类是工艺库(如gpdk180、tsmc18),通常只读,由代工厂提供;另一类是设计库(如ota_5t_lib),由设计者创建并写入。一个典型的cds.lib内容如下:

DEFINE gpdk180 /opt/PDK/gpdk180
DEFINE ota_5t_lib ./ota_5t_lib
INCLUDE /opt/PDK/cds.lib

DEFINE定义库名与路径,INCLUDE把PDK自带的库定义引入进来。路径既可以是绝对路径,也可以是相对于cds.lib所在目录的相对路径。建议设计库使用相对路径,工艺库使用绝对路径,这样项目目录整体移动后设计库仍然可用。

在Virtuoso的Library Manager中,可以新建库并选择“Attach to an existing techfile”,把工艺库的techfile关联到新库上。若关联错误,版图编辑器中会出现层选择器为空、无法画版图的现象。判断库是否配置正确,可以看Library Manager中库图标是否正常、打开原理图时元件是否带符号、版图是否能看到工艺层。

三、工具集成与启动配置

Virtuoso的启动行为由.cdsinit和.cdsenv控制。.cdsinit是SKILL脚本,在启动时执行,适合加载快捷键、设置默认选项、自动打开Library Manager;.cdsenv保存工具的环境变量,如仿真器默认选项、波形显示设置。一个最小可用的.cdsinit示例:

hiSetBindKey("Schematics" "<Key>F2" "schHiEditObject()")
hiSetBindKey("Layout" "<Key>F3" "leHiCreateRectangle()")
envSetVal("spectre" "temp" 'string "27")
envSetVal("auCore" "simResultsLocation" 'string "./sim")

工具集成还体现在ADE与Spectre、ViVA的联动上:ADE中设置仿真器为spectre,模型库指向PDK的.scs文件,仿真结果自动送入ViVA显示。若模型库路径写错,仿真会报“model file not found”;若simResultsLocation未设置,结果会散落在当前目录,难以管理。

Virtuoso 项目工作区结构与环境变量关系 项目工作目录 ~/projects/ota_5t/ cds/ ← 启动目录 sim/ ← 仿真结果 script/ ← Ocean/SKILL 启动配置文件 .cdsinit (SKILL 快捷键) .cdsenv (工具环境变量) cds.lib (库名→路径映射) 库与工艺 gpdk180 (只读工艺库) ota_5t_lib (设计库) techfile 关联 Virtuoso 工具集成层 Schematic Symbol Layout ADE Spectre / ViVA 环境变量: CDS_INST_DIR = /opt/cadence/IC617 PATH 包含 $CDS_INST_DIR/tools/bin 启动命令:cd ~/projects/ota_5t/cds && virtuoso &

四、常用快捷键与操作习惯

快捷键不是装饰,而是把重复操作压缩成肌肉记忆。原理图编辑器中,i调用实例(Instance),w画连线(Wire),p放置引脚(Pin),q查看/编辑属性,c复制,m移动,Shift+Z缩放适配,F2保存。版图编辑器中,r画矩形,p画路径,l画标签,Shift+K测量距离。这些键位可以在.cdsinit中用hiSetBindKey重新绑定,建议把最常用的三到五个操作固定下来,而不是频繁翻菜单。

一个容易被忽略的习惯是:在原理图中用q查看器件参数时,确认模型名、宽长比、倍数(m)是否正确;在版图中用Shift+K测量关键尺寸,确认与设计规则一致。快捷键的价值在于让“检查”这个动作变得足够便宜,从而愿意反复做。

五、建立可复用工作区的检查清单

完成上述配置后,可以用一份简短清单确认工作区是否可复用:

  • 项目目录结构已建立,cds、sim、script分离;
  • cds.lib中工艺库用绝对路径、设计库用相对路径;
  • .cdsinit中已绑定常用快捷键,并设置simResultsLocation;
  • Library Manager中能看到工艺库和设计库,新建cellview时能选到正确techfile;
  • ADE中仿真器为spectre,模型库路径指向PDK的.scs文件;
  • 跑一次最小仿真(如DC工作点),确认结果能自动进入ViVA。
建议把.cdsinit、.cdsenv、cds.lib纳入版本管理(如git),但不要提交sim/下的仿真数据。这样新机器上只需clone项目、设置CDS_INST_DIR,即可在几分钟内恢复完整设计环境。

环境搭建的验收标准不是“软件能打开”,而是“换一台机器、换一个项目目录,仍能按同一套配置启动并跑通一次仿真”。做到这一点,后续的电路设计、仿真、版图才有稳定的起点。