【2026最新】在 Win11 WSL2 (Ubuntu 24.04) 上搭建 Synopsys VCS/Verdi 2023数字 IC 设计 EDA 工具链

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 服务器)

  1. Start → Site ID 填 000 → Next
  2. Source Browse 到安装包所在目录(如 ~/eda/synopsys)
  3. Target Dir 填 /opt/synopsys
  4. 勾选 SCL 2023.09(或实际版本)→ 全选组件 → Accept, Install
  5. 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