简介:面向集成电路设计与验证方向的学习者与工程师,这份文档聚焦 Ubuntu 20.04 环境下搭建 Cadence 工具链的完整流程,覆盖 IC617(HotFix)、Spectre18、Calibre19 与 XCELIUMMAIN_18 等模拟、数字及数模混合仿真组件,适合需要从零配置 EDA 环境或迁移平台的中高级用户参考。资源包共 1 个 docx 文件,约 3.08MB,以图文步骤形式组织,便于按章节对照操作。内容从系统准备、依赖库安装、Java 与字体支持配置,到 redhat-release 伪装、软链接处理、许可证管理与环境变量设置均有涉及,并提示用 CPU-Z 检查 AVX2 指令集、避免共享文件夹等易踩坑细节,可帮助读者少走弯路、快速完成安装与验证。目前已有 7698 人学习下载,具备较高的参考价值。
1. 在 Ubuntu 20.04 上把 IC617 全家桶跑起来:先看 AVX2,再谈安装
手里拿到一套 Cadence IC617 HotFix、Spectre18、Calibre19、XCELIUMMAIN_18 的安装包,第一反应往往不是兴奋,而是心里打鼓——这套东西在 Ubuntu 20.04 上到底能不能装成。我拆过这套资源,结论是能装,但顺序和依赖比想象中讲究。它解决的是模拟/数模混合 IC 设计环境的本地搭建问题:IC617 负责原理图与版图,Spectre18 做电路仿真,Calibre19 跑 DRC/LVS,XCELIUMMAIN_18 承担数模混仿。适合电子类专业的学生、刚进 IC 设计岗需要自建环境的工程师,以及想在家复现一套完整前后端流程的从业者。装之前有一件事必须先做:确认 CPU 支持 AVX2 指令集,否则 Calibre 装完打不开,这是整套流程里最容易被忽略的前置条件。
2. 装系统与依赖:Ubuntu 20.04 的底子怎么打
这套工具链对系统环境的要求,说穿了就是「老软件跑在新系统上」的兼容问题。Cadence 和 Mentor 的安装脚本默认认 RedHat 系,Ubuntu 的库路径、shell 默认值、32 位库支持都和它不一样,所以系统装完不能直接开干,得先把底子铺平。我一般把这一章拆成系统安装、依赖补齐、兼容层伪造三块,顺序不能乱,乱一步后面就得多花两小时排错。
2.1 虚拟机与系统安装的取舍
虚拟机内存给 4G 以上,磁盘尽量大,这是硬要求。IC617 的安装目录加上 Spectre 的模型库、Calibre 的规则文件,几十 G 很容易吃满,root 分区小了中途报「No space left on device」会让人很崩溃。安装时选英文、最小安装,计算机名别用默认的,后面 license 和环境变量里会反复出现主机名,默认名容易和教程对不上。
光盘启动安装时不要联网,装完再配网络。共享文件夹这一步先别加,等 VMware Tools 装好、系统更新完再挂载,否则安装器可能因为挂载点权限问题卡住。装完重启,关掉开机自动挂载光盘,然后联网做两件事:
sudo apt update sudo apt upgrade更新完再装 VMware Tools,这样内核头文件和编译环境是齐的,vmware-install.pl不会因为找不到 gcc 或 kernel headers 中途退出。Tools 装完重启一次,共享文件夹再挂上,后面 IScape 直接从共享目录跑,省去往虚拟机里拷安装包的麻烦。
2.2 依赖库一次补齐:ksh、csh、32 位库与字体
Cadence 的安装脚本和启动脚本大量依赖 ksh 和 csh,Ubuntu 默认没有,这是第一个坑。Java 是 IScape 安装器要用的,必须锁在 openjdk-8,高版本会报类加载错误。下面这组命令我按「基础 shell → Java → X11 与 ncurses → 32 位兼容 → 字体」的顺序排好了,可以整段抄:
# shell 与基础工具 sudo apt-get install ksh csh xterm python net-tools # Java 8,IScape 安装器依赖 sudo apt-get install openjdk-8-jre openjdk-8-jdk # ncurses 开发库与 X11 基础库 sudo apt-get install libncursesw5-dev # 32 位兼容库,Calibre 和部分 Cadence 组件需要 sudo apt-get install libxtst6:i386 libxi6:i386 sudo apt-get install libstdc++6 lib32stdc++6 # 字体,不装 Calibre 界面字体发虚 sudo apt-get install xfonts-75dpi xfonts-100dpilibncursesw5-dev提供宽字符 ncurses,Cadence 的文本界面靠它;libxtst6:i386和libxi6:i386是 32 位 X11 扩展库,缺了会在启动 virtuoso 时报libXtst.so.6: cannot open shared object file。字体包装完要重启才生效,别急着开 Calibre 看效果。
Java 环境变量单独配,写进/etc/profile末尾:
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 export JRE_HOME=$JAVA_HOME/jre export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH保存后source /etc/profile,再用java -version确认输出是 1.8。这里有个细节:JAVA_HOME路径必须和update-alternatives里 java-8 的实际路径一致,有的系统装完是java-8-openjdk-amd64,有的是java-1.8.0-openjdk-amd64,用ls /usr/lib/jvm/看一眼再填,填错 IScape 启动就报找不到 JVM。
2.3 伪造 RedHat 标识与补两个老库
Cadence 安装脚本会检查/etc/redhat-release,Ubuntu 没有这个文件,直接跑会提示不支持的操作系统。做法是造一个:
sudo gedit /etc/redhat-release # 写入:Red Hat Enterprise Linux release 6.12 sudo chmod 777 /etc/redhat-release内容写 6.12 是因为 IC617 的安装器认这个版本区间,写太高反而可能触发新系统的检查分支。权限给 777 是为了安装器以普通用户身份也能读。
接着补两个 Ubuntu 20.04 已经移除的老库。libxp6是 X11 打印扩展,Cadence 的某些对话框依赖它;multiarch-support是多架构支持包,32 位库加载时会查。这两个包官方源里没有,得从 Debian 归档拉:
wget http://ftp.br.debian.org/debian/pool/main/g/glibc/multiarch-support_2.28-10_amd64.deb sudo dpkg -i multiarch-support_2.28-10_amd64.deb wget http://launchpadlibrarian.net/183708483/libxp6_1.0.2-2_amd64.debs sudo dpkg -i libxp6_1.0.2-2_amd64.deb装完用dpkg -l | grep libxp6确认状态是 ii。如果 dpkg 报依赖缺失,先sudo apt --fix-broken install再重试。
最后建目录和软链接。安装目录按工具分开,license 单独放:
sudo mkdir -p /opt/cadence/ sudo mkdir -p /opt/mentor/Calibre2019 sudo mkdir -p /opt/mentor/license sudo mkdir /usr/tmp sudo chmod -R 777 /usr/tmp/ # termcap 兼容链接,老工具找 libtermcap.so.2 sudo ln -s /lib/x86_64-linux-gnu/libncursesw.so.5.9 /lib/libtermcap.so.2 # libcrypto 版本兼容,Calibre 依赖 libcrypto.so.6 cd /lib/x86_64-linux-gnu/ sudo ln -s libcrypto.so.1.1 libcrypto.so.6/usr/tmp给 777 是因为安装器会往这里写临时文件,权限不够会静默失败。libtermcap.so.2这个链接是给 Spectre 的文本界面用的,缺了启动 spectre 会报 termcap 相关错误。libcrypto.so.6的软链是 Calibre19 的硬需求,Ubuntu 20.04 自带的是 1.1 版本,符号名对不上,不建这个链接 Calibre 启动直接段错误。
3. 用 IScape 装 IC617、Spectre 与 XCELIUMMAIN:顺序和路径别搞反
这套资源里三个 Cadence 组件都用同一个 IScape 安装器,区别只在选包和安装路径。很多人翻车不是因为命令错,而是安装顺序和 base/hotfix 的叠加关系没理清。我的经验是:先 hotfix 再 base,或者按安装器提示补 base,路径统一落在/opt/cadence/下,每个工具一个子目录,后面配环境变量时一目了然。
3.1 IScape 从共享目录直接跑
IScape 只是安装工具,不需要拷进 Linux 系统。共享文件夹挂好后,直接进到iscape/bin目录执行:
cd /mnt/hgfs/CadenceIC/IScape04.23-s010lnx86/iscape.04.23-s010/bin sudo ./iscape.sh用 sudo 是因为安装目标在/opt下,普通用户没写权限。启动后会出现图形安装界面,如果报No X11 DISPLAY,检查是不是用 ssh 连的,本地虚拟机桌面直接跑不会有这个问题。安装器起来后选「Install」→ 指定安装包所在目录,它会自动扫描出可装的组件列表。
3.2 IC617 的 hotfix 与 base 叠加
IC617 的安装包分 HotFix 和 Base 两部分,资源里都给了。安装时先选 IC617 HotFix,装到/opt/cadence/IC617,安装器中途会提示「需要 Base CD」,这时选继续并指向 Base 包所在目录,它会自动合并。这一步的关键是记住安装器最后打印的 OA 路径,通常是:
/opt/cadence/IC617/oa_v22.50.043这个路径后面配CDS_ROOT和 license 时要用,装完先记下来。安装过程中有几个交互选项,按下面选:
| 提示项 | 选择 | 说明 |
|---|---|---|
| 安装类型 | 完整安装 | 不要选自定义,容易漏组件 |
| 是否配置 license | n | 先装完再统一配,避免中途失败重来 |
| 安装路径确认 | /opt/cadence/IC617 | 与后续环境变量保持一致 |
| Base CD 提示 | 指向 Base 目录 | 不补 base,hotfix 不完整 |
装完点 Done,不要急着开 virtuoso,先把 Spectre 和 XCELIUMMAIN 装完再统一配环境。
3.3 Spectre18 与 XCELIUMMAIN_18 的安装路径
Spectre18 就是以前的 MMSIM,安装时在 IScape 组件列表里选 Spectre,路径给/opt/cadence/SPECTRE18。XCELIUMMAIN_18 是以前的 INCISIVE,数模混仿用,路径给/opt/cadence/XCELIUMMAIN18。两个都装完后,/opt/cadence/下应该有 IC617、SPECTRE18、XCELIUMMAIN18 三个目录,结构清晰。
安装过程中如果 IScape 卡在「Checking disk space」不动,多半是/usr/tmp权限或空间问题,回头检查 2.3 节那两条命令。如果报某个.rpm解包失败,是 Ubuntu 没有 rpm 命令,IScape 内部用自带解包器,一般不影响,但要在日志里确认对应组件是否真的装上了。
4. Calibre19 单独装:AVX2 是硬门槛
Calibre 不走 IScape,它是 Mentor(现 Siemens EDA)的独立安装器,资源里给的是 Calibre19。这一章单独拎出来讲,因为它的失败率最高,而且失败原因往往不在安装命令本身,而在 CPU 指令集和 license 配置。
4.1 先查 AVX2,再动手
Calibre19 的二进制依赖 AVX2 指令集,CPU 不支持的话装完能启动但一跑 DRC 就崩,或者安装器直接报 illegal instruction。装之前先查:
grep -o 'avx2' /proc/cpuinfo | head -1有输出说明支持,没输出就别装了,换机器或换 Calibre 版本。虚拟机里还要确认宿主 CPU 透传了 AVX2,VMware 的虚拟机设置里处理器选项要勾选「虚拟化 Intel VT-x/EPT 或 AMD-V/RVI」,否则 guest 里看不到 avx2 标志。
4.2 安装器执行与 license 指向
Calibre19 的安装包解压后进到install.ixl目录,执行:
sudo ./install.ixl安装器是交互式的,路径给/opt/mentor/Calibre2019,license 文件放/opt/mentor/license。安装过程中会问 license server 的端口和主机名,按实际填,本地单机就填localhost加端口1717。装完检查calibre -v能否输出版本号,报 license 错误就回头查LM_LICENSE_FILE环境变量和 license 文件里的 hostname 是否和hostname命令输出一致。
5. 环境变量与 license:让四个工具互相认得出
四个工具装完只是文件躺在磁盘上,能不能协同工作全看环境变量和 license。这一章把bashrc配置、license 指向、启动验证串起来,配完就能开 virtuoso 画图、跑 spectre 仿真、用 calibre 做验证。
5.1 bashrc 里的路径与变量
在~/.bashrc末尾追加下面这段,路径按实际安装目录微调:
# Cadence IC617 export CDS_ROOT=/opt/cadence/IC617 export CDS_INST_DIR=$CDS_ROOT export PATH=$CDS_ROOT/tools/bin:$CDS_ROOT/tools/dfII/bin:$PATH export OA_HOME=$CDS_ROOT/oa_v22.50.043 # Spectre18 export SPECTRE_HOME=/opt/cadence/SPECTRE18 export PATH=$SPECTRE_HOME/bin:$PATH # XCELIUMMAIN18 export XCELIUMMAIN_HOME=/opt/cadence/XCELIUMMAIN18 export PATH=$XCELIUMMAIN_HOME/bin:$PATH # Calibre19 export MGC_HOME=/opt/mentor/Calibre2019 export PATH=$MGC_HOME/bin:$PATH # license export LM_LICENSE_FILE=1717@localhost export CDS_LIC_FILE=1717@localhostOA_HOME必须指向 3.2 节记下的那个oa_v22.50.043路径,指错 virtuoso 启动会报 OA 库版本不匹配。LM_LICENSE_FILE和CDS_LIC_FILE两个都设,是因为 Calibre 读前者、Cadence 读后者,只设一个会出现「一个工具能用另一个不能用」的玄学现象。改完source ~/.bashrc,用which virtuoso、which spectre、which calibre逐个确认路径解析正确。
5.2 启动验证的顺序
验证按「先单工具、再联动」的顺序来。先开 virtuoso,能出 CIW 窗口说明 IC617 和 license 通了;再在终端跑spectre -v,出版本号说明仿真器就位;最后跑calibre -v,确认 Calibre 的 license 也通。三个都过之后,建一个简单的反相器原理图,用 spectre 跑 DC 仿真,再用 calibre 跑一次 DRC,整条链路就算打通了。
如果 virtuoso 启动报cannot connect to license server,先ps aux | grep lmgrd看 license 进程在不在,不在就手动起;如果在还报错,检查 license 文件里的 hostname 和hostname输出是否一字不差,大小写都算。
6. 避坑与排查:五个真实翻车点
装这套环境的血泪经验,基本都集中在下面五条。每条按现象、原因、解决写,遇到时对着查能省不少时间。
现象一:Calibre 装完启动报 illegal instruction。原因:CPU 或虚拟机没透传 AVX2,Calibre19 的二进制用了 AVX2 指令。 解决:grep avx2 /proc/cpuinfo确认,虚拟机里检查处理器虚拟化选项,不支持就换 Calibre20 或换物理机。
现象二:IScape 启动报找不到 JVM。原因:JAVA_HOME路径和实际安装路径不一致,或/etc/profile没 source。 解决:ls /usr/lib/jvm/看实际目录名,改JAVA_HOME后source /etc/profile,再echo $JAVA_HOME确认。
现象三:virtuoso 启动报 libtermcap.so.2 找不到。原因:2.3 节的软链接没建,或建到了错误路径。 解决:ls -l /lib/libtermcap.so.2确认链接存在且指向libncursesw.so.5.9,不存在就重建。
现象四:Calibre 跑 DRC 报 libcrypto.so.6 相关错误。原因:Ubuntu 20.04 自带 libcrypto 1.1,Calibre19 找 0.6 符号。 解决:确认/lib/x86_64-linux-gnu/libcrypto.so.6软链存在,指向libcrypto.so.1.1,用ldd检查 Calibre 二进制的依赖解析。
现象五:license 起了但工具都连不上。原因:license 文件里 hostname 和系统主机名不一致,或端口被占。 解决:hostname和 license 文件首行对比,改一致后重启 lmgrd;netstat -tlnp | grep 1717看端口占用。
7. 进阶:把环境做成可复现的快照
装完能跑只是第一步,真正省心的是把这套环境做成可回滚的快照。我一般会在四个工具全部验证通过后,立刻给虚拟机打一个快照,命名带上日期和组件版本,比如ic617-spectre18-calibre19-xcelium18-ok。之后任何实验性改动之前再打一个,出问题直接回滚,比逐条排错快得多。
更进一步的做法是把环境变量和 license 配置抽成独立脚本,放在~/eda_env.sh里,bashrc只留一行source ~/eda_env.sh。这样换机器或重装时,把脚本和安装包一起带走,半小时能重建一套。脚本里加一段自检逻辑,启动时自动检查关键路径和 license 端口:
# ~/eda_env.sh 末尾的自检 for p in $CDS_ROOT $SPECTRE_HOME $XCELIUMMAIN_HOME $MGC_HOME; do [ -d "$p" ] || echo "WARN: $p 不存在" done netstat -tln 2>/dev/null | grep -q 1717 || echo "WARN: license 端口 1717 未监听"这段自检不解决根本问题,但能在开工具之前把「路径丢了」「license 没起」这类低级问题提前暴露出来,省得在 virtuoso 里画到一半才发现仿真器连不上。
还有一个容易被忽略的点:Spectre 的模型库路径。仿真时如果报model file not found,不是安装问题,是SPECTRE_MODEL_PATH或仿真设置里的模型路径没指对。我习惯在项目目录下放一个models软链指向实际模型库,仿真设置里用相对路径引用,换项目时只改软链不改设置。
从那以后我每次装这套环境,都强制先跑一遍 AVX2 检查和依赖补齐,再动安装器,装完立刻打快照、抽环境脚本。这套流程跑顺了,重装一次也就一两个小时的事。希望帮到你。
本文还有配套的精品资源,点击获取