简介:这是一份面向集成电路设计与验证工程师的 Ubuntu 20.04 EDA 工具链安装指南,内容围绕 Cadence IC617(HotFix)、Spectre18、Calibre19 与 XCELIUMMAIN_18 的部署,覆盖系统准备、依赖库安装、许可证配置、环境变量设置和安装验证等环节。文档基于多篇实战教程整理,针对 Ubuntu 20.04 的特殊性补充了 CPU 的 AVX2 指令集检查、libxp6 旧库安装、redhat-release 伪装等避坑要点,并收录了 Cadence IC618、Calibre20、INCISIVE152 等参考安装文件,便于读者对照使用。资源包仅含 1 个 docx 文档,共约 3.08MB,内容编排紧凑、步骤明确,适合需要自行搭建模拟/数模混合仿真环境的读者参考。该资源已有 7687 人浏览学习,对于缺少官方支持文档的 Ubuntu 用户而言,是一份不错的实操参考。
1. 为什么偏偏是 Ubuntu 20.04 上的 Cadence IC617
我自己第一回在 Ubuntu 20.04 上装 Cadence IC617(HotFix) 时,光一个./iscape.sh就折腾了半个下午,报错信息既不是权限也不是磁盘,而是缺一串听起来像史前遗物的 32 位库。这套 EDA 工具链的官方支持生命周期停留在 Ubuntu 16.04 甚至 CentOS 7,20.04 无论内核还是 glibc 都“先进”过头了,老向导识别不出系统、启动脚本找不到 ksh、Calibre 打开就段错误——多数不是软件坏了,是环境没铺平。这篇文章写给要在 Ubuntu 20.04 虚拟机里完成 IC617、Spectre18、Calibre19、XCELIUMMAIN_18 四件套安装的人,我会把系统准备、依赖补齐、ISCape 安装和装完自检按实际动手顺序写清楚,每个坑都标了现象和根治方法。
2. 系统准备:磁盘、虚拟机联网与 VMware Tools
2.1 虚拟机参数与最小安装
我一般在 VMware 里新建虚拟机,Ubuntu 20.04 安装介质用 ISO 挂载。内存至少给 4GB,磁盘建议 60GB 起步,因为 IC617 加 Spectre18 加 Xcelium 一套下来轻松占掉 20GB。安装选项里选“最小安装”,不需要下载第三方软件和媒体扩展。有一点容易被忽略:安装向导会让你填主机名,默认是ubuntu,最好是改成有辨识度的名字,比如eda-vm。后面装 License 和配置 hostname 对应关系时会省事很多。
安装过程可以联网,但不要勾选“安装时在线更新”,避免安装器在下载更新的环节卡住。装完进系统后要做三件事:关闭光盘开机引导,避免 VM 每次启动都试图从 ISO 引导;更新软件源;安装 VMware Tools。执行更新前,我习惯在 Software Updater 的 Settings 里把服务器改成 Other 里的 Best server,这样能测到一个速度最接近本地的镜像,然后:
sudo apt update sudo apt upgrade -ysudo apt update是刷新软件包索引,sudo apt upgrade才是真正升级现有包。第一次升级时间会很长,建议挂着做别的事。VM 如果开在桥接模式,网络一般自然通;如果是 NAT 模式,也要确认能ping 8.8.8.8,否则后续wget下依赖包必失败。
2.2 共享文件夹:把安装文件放进虚拟机
Cadence 安装包体积大,拷贝进虚拟磁盘会占用大量空间,我后来采用了共享文件夹方案。在虚拟机关机状态下,编辑虚拟机设置,添加一个共享文件夹,指向宿主机里存放全套安装文件的目录。这里必须强调路径要全英文,不能有中文和空格,否则 IScape 安装器会读取路径失败。
启动进系统后,共享目录自动挂在/mnt/hgfs/下面。如果没看到,可以手动挂载:
ls /mnt/hgfs/ sudo vmhgfs-fuse .host:/ /mnt/hgfs -o allow_other -o nonemptyvmhgfs-fuse是较新 VMware Tools 提供的挂载工具,allow_other允许普通用户访问共享目录。检查到共享目录里能看到安装包后,再继续下面的安装。文件目录结构尽量保持英文,比如CadenceInstall/IC617/、CadenceInstall/SPECTRE18/,这样 IScape 不会因为路径编码问题报错。
2.3 VMware Tools 安装:解压到 Desktop 再执行
在 VMware 菜单栏执行“虚拟机 → 安装 VMware Tools”,虚拟机会挂载一张VMwareTools光盘。把里面的 tar 包解压到用户目录,再以 root 跑安装脚本。我习惯先建个临时目录隔离:
mkdir -p ~/Desktop/tools sudo tar -zxvf /media/cdrom/VMwareTools-10.3.22-15902021.tar.gz -C ~/Desktop/tools/ cd ~/Desktop/tools/vmware-tools-distrib sudo ./vmware-install.pl解压参数-C指定目标目录,-zxvf解 gzip 压缩的 tar 包。安装脚本执行后一路回车默认值即可,脚本会重新编译内核模块。VMware Tools 装完之后建议重启一次,它会负责优化显示分辨率和剪贴板共享,同时提供/mnt/hgfs的驱动支持。网络共享盘在安装依赖和 IScape 时都靠它,这一步不要跳过。
3. 依赖库与环境变量:装 Cadence 前的三小时体力活
3.1 批量安装基础依赖
Cadence 安装脚本和 License 守护进程依赖多种经典 shell 和运行库,其中 ksh 和 csh 是硬性的。安装好它们之后,再补 Java 8 运行环境——注意必须是 Java 8,太新版本 Java 跑起来会有显示异常。还有 32 位的libxtst6、libxi6,这两项是给老版 Virtuoso GUI 用的。
sudo apt-get install -y ksh csh openjdk-8-jre openjdk-8-jdk xterm libncursesw5-dev libxtst6:i386 libxi6:i386 python sudo apt-get install -y libstdc++6 lib32stdc++6 sudo apt-get install -y net-tools sudo apt-get install -y xfonts-75dpi xfonts-100dpi每条命令的作用很明确:第一行解决 shell 环境和 Java 8 GUI,xterm是很多 EDA 工具默认终端;libncursesw5-dev提供权限交互和菜单库。第二行补libstdc++的 64 位和 32 位版本,Spectre 和 Calibre 内部有 32 位模块。第三行的net-tools提供ifconfig,License 服务器检查主机名时会用到。第四行的 75dpi、100dpi 字体包直接改善 Calibre GUI 的字体渲染,否则字体全是锯齿。这组命令没有先后顺序依赖,一次性全部执行通常也没问题,唯一例外是openjdk-8-jdk在 20.04 早期版本需要先确认仓库里有,如果没有就先执行apt install openjdk-8-jre-headless。
3.2 手动安装 libxp6 和 multiarch-support
Ubuntu 20.04 已经移除了libxp6这个老 X11 库,而 Cadence 的旧库文件在运行时仍会查找它。直接apt是装不上的,需要从 Debian 仓库下载 deb 包手装。先装multiarch-support,再装libxp6,顺序别反:
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.deb sudo dpkg -i libxp6_1.0.2-2_amd64.debmultiarch-support是 glibc 的多架构支持包,libxp6则提供 X 打印扩展库。dpkg -i安装本地 deb,不检查网络依赖,所以先把两个包都下完整再执行。如果wget太慢,也可以手动在浏览器下载后放到共享目录再dpkg -i。
3.3 Java 环境变量与 redhat-release 骗术
Java 8 装完以后必须配置环境变量。用 root 编辑/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确认生效。JAVA_HOME的路径必须与系统里实际的 Java 安装位置一致,你可以用ls /usr/lib/jvm/先确认目录名是java-8-openjdk-amd64还是带具体版本号的文件夹。
下一个关键动作是“骗过”Cadence 安装器的系统识别。Cadence 安装向导会读取/etc/redhat-release判断是否红帽系系统,Ubuntu 上没有这个文件,需要手动创建并写入:
echo "Red Hat Enterprise Linux release 6.12" | sudo tee /etc/redhat-release sudo chmod 777 /etc/redhat-releasechmod 777是为了让安装器在运行过程中能改写这个文件。注意,如果你重新装系统,比如从 Ubuntu 20.04 升级到不同内核,这个文件会丢失或覆盖,需要重新写。
3.4 安装目录与软链接:给老二进制指条路
Cadence 和 Calibre 是两套完全不同的软件体系,安装目录必须独立。Cadence 放/opt/cadence,Calibre 放/opt/mentor,License 单独建目录:
sudo mkdir -p /opt/cadence/ sudo mkdir -p /opt/mentor/Calibre2019 sudo mkdir -p /opt/mentor/license sudo mkdir -p /usr/tmp sudo chmod -R 777 /usr/tmp/老版 EDA 工具运行时会在/usr/tmp创建临时文件,权限不足会直接白屏退出。chmod -R 777是最省心的做法,测试环境够用。接下来建立软链接,覆盖几个 Cadence 二进制默认查找的路径:
sudo ln -s /usr/bin/mawk /bin/awk sudo ln -s /usr/bin/basename /bin/basename 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为什么会有这种硬编码路径?因为 IC617 里部分启动脚本和可执行文件写死了/bin/awk、/lib/libtermcap.so.2,在 RHEL 6 时代它们都存在,但 Ubuntu 20.04 把 awk 放在/usr/bin/awk,把 ncurses 库放在了/lib/x86_64-linux-gnu/。软链接让你不用改程序,只要把旧路径指到新文件即可。libcrypto.so.6同理,Spectre 启动时会强制链接该版本号的 OpenSSL 库,这里也把 1.1 兼容过去。
4. 用 IScape 装 IC617 HotFix、Spectre18、Calibre19 和 XCELIUMMAIN_18
4.1 IScape 环境:直接在共享文件夹里运行安装器
Cadence 官方安装器叫 IScape,它本身是一个 Java 应用,不需要拷贝进虚拟机,在共享文件夹里直接运行即可。安装器路径通常在iscape/bin/ised或iscape.sh,我用的版本是 IScape04.23-s010:
cd /mnt/hgfs/CadenceInstall/IScape04.23-s010lnx86/iscape.04.23-s010/bin sudo ./iscape.sh这里的sudo是必需的,因为后续安装动作要向/opt写入。IScape 启动后是一个图形向导,左侧是产品列表,右侧是安装步骤。如果启动时提示权限错误或 Java 版本不对,先检查java -version是否还在指向 Java 8,IScape 对 Java 11 的支持并不完善。
4.2 IC617 HotFix:先装 HotFix,再加 Base CD
在 IScape 里选中 IC617,我第一步装的是 IC617HotFix,然后再添加 Base CD。这里有个关键选择:安装类型选择第 2 项(Extract/Install 到新目录),后续提示是否使用默认 OA 路径时选n,并手动输入:
/opt/cadence/IC617/oa_v22.50.043记住这个路径,它是 OpenAccess 库的标准位置。后面配置OA_HOME时必须用它。其余步骤一路按确认键即可,安装器会把可执行文件、库文件和 OA 支持库全部铺到/opt/cadence/IC617/。HotFix 装完后,ISCape 会主动提醒你添加 Base CD 路径,这时把安装包里的 Base 版目录指给它,它是 IC617 的完整底层库。这里最容易犯的错是把 HotFix 当成完整版直接启动,实际情况是缺了 Base 包的 Virtuoso 启动时会报找不到libcds_memif.so这类错误。
4.3 Spectre18 与 XCELIUMMAIN_18:仿真和数模混仿的安装
Spectre18 其实就是以前 MMSIM 的替代产品,用于模拟电路仿真。在 IScape 里选 Spectre18 并安装到独立目录,我习惯建/opt/cadence/SPECTRE18。安装过程比 IC617 简单,不需要 Base CD,进度条跑完就算成功。安装完成后,务必找出bin目录并加入 PATH,比如:
export PATH=/opt/cadence/SPECTRE18/bin:$PATHXCELIUMMAIN_18 是原来 INCISIVE 改名后的数模混仿平台。它的安装包内部还带着xrun、xcellium等命令。在 IScape 里选 XCELIUMMAIN_18,推荐安装到/opt/cadence/XCELIUMMAIN18。这个工具不像 IC617 那样强依赖 32 位库,但它启动时会通过LD_LIBRARY_PATH查找libvcsi.so之类运行库,所以配置环境变量时要一起加。
4.4 Calibre19:独立目录与 AVX2 门槛
Calibre 属于另一个软件流,必须安装到/opt/mentor/Calibre2019,和 Cadence 目录分开。它的 License 目录也独立为/opt/mentor/license。在 IScape 里选 Calibre19,安装路径指到/opt/mentor/Calibre2019。
安装 Calibre19 前,先确认 CPU 是否支持 AVX2 指令集。可以用宿主机上的 CPU-Z 查,或直接在虚拟机里执行:
grep -o avx2 /proc/cpuinfo | head -1如果输出为空,说明这代 CPU 不支持 AVX2。Calibre19 的核心计算库默认编译了 AVX2 指令,在不支持的 CPU 上即使装完也会一启动就报 Illegal instruction 或直接闪退。解决的方法是换一台支持 AVX2 的物理机再跑。这不是配置参数能绕开的。
Calibre 安装之前要把 License 文件放到/opt/mentor/license/下,并确保环境变量指向它:
export MGC_HOME=/opt/mentor/Calibre2019 export MGLS_LICENSE_FILE=/opt/mentor/license/license.datMGLS_LICENSE_FILE是 Mentor 工具定义的环境变量。注意,它不叫LM_LICENSE_FILE,有些教程混用会导致 Calibre 软件起来后显示不出 License 路径。
5. 避坑与常见问题:从启动崩溃到 License 报错
5.1 Calibre 打开就退出:先查 AVX2
现象:Calibre19 安装时一切正常,但双击或命令行启动calibre -gui,窗口一闪就没了,终端输出Illegal instruction (core dumped)。
原因:Calibre19 的二进制默认启用了 AVX2 指令集,你的 CPU 不支持该指令,执行到对应代码段直接触发非法指令异常。
解决:安装前用grep avx2 /proc/cpuinfo确认 CPU 能力,如果没有 AVX2 就不要在这台机器上装 Calibre19,要么换新机器,要么把 Calibre 换成较老版本。若机器支持但仍旧闪退,检查是不是运行了旧版本内核造成 CPU 特性屏蔽,重启进入新内核再看一遍。
5.2 Virtuoso 启动报缺少 32 位库
现象:执行virtuoso &后提示类似error while loading shared libraries: libXft.so.2: cannot open shared object file。
原因:IC617 部分组件仍然是 32 位编译,系统缺少 32 位 X11 库。20.04 默认不会预装libxtst6:i386和libxi6:i386这类 multilib 包。
解决:补装命令在第 3.1 节已经给出,重点是一定要带:i386后缀。装完后用ldd检查具体缺少的库,例如:
ldd /opt/cadence/IC617/tools/dfII/bin/virtuoso | grep "not found"把所有not found标记的库,按大小端搜索对应的:i386或:amd64包补上。这个过程会带出libjpeg62:i386、libxinerama1:i386等连带依赖,耐心装完再启动。
5.3 License 连不上:Python 和 net-tools 没装
现象:Virtuoso 或 Calibre 启动时提示无法连接到 License 服务器,或弹出 “invalid host” 对话框。
原因:License 守护进程要读取系统主机名和网络接口信息。如果系统里没有python(这里的 python 指 python2),没有ifconfig,License 服务会起不来,或者工具无法绑定 license hostname。
解决:确保python指向旧版 Python(20.04 自带的是 Python3,但老 License 脚本只认python命令),以及安装net-tools。如果启动后仍找不到 license,用lmstat -a查看服务状态,重点确认/etc/hosts里的主机名和hostnamectl输出一致。类目里最隐蔽的问题是 License 文件里的 hostname 写的是localhost.localdomain,但新装系统主机名是eda-vm,不匹配就直接握手失败。
5.4 字体乱得没法看:xfonts-75dpi 和 100dpi
现象:Calibre GUI 启动后菜单和版图窗口字体全部是锯齿状,文字挤压重叠,几乎不可读。
原因:软件调用 X 字体服务,系统没有装点阵字体,导致字体渲染回退到最小字体。
解决:安装xfonts-75dpi和xfonts-100dpi,这两个包内部包含 Calibre 界面常用的 75 和 100 DPI 点阵字体。安装后必须重启系统或注销重进,让 X 字体缓存重建。如果重启后仍乱,清一下字体缓存:
sudo fc-cache -f sudo mkfontscalefc-cache -f会强制刷新字体缓存,mkfontscale是为 X 字体目录生成索引。这个步骤在每次新安装 EDA 工具后我都会习惯性跑一次。
6. 装完验证:从终端启动到画出第一个反相器
所有工具安装完不代表能用,我会强制自己走一遍冒烟验证:先检查环境变量是否全部在中,再逐个启动。第一步用which确认可执行文件都被 PATH 覆盖:
which virtuoso spectre calibre xrun如果某个命令找不到,优先查安装目录下bin是否写进 PATH。IC617 的启动口号是virtuoso,但它的实际路径在/opt/cadence/IC617/tools/dfII/bin/virtuoso;Spectre 是/opt/cadence/SPECTRE18/bin/spectre;Calibre 是/opt/mentor/Calibre2019/bin/calibre;Xcelium 是/opt/cadence/XCELIUMMAIN18/tools/bin/xrun。
第二步用无图形模式测启动日志,防止 GUI 掩盖库缺失:
virtuoso -nograph -log /tmp/vlog.log这条命令会以文本模式执行 Virtuoso,启动过程输出全部写入/tmp/vlog.log。我一般用tail -f /tmp/vlog.log实时看,如果最后出现Loading completed或Starting GUI,说明库和 License 都正常;如果卡在某行,去查询对应关键字。图形界面模式下,新建一个 Library,连接工艺文件后随便放一个反相器原理图,保存退出,才能算完整跑通。
第三步验证 Spectre 版本和 Calibre 图形界面:
spectre -V calibre -gui &spectre -V打印版本号,正常显示就代表仿真引擎可用;calibre -gui能弹出窗口并显示 License 信息,则验证平台正常。最后写一个几行 Verilog 文件用xrun跑一遍混仿流程,我用的是最小化测试模块:
module top(input a, output y); assign y = ~a; endmodulexrun -q top.v看到TOOL: xrun和SIMULATION COMPLETE提示,整个工具链就跑通了。从那以后我每次装完 EDA 环境,都强制自己把这四个命令走一遍——宁可多用二十分钟,也不等到布线阶段才发现 License 是坏的。这套检查顺序帮我挡过好几次“装完好像没装”的尴尬,希望帮到你。
本文还有配套的精品资源,点击获取