别再为VCS和Verdi安装发愁了!一个Ubuntu 20.04用户的保姆级踩坑实录(含gcc版本、lib库缺失等全套解决方案)
Ubuntu 20.04环境下VCS与Verdi安装全攻略:从环境配置到避坑指南
在数字芯片验证领域,Synopsys的VCS和Verdi堪称黄金组合——前者是业界标准的仿真工具,后者则是调试利器。但这对组合的安装过程却常常让工程师们头疼不已,特别是在较新的Ubuntu系统上。本文将基于Ubuntu 20.04 LTS环境,带你完整走一遍安装流程,并针对常见问题提供经过验证的解决方案。
1. 环境准备与基础配置
1.1 系统环境检查
在开始安装前,先确认系统基本信息。打开终端执行:
lsb_release -a uname -m输出应显示类似如下信息:
No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 20.04.3 LTS Release: 20.04 Codename: focal x86_64关键点确认:
- 必须是64位系统(x86_64)
- Ubuntu版本建议20.04 LTS或22.04 LTS
- 确保有sudo权限
1.2 依赖库安装
VCS和Verdi运行时需要大量系统库支持,建议先安装以下基础包:
sudo apt update sudo apt install -y lsb-core libjpeg62-dev libpng-dev libx11-6 \ libxext6 libxrender1 libxtst6 libfreetype6 libfontconfig1 \ libncurses5 libtinfo5 libxft2 libxss1 libglu1-mesa常见问题:如果遇到libpng12.so.0缺失错误,可以创建符号链接:
sudo ln -s /usr/lib/x86_64-linux-gnu/libpng.so /usr/lib/libpng12.so.02. 安装目录结构与权限设置
2.1 创建标准化目录
建议采用以下目录结构,便于后续管理:
mkdir -p ~/synopsys/{installer,vcs,verdi,scl,license}目录用途说明:
installer:存放安装程序vcs/verdi/scl:分别对应各组件安装位置license:统一存放许可证文件
2.2 安装包准备
将获取的安装包解压到对应目录:
cd ~/synopsys/installer unzip SynopsysInstaller_v3.3.zip chmod 755 SynopsysInstaller_v3.3.run执行安装器:
./SynopsysInstaller_v3.3.run安装完成后会生成setup.sh,同样需要赋予执行权限:
chmod 755 setup.sh3. 组件安装流程
3.1 安装顺序建议
按照以下顺序安装各组件:
- SCL(License管理工具)
- VCS(仿真工具)
- Verdi(调试工具)
执行安装命令:
./setup.sh安装界面中选择对应组件和目标目录。典型配置参数:
| 组件 | 安装路径 | 所需空间 |
|---|---|---|
| SCL | ~/synopsys/scl | ~500MB |
| VCS | ~/synopsys/vcs | ~5GB |
| Verdi | ~/synopsys/verdi | ~3GB |
3.2 安装后验证
每个组件安装完成后,检查目标目录是否生成关键文件:
- SCL:检查
amd64/bin/snpslmd是否存在 - VCS:检查
bin/vcs是否存在 - Verdi:检查
bin/verdi是否存在
4. 许可证配置与管理
4.1 生成License文件
在Windows环境下运行scl_keygen工具时,注意:
获取Ubuntu系统的hostname:
hostname获取网卡MAC地址:
ip link show | grep ether
在keygen中输入上述信息生成Synopsys.dat文件。
4.2 License文件配置
修改生成的Synopsys.dat文件:
修改DAEMON行指向实际的snpslmd路径:
DAEMON snpslmd /home/username/synopsys/scl/amd64/bin/snpslmd将修改后的文件复制到license目录:
cp Synopsys.dat ~/synopsys/license/
4.3 启动License服务
先确保27000端口开放:
sudo ufw allow 27000/tcp启动license服务:
cd ~/synopsys/scl/amd64/bin ./lmgrd -c ~/synopsys/license/Synopsys.dat验证服务状态:
./lmstat -c ~/synopsys/license/Synopsys.dat5. 环境变量配置
编辑~/.bashrc文件,添加以下内容:
# Synopsys工具链配置 export SYN_HOME=$HOME/synopsys export VCS_HOME=$SYN_HOME/vcs export VERDI_HOME=$SYN_HOME/verdi export SCL_HOME=$SYN_HOME/scl # 二进制路径 export PATH=$PATH:$VCS_HOME/bin:$VERDI_HOME/bin:$SCL_HOME/amd64/bin # 架构设置 export VCS_ARCH_OVERRIDE=linux export VCS_TARGET_ARCH=amd64 # License配置 export LM_LICENSE_FILE=27000@localhost # 别名设置 alias vcs='vcs -full64 -cpp g++-4.8 -cc gcc-4.8 -LDFLAGS -Wl,--no-as-needed' alias verdi='verdi -full64' alias dve='dve -full64'使配置生效:
source ~/.bashrc6. 常见问题解决方案
6.1 GCC版本冲突
Ubuntu 20.04默认GCC版本为9.x,但VCS需要4.8版本。解决方法:
安装GCC 4.8:
sudo apt install gcc-4.8 g++-4.8创建替代链接:
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 50 sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.8 50
6.2 动态库缺失问题
libjpeg.so.62缺失:
sudo apt install libjpeg62-dev sudo ln -s /usr/lib/x86_64-linux-gnu/libjpeg.so.62 /usr/lib/libjpeg.so.62libpng12.so.0缺失:
wget http://security.ubuntu.com/ubuntu/pool/main/libp/libpng/libpng12-0_1.2.54-1ubuntu1.1_amd64.deb sudo dpkg -i libpng12-0_1.2.54-1ubuntu1.1_amd64.deb6.3 Shell链接问题
解决/bin/sh相关报错:
sudo mv /bin/sh /bin/sh.bak sudo ln -s /bin/bash /bin/sh7. 工具验证与使用测试
7.1 基本功能测试
验证各组件是否能正常启动:
vcs -help verdi -help dve -help7.2 简单仿真测试
创建一个简单的测试文件hello.v:
module hello; initial begin $display("Hello VCS!"); $finish; end endmodule编译并运行:
vcs hello.v -R预期输出:
Hello VCS!7.3 Verdi调试测试
生成波形文件:
module wave; reg clk; initial begin clk = 0; forever #5 clk = ~clk; end initial #100 $finish; endmodule编译并生成FSDB波形:
vcs wave.v -R +fsdb+autoflush verdi -ssf novas.fsdb