4. 设计工具链:Cadence IC618/Mentor Calibre环境搭建、仿真器配置与Linux基础

说实话,很多刚入行的朋友觉得设计工具链就是装个软件、点个按钮。但我在流片项目中吃过不少工具的亏——有一次因为环境变量配错,整个团队浪费了两天时间排查仿真结果异常。嗯,工具链这东西,说白了就是你的武器库,用不好再牛的设计也出不来。

4.1 Linux基础操作——你绕不开的战场

18μm工艺的EDA工具几乎都跑在Linux上。我个人习惯用Red Hat Enterprise Linux 7.9,CentOS 7也凑合。你想想看,如果连基本的文件操作和进程管理都不熟,后面调试起来会非常痛苦。

必须掌握的Linux命令清单:

  • ls -l / cd / pwd —— 文件浏览三板斧
  • ps -ef | grep spectre —— 查看仿真进程是否卡死
  • kill -9 PID —— 强制杀掉卡住的仿真(我经常用)
  • source .bashrc —— 重载环境变量
  • tar -xzvf PDK.tar.gz —— 解压工艺库
  • vim .cdsinit —— 编辑Cadence初始化文件

我曾经遇到一个情况:仿真跑了一整天没结果,用top一看,CPU占用0%,进程早就挂了。从那以后,我每次跑长仿真都会定时ps检查一下。

4.2 Cadence IC618环境搭建

IC618是目前主流版本,比IC617多了不少提升。搭建环境其实就三步:安装软件、配置license、设置环境变量。

4.2.1 安装与License配置

安装包一般从厂商拿到的是ISO镜像。挂载后运行./SETUP.SH就行。重点在license——我建议用lmstat -a检查license是否正常,别等到跑仿真了才发现feature不够。

我的习惯:把license文件放在/opt/cadence/license/目录下,然后在.bashrc里加一行:

export CDS_LIC_FILE=5280@license_server_ip

这样所有Cadence工具都能共用。

4.2.2 工艺库PDK集成

18μm工艺的PDK通常包含:

  • 器件模型(MOS、电阻、电容的Spectre/HSPICE模型)
  • 版图技术文件(.tf文件,定义图层规则)
  • DRC/LVS规则文件(给Calibre用的)
  • 参数化单元PCELL(自动生成版图用的)

我建议把PDK解压到固定路径,比如/home/PDK/18um/,然后在.cdsinit里用load命令加载。千万别把PDK散落在各个项目目录里——我见过有人这么干,结果版本混乱,流片前才发现用了旧模型。

4.3 Mentor Calibre环境配置

Calibre是物理验证的标配。DRC和LVS都靠它。配置其实不复杂,但有几个坑要注意。

4.3.1 Calibre安装要点

Calibre安装包通常叫calibre_2023.2_linux_x86-64.bin。运行后按提示走就行。关键在环境变量:

export CALIBRE_HOME=/opt/mentor/calibre/2023.2
export PATH=$CALIBRE_HOME/bin:$PATH
export MGC_LICENSE_FILE=1717@license_server_ip
export CALIBRE_2013_ONLY=1  # 兼容老PDK时可能需要

注意:Calibre和Cadence的交互需要设置CALIBRE_ENABLE_SKILL环境变量。我曾经忘了设这个,结果在Virtuoso里点"Run DRC"没反应,折腾了半天才发现是环境变量没配。

4.4 仿真器配置:Spectre vs HSPICE

做放大器设计,仿真器是核心。我个人习惯用Spectre做前仿,HSPICE做后仿验证。为什么?因为Spectre收敛性好,HSPICE精度高——这是流片验证出来的经验。

特性 Spectre HSPICE
收敛性 优秀(默认设置即可) 一般(需要调option)
精度 足够前仿 更高(后仿推荐)
速度 快 稍慢
与Cadence集成 原生支持 需要额外配置

4.4.1 Spectre配置

IC618自带Spectre,一般不用额外装。但要注意仿真器版本和PDK模型的兼容性。我建议在ADE L/XL里设置:

simulator: spectre
model:  /home/PDK/18um/models/spectre/18mm_models.scs
corner: tt

嗯,这里有个小技巧:在.cdsinit里加一行envSetVal("spectre.envOpts" "controlMode" 'string "batch"),可以让Spectre在后台跑,不占用终端。

4.4.2 HSPICE配置

HSPICE需要单独安装。配置环境变量:

export HSPICE_HOME=/opt/synopsys/hspice/2022
export PATH=$HSPICE_HOME/bin:$PATH
export SNPSLMD_LICENSE_FILE=27000@license_server_ip

在Cadence里调用HSPICE,需要在ADE里选择hspiceS作为仿真器。我建议写一个.hspiceinit文件,放在home目录下,里面放常用option:

.option post=2 probe=0 accurate=1
.option runlvl=5
.option method=gear

避坑指南:我曾经用HSPICE跑后仿,结果波形全是乱的。查了两天发现是runlvl设得太低,导致精度不够。后仿建议runlvl=5或6。

4.5 工具链整体架构

下面这张图是我自己总结的工具链流程,每次带新人我都会先让他们看这个:

18μm CMOS放大器设计工具链流程图 18μm CMOS放大器设计工具链 电路设计 (Virtuoso) 前仿真 (Spectre) 版图设计 (Virtuoso Layout) 物理验证 (Calibre DRC/LVS) 后仿真 (HSPICE) 关键环境变量 CDS_LIC_FILE MGC_LICENSE_FILE SNPSLMD_LICENSE_FILE PDK核心文件 器件模型 (.scs/.lib) 技术文件 (.tf) DRC/LVS规则

从这张图能看出来,工具链是环环相扣的。前仿真不过关,别急着画版图;版图画完了,DRC/LVS必须跑干净;最后后仿真验证通过,才能放心去流片。我见过有人跳过前仿直接画版图,结果后仿发现增益不够,版图全白画了——嗯,这就是不按流程走的代价。

4.6 环境验证——跑通第一个测试

环境搭好后,我建议跑一个简单的反相器测试,验证整个链路是否通。步骤:

  1. 在Virtuoso里画一个NMOS和PMOS组成的反相器
  2. 用Spectre跑DC分析和瞬态分析
  3. 导出GDSII版图
  4. 用Calibre跑DRC(应该零错误)
  5. 提取寄生参数,用HSPICE跑后仿

注意:如果DRC报错,先检查技术文件路径是否正确。我遇到过最坑的一次是PDK里的.tf文件版本和IC618不兼容,导致所有图层都识别不了。解决办法是找PDK厂商要更新版本。