news 2026/6/4 1:39:07

别再为VCS和Verdi安装发愁了!一个Ubuntu 20.04用户的保姆级踩坑实录(含gcc版本、lib库缺失等全套解决方案)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
别再为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.0

2. 安装目录结构与权限设置

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.sh

3. 组件安装流程

3.1 安装顺序建议

按照以下顺序安装各组件:

  1. SCL(License管理工具)
  2. VCS(仿真工具)
  3. 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工具时,注意:

  1. 获取Ubuntu系统的hostname:

    hostname
  2. 获取网卡MAC地址:

    ip link show | grep ether

在keygen中输入上述信息生成Synopsys.dat文件。

4.2 License文件配置

修改生成的Synopsys.dat文件:

  1. 修改DAEMON行指向实际的snpslmd路径:

    DAEMON snpslmd /home/username/synopsys/scl/amd64/bin/snpslmd
  2. 将修改后的文件复制到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.dat

5. 环境变量配置

编辑~/.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 ~/.bashrc

6. 常见问题解决方案

6.1 GCC版本冲突

Ubuntu 20.04默认GCC版本为9.x,但VCS需要4.8版本。解决方法:

  1. 安装GCC 4.8:

    sudo apt install gcc-4.8 g++-4.8
  2. 创建替代链接:

    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.62

libpng12.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.deb

6.3 Shell链接问题

解决/bin/sh相关报错:

sudo mv /bin/sh /bin/sh.bak sudo ln -s /bin/bash /bin/sh

7. 工具验证与使用测试

7.1 基本功能测试

验证各组件是否能正常启动:

vcs -help verdi -help dve -help

7.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
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/4 1:38:11

STM32CubeMX配置指南:5分钟搞定WS2812的DMA+PWM驱动(F1/F4系列通用)

STM32CubeMX极简配置:DMAPWM驱动WS2812全彩灯带实战在物联网和智能硬件项目中,WS2812系列全彩LED因其集成度高、控制简单而广受欢迎。但对于STM32初学者来说,如何高效驱动这类灯带仍是一个挑战。本文将展示如何通过STM32CubeMX图形化工具&…

作者头像 李华
网站建设 2026/6/4 1:37:54

如何用Telephone打造专业的Mac SIP软电话解决方案?

如何用Telephone打造专业的Mac SIP软电话解决方案? 【免费下载链接】Telephone SIP softphone for Mac 项目地址: https://gitcode.com/gh_mirrors/te/Telephone 还在为昂贵的商务电话系统烦恼吗?还在寻找一款能在Mac上稳定运行的免费开源VoIP解决…

作者头像 李华