Synopsys VCS/Verdi 2023 安装教程(WSL2 + Ubuntu 24.04)
2026最新实践,含泪踩坑后总结
一、环境要求
|-------|-------------------------------------------------|
| 项目 | 要求 |
| 宿主机 | Windows 11 22H2 及以上 |
| WSL2 | 启用镜像网络模式( networkingMode=mirrored ) |
| Linux | Ubuntu 24.04 LTS (Noble) |
| 磁盘空间 | 建议预留 80GB+ (VCS+Verdi+SCL 约 20-30GB,编译缓存和波形会膨胀) |
| 内存 | 建议 16GB+ |
二、前置准备
2.1 WSL2 网络配置(固定 MAC)
在 C:\Users\\.wslconfig 中写入:
[wsl2]
networkingMode = mirrored
[experimental]
autoMemoryReclaim = gradual
autoProxy = true
dnsTunneling = true
firewall = true
验证 MAC 地址一致:
# Windows PowerShell
Get-NetAdapter | Select-Object Name, MacAddress
# WSL2 Ubuntu
ip link show eth0
# 两者应一致,用于绑定 License
2.2 换国内 apt 源(加速下载)
bash
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
sudo tee /etc/apt/sources.list << 'EOF'
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ noble main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ noble-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ noble-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ noble-security main restricted universe multiverse
EOF
sudo apt update
2.3 安装系统依赖
bash
sudo apt install -y libxext6 libxi6 libxrender1 libxtst6 libxss1 \
csh gawk libgtk2.0-0 libsm6 libpng16-16 libelf1 \
net-tools build-essential gcc-multilib g++-multilib \
dc dos2unix lsb-release
2.4 修复 /bin/sh(关键)
Synopsys 脚本依赖 bash,Ubuntu 24.04 默认指向 dash:
bash
sudo rm -f /bin/sh
sudo ln -s /bin/bash /bin/sh
ls -la /bin/sh # 确认 -> bash
2.5 修复 lsb 兼容库(关键)
bash
sudo mkdir -p /lib64
sudo ln -sf /lib/x86_64-linux-gnu/ld-linux-x86-64.so.2 /lib64/ld-lsb-x86-64.so.3
三、安装包准备
|------------------------|-----|-----------------------|
| 安装包 | 必要性 | 说明 |
| synopsysinstaller_v5.8 | 必须 | 安装器 |
| scl_v2023.09 | 必须 | License 服务器 |
| vcs_vV-2023.12-SP2 | 必须 | 仿真器(已含 UVM,无需 VCS-MX) |
| verdi_vV-2023.12-SP2 | 必须 | 调试工具 |
| scl_keygen | 必须 | License 生成工具 |
| 1patch | 必须 | 补丁 |
创建安装目录:
bash
sudo mkdir -p /opt/synopsys
sudo chown -R $USER:$USER /opt/synopsys
四、安装步骤
4.1 安装 Synopsys Installer
可以事先在wsl2内创建~/eda/synopsys,把安装需要的资源全部放里面。安装完后删除。
bash
cd ~/eda/synopsys/synopsysinstaller_v5.8
chmod +x synopsysinstaller_v5.8.run
./synopsysinstaller_v5.8.run # 回车确认解压目录
./setup.sh # 启动图形界面
4.2 安装 SCL(License 服务器)
- Start → Site ID 填 000 → Next
- Source Browse 到安装包所在目录(如 ~/eda/synopsys)
- Target Dir 填 /opt/synopsys
- 勾选 SCL 2023.09(或实际版本)→ 全选组件 → Accept, Install
- Finish → Dismiss
4.3 安装 VCS 2023
重复 ./setup.sh:
- 勾选 VCS V-2023.12-SP2(STAND-ALONE)
- 勾选 VCS - Documentation and Smartsearch(OVERLAY,建议选)
- Target 保持 /opt/synopsys
- 全选组件 → 安装
4.4 安装 Verdi 2023
重复 ./setup.sh:
- 勾选 VERDI V-2023.12-SP2(STAND-ALONE)
- 勾选 VERDI_SUPP V-2023.12-SP2(必须选,否则 Novas 缺失)
- Target 保持 /opt/synopsys
- 全选组件 → 安装
⚠️ 磁盘空间警告:安装过程中确保磁盘剩余足够大,否则安装中断会导致文件不完整,需清理后重新安装。
五、License 配置
5.1 获取 Host ID 和 Hostname
bash
# WSL2 内执行
cat /sys/class/net/eth0/address # 如 53:47:ca:7b:2a:fb
hostname # 如 HERMES
5.2 生成 License(Windows 端)
运行 scl_keygen.exe,填写:
- HOST ID Daemon / Feature【MAC地址】:5347ca7b2afb(去冒号)
- HOST Name【主机名】:HERMES
- Port:27000
- 点击 Generate
5.3 修改 Synopsys.dat
- 修改第二行 DAEMON snpslmd 指向实际路径:
bash
DAEMON snpslmd /opt/synopsys/scl/2023.09/linux64/bin/snpslmd
- 复制到 WSL2 并转换换行符:
bash
mkdir -p /opt/synopsys/scl/2023.09/admin/license
# 从 Windows 复制 Synopsys.dat 到上述目录
sudo dos2unix /opt/synopsys/scl/2023.09/admin/license/Synopsys.dat
- 然后把Synopsys.dat拖到 fix.bat上,它会自动修改Synopsys.dat 文件,这步是必要的。

5.4 替换lmgrd,snpslmd文件
复制lmgrd和snpslmd到/opt/synopsys/scl/2023.09/linux64/bin 下替换原文件(不放心可以先备份原文件)

5.5 手动启动 License 验证
bash
/opt/synopsys/scl/2023.09/linux64/bin/lmgrd \
-c /opt/synopsys/scl/2023.09/admin/license/Synopsys.dat
另开终端检查:
bash
ps aux | grep lmgrd
# 应看到 lmgrd 和 snpslmd 两个进程
六、补丁(1patch)
bash
# 1. 将 1patch 复制到 WSL2
cd ~/1patch
chmod +x 1patch
# 2. 执行 patch(需 sudo,递归处理 /opt/synopsys 下所有工具)
sudo ./1patch -ecc /opt/synopsys
# 3. 等待完成,无报错即可
七、环境变量配置
在 ~/.bash_env/10_ic_verify.sh【最好有单独的子bashrc】(或 ~/.bashrc)中写入:
bash
# ===== Synopsys EDA Tools 2023 =====
export SYNOPSYS_ROOT="/opt/synopsys"
export SCL_HOME="$SYNOPSYS_ROOT/scl/2023.09"
export VCS_HOME="$SYNOPSYS_ROOT/vcs/R-2023.12-SP2"
export VERDI_HOME="$SYNOPSYS_ROOT/verdi/V-2023.12-SP2"
export SNPSLMD_LICENSE_FILE="27000@localhost"
export LM_LICENSE_FILE="27000@localhost"
export PATH="$VCS_HOME/bin:$VERDI_HOME/bin:$SCL_HOME/linux64/bin:$PATH"
export LD_LIBRARY_PATH="$VERDI_HOME/share/PLI/VCS/LINUX64:$LD_LIBRARY_PATH"
export LD_LIBRARY_PATH="$VCS_HOME/linux64/lib:$LD_LIBRARY_PATH"
# VCS 编译 alias
alias vcs='vcs -full64 -kdb -debug_access+all'
# ===== License Server 管理(防重复启动 + 自动清理残留)=====
lmgrd_start() {
# 1. 轻量预检:进程级(无 sudo,避免频繁弹密码)
if pgrep -x "lmgrd" > /dev/null 2>&1; then
echo "[License] Server already running (pid: $(pgrep -x lmgrd))"
return 0
fi
# 2. 端口级确认(防止僵尸进程或其他程序占 27000)
if sudo lsof -i :27000 > /dev/null 2>&1; then
echo "[License] Port 27000 occupied, manual cleanup required:"
sudo lsof -i :27000
echo "[License] Run: sudo kill -9 <PID> && sudo rm -f /var/tmp/lock*"
return 1
fi
# 3. 清理历史 crash 残留 lock 文件(避免 snpslmd 报 EXITING DUE TO SIGNAL 41)
# 之前多窗口/异常关闭会留下 root 权限的 lock 文件,必须用 sudo
sudo rm -f /var/tmp/locknassd /var/tmp/locksnpslmd /var/tmp/locknsysnvs 2>/dev/null
# 4. 启动 license server
$SCL_HOME/linux64/bin/lmgrd \
-c $SCL_HOME/admin/license/Synopsys.dat \
-l ~/lmgrd.log > /dev/null 2>&1 &
# 5. 启动后确认(防止静默失败)
sleep 1
if pgrep -x "lmgrd" > /dev/null 2>&1; then
echo "[License] Server started successfully"
else
echo "[License] Server failed to start, check ~/lmgrd.log"
fi
}
# source 时自动调用一次(同 WSL2 实例内多次 source 不会重复启动)
lmgrd_start
生效:
bash
source ~/.bashrc
八、验证
bash
# 1. License
ps aux | grep lmgrd
# 2. VCS
vcs -ID
# 应显示 Compiler version = VCS V-2023.12-SP2_Full64
# 3. Verdi
verdi -version
九、常见问题速查
|---------------------------------------------------------|---------------------------|--------------------------------------|
| 现象 | 原因 | 解决 |
| Invalid Media Root / 找不到 .spf | 安装包未解压或路径不对 | 确认 .spf 文件存在,Installer Source 指向正确目录 |
| Can't install ... already has other Stand-Alone product | 之前安装残留 | 删除旧目录或换 Target 路径重装 |
| /bin/sh: 0: Illegal option -h | /bin/sh 指向 dash | sudo ln -sf /bin/bash /bin/sh |
| cannot execute: required file not found | 缺少 lsb 兼容库 | 创建 /lib64/ld-lsb-x86-64.so.3 软链接 |
| lmgrd: Exit 127 | SCL 路径错误或 lmgrd 缺依赖 | 检查 SCL_HOME 版本号是否与实际一致 |
| Novas: No such file or directory | Verdi 安装不完整,漏选 VERDI_SUPP | 删除旧目录,重新 Installer 全选组件安装 |
| E_UNEXPECTED / WSL2 崩溃 | 磁盘空间不足(VHDX 爆满) | 清理 E 盘,确保 ext4.vhdx 所在分区有 20GB+ 余量 |
| Unsupported Linux version Warning | Ubuntu 24.04 不在官方支持列表 | 忽略 ,不影响使用 |
十、磁盘空间管理建议
- WSL2 的 ext4.vhdx 不会自动收缩,安装完成后删除原始压缩包和解压源文件
- 定期在 WSL2 内执行:sudo apt clean && sudo apt autoremove
- 如需压缩 VHDX(Windows 端,WSL2 关闭后):
bash
wsl --shutdown
diskpart
select vdisk file="E:\WSL\Ubuntu-Noble\ext4.vhdx"
attach vdisk readonly
compact vdisk
detach vdisk
exit