当前位置: 首页 > news >正文

别再为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
http://www.rkmt.cn/news/1457239.html

相关文章:

  • 从假设检验到机器学习:正态、卡方、指数分布在数据分析实战中的角色串讲
  • 别再只会刷新了!手把手教你用Chrome DevTools和Nginx日志定位‘页面未找到’的元凶
  • SRWE完整指南:免费窗口编辑器终极解决方案,轻松调整任意程序窗口大小
  • 使用实用方法快速备份 Outlook 联系人 [已测试]
  • AI率总超标?2026年AI论文写作工具排行榜权威发布,轻松达标不是梦!
  • MATLAB水声信道仿真工具:支持时变多径建模、实测数据注入与可视化分析
  • 基于STM32的纯正弦波逆变器全套开发包:含可投产硬件设计、SPWM生成工具与完整控制固件
  • SciTech-Science-Fingerprints指纹-刑侦提取之碘蒸汽熏蒸法 + 502熏显法与Glue胶水
  • 从Word迁移到LaTeX避坑指南:我踩过的公式编号、图片路径和参考文献引用这些‘雷’
  • 技术债”不只烂代码:那个被所有人忽视的“密码债”
  • 保姆级教程:手把手教你搞定CYUSB3014芯片的SDK与驱动安装(附常见问题排查)
  • 云教务如何设计学生成长档案:学生信息、成绩、考勤、评价、活动
  • 矿山井下通信新标杆:A-47模块的本安声学优化实录
  • 宁波制造工厂短视频运营破局:口碑服务商实测对比 - 奔跑123
  • 立式烘箱品牌有哪些,朗秀科技怎么样 - 工业品牌热点
  • 2026 年深圳小程序开发资质新规详解!新手避坑必备合规指南
  • OpenRocket火箭设计软件完整指南:从零开始掌握开源火箭仿真
  • Baserow:开源版 Airtable,零代码搭建数据库与自动化
  • 从科研小白到绘图达人:用MATLAB legend函数搞定论文中的多曲线图例
  • 别再手动加载数据了!用Simulink Model Callbacks实现模型启动自动化(附set_param代码)
  • 基于树莓派与云端服务搭建低成本智能家居中枢实战指南
  • 别再浪费时间乱找数据分析自学视频?2026年过来人劝告选错真的亏大了,这6套视频总直接领
  • 宁波豆包推广公司实测对比:制造业工厂获客避坑指南 - 奔跑123
  • 别再让MATLAB图丑哭了!手把手教你用title、xlabel、legend做出能发论文的漂亮图表
  • AI+HR效能跃迁实战手册(2024头部科技公司内部培训首曝)
  • 【字节跳动】巨量引擎 工业级全栈 完整全集源码(终极完整版)
  • 2026年适合零基础的无人机驾驶员培训选购指南 - 工业品牌热点
  • 量子过程层析技术:原理、应用与工程实践
  • Flink生产环境Checkpoint清理实战:RocksDB增量模式下,手动删除的正确姿势与避坑指南
  • 从DIY角度聊聊:用常见开发板(如STM32)实现一个简易相位激光测距模块的难点在哪?