简介面向微电子与集成电路方向学生来自中科大软件学院的Cadence环境安装实验讲义针对PClinux虚拟机版解决在Windows宿主机上通过VMware部署Cadence模拟IC设计环境的问题。内容覆盖所需软件获取、Vmware安装、IC_workstation虚拟系统引导、Linux登录与常用shell命令以及共享文件夹设置和虚拟机正确关闭等关键环节并配有界面截图适合课程实验预习、EDA环境独立搭建或故障排查时参考。资源包为1个PDF文件大小仅526KB轻量易用移动端也可查阅。目前已有644人浏览学习。读者可借助其中完整的安装步骤与操作提示快速跑通Cadence启动流程、理解project工作目录结构同时避开共享文件夹命名、关机方式等常见坑点显著提升实验环境准备效率。1. 为什么选择 PCLinuxOS 虚拟机作为 Cadence 环境安装目标许多工程师手里只有一台 Windows 笔记本却要跑 Cadence 的 PCB 或 IC 设计工具。官方安装说明大多只覆盖 Linux 平台所以最直接的办法是建一台 PCLinuxOS 虚拟机把整套 Cadence 环境装在里面。和 Ubuntu 相比PCLinuxOS 是滚动升级、桌面友好、默认就是 KDE 的发行版对长期开着虚拟机做仿真、隔几天再回来继续工作的场景反而更稳不容易出现升级后用一段时间库失效的问题。虚拟机方案还会带来两个附加收益一是安装前打一个快照任何一个依赖库装坏都能整机回滚二是整个工具链和 License 的绑定关系跟着虚拟磁盘走换宿主机时只需要把.vmx文件复制过去。代价是性能有 20%~30% 损耗所以虚拟机的内存和 CPU 核心数要一次给够后续运行 Cadence 的 Virtuoso 或 Allegro 才不至于卡在启动画面。2. 在 VMware Workstation 上准备 PCLinuxOS 虚拟机硬件与基础系统2.1 创建虚拟机前的硬件参数与系统分区下载 PCLinuxOS 的 x86_64 ISO 镜像是第一步安装包为 KDE Desktop 版即可。打开 VMware Workstation新建虚拟机操作系统类型选择 Linux内核版本按 VMware 支持的最高版本选择 64 位。硬件参数不能照搬 Windows 虚拟机的默认值参考下表设置参数推荐值说明内存8 GB 及以上PCLinuxOS 桌面占 1.5 GBCadence 启动后 Allegro/Virtuoso 需要 3~4 GB处理器2~4 核仿真和 DRC 会多线程跑但不要超过宿主机物理核数的一半磁盘60 GB 厚置备安装包解压后约 15 GB工程文件、仿真波形和日志还会持续增长网络NAT 或桥接License server 运行在虚拟机内选 NAT在局域网选桥接显示器1 个1280x800Cadence 老界面在 4K 下字号太小等装完再调高磁盘类型选择 SCSI虚拟存储格式选“存储为单个文件”。如果创建时选了“拆分文件”后续打快照会变得很慢。系统装完后在虚拟机设置里开启“加快显卡渲染”图形界面响应会好一点。2.2 安装 PCLinuxOS 并把 csh 符号链接补上安装过程里注意两件事分区完成后把交换分区设成与内存等大Cadence 仿真数据会临时写入交换文件空间不足会导致no space left on device语言可以默认英文编码必须选en_US.UTF-8否则 License 文件中的特征码在部分非 UTF-8 区域下会解析乱码。重启进入 KDE 桌面后先更新系统再装 VMware Toolsurpmi.update -a urpmi --auto-select rebooturpmi.update -a重新拉取仓库索引urpmi --auto-select把当前系统里所有可升级软件包一次升完。PCLinuxOS 是滚动发行版长时间不更新可能导致后续安装 Cadence 时仓库找不到旧版本依赖。更新重启后用uname -a确认内核已经变成最新 x86_64。接着安装 VMware Tools 和编译环境urpmi open-vm-tools dkms kernel-devel gcc gcc-c make ln -sf /bin/tcsh /bin/cshopen-vm-tools提供 VMware 虚拟机的 vmxnet3、vmmouse 等驱动kernel-devel配合dkms在每次内核更新后自动重编驱动否则鼠标指针和网络可能在重启后失效。第二行命令把 tcsh 作为 csh 暴露给系统Cadence 的安装脚本和启动脚本里大量使用#!/bin/csh没有这个符号链接就会直接报no such file or directory。如果源里没有 tcsh先执行urpmi tcsh。2.3 用 urpmi 补齐 Cadence 安装器的显示与图形依赖Cadence 安装向导由 Java 与 Tcl/Tk 混合编写缺少 X11 相关库的表现通常是安装画面一片空白或者点击 Next 没有任何反应。在 PCLinuxOS 上一次性补齐urpmi xterm openmotif libxrender1 libxt6 libxtst6 libglu1 java-11-openjdk其中xterm安装向导会在控制台调用 xterm 显示协议接受信息openmotifCadence 老版工具的用户界面依赖 Motif 控件libxrender1/libxt6/libxtst6X 渲染与 X Toolkit 扩展缺失时启动会直接 segfaultjava-11-openjdk安装程序运行时的 Java 基础版本高于 12 可能在向导里出现菜单错位。装完用rpm -q同时检查多个包rpm -q xterm openmotif libxrender1 libxt6 libxtst6 tcsh java-11-openjdk退出码为 0 才继续有任何一行提示 not installed 就再执行上面那条urpmi。这个检查步骤在以后回滚快照后非常有用快照恢复到系统刚装好的状态时直接运行这段命令就能把依赖续上。3. 把 Cadence 安装介质挂进 PCLinuxOS 虚拟机并解包3.1 循环挂载 ISO而不是直接解压到共享目录从官网或企业内部介质中心拿到 Cadence 安装包后先把 ISO 放到虚拟磁盘的/home/cadence/iso目录然后用循环设备挂载mkdir -p /mnt/cadence mount -o loop,ro /home/cadence/iso/cadence.iso /mnt/cadence ls -l /mnt/cadence-o loop让内核把 ISO 文件模拟成块设备挂载ro表示只读避免操作过程中误改介质文件。如果安装包来源是 Windows 共享目录里的 zip不要在 Windows 上解压应该先把 zip 拷贝进虚拟磁盘再解压。原因有两个NTFS 不保留 Linux 权限位解压后所有文件会变成 777 或者 644安装脚本里的 setuid 安装助手无法运行另外 Windows 下某些解压工具会把.so符号链接拆成两个普通文件启动 Cadence 时找不到共享库。介质格式处理方式常见问题ISOmount -o loop挂载后运行 setup直接 unzip 会丢权限位zip拷贝到本地后unzipNTFS 下解压会丢失符号链接tar.gztar -xzf解包后chown必须交给 cadence 用户mkdir -p /opt/cadence_src cp -a /home/cadence/iso/cadence.zip /opt/cadence_src/ cd /opt/cadence_src unzip cadence.zip3.2 创建独立用户并处理二进制安装前的两个报错点Cadence 安装和运行都推荐使用非 root 用户。root 安装会把CDSROOT、License 路径写进/root的配置里普通用户启动工具时完全读不到。创建专用用户groupadd cadence useradd -m -g cadence -s /bin/bash cadence passwd cadence这里使用/bin/bash作为登录 shell与 Cadence 的兼容性没问题如果后面遇到工具脚本只认 csh再用chsh -s /bin/tcsh cadence切换。给安装目录授权chown -R cadence:cadence /mnt/cadence /opt/cadence_src /opt/tmp su - cadence然后运行安装脚本cd /mnt/cadence ./setup.sh如果setup.sh退出并提示Java not found查看JAVA_HOME指向echo $JAVA_HOME当前 PCLinuxOS 仓库默认的 JDK 路径在/usr/lib/jvm/java-11-openjdk可以直接导出export JAVA_HOME/usr/lib/jvm/java-11-openjdk再就是一个非常隐蔽的问题setup.sh启动时会把临时文件写到/tmp但有些虚拟机模板把根分区做得很小安装进度走到 60% 时会报Temporary directory full。解决方法是把/tmp绑定到数据盘的大目录mkdir -p /opt/tmp mount --bind /opt/tmp /tmpmount --bind是把一个已挂载目录再挂到另一个挂载点上原目录里的文件仍然可见但写入/tmp的内容会占/opt/tmp所在分区的空间。这个方法比修改/etc/fstab更灵活安装完成后同样用umount /tmp就能解除绑定。3.3 安装目录的软链接与启动器检查安装向导默认把 Cadence 装到/opt/cadence。如果根分区空间不够可以用软链接指到数据盘目录mkdir -p /home/data/cadence_tools ln -s /home/data/cadence_tools /opt/cadence这个软链接需要提前建好因为安装程序的路径探测是预先执行的等向导走到选择目录步骤再改就来不及了。安装完成后检查主要启动器是否存在ls -l /opt/cadence/tools/bin/ | head -30如果要跑板级设计应该能看到allegro跑 IC 设计应该看到virtuoso或gateway。如果对应的启动器缺失说明安装时没有勾选相应产品组件回到安装向导补齐组件即可不需要重装整个介质。4. 配置 Cadence 的 License、环境变量、ODBC 数据源和仿真库4.1 License 文件与 FlexLM 的启动参数License 有两种常见布局单机本地文件或独立的授权服务器。在虚拟机版里大多数人把 License server 也装在同一个虚拟机flexlm 守护进程启动后监听 5280 端口。首先要确认license.dat的 SERVER 行与本机 MAC 地址一致ip link show | grep ether虚拟机网卡 MAC 在 VMware 里每次复制或恢复快照时可能自动变化建议在.vmx配置文件里锁定ethernet0.addressType static ethernet0.address 00:0c:29:a1:b2:c3ethernet0.addressType设为 static 后VMware 不再用 random 类型重新生成 MACLicense 文件中的 hostid 才能长期绑定。4.1.1 本地 License 的环境变量写法把license.dat放到/opt/cadence/share/license然后在~/.bashrc中添加export CDSROOT/opt/cadence export CDS_LIC_FILE/opt/cadence/share/license/license.dat export LM_LICENSE_FILE$CDS_LIC_FILE export PATH$PATH:${CDSROOT}/tools/bin:${CDSROOT}/tools/dfII/bin export LD_LIBRARY_PATH${CDSROOT}/tools/lib:${CDSROOT}/tools/lib64:${LD_LIBRARY_PATH}CDS_LIC_FILE是 Cadence 专用变量LM_LICENSE_FILE是 FlexLM 工具读取的通用变量两个都写才能让lmutil和 Cadence 自己的启动器都找到授权。如果 license 在另一台机器把CDS_LIC_FILE改成5280license-server-hostname格式即可但要注意 license server 主机名必须同时写进/etc/hosts否则解析超时会等 5 分钟。4.1.2 License 环境变量的常见误用有两个误用频率很高。一是只设置CDS_LIC_FILE不设置LM_LICENSE_FILECadence 能启动但lmstat检查时连不上二是 PATH 中漏掉${CDSROOT}/tools/bin64部分工具会去找 64 位版本的启动器报bad interpreter。额外加一行export PATH$PATH:${CDSROOT}/tools/bin64这些都是环境变量设置问题和 license 文件本身无关排查时用which virtuoso先确认工具位置是否被正确识别。4.2 PCLinuxOS 下给 Cadence 设置 ODBC 数据源Cadence 的 CISComponent Information System组件库要通过 ODBC 连接 MySQL、PostgreSQL 或企业内部数据库数据库驱动和 DSN 的配置与 Windows 上的 ODBC 管理器完全不同。在 PCLinuxOS 上先安装 unixODBC 和 MySQL 驱动urpmi unixODBC mysql-connector-odbc然后编辑/etc/odbc.ini[CadenceCIS] Description Cadence CIS Database Driver MySQL ODBC Unicode Driver Server 127.0.0.1 Database cadence_cis Port 3306 Option 3Option3表示启用连接重试和自动提交MySQL ODBC Unicode Driver是odbcinst -q -d列出的驱动名。写完 DSN 后用isql验证odbcinst -q -d isql -v CadenceCIS caduser cadpass其中caduser和cadpass是数据库专用账号不要用 root 连。isql输出---------------------------------------并进入SQL提示符说明连接成功。如果报Driver not found去/etc/odbcinst.ini查实际驱动路径再用find /usr/lib64 -name libmyodbc*对一下。Cadence 老版本对 Unicode 驱动支持不佳如果 CIS 里中文名称乱码把 Driver 行改成MySQL ODBC ANSI Driver再试。4.3 仿真库路径CDS_LIB_PATH 与 cds.lib环境变量配完后仿真还要处理库。Cadence 使用cds.lib文件中的DEFINE指令映射设计库和工艺库。默认安装不会把analogLib自动加入需要手动把库路径写入~/.cdsinit或cds.libgrep -n DEFINE $CDSROOT/tools/dfII/etc/cdslib/artist/cds.lib | grep analogLib如果输出为空则在当前工程的cds.lib里追加echo DEFINE analogLib $CDSROOT/tools/dfII/etc/cdslib/artist/analogLib cds.lib同时把CDS_LIB_PATH加到环境变量export CDS_LIB_PATH$CDSROOT/share/cdssetupCDS_LIB_PATH让 Cadence 在启动时自动搜索库目录这样DFII才能打开 Library Manager。仿真如果报器件未定义优先检查 cds.lib 中对应的DEFINE行是否指向了实际存在的目录而不是先怀疑仿真参数。5. 用一个小项目验证 Cadence 环境启动、License 与数据库5.1 打开工具前的三行检查命令确认配置是否生效不要直接双击桌面图标先开终端跑下面三行echo $CDSROOT which allegro which virtuosoecho输出/opt/cadence才算读取到.bashrcwhich有结果才说明 PATH 正确。如果都没有执行source ~/.bashrc再试。PCLinuxOS 的桌面终端不会自动重新加载环境变量新开的终端窗口也一样必须手动 source。5.2 License 验证与快照回滚点打开工具前用lmutil验证/opt/cadence/tools/bin/lmutil lmstat -a -c 5280localhost输出中license server UP且server hostid是当前虚拟网卡 MAC表示 License 正常。如果出现license server DOWN先重启 flexlm 守护进程如果出现Invalid host回第 4 节改license.dat的 SERVER 行。确认 license 没事后再启动 Cadence成功进入界面后立即在 VMware 里创建快照命名cadence-new这个快照是后续所有依赖调整的恢复点。5.3 用一条 SQL 和一个 DEFINE 完成最终验证CAD 环境最后能否用在项目上还要看数据库设置。在终端执行echo SELECT ODBC_OK; | isql -v CadenceCIS caduser cadpass能返回ODBC_OK说明 CAD 工具在拉取 CIS 数据时不会等待超时。然后创建一个最小工程目录写入cds.libmkdir -p ~/project_test cd ~/project_test echo DEFINE myLib ./myLib cds.lib在 Cadence 中打开 Library Manager能看到myLib出现在库里说明cds.lib解析正常。此时整个环境已经具备一天内开始画原理图的条件剩下的只是在 Cadence 的工具菜单里按项目需求逐项导入封装库和工艺文件。本文还有配套的精品资源点击获取