在PClinux虚拟机上安装Cadence:从虚拟机配置到License验证
2026/9/21 0:13:32 网站建设 项目流程

简介:Cadence环境安装(PClinux虚拟机版)是一份面向高等学校模拟集成电路实验课程的PDF讲义,主要帮助初学者在Windows宿主机上借助VMware虚拟机快速部署Cadence设计环境。讲义源自中国科学技术大学软件学院实验讲义,从准备VMware虚拟机与免安装版Cadence虚拟系统开始,详细说明安装VMware、拷贝IC_workstation、启动vmx文件、登录Linux系统以及进入project目录启动Cadence的完整流程,配有截图与命令示例,覆盖从环境准备到启动验证的常见环节。整个资源为1个PDF文件,大小约526KB,内容紧凑,便于随时对照参考。文中特别提醒用Log Out而非直接电源关机,以免损坏虚拟磁盘,同时给出共享文件夹的设置方式,方便Windows与Linux之间传文件;目前已有644人学习该文档,适合集成电路相关专业本科生与研究生作为实验前环境搭建的快速参考。

1. 在虚拟机上装 Cadence,先解决的不是软件而是“宿主”

打开标题为“Cadence环境安装(PClinux虚拟机版)”的 PDF 时,多数人的第一反应是找安装命令,但我看到的却是另一组矛盾:EDA 工具链动辄几十 GB,License 又对网卡和 hostname 敏感,而学员电脑多半是 Windows 或 macOS。把 Cadence 跑在虚拟机里,既保住了宿主的日常办公,又把 Linux 的兼容性问题隔离在快照里,这才是这套环境安装真正值得研究的地方。下文以 PClinux 虚拟机为中心,串起从虚拟机参数到环境变量的完整路径,适合准备在 PC 上跑 Virtuoso 或 Allegro 的工程师,也适合把实验环境打包交付给团队的负责人。

2. 虚拟机选型:PClinux 发行版与 VMware/VirtualBox 的取舍

2.1 为什么用 Linux 虚拟机而不直接装双系统

标题里的 PClinux 不是某个最小众发行版的名字,而是指跑在个人电脑上的 Linux。打开 Cadence 的支持矩阵会看到,主流的 IC 与 PCB 工具都以 RHEL 兼容内核为验证对象,所以教程中提到 PClinux 时,默认应该选用 CentOS 7 或 Rocky Linux 8.6 这类 Red Hat 兼容发行版。网上能搜到的 cadence 安装过程、依赖包和排错案例,也基本全部围绕这条线展开。

相比直接装双系统,虚拟机方案最直接的收益是宿主不变。设计人员白天需要大量软件协同办公,而 Cadence 安装过程又要反复重启、断网、切换用户。在虚拟机的快照保护下,即使安装器把系统的临时目录写满,或者在配置.cshrc时写错路径,都能直接恢复到一个已知可用的状态。另一个常被忽略的收益是便携性:整台环境可以导成.ova文件,分发给小团队时不需要每台机器重复跑一小时安装。

2.2 虚拟机内存、CPU 和磁盘的参数参考表

在创建虚拟机之前,先把宿主资源盘一下。Cadence 的 virtuoso 仿真引擎对 CPU 核心数很敏感,但虚拟机分配给单台虚机的核数一旦超过 8,调度器反而会在拓扑结构上产生额外开销。下面是我常用的参数表,同时给出低配和推荐两档:

参数低配(能完成安装)推荐(跑仿真)
内存8 GB16 GB
CPU 核数46~8
磁盘40 GB100 GB 以上
网络NAT桥接,固定 IP
显示128 MB256 MB

为什么推荐桥接固定 IP?Cadence License 管理器采用 hostname + MAC 地址绑定,桥接网卡能保证虚拟机每次拿到同一个 IP,license 的 TCP 监听端口 5280 不会因为 DHCP 变更而失效。若用 NAT 模式,每次重启宿主的网络服务都可能导致虚拟机的 eth0 变成 eth1,进而引发 License Server 启动失败。如果你正在用 VMware Workstation 17,还要注意“没有配置和打开选项”的坑:在虚拟机设置的“处理器”面板里勾选“虚拟化 Intel VT-x/EPT”,否则运行 64 位 RHEL 内核时会卡在CPU reset阶段。

2.3 用 VBoxManage 创建一个符合参数的虚拟机

虽然 VMware Workstation 的图形界面很直观,但命令行创建的虚拟机更容易重复。下面的命令在 Windows 的 PowerShell 里执行,VirtualBox 安装路径需按实际版本调整:

VBoxManage createvm --name "PCLinuxCadence" --ostype RedHat_64 --register VBoxManage modifyvm "PCLinuxCadence" --memory 16384 --cpus 8 --ioapic on VBoxManage createmedium disk --filename "D:\VMs\PCLinuxCadence.vdi" --size 102400 VBoxManage storagectl "PCLinuxCadence" --name "SATA" --add sata --controller IntelAhci VBoxManage storageattach "PCLinuxCadence" --storagectl "SATA" --port 0 --device 0 --type hdd --medium "D:\VMs\PCLinuxCadence.vdi"

这段命令先注册一台 RedHat 64 位虚拟机,再调整内存和 CPU 数,随后创建 100 GB 虚拟磁盘并通过 Intel AHCI 控制器挂载。--ioapic on是很多安装教程里被忽略的参数,多核虚拟化如果不开启 IO-APIC,Linux 内核只能看到一个 CPU,Cadence 的 License 服务在 4 核以上环境会随机出现checkout failed。网上相关热搜“vmware虚拟机安装教程”通常只会讲图形界面点选,但对 EDA 工具来说,保证 CPU 拓扑可见性是后续安装的基础,命令行方式反而更容易核对参数。

2.4 把 Cadence 安装介质通过共享目录而非镜像挂载

拿到 Cadence 的压缩包或 ISO 后,不建议直接给虚拟机挂载 ISO。在安装过程中,安装器需要在多个 CD 之间切换,光驱挂载的切换操作在虚拟机上经常触发device busy错误。常见做法是先把安装包解压到宿主的某个共享目录,再做如下设置:

VBoxManage sharedfolder add "PCLinuxCadence" --name "cadence_media" --hostpath "D:\Cadence\isos" --automount

在 Linux 里挂载时,执行mount -t vboxsf cadence_media /mnt/cadence,就能把宿主的D:\Cadence\isos目录变成虚拟机里的/mnt/cadence。这样安装器可以自由读取Setup/ISCAPE/等子目录,而不会因为光盘交换问题中断。若使用 VMware,则通过“虚拟机设置-共享文件夹”添加同一目录,但挂载命令需要换成vmhgfs-fuse。如果mount后看不到文件,先检查 Windows 防火墙是否拦截了 VirtualBox 的驱动套件,再检查共享目录路径里是否存在中文字符。

3. 最小化安装 Linux 后的 4 个必做步骤

3.1 分区和网络:给 /opt 与 /home 独立空间

在虚拟机里装 CentOS 7.9 时,安装界面选择“最小化安装”,分区按 LVM 逻辑卷规划。Cadence 安装目录默认在/opt/Cadence,而用户的设计库和工作目录通常写到$HOME。安装时建议给/opt分配 60 GB,/home分配 30 GB,其余交给/。这样做的好处是后续使用快照回滚时,不会把刚生成的设计文件全部还原掉。

网络部分要关闭 NetworkManager 对 eth 设备的随机命名。最小化安装通常会出现enp0s3这种可预测命名,修改/etc/default/grub中的GRUB_CMDLINE_LINUX变量,增加net.ifnames=0 biosdevname=0,再执行grub2-mkconfig -o /boot/grub2/grub.cfg,把网卡固定为eth0。License 管理器的 hostname 由主机名决定,/etc/hosts里必须写下完整的主机名和固定 IP。安装完成后立即用hostnamectl set-hostname cadence-server设置主机名,避免安装 License 后再去修改导致服务启动失败。

3.2 Cadence 安装前的一揽子依赖命令

Cadence 的安装器本身是图形 Java 程序,部分模块还依赖 32 位兼容库,所以依赖包数量比普通软件多。在 CentOS 上执行:

yum install -y ksh csh gcc gcc-c++ make glibc.i686 glibc-devel.i686 \ libXext.i686 libXtst.i686 libXrender.i686 libstdc++.i686 \ motif.i686 openmotif.i686 java-1.8.0-openjdk \ xterm compat-libf2c-34 elfutils-libelf elfutils-libelf-devel \ gettext gettext-devel libX11-devel libXaw-devel ncurses-libs.i686

这是按照 Cadence IC 6.1.8 的依赖列表整理的常规集合。第二行全是.i686结尾,作用是补上 32 位 X 库。如果缺少motif.i686,virtuoso 的 CIW 窗口会在启动时闪退;缺少libXextdbOpen类操作会直接段错误。安装完依赖后建议执行yum clean all,避免残留的/var/cache占满虚拟磁盘。另外,CentOS 7 自带的java-1.8.0-openjdk版本偏旧,遇到安装器界面无法渲染中文时,手动安装java-1.8.0-openjdk-headless替代,然后直接使用/usr/lib/jvm/java-1.8.0/bin/java启动 InstallScape。

3.3 专用账号的目录规范

安装 Cadence 不能使用 root 或普通账号混用。常见做法是创建独立的edatools用户组和应用账号:

groupadd edatools useradd -g edatools -m -d /home/cadence -s /bin/csh cadence mkdir -p /opt/Cadence/IC618 mkdir -p /opt/Cadence/InstallScape mkdir -p /home/cadence/work chown -R cadence:edatools /opt/Cadence /home/cadence/work

-s /bin/csh很关键。Cadence 的环境脚本在tools/bin/cshrc里大量使用了 csh 语法,如果用默认的 bash,登录后会提示Command not found。后续所有安装操作都在cadence用户下执行,避免安装文件的所有者变成 root,否则 License Server 在启动时无法写入日志。若你的团队有多个成员,可以再建design用户组,并把/home/cadence/work的权限设为775,这样小团队共享工艺库时不至于互相覆盖。

3.4 SELinux 关闭的准确命令

SELinux 会让 Cadence License Manager 的锁文件无法创建,表现是启动时提示/var/tmp/license.log权限不足。临时关闭用setenforce 0,永久关闭需要改配置文件:

sed -i 's/^SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config systemctl stop firewalld systemctl disable firewalld

不要只执行setenforce 0,因为一旦重启虚拟机,SELinux 会恢复 enforcing 状态。防火墙也建议直接禁用,License 使用的端口范围从 5280 到 5300。如果公司安全策略不允许防火墙全关,至少用firewall-cmd --permanent --add-port=5280/tcp --add-port=5280/udp放行对应端口。这里要留意一个和“Windows7虚拟机安装”不同行为:Windows 虚拟机里的 VMtools 会自动配置网络和服务,而 Linux 虚拟机里只要/etc/hosts里有多条本机记录,License 就可能在启动时绑定到 127.0.0.1,导致其他机器无法访问。

4. 安装 Cadence 的 License Server 与主程序

4.1 先装 InstallScape 再装主程序的顺序

Cadence 的安装过程统一由 InstallScape 引导,所以第一步是运行安装目录下的ISCAPE工具,把安装介质解压后执行:

cd /mnt/cadence ./SETUP.SH -install

这里的SETUP.SH会进入交互式界面,选择 InstallScape 版本后,再选择安装目录/opt/Cadence/InstallScape。安装完 InstallScape 后,主程序仍然由它启动:

cd /opt/Cadence/InstallScape/bin ./iscape.sh &

选择“Install”后,界面会要求选择产品压缩包所在目录。此时必须指定/mnt/cadence,而不是逐个选择.tar.Z文件。InstallScape 会自动扫描目录下的Cadence_IC618_lnx86.Z,并列出可安装模块。这里要勾选 “Base Release” 和 “Virtuoso Custom Design Platform” 两个大类,如果漏掉 Base,后续的assura验证工具会因缺少公共库而无法启动。安装过程中提示输入安装版本时,不要让 InstallScape 自动选择最新补丁,除非公司工艺库已经兼容新版本。

4.2 环境变量按顺序写入 .cshrc

主程序装完后,环境变量的顺序决定了工具能否跨调用。以下是一份最简的/home/cadence/.cshrc片段:

setenv CDS_ROOT /opt/Cadence/IC618 setenv CDS_INST_DIR $CDS_ROOT source $CDS_ROOT/tools/dfII/cshrc source $CDS_ROOT/tools/bin/64bit.csh setenv LM_LICENSE_FILE 5280@localhost setenv CDS_LIC_FILE $LM_LICENSE_FILE set path = ($CDS_ROOT/tools/bin $CDS_ROOT/tools/dfII/bin $path)

CDS_LIC_FILELM_LICENSE_FILE必须指向同一地址,因为 cadence 的启动脚本有时只读取其中一个。64bit.csh必须在dfII/cshrc之后加载,因为 64 位版本的编译器路径会覆盖 32 位设置。如果现场用的是浮动 license,需要把5280@localhost换成实际的服务器主机名,例如5280@lic-svr。环境变量配置完不要直接开 virtuoso,先在终端里运行source ~/.cshrc && cadence&确认没有报错。此时若出现No Match提示,多半是某个setenv的路径末尾多了空格。

4.3 设置 ODBC 数据源和器件映射

在安装 Virtuoso 后,原理图仿真需要cds.libdisplay.drf之外的数据库支持。网上热搜里 “Cadence 怎么设置 ODBC 数据源” 被反复搜索,原因是simrc中读取器件库时要连接 MySQL 或 PostgreSQL。常见做法不重新编译驱动,而是用/opt/Cadence/IC618/tools/dfII/etc/tools/inca/odbc.ini模板:

[ODBC Data Sources] PDB_DSN = Cadence MySQL Connector [PDB_DSN] Driver = /usr/lib64/libmyodbc5.so Server = 127.0.0.1 Port = 3306 Option = 3 Socket = /var/lib/mysql/mysql.sock

配置完成后执行export ODBCINI=/opt/Cadence/IC618/tools/dfII/etc/tools/inca/odbc.ini。如果启动仿真时出现 “Data source name not found”,先检查odbcinst -q -d能否列出驱动,列不出来就安装mysql-connector-odbc并重新执行yum install -y mysql-connector-odbc。这一步属于安装环境容易漏掉的部分,很多教程只告诉你装 Cadence,却不会告诉你仿真的数据库到底是怎么连的。这里还有一个经常被误用的点:ODBC 驱动版本必须与 Cadence 自带的libodbc.so位数一致,64 位虚拟机装 32 位驱动,会在dbcOpen时直接报 “wrong ELF class”。

5. 安装收尾的 4 个验证动作和快照技巧

5.1 用 virtuoso -log 验证启动

验证安装是否成功的标准不是看到cadence进程,而是启动 CIW 窗口:

which virtuoso virtuoso -log /home/cadence/work/test.log &

-log参数会把启动阶段的输出写到指定日志,而不是默认的~/.cadence目录。首次启动会提示创建.cdsinit,按提示复制默认模板即可。如果日志停在Loading cdsuser且 CPU 占用为 0,多半是 50 行以内的.cshrc资源冲突,检查64bit.csh是否被重复加载。

5.2 回归库 cds.lib 与 display.drf

新装环境最常出现lib.defs 找不到错误。在每次打开原理图前,在 CIW 里执行Load并加载一个带绝对路径的cds.lib

include /home/cadence/work/tech/cds.lib include /opt/Cadence/IC618/tools/dfII/samples/cdslib/analogLib/lib.defs

第二行是 Cadence 自带的模拟库,验证analogLib的单元是否存在,比测试整个 PDK 更高效。同时需要把display.drf指向 PDK 目录,否则版图窗口的层颜色会是默认单色。

5.3 虚拟磁盘瘦身与快照回滚

安装完成并确认无误后,先关闭虚拟机,在 VirtualBox 中执行:

VBoxManage snapshot "PCLinuxCadence" take "cadence_ready" --description "安装完成基快照" VBoxManage modifymedium disk "PCLinuxCadence" --compact

compact会压缩虚拟磁盘里的空白数据,但有一个前提:虚拟机里的 Linux 需要先执行yum clean all并卸载安装介质,否则 iso 数据会被当成有效内容保留在镜像里。快照回滚的具体技巧是快照之后再建立新的差分磁盘,日常使用cadence_ready作为只读父盘,这样即使/opt下的 PDK 被改坏,重启后也能在 10 秒内恢复到一个干净的 Cadence 环境。

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

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询