第二章 EDA工具环境搭建:Cadence IC617/618安装、MMSIM仿真器配置、Calibre DRC/LVS集成、Assura/QSRE环境设置

各位同学,咱们直接进入正题。

做模拟IC设计,EDA环境就是你的战场。工具装不好,后面全是坑。我在中芯国际0.18um工艺上摸爬滚打这么多年,光环境搭建就折腾过不下二十次。今天我把这些经验掰开了揉碎了讲给你听。

2.1 Cadence IC617/618 安装实战

先说版本选择。IC617和IC618,我个人的建议是:

  • IC617:稳定,兼容性好。如果你用的是CentOS 6/7,或者RHEL 6/7,选它没错。我最早的项目就是用IC617跑的,三年没出过环境问题。
  • IC618:新功能多,界面更现代。但要注意,它对操作系统要求高,最好用CentOS 7.5以上或RHEL 8。我去年换到IC618,主要是为了用它的ADE Explorer,确实比617的ADE L快不少。

重要提醒:IC618对glibc版本有硬性要求。低于2.17的库,安装时会直接报错。别问我怎么知道的——我曾经在一台老服务器上折腾了整整两天。

安装步骤其实不复杂,但有几个关键点:

  1. 解压安装包:用tar -xvf解压,注意磁盘空间,IC617大概需要8GB,IC618需要12GB以上。
  2. 设置环境变量:这是最容易出错的地方。我习惯把环境变量写在.bashrc里,而不是.cshrc。为什么?因为bash更通用,而且后续配置MMSIM和Calibre时,bash的语法更直观。
# 我的 .bashrc 配置示例
export CDS_ROOT=/opt/cadence/IC618
export CDS_INST_DIR=$CDS_ROOT
export PATH=$CDS_ROOT/tools/bin:$CDS_ROOT/tools/dfII/bin:$PATH
export CDS_LIC_FILE=5280@license-server-ip
export OA_HOME=$CDS_ROOT/oa_v22.60.010

小技巧:安装完成后,先跑一下virtuoso -nograph测试。如果报错,八成是license问题。检查lmstat -a看看license是否checkout成功。

2.2 MMSIM仿真器配置

MMSIM是Cadence的仿真引擎,说白了就是跑spectre和ams的底层工具。配置它,核心就两件事:路径和版本。

我遇到过最坑的事:MMSIM版本和IC版本不匹配。比如IC618配MMSIM15.1,仿真时直接core dump。后来查了Cadence的兼容性矩阵,才发现IC618必须配MMSIM16.1以上。

IC版本 推荐MMSIM版本 备注
IC617 MMSIM15.1 / 16.1 15.1最稳定
IC618 MMSIM16.1 / 17.1 16.1兼容性最好

配置方法很简单:

export MMSIM_HOME=/opt/cadence/MMSIM16.1
export PATH=$MMSIM_HOME/tools/bin:$PATH
export CDS_AHDLCMI_ENABLE=NO  # 这个变量建议设成NO,避免某些AMS仿真报错

注意:如果你用IC618,记得把CDS_Netlisting_Mode设为Analog。否则spectre可能会调用错误的网表格式,仿真结果完全不对。我曾经因为这个查了三天,最后发现是环境变量没设。

2.3 Calibre DRC/LVS集成

Calibre是Mentor(现在叫Siemens EDA)的工具,做DRC和LVS的标配。在中芯国际0.18um工艺上,Calibre的rule file是必须的。

集成Calibre到Cadence里,其实就是在.cdsinit文件里加几行代码。嗯,这里要注意,不同版本的Calibre,加载方式略有不同。

;; 在 .cdsinit 中添加
load( "/opt/mentor/calibre/2021.2/calibre.skl" )
calibreSetRunDir( "./calibre" )
calibreSetView( "layout" )

我个人习惯把Calibre的run directory设成./calibre,这样每个项目都有自己的calibre文件夹,不会互相干扰。你想想看,如果所有项目共用一个目录,DRC结果混在一起,那画面太美我不敢看。

避坑指南:我曾经因为Calibre的CALIBRE_HOME环境变量没设对,导致DRC跑不起来。检查一下:

export CALIBRE_HOME=/opt/mentor/calibre/2021.2
export PATH=$CALIBRE_HOME/bin:$PATH
export MGC_HOME=$CALIBRE_HOME

这三个变量缺一不可。尤其是MGC_HOME,很多教程里没提,但Calibre内部会用到它。

2.4 Assura/QSRE环境设置

Assura是Cadence自家的物理验证工具,QSRE是它的一个变种。说实话,现在用Assura的人越来越少了,大家都转Calibre了。但有些老项目或者特定工艺,还是得用Assura。

配置Assura,核心是设置ASSURA_HOMEASSURA_LICENSE。我建议你把它和Calibre分开配置,不要混在一起。

export ASSURA_HOME=/opt/cadence/ASSURA41
export PATH=$ASSURA_HOME/tools/bin:$PATH
export ASSURA_LICENSE_FILE=5281@license-server-ip

QSRE环境其实和Assura差不多,只是多了一个QSRE_HOME变量。我记得有一次帮同事配置QSRE,折腾了半天发现是license端口写错了。这种低级错误,犯一次就记住了。

我的建议:如果你是新项目,直接用Calibre。Assura虽然也能用,但rule file更新慢,而且中芯国际的foundry对Calibre支持更好。除非客户指定,否则别给自己找麻烦。

2.5 环境验证与常见问题

环境搭好了,怎么验证?我的习惯是三步走:

  1. 启动virtuosovirtuoso &,看CIW窗口有没有报错。如果有ERROR字样,先解决它。
  2. 跑一个简单仿真:随便画个反相器,跑个tran仿真。能出波形,说明MMSIM和IC的联动没问题。
  3. 跑一次DRC:用Calibre跑个简单的DRC,哪怕只有一条rule。能跑通,说明Calibre集成成功。

常见问题我列一下:

问题现象 可能原因 解决方法
virtuoso启动报license错误 license server没启动或端口不对 检查lmstat,确认端口和server IP
spectre仿真报command not found MMSIM路径没加到PATH里 检查which spectre,重新source .bashrc
Calibre DRC报cannot open rule file rule file路径不对或权限问题 用绝对路径,检查文件权限
Assura报QSRE not found QSRE_HOME没设或设错了 重新设置QSRE_HOME,指向正确的安装目录

最后说一句:环境搭建这东西,一次配好,后面就省心了。别怕麻烦,把每一步都走扎实。我当年刚入行时,配环境配了整整一周,但后面三年都没再碰过环境问题。值不值?你自己掂量。

下一章咱们讲PDK安装和工艺库配置,那才是真正开始干活的地方。