ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

Ubuntu 20.04 上 Cadence IC617 全家桶安装指南:从依赖到验证

Ubuntu 20.04 上 Cadence IC617 全家桶安装指南:从依赖到验证

简介:面向在 Linux 平台搭建集成电路设计与验证环境的工程师及高校师生,这份文档聚焦 Ubuntu 20.04 下 Cadence IC617(HotFix)、Spectre18、Calibre19 与 XCELIUMMAIN_18 的完整安装流程,覆盖模拟、数字及数模混合仿真场景,适合具备一定 Linux 操作基础、希望从 CentOS 迁移或首次在 Ubuntu 上部署 EDA 工具链的中级用户。资源包共 1 个 docx 文件,约 3.08MB,以图文步骤形式组织内容,便于按章节对照执行。文档从系统准备、依赖库安装、许可证配置到环境变量设置与测试验证逐项展开,并提示 CPU 需支持 AVX2 指令集、Calibre 字体显示、libxp6 等兼容性细节,附录还列出 IC617、IC618、Spectre18、Calibre19/20、INCISIVE152 等安装文件的获取线索,可帮助读者少走弯路、快速复现可用环境。目前已有 7698 人学习下载。

1. 在 Ubuntu 20.04 上把 IC617 全家桶跑起来:一份能照着复现的安装笔记

手里有一套 Cadence IC617 HotFix、Spectre18、Calibre19、XCELIUMMAIN_18 的安装包,却卡在 Ubuntu 20.04 上装不起来,这是很多做模拟/混合信号方向的工程师都遇到过的局面。这套组合对应的是原理图绘制、SPICE 仿真、DRC/LVS 物理验证和数模混合仿真四条主线,装好之后一台普通虚拟机就能跑通从画图到验证的完整链路。适合两类人:一是刚接触 IC 设计环境搭建、需要在自己机器上复现一套可用工具链的新手;二是从 CentOS 迁移过来、发现 Ubuntu 下依赖库和路径行为不一样、需要一份对照清单的熟手。这篇笔记按系统准备、依赖补齐、安装器操作、环境变量与 license、排错、验证的顺序拆开讲,重点放在 Ubuntu 20.04 特有的坑上。

2. 系统准备与依赖补齐:Ubuntu 20.04 和 CentOS 的差异在哪

Cadence 这套工具的原生支持平台长期偏向 RHEL/CentOS,Ubuntu 能装但需要手动补不少东西。差异主要集中在三块:一是 32 位兼容库,Calibre 和部分 license 工具依赖 i386 版本的 X11 库;二是 shell 环境,安装脚本大量使用 ksh/csh,Ubuntu 默认没有;三是系统标识,部分安装器会读/etc/redhat-release判断发行版,Ubuntu 上这个文件不存在,需要伪造一个。先把这三点想清楚,后面每一步都知道自己在补什么。

2.1 虚拟机参数与最小化安装

虚拟机内存给到 4G 以上,磁盘尽量大,原因很直接:IC617 的 base 加 hotfix 解压后就占好几个 G,Spectre 和 XCELIUMMAIN 各自还有独立目录,再加上 Calibre 的规则库和临时文件,磁盘紧张时最先出问题的是/或/usr/tmp空间不足,表现为安装到一半报写入失败。安装 Ubuntu 时选英文、最小化安装,主机名别用默认的,装完先关掉开机自动挂载光盘,再联网。

共享文件夹这一步有个容易忽略的点:安装过程中不要急着在虚拟机设置里加共享目录,等系统和 VMware Tools 都就绪之后再挂。原因是安装器运行时会往当前目录写临时文件,共享目录的权限和 inode 行为跟本地盘不一致,容易在解压阶段报奇怪的错误。装好 VMware Tools 之后再挂共享盘,把安装包放在英文路径下,后面用安装器直接指向共享目录即可。

# 系统更新,装完系统第一件事 sudo apt update sudo apt upgrade -y # 挂载 VMware Tools 光盘后解压安装 mkdir -p ~/Desktop/tools sudo tar -zxvf /media/$USER/VMware\ Tools/VMwareTools-*.tar.gz -C ~/Desktop/tools/ cd ~/Desktop/tools/vmware-tools-distrib sudo ./vmware-install.pl

vmware-install.pl一路回车用默认值即可,装完重启。这一步的意义不只是拖拽文件方便,更重要的是显卡驱动和分辨率,后面启动 Virtuoso 的图形界面时,没有它窗口会异常。

2.2 依赖库一次性补齐

依赖分几组装,别一条命令堆完,出错了不好定位。第一组是 shell 和 Java,安装器本身是 Java 写的,脚本用 ksh/csh 跑;第二组是 X11 和 ncurses,图形界面和终端库;第三组是 32 位兼容库,Calibre 相关;第四组是字体,不装的话 Calibre 界面字体发虚。

# 第一组:shell 与 Java 运行环境 sudo apt-get install -y ksh csh openjdk-8-jre openjdk-8-jdk xterm # 第二组:终端与 X11 开发库 sudo apt-get install -y libncursesw5-dev libxtst6:i386 libxi6:i386 python net-tools # 第三组:C++ 运行时,32 位版本给 Calibre 用 sudo apt-get install -y libstdc++6 lib32stdc++6 # 第四组:字体,装完重启生效 sudo apt-get install -y xfonts-75dpi xfonts-100dpi

openjdk-8是这套安装器验证过的版本,别图新装 11 或 17,安装器启动时可能直接抛异常。libxtst6:i386和libxi6:i386需要先启用 i386 架构,如果 apt 报找不到包,先执行sudo dpkg --add-architecture i386 && sudo apt update。net-tools提供ifconfig,license 配置脚本里会调用。

还有两个库在 Ubuntu 20.04 的源里已经移除,需要手动下 deb 包:multiarch-support和libxp6。前者是旧版多架构支持,后者是 X11 打印扩展,Cadence 的部分组件链接了它。

# 手动补两个已从源中移除的库 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

装完用ldconfig -p | grep libXp确认库已注册。如果 dpkg 报依赖缺失,用sudo apt-get -f install收尾。

2.3 系统标识伪造与软链接

安装器读/etc/redhat-release判断平台,Ubuntu 上没有这个文件,直接创建一个内容写成 RHEL 的即可。同时建几个软链接,把 Ubuntu 的库名映射到工具期望的旧名字。

# 伪造 redhat-release,骗过安装器的平台检查 sudo sh -c 'echo "Red Hat Enterprise Linux release 6.12" > /etc/redhat-release' sudo chmod 777 /etc/redhat-release # 临时目录,安装器会往这里写东西 sudo mkdir -p /usr/tmp sudo chmod -R 777 /usr/tmp/ # 库名软链接:termcap 和 libcrypto 的旧版本名 sudo ln -s /lib/x86_64-linux-gnu/libncursesw.so.5.9 /lib/libtermcap.so.2 cd /lib/x86_64-linux-gnu/ sudo ln -s libcrypto.so.1.1 libcrypto.so.6

libtermcap.so.2是给老版本二进制用的,Ubuntu 20.04 只有 ncursesw,软链接过去即可。libcrypto.so.6同理,OpenSSL 1.1 的实际文件名是libcrypto.so.1.1,但部分工具按.6去找。软链接建完用ls -l确认指向正确,别建反了。

3. 安装器操作:IC617、Spectre18、Calibre19、XCELIUMMAIN_18 逐个过

四个组件里,IC617 是主体,Spectre 和 XCELIUMMAIN 是仿真器,Calibre 是独立厂商的验证工具,安装方式不完全一样。IC617 和两个仿真器走同一个 IScape 安装器,Calibre 有自己的安装脚本。先把目录规划好,再按顺序装。

3.1 目录规划与 IScape 启动

安装目录建议统一放在/opt下,按厂商和工具分。IC617 装到/opt/cadence/IC617,Spectre 装到/opt/cadence/SPECTRE18,XCELIUMMAIN 装到/opt/cadence/XCELIUMMAIN18,Calibre 装到/opt/mentor/Calibre2019,license 目录单独放/opt/mentor/license。

sudo mkdir -p /opt/cadence/ sudo mkdir -p /opt/mentor/Calibre2019 sudo mkdir -p /opt/mentor/license

IScape 是安装器的名字,不需要拷贝到本地,直接从共享目录运行。进入共享盘里 IScape 的 bin 目录,执行启动脚本。

# 假设共享盘挂在 /mnt/hgfs/CadenceIC 下 cd /mnt/hgfs/CadenceIC/IScape04.23-s010lnx86/iscape.04.23-s010/bin sudo ./iscape.sh

启动后是图形界面,选安装包所在目录,它会自动识别包类型。IC617 的安装顺序是先装 HotFix,装完会提示添加 Base CD,这时选第二项把 base 路径指过去。安装路径填/opt/cadence/IC617,中途会显示oa_v22.50.043这个子路径,记下来,后面配环境变量要用。其余提示一路确认,最后 Done。

Spectre18 和 XCELIUMMAIN_18 用同一个安装器,重复上面的流程,只是安装路径换成各自的目录。三个组件装完,/opt/cadence下应该有 IC617、SPECTRE18、XCELIUMMAIN18 三个目录,每个目录下都有bin、tools等子目录。

3.2 Calibre19 的安装与 AVX2 检查

Calibre 的安装脚本是独立的,不走 IScape。装之前先确认 CPU 支持 AVX2,这是硬性要求,不支持的话 Calibre 装完也打不开,或者运行到一半崩溃。

# 检查 CPU 是否支持 AVX2 grep -o 'avx2' /proc/cpuinfo | head -1

有输出说明支持,没输出就别往下装了,换机器或换 Calibre 版本。确认支持后,进入 Calibre 安装包目录,执行安装脚本。

# 进入 Calibre 安装包目录,执行安装 cd /mnt/hgfs/CadenceIC/Calibre2019 sudo ./install.ixl

安装器会问安装路径,填/opt/mentor/Calibre2019。装完把 license 文件放到/opt/mentor/license下,后面配环境变量时指向这里。Calibre 的规则库(DRC/LVS rule deck)通常由工艺厂提供,安装包里不一定带,需要单独放。

3.3 环境变量与 license 配置

四个组件装完,环境变量要统一写进~/.bashrc或/etc/profile。写~/.bashrc只对当前用户生效,写/etc/profile对所有用户生效,按需选。关键是PATH、LM_LICENSE_FILE和各自的安装根目录变量。

# 追加到 ~/.bashrc export CDS_INST_DIR=/opt/cadence/IC617 export CDS_ROOT=$CDS_INST_DIR export PATH=$CDS_INST_DIR/bin:$CDS_INST_DIR/tools/bin:$PATH export SPECTRE_HOME=/opt/cadence/SPECTRE18 export PATH=$SPECTRE_HOME/bin:$PATH export XCELIUMMAIN_HOME=/opt/cadence/XCELIUMMAIN18 export PATH=$XCELIUMMAIN_HOME/bin:$PATH export MGC_HOME=/opt/mentor/Calibre2019 export PATH=$MGC_HOME/bin:$PATH # license:Cadence 和 Calibre 分开配,端口按实际 license 文件写 export LM_LICENSE_FILE=27000@localhost:27001@localhost export CDS_LIC_FILE=27000@localhost export MGC_LIC_FILE=27001@localhost

LM_LICENSE_FILE用冒号分隔多个 license 服务,Cadence 走 27000,Calibre 走 27001,具体端口以 license 文件里的SERVER行为准。改完执行source ~/.bashrc生效。验证方式:which virtuoso应该指向/opt/cadence/IC617/bin/virtuoso,which calibre指向/opt/mentor/Calibre2019/bin/calibre。

license 服务本身需要单独起,Cadence 用lmgrd,Calibre 用 Mentor 的mgcld。启动命令和 license 文件路径相关,常见做法是把启动脚本写成 systemd service 或加到rc.local,开机自启。手动启动的话:

# Cadence license 服务,路径按实际安装位置调整 /opt/cadence/IC617/tools/bin/lmgrd -c /opt/mentor/license/cadence.lic -l /tmp/cadence_lic.log # Calibre license 服务 /opt/mentor/Calibre2019/bin/mgcld -c /opt/mentor/license/calibre.lic -l /tmp/calibre_lic.log

日志文件里能看到UP字样说明服务起来了。如果报端口占用,换端口或先lsof -i:27000查谁占着。

4. 避坑与排查:Ubuntu 20.04 下最容易翻车的五个点

这套环境装下来,报错大多集中在依赖、路径和 license 三块。下面五条是按出现频率排的,每条按现象、原因、解决写,照着对号入座。

4.1 安装器启动即闪退或报 Java 异常

现象:执行iscape.sh后窗口一闪而过,终端里留一段 Java 堆栈。原因:系统默认 Java 不是 8,或者JAVA_HOME没配。解决:java -version确认是 1.8,不是的话用update-alternatives --config java切到 openjdk-8,并在/etc/profile里补JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64,source后重开终端再启动安装器。

4.2 Calibre 装完打不开,报 illegal instruction

现象:calibre -gui直接报非法指令退出。原因:CPU 不支持 AVX2,或者虚拟机没把 AVX2 透传给 guest。解决:先在宿主机确认 CPU 支持,再在虚拟机设置里把 CPU 虚拟化相关选项打开,让 guest 能看到avx2标志。grep avx2 /proc/cpuinfo没输出就是没透传,改虚拟机配置后重启。

4.3 Virtuoso 启动报找不到 libtermcap 或 libcrypto

现象:启动 Virtuoso 时终端报error while loading shared libraries: libtermcap.so.2或libcrypto.so.6。原因:2.3 节的软链接没建,或者建错了指向。解决:ldd $(which virtuoso) | grep "not found"列出缺失的库,逐个补软链接。注意libcrypto.so.6要指向libcrypto.so.1.1,别指向别的版本。

4.4 license 起不来,工具报 checkout 失败

现象:工具启动后提示 license checkout failed,日志里lmgrd没起来或端口不通。原因:license 文件里的 hostname 和实际主机名不一致,或者端口被占。解决:hostname看实际主机名,和 license 文件SERVER行对比,不一致就改 license 文件或改主机名。端口占用用lsof -i:27000查,换端口后同步改CDS_LIC_FILE。

4.5 安装到一半报磁盘写入失败

现象:IScape 解压到某个百分比报写入错误。原因:/usr/tmp或/opt所在分区空间不足,或者共享目录权限不对。解决:df -h看各分区剩余,/opt至少留 20G。共享目录安装的话,确认挂载参数没带只读,必要时把安装包拷到本地盘再装。

5. 验证与进阶:从启动 Virtuoso 到跑通一次混合仿真

装完不等于能用,得跑一遍最小闭环验证。先启动 Virtuoso 确认图形界面正常,再建一个反相器原理图,用 Spectre 跑 DC 和瞬态,最后用 XCELIUMMAIN 跑一次数模混合仿真,Calibre 那边跑一次 DRC 看规则库能否加载。这套流程走通,说明四个组件都活着。

5.1 最小验证流程

启动 Virtuoso 的命令是virtuoso &,第一次启动会初始化配置目录,稍慢。界面出来后新建 library,画一个反相器,挂上 Spectre 的模型库,跑 DC 扫描看传输曲线。这一步验证的是 IC617 和 Spectre 的联动。然后开一个数字模块,用 XCELIUMMAIN 做混合仿真,验证数模接口。Calibre 单独跑,calibre -drc rule.file看能否解析规则并输出结果。

验证项命令/操作通过标准
Virtuoso 启动virtuoso &主窗口正常,无库加载报错
Spectre 仿真ADE 里跑 DC 扫描输出波形,日志无 license 错误
XCELIUMMAIN混合仿真配置后运行数模两侧结果一致
Calibre DRCcalibre -drc rule.file规则解析成功,输出结果文件

5.2 环境变量固化与备份

环境变量写在~/.bashrc里只对交互式 shell 生效,图形界面启动的工具可能读不到。稳妥做法是把关键变量也写进/etc/environment,或者写一个cadence.sh脚本,在启动工具前source一次。我一般会在/opt/cadence下放一个env.sh,内容就是第 3.3 节那几行,需要时source /opt/cadence/env.sh。

# /opt/cadence/env.sh 示例,供图形界面或非交互场景 source export CDS_INST_DIR=/opt/cadence/IC617 export PATH=$CDS_INST_DIR/bin:$CDS_INST_DIR/tools/bin:$PATH export CDS_LIC_FILE=27000@localhost # ... 其余变量同上

装好一套环境后,把/opt/cadence、/opt/mentor和 license 文件一起打包备份,下次换机器直接解压改主机名就能用,省掉重装的两三个小时。这个习惯是从一次虚拟机磁盘损坏后养成的,当时四个组件重装了一遍,光排依赖就花了一下午。从那以后我每次装完都先tar一份整目录,再动别的配置。希望这套流程能帮到你,少走几段弯路。

本文还有配套的精品资源,点击获取

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进