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

在Linux Mint上搞定Synopsys VCS和Verdi 2018.06:一个学生党的完整踩坑与配置实录

在Linux Mint上搞定Synopsys VCS和Verdi 2018.06一个学生党的完整踩坑与配置实录作为一名微电子专业的学生第一次接触Synopsys的VCS和Verdi工具时我完全被它们的强大功能所震撼。然而当我在自己的Linux Mint系统上尝试安装这些工具时才发现这条路并不像想象中那么平坦。本文将分享我从零开始在个人学习环境中成功安装并运行VCS和Verdi 2018.06版本的全过程包括那些教科书上不会告诉你的坑和解决方案。1. 准备工作与环境检查在开始安装之前确保你的Linux Mint系统满足基本要求至关重要。我使用的是Linux Mint 20.3 Una基于Ubuntu 20.04 LTS这个版本提供了良好的稳定性和兼容性。首先检查系统架构和内核版本uname -m # 确认是x86_64架构 lsb_release -a # 查看Linux Mint版本信息VCS和Verdi对系统资源有一定要求特别是内存和存储空间。建议至少8GB RAM16GB更佳50GB可用磁盘空间多核CPU4核以上提示如果使用虚拟机建议分配更多资源。我在VirtualBox中分配了4核CPU和12GB RAM运行效果尚可。安装必要的依赖库是避免后续问题的关键步骤sudo apt update sudo apt install -y build-essential libncurses5-dev libx11-dev libxt-dev \ libxft-dev libxext-dev libxrender-dev libxrandr-dev libglu1-mesa-dev \ libc6-dev-i386 gcc-multilib ksh csh tcsh2. 获取与准备安装文件作为学生获取Synopsys工具的正版授权是一个挑战。大多数高校都会提供教育版授权建议联系学校实验室或导师获取合法授权文件。安装文件通常以压缩包形式提供常见的结构如下synopsys/ ├── installer_v5.0/ ├── scl_v2018.06/ ├── vcs_v2018.06/ └── verdi_v2018.06/解压后首先需要设置安装目录权限sudo mkdir -p /opt/synopsys sudo chown -R $USER:$USER /opt/synopsys注意避免使用root权限直接安装这可能导致后续使用时的权限问题。3. 安装Synopsys InstallerSynopsys的安装程序是一个独立的工具需要首先安装cd synopsys/installer_v5.0 ./setup.sh安装过程中常见的几个问题及解决方案Java环境问题如果遇到Java错误确保安装了正确的版本sudo apt install openjdk-8-jre图形界面无法启动确保已安装X11和必要的图形库sudo apt install xorg openbox权限拒绝错误检查安装目录的写权限必要时重新设置sudo chmod -R 755 /opt/synopsys安装完成后可以通过以下命令启动安装管理器/opt/synopsys/installer/installer4. 安装SCL (Synopsys Common Licensing)SCL是Synopsys工具的许可证管理系统必须正确安装和配置cd synopsys/scl_v2018.06 ./setup.sh安装过程中选择自定义安装路径为/opt/synopsys/scl/2018.06。安装完成后需要配置许可证文件。通常你会得到一个.dat文件将其放置在/opt/synopsys/scl/2018.06/admin/license/目录下。然后编辑~/.bashrc文件添加以下环境变量export SCL_HOME/opt/synopsys/scl/2018.06 export PATH$SCL_HOME/linux64/bin:$PATH export SNPSLMD_LICENSE_FILE27000localhost启动license服务$SCL_HOME/admin/bin/lmgrd -c $SCL_HOME/admin/license/license.dat -l ~/synopsys_license.log验证license是否正常工作lmstat -c $SNPSLMD_LICENSE_FILE -a5. 安装VCS和Verdi现在可以开始安装主要工具了。首先安装VCScd synopsys/vcs_v2018.06 ./setup.sh选择安装路径为/opt/synopsys/vcs/2018.06。接着安装Verdicd synopsys/verdi_v2018.06 ./setup.sh选择安装路径为/opt/synopsys/verdi/2018.06。安装完成后再次编辑~/.bashrc文件添加以下内容# VCS环境变量 export VCS_HOME/opt/synopsys/vcs/2018.06 export PATH$VCS_HOME/bin:$PATH # Verdi环境变量 export VERDI_HOME/opt/synopsys/verdi/2018.06 export PATH$VERDI_HOME/bin:$PATH export LD_LIBRARY_PATH$VERDI_HOME/share/PLI/lib/LINUXAMD64:$LD_LIBRARY_PATH6. 常见问题与解决方案在实际安装过程中我遇到了几个棘手的问题以下是解决方案6.1 图形界面显示问题当启动Verdi时可能会遇到以下错误Unable to initialize GTK, is DISPLAY set properly?解决方案确保X11转发设置正确echo $DISPLAY # 应该显示类似:0或:0.0如果使用SSH远程连接确保使用-X或-Y选项ssh -X usernamehostname安装必要的图形库sudo apt install libjpeg62-dev libpng-dev6.2 许可证服务器无法启动如果遇到许可证服务器问题可以尝试以下步骤检查端口27000是否被占用netstat -tulnp | grep 27000如果被占用可以更改端口号export SNPSLMD_LICENSE_FILE27001localhost杀死现有进程并重新启动pkill lmgrd $SCL_HOME/admin/bin/lmgrd -c $SCL_HOME/admin/license/license.dat -l ~/synopsys_license.log6.3 32位库兼容性问题某些旧版工具可能需要32位库支持sudo apt install libc6-i386 lib32stdc6 lib32z17. 验证安装安装完成后建议运行简单的测试用例验证工具是否正常工作。创建一个简单的Verilog测试文件test.vmodule test; initial begin $display(Hello, Synopsys!); $finish; end endmodule使用VCS编译并运行vcs -full64 test.v ./simv如果一切正常你应该看到输出Hello, Synopsys!启动Verdi检查波形查看功能verdi -ssf test.fsdb 8. 日常使用技巧经过几周的使用我总结了一些提高效率的技巧VCS编译选项优化vcs -full64 -R -debug_accessall -sverilog test.sv-R编译后立即运行-debug_accessall启用所有调试功能-sverilog支持SystemVerilogVerdi快捷键自定义 在~/.novas.rc文件中添加bind KeyF10 fsdbDumpvars 0 test bind KeyF11 run 100ns批处理脚本 创建一个run.sh脚本自动化流程#!/bin/bash vcs -full64 -R $1 verdi -ssf ${1%.*}.fsdb 内存管理 对于大型设计可以增加VCS内存限制export VCS_OVERRIDE_OPTIONS-M2G -R9. 性能优化与系统配置为了让VCS和Verdi在个人电脑上运行得更流畅我做了以下优化并行编译vcs -full64 -j4 test.v # 使用4个并行任务临时文件处理 设置临时目录到高速存储export TMPDIR/tmp/synopsys mkdir -p $TMPDIR系统交换空间 增加交换空间提升内存处理能力sudo fallocate -l 8G /swapfile sudo chmod 600 /swapfile sudo mkswap /swapfile sudo swapon /swapfile文件系统优化 如果是ext4文件系统可以调整挂载选项/dev/sda1 / ext4 noatime,datawriteback,barrier0,nobh,errorsremount-ro 0 110. 学习资源与进阶建议对于刚开始接触这些工具的同学以下资源可能会有所帮助官方文档VCS User GuideVerdi User GuideSystemVerilog LRM在线课程Udemy上的SystemVerilog验证课程Coursera的数字IC设计专项课程实践项目从简单的ALU设计开始逐步实现流水线CPU尝试UVM验证方法学社区支持EDA Playground在线实验平台Stack Overflow的Verilog和VCS标签专业论坛如DeepChip在实验室的第一周我几乎花了三天时间才让VCS成功编译第一个设计。记得当时因为一个缺失的32位库整个周末都在排查问题。现在回想起来这些挫折反而让我对工具链有了更深入的理解。对于刚入门的同学我的建议是保持耐心仔细阅读错误信息善用搜索引擎你会发现大多数问题都有解决方案。

相关文章:

在Linux Mint上搞定Synopsys VCS和Verdi 2018.06:一个学生党的完整踩坑与配置实录

在Linux Mint上搞定Synopsys VCS和Verdi 2018.06:一个学生党的完整踩坑与配置实录 作为一名微电子专业的学生,第一次接触Synopsys的VCS和Verdi工具时,我完全被它们的强大功能所震撼。然而,当我在自己的Linux Mint系统上尝试安装这…...

可观测性技术栈选型指南:从Prometheus到OpenTelemetry的实践路径

1. 项目概述:一个可观测性技术栈的“藏宝图”如果你正在构建或维护一个现代化的、需要高可靠性的软件系统,那么“可观测性”这个词对你来说一定不陌生。它早已超越了传统的监控,成为确保系统健康、快速定位问题的核心能力。然而,当…...

保姆级避坑指南:用GGCNN源码处理Cornell抓取数据集,解决tiff文件生成失败问题

GGCNN源码实战:Cornell数据集预处理深度排错指南 第一次运行GGCNN的Cornell数据集预处理脚本时,我盯着毫无反应的终端窗口足足等了十分钟——没有进度条,没有错误提示,只有光标在无情地闪烁。这大概是每个复现论文的开发者都会经历…...

自然语言脚本编程:用humanscript实现意图驱动的自动化

1. 项目概述:当代码遇上自然语言最近在折腾一些自动化脚本时,我总在想,有没有一种方式,能让写脚本这件事变得像写待办事项清单一样简单?比如,我想让电脑“把今天下载的图片都压缩一下,然后传到网…...

基于Next.js 15与React 19构建现代化个人作品集:技术选型与工程实践

1. 项目概述:为什么选择 Next.js 15 构建现代个人作品集 作为一名在前后端领域摸爬滚打了十多年的开发者,我见过也亲手搭建过无数种个人作品集网站。从早期的纯静态 HTML/CSS,到 jQuery 时代,再到 React/Vue 等框架的兴起&#x…...

模型运行记录

1753...

Fomu FPGA工作坊:从LED闪烁到RISC-V软核的微型硬件开发指南

1. 项目概述:当FPGA遇见指尖,一场硬件的微型革命如果你对嵌入式开发、硬件编程感兴趣,但又觉得传统的FPGA开发板笨重、昂贵且入门门槛高,那么im-tomu/fomu-workshop这个项目可能会让你眼前一亮。这不仅仅是一个代码仓库&#xff0…...

量子信号处理技术及其在离子阱系统中的应用

1. 量子信号处理技术概述量子信号处理(Quantum Signal Processing, QSP)是近年来量子计算领域涌现的一项基础性技术,它通过精心设计的量子比特旋转序列,实现对量子数据的系统性多项式变换。这项技术的核心价值在于,它为…...

数据中台下半场比的是治理:六家主流厂商四维度横向测评

一、数据治理:决定数据中台价值兑现的关键变量2026年,一个行业的共识正在变得清晰:数据中台的上限由计算架构决定,但下限由数据治理决定。过去数年,大量企业投入资源搭建了数据中台的基础设施——数据湖、数仓、调度引…...

FreeVA:零训练成本,用图像大模型实现视频理解的新范式

1. 项目概述:一个无需训练的“零成本”视频助手 最近在折腾多模态大模型(MLLM)的时候,我发现了一个挺有意思的现象:大家一提到让模型理解视频,第一反应就是得搞“视频指令微调”。简单说,就是拿…...

权限割裂、数据延迟、协同断点——Gemini Workspace整合失败的90%源于这4个配置盲区

更多请点击: https://intelliparadigm.com 第一章:权限割裂、数据延迟、协同断点——Gemini Workspace整合失败的90%源于这4个配置盲区 在企业级部署 Gemini Workspace 时,大量团队遭遇“功能可登录但协作不可用”的隐性故障。根本原因并非 …...

语言启蒙到底要不要背单词

语言启蒙阶段到底要不要背单词?我更愿意把这个问题换一种问法:这些词是不是能和声音、图像、语境连起来,并且隔几天还能回来一次。 如果只是拿一张词表硬记,入门用户很容易觉得枯燥。可如果完全不接触词汇,后面的听读…...

【AI】短期记忆:会话上下文管理与实现

短期记忆:会话上下文管理与实现 📝 本章学习目标:本章深入探讨记忆机制,这是AI Agent持续执行的关键能力。通过本章学习,你将全面掌握"短期记忆:会话上下文管理与实现"这一核心主题。 一、引言&a…...

droidrun-agent:基于MCP协议连接AI智能体与安卓设备的自动化桥梁

1. 项目概述:当AI助手需要“动手”时在AI Agent(智能体)领域,我们常常遇到一个瓶颈:模型可以生成完美的计划、写出漂亮的代码,但它如何与真实世界交互,尤其是如何操作一台物理设备?比…...

NSA 5G:从双连接到网络切片,解析5G组网演进之路

1. 非独立组网5G:一场关于“先有鸡还是先有蛋”的行业博弈如果你在2017年的世界移动通信大会(MWC)现场,可能会感到一丝困惑。前一年,整个行业还在为5G描绘一幅彻底颠覆4G、开启万物互联新纪元的宏伟蓝图。然而一年后&a…...

数字信号处理中的统计与概率基础解析

1. 数字信号处理中的统计与概率基础 在数字信号处理(DSP)领域,统计和概率理论构成了分析和处理信号的核心数学工具。信号在采集、传输和处理过程中不可避免地会受到各种干扰和噪声的影响,这些干扰可能来自测量系统本身&#xff0c…...

高速SerDes设计中BER预测的智能应力输入方法

1. 高速串行链路设计中的BER预测挑战在当今高速数字系统设计中,SerDes(串行器/解串器)技术已成为主流接口方案,数据传输速率已突破10Gbps大关。随着速率提升,信号完整性(SI)问题日益突出,其中误码率(BER)预…...

十年后,编程还会是人类的工作吗?

一个正在被重写的职业剧本站在2026年的中点眺望2036年,没有人能准确预言未来。但作为软件测试从业者,我们或许是离“编程工作是否会被取代”这个答案最近的一群人。因为我们每天的工作,就是审视代码的边界、挖掘逻辑的漏洞、评估系统的风险。…...

使用Taotoken管理控制台进行APIKey的权限划分与审计日志查看

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 使用Taotoken管理控制台进行APIKey的权限划分与审计日志查看 在团队协作开发或构建多应用服务时,统一管理大模型API的访…...

Rails控制台集成AI助手:ask_chatgpt Gem的实践指南

1. 项目概述:在Rails控制台里装一个AI助手 如果你是一个Ruby on Rails开发者,并且每天都在跟Rails控制台( rails console )打交道,那你肯定有过这样的时刻:盯着一段复杂的ActiveRecord查询,或…...

知识付费浪潮下的技术学习:是捷径,还是新的信息茧房?

当“知识”成为一种商品打开手机,各类技术公众号、知识星球、极客时间专栏、慕课网实战课、B站充电视频……铺天盖地的“测试开发进阶”“性能测试大师班”“自动化测试框架实战”正以9.9元、199元、3999元的价格被明码标价。作为一名软件测试工程师,我们…...

VSCode调试C++项目全攻略:从CMake工程配置到Native Debug实战(含传参技巧)

VSCode调试C项目全攻略:从CMake工程配置到Native Debug实战(含传参技巧) 在当今的C开发环境中,高效调试已成为提升生产力的关键环节。对于使用CMake管理的中大型项目,如何在VSCode中实现无缝调试体验,是许多…...

Avalonia AI助手插件:为.NET跨平台UI开发注入专家级智能

1. 项目概述:一个为Avalonia开发者量身定制的AI助手插件如果你正在使用Avalonia这个跨平台的.NET UI框架,并且同时也在探索如何利用像Claude、ChatGPT、GitHub Copilot这样的AI助手来提升开发效率,那么你很可能遇到过这样的困境:当…...

告别手动传包!用Pypiserver在内网搭建Python私有源,团队协作效率翻倍

告别手动传包!用Pypiserver在内网搭建Python私有源,团队协作效率翻倍 在团队开发中,Python依赖管理常常成为效率瓶颈。想象这样的场景:新同事加入项目,需要配置开发环境,却因为内网限制无法直接访问PyPI&a…...

黑客马拉松(Hackathon)文化:是创新工场,还是疲劳表演?

在软件工程的世界里,我们测试人常常站在产品交付的最后一道防线上,习惯了在严谨的流程、详尽的用例和稳定的环境中寻找缺陷。而黑客马拉松,这个充满激情、混乱与极限编程的代名词,对我们来说,既像是一个遥不可及的极客…...

Steam成就管理神器:如何在5分钟内解锁所有成就的终极完整指南

Steam成就管理神器:如何在5分钟内解锁所有成就的终极完整指南 【免费下载链接】SteamAchievementManager A manager for game achievements in Steam. 项目地址: https://gitcode.com/gh_mirrors/st/SteamAchievementManager 还在为Steam游戏中那些遥不可及的…...

记一次ubuntu 22.04安装旧版 MongoDB 4.2

22.04版本比较新,由于mongodb 2.4太老了,安装会遇到问题。特此记录1. 下载mongodb包wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-ubuntu1804-4.2.24.tgz2. 解压到当前目录sudo tar -zxvf mongodb-linux-x86_64-ubuntu1804-4.2.24.tgz3.…...

Docker 部署 XiuXianGame 文字修仙游戏:极空间 NAS 上随时挂机刷资源

前言 挂机刷资源,躺平修成仙。 这类文字修仙游戏,说白了就是佛系养成为主,不用时刻盯着,挂着就行。但问题是——大多数要么得在本地电脑跑,要么依赖第三方平台,体验受限。把这套东西跑在自己的 NAS 上&am…...

基于 4SAPI 的 API 网关智能监控与故障诊断系统:MTTR 降低 90%,系统可用性提升至 99.99%

前言 在微服务架构盛行的今天,API 网关已经成为企业系统的核心入口,承担着流量路由、负载均衡、认证授权、限流熔断等关键功能。API 网关的稳定性直接决定了整个系统的可用性。但传统的 API 网关监控模式已经难以满足现代企业的需求: 告警风…...

对比直接使用原厂API,Taotoken在计费透明度上的体验

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 对比直接使用原厂API,Taotoken在计费透明度上的体验 对于个人开发者而言,在项目开发中集成大模型能力时&am…...