CentOS7 + 芯片验证工具环境部署全笔记:从虚拟机到 VCS/Verdi 实战
一、引言:笔记的定位与准备
- 笔记用途:记录从CentOS7虚拟机搭建到芯片验证核心工具部署的完整流程,适配芯片验证初学者/ Linux环境运维需求
- 前置资源清单:
- 软件:VMware Workstation(建议直接网盘下载安装包通过网盘分享的文件:VMware Workstation 17 for Windows
链接: https://pan.baidu.com/s/1a6EbtMqkJT8m3f92u9usAg?pwd=h8j6 提取码: h8j6)、CentOS7镜像(https://mirrors.huaweicloud.com/centos/7/isos/x86_64/CentOS-7-x86_64-DVD-2009.iso)、VNC客户端:tight_vnc(链接:https://www.tightvnc.com/download.php) - 工具包:VCS与Verdi安装包、许可文件(EDA 安装包.zip
链接: https://pan.baidu.com/s/1CwYPYeXXvrtScT8zyNOPCA?pwd=pwgd 提取码: pwgd) - 编程工具:vscode版本控制: 1.80.2 ,后续和centos7远程连接可以配套,更高版本不适配。 下载地址: https://code.visualstudio.com/updates/v1_80
- 软件:VMware Workstation(建议直接网盘下载安装包通过网盘分享的文件:VMware Workstation 17 for Windows
- 阅读提示:各模块相对独立,后续可拆分对应细分场景的专题内容
二、模块1:VMware下CentOS7虚拟机安装(20min+)
-
操作流程
-
步骤1:VMware新建虚拟机(自定义配置:按自己的电脑配置来,内存≥4G、磁盘≥50G、网络暂选NAT)
-
步骤2:加载CentOS7镜像,启动后选择或带GUI的服务器:gnome_desktop

-
步骤3:配置分区(建议根分区/、swap分区、boot分区)

-
设置hostname,新手建议和教程一致,后续省去一些低级错误
-

-
设置root密码与普通用户,密码设置简单一些,提示密码弱再点击一次确认即可

-

-
步骤4:重启虚拟机,验证系统正常启动
-
-
关键细节
- 最小化安装需后续手动装基础工具(yum install net-tools等)
- 磁盘分区避免“全部空间给根分区”,留后续扩展余地
-
踩坑记录
- 镜像校验失败:重新下载镜像并核对MD5值
- 虚拟机启动黑屏:调整VMware硬件兼容性至对应版本

三、模块2:CentOS7网络连接与hostname配置(20min内)
- 操作流程
-
子步骤1(网络):先还原默认设置

-
net网关设置
-
编辑/etc/sysconfig/network-scripts/ifcfg-ens33

-
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="static"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens33"
UUID="fd26acbf-e407-423f-aba4-1d842cdf5113"
DEVICE="ens33"
ONBOOT="yes"
IPADDR=192.168.66.25
NETMASK=255.255.255.0
GATEWAY=192.168.66.2
DNS1=8.8.8.8
DNS2=8.8.4.4
执行命令:service network restart
- 子步骤2(验证网络):ping百度/物理主机IP,确认连通性
- 子步骤3(hostname):执行
hostnamectl set-hostname xxx永久修改主机名,更新/etc/hosts 
- 增加拥有root权限的普通用户


- 关键细节
- NAT模式下,虚拟机IP需与VMware虚拟网卡在同一网段
- 防火墙(firewalld)需提前开放常用端口(后续VNC会用到)或者直接关闭防火墙
- 踩坑记录
- 网络重启失败:检查网卡文件名与配置文件中NAME字段是否一致
四、模块3:VNC服务配置与远程连接(17min左右)
- 操作流程
-
步骤1:yum安装vnc-server与tigervnc-server
-
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo -
yum -y install tigervnc-server -
步骤2:配置VNC用户(
vncpasswd设置密码)、编辑/etc/systemd/system/vncserver@:1.service -
cp /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:1.service -
vim /etc/systemd/system/vncserver@:1.service
-
步骤3:启动VNC服务并设开机自启,开放5901端口(
firewall-cmd --add-port=5901/tcp --permanent) -
一、防火墙相关命令 systemctl stop firewalld.service systemctl disable firewalld.service 二、VNC 服务相关命令 systemctl start vncserver@:1.service systemctl enable vncserver@:1.service 这些命令的作用: 防火墙命令:停止当前运行的防火墙服务,并设置防火墙开机不自动启动; VNC 命令:启动 “显示端口 1” 的 VNC 服务,并设置该服务开机自动启动。 -
步骤4:用VNC客户端输入“虚拟机IP:5901”,输入密码连接
-

有的时候会提示链接超时,一般是主机名称/ip地址写错了,或者是虚拟机开的vnc被杀掉了,检查一下
-
- 关键细节
- 不同VNC端口对应不同用户(@:1对应5901,@:2对应5902)
- 带GUI的系统才能正常显示VNC桌面
- 踩坑记录
- 连接超时:检查防火墙端口是否开放、虚拟机IP是否正确

- 连接超时:检查防火墙端口是否开放、虚拟机IP是否正确
五、模块4:vim编辑器与Shell环境个性化配置(11min+)
- 操作流程
- 步骤1:yum安装vim(
yum install vim -y) - 步骤2:编辑~/.vimrc,添加行号(set number)、语法高亮(syntax on)等配置
- 步骤3:编辑~/.bashrc,添加常用命令别名(如alias ll=‘ls -l’)、工具环境变量占位
- 步骤4:执行
source ~/.vimrc与source ~/.bashrc使配置生效 - vimrc
- 步骤1:yum安装vim(
" ===================== 基础核心设置 =====================
set encoding=utf-8 " 默认编码(解决中文乱码)
set fileencodings=utf-8,gbk " 支持读取 utf-8/gbk 格式文件
set termencoding=utf-8 " 终端编码同步
set fileformats=unix,dos,mac " 自动识别换行符(跨平台兼容)
set number " 显示行号(gvim/vim 通用)
set relativenumber " 显示相对行号(移动代码更方便)
set cursorline " 高亮当前行(快速定位光标)
set scrolloff=3 " 光标上下保留 3 行空白(避免贴边)
syntax enable " 语法高亮(自动识别代码类型)
set hlsearch " 搜索结果高亮
set incsearch " 实时增量搜索(输入时即时匹配)
set ignorecase " 搜索忽略大小写(大写字母时自动区分)
set smartcase " 大写字母时强制区分大小写
set autoindent " 自动缩进(换行继承上一行缩进)
set smartindent " 智能缩进(代码块自动加缩进,如 if/for 后)
set tabstop=4 " 制表符(Tab)占 4 个字符
set shiftwidth=4 " 自动缩进/代码格式化时的缩进量(和 tabstop 一致)
set expandtab " Tab 键自动转为空格(避免不同编辑器缩进混乱)
set nowrap " 不自动换行(代码/文本保持原格式)
set linebreak " 若开启换行,仅在单词边界换行(不拆分单词)
set mouse=a " 启用鼠标(gvim 点击、终端 vim 复制粘贴更方便)
set clipboard=unnamedplus " 复制粘贴同步系统剪贴板(gvim 直接用,终端需安装 xsel)
" ===================== gvim 专属优化 =====================
if has("gui_running") " 仅在 gvim(图形界面)生效
set guifont=Monaco:h12 " 字体:Monaco(清晰),大小 12(可改 h14/h16)
" 若没有 Monaco,替换为:Consolas:h12 或 DejaVu\ Sans\ Mono:h12(空格需加 \ 转义)
set guioptions-=T " 隐藏顶部工具栏(简约界面,需要时按 F10 调出)
set guioptions-=m " 隐藏菜单(按 F10 临时显示,嫌麻烦可删除这行)
set columns=90 rows=35 " gvim 启动默认大小(宽90列,高35行,按需调整)
colorscheme elflord " gvim 配色方案(简约清爽,可选:desert/evening/molokai)
set background=light " 浅色背景(gvim 更护眼,想深色改 dark)
endif
" ===================== 快捷键简化(无冗余) =====================
inoremap jj <Esc> " 插入模式按 jj 快速退出(比按 Esc 方便)
nnoremap <leader>w :w<CR> " 空格 + w 快速保存(leader 键默认是 \,这里用空格更顺手)
nnoremap <leader>q :q<CR> " 空格 + q 快速退出
nnoremap <leader>x :x<CR> " 空格 + x 保存并退出
nnoremap <leader>ss :split<CR> " 空格 + ss 水平分屏
nnoremap <leader>vs :vsplit<CR> " 空格 + vs 垂直分屏
nnoremap <C-h> <C-w>h " Ctrl + h/j/k/l 切换分屏(无需按 Ctrl+w 再按方向键)
nnoremap <C-j> <C-w>j
nnoremap <C-k> <C-w>k
nnoremap <C-l> <C-w>l
" ===================== 其他小优化 =====================
set nobackup " 禁用备份文件(避免生成 .xxx.swp 冗余文件)
set undofile " 启用持久化撤销(关闭文件再打开仍能撤销之前操作)
set undodir=~/.vim/undo// " 撤销文件存储目录(自动创建)
set autoread " 文件被外部修改时,自动重新读取(比如别人改了同个文件)
set laststatus=2 " 始终显示状态栏(显示文件名、行号、编码等信息)
- bashrc
# ----- Minimal Clean .bashrc for bash 4.2 -----
# Prompt
PS1='\u@\h:\w\$ '
# History
export HISTSIZE=5000
export HISTFILESIZE=10000
shopt -s histappend
# Aliases
alias ll='ls -alF'
alias la='ls -A'
alias l='ls -CF'
alias ..='cd ..'
alias grep='grep --color=auto'
alias cls='clear'
alias g='gvim'
alias sc='source /home/five/.bashrc'
alias gc='gvim /home/five/.bashrc'
alias tool='cd /home/five/tools'
cd() {
builtin cd "$@" && ls --color=auto -lh
}
export LANG=en_US.UTF-8
export LC_ALL=en_US.UTF-8
# Editor
export EDITOR=vim
export LANG=en_US.UTF-8
export LANGUAGE=en_US:en
export LC_ALL=en_US.UTF-8
# Load bash completion if exists
[ -f /etc/bash_completion ] && . /etc/bash_completion
# Add ~/bin to PATH if exists
[ -d "$HOME/bin" ] && PATH="$HOME/bin:$PATH"
#synopsys set
export DVE_HOME=/home/five/synopsys_install/vcs/O-2018.09-SP2
export VCS_HOME=/home/five/synopsys_install/vcs/O-2018.09-SP2
export VCS_MX_HOME=/home/five/synopsys_install/vcs_mx/O-2018.09-SP2
export LD_LIBRARY_PATH=/home/five/synopsys_install/verdi/Verdi_O-2018.09-SP2/share/
export VERDI_HOME=/home/five/synopsys_install/verdi/Verdi_O-2018.09-SP2
export SCL_HOME=/home/five/synopsys_install/scl/2018.06
#dve
PATH=$PATH:$VCS_HOME/gui/dve/bin
alias dve="dve -full64"
#VCS
PATH=$PATH:$VCS_HOME/bin
alias vcs="vcs"
#VERDI
PATH=$PATH:$VERDI_HOME/bin
alias verdi="verdi"
#scl
PATH=$PATH:$SCL_HOME/linux64/bin
export VCS_ARCH_OVERRIDE=linux
#LICENSE
export LM_LICENSE_FILE=27000@eda1
alias lmg_synopsys="lmgrd -c /home/five/synopsys_install/scl/2018.06/admin/license/Synopsys.dat"
export UVM_HOME=~/tools/uvm-core/src
export SYSTEMC_HOME=/usr/local/systemc-2.3.4
export LD_LIBRARY_PATH=$SYSTEMC_HOME/lib-linux64:$LD_LIBRARY_PATH
export CPLUS_INCLUDE_PATH=$SYSTEMC_HOME/include:$CPLUS_INCLUDE_PATH
- 关键细节
- .vimrc与.bashrc为用户级配置,全局配置需修改/etc/vimrc、/etc/bashrc
- 可备份默认配置文件(如
cp ~/.bashrc ~/.bashrc.bak)避免配置错误
六、模块5:VCS与Verdi安装及环境配置(32min+)
- 操作流程
- 步骤1:安装依赖库(
yum install glibc.i686 libXext.x86_64等,解决工具兼容性)
- 步骤1:安装依赖库(
repoquery --nvr --whatprovides libXss.so.1
sudo yum install libXScrnSaver-1.2.2-6.1.el7

-
xftp把eda安装包传输到虚拟机,eda包下载:通过网盘分享的文件:EDA 安装包.zip
链接: https://pan.baidu.com/s/1Kad-zm846JXnga4o_ucp_A?pwd=hm39 提取码: hm39


-
步骤2:修改run文件权限

-
执行run文件

-
解压VCS/Verdi安装包,执行install脚本,按向导选择安装路径



-
步骤3:配置许可文件(设置LM_LICENSE_FILE环境变量)
-



-
步骤4:使用软件生成dat文件
-

-
生成的dat增加路径

-
上传dat文件到目录license

-
在~/.bashrc中添加工具路径(如export PATH= V C S H O M E / b i n : VCS_HOME/bin: VCSHOME/bin:PATH),验证
vcs -version
-

vcs编译效果
five@eda1:~$ echo 'module testbench; initial begin $display("✅ VCS 绝对路径可用!"); $finish; end endmodule' > testbench.sv
five@eda1:~$ /home/five/synopsys_install/vcs/O-2018.09-SP2/linux64/bin/vcs -full64 -debug_pp testbench.sv -R
Chronologic VCS (TM)
Version O-2018.09-SP2_Full64 -- Wed Dec 3 01:50:00 2025
Copyright (c) 1991-2018 by Synopsys Inc.
ALL RIGHTS RESERVED
This program is proprietary and confidential information of Synopsys Inc.
and may be used and disclosed only as authorized in a license agreement
controlling such use and disclosure.
1:50:00 (snpslmd) OUT: "VCSCompiler_Net" five@eda1 [snps_checkout_1764697800]
Parsing design file 'testbench.sv'
Top Level Modules:
testbench
No TimeScale specified
Starting vcs inline pass...
1 module and 0 UDP read.
recompiling module testbench
1:50:00 (snpslmd) IN: "VCSCompiler_Net" five@eda1 [snps_checkout_1764697800]
1:50:00 (snpslmd) OUT: "VCSCompiler_Net" five@eda1 [snps_checkout_1764697800]
1:50:01 (snpslmd) IN: "VCSCompiler_Net" five@eda1 [snps_checkout_1764697800]
rm -f _csrc*.so pre_vcsobj_*.so share_vcsobj_*.so
if [ -x ../simv ]; then chmod -x ../simv; fi
g++ -o ../simv -Wl,-rpath-link=./ -Wl,-rpath='$ORIGIN'/simv.daidir/ -Wl,-rpath=./simv.daidir/ -Wl,-rpath='$ORIGIN'/simv.daidir//scsim.db.dir -rdynamic -Wl,-rpath=/home/five/synopsys_install/vcs/O-2018.09-SP2/linux64/lib -L/home/five/synopsys_install/vcs/O-2018.09-SP2/linux64/lib objs/amcQw_d.o _16137_archive_1.so SIM_l.o rmapats_mop.o rmapats.o rmar.o rmar_nd.o rmar_llvm_0_1.o rmar_llvm_0_0.o -lzerosoft_rt_stubs -lvirsim -lerrorinf -lsnpsmalloc -lvfs -lvcsnew -lsimprofile -luclinative /home/five/synopsys_install/vcs/O-2018.09-SP2/linux64/lib/vcs_tls.o -Wl,-whole-archive -lvcsucli -Wl,-no-whole-archive /home/five/synopsys_install/vcs/O-2018.09-SP2/linux64/lib/vcs_save_restore_new.o -ldl -lc -lm -lpthread -ldl
../simv up to date
1:50:01 (snpslmd) OUT: "VCSRuntime_Net" five@eda1 [snps_checkout_1764697801]
Chronologic VCS simulator copyright 1991-2018
Contains Synopsys proprietary information.
Compiler version O-2018.09-SP2_Full64; Runtime version O-2018.09-SP2_Full64; Dec 3 01:50 2025
✅ VCS 绝对路径可用!
$finish called from file "testbench.sv", line 1.
$finish at simulation time 0
V C S S i m u l a t i o n R e p o r t
Time: 0
CPU Time: 0.130 seconds; Data structure size: 0.0Mb
Wed Dec 3 01:50:02 2025
1:50:02 (snpslmd) IN: "VCSRuntime_Net" five@eda1 [snps_checkout_1764697801]
CPU time: .151 seconds to compile + .100 seconds to elab + .093 seconds to link + .159 seconds in simulation
five@eda1:~$ gc
five@eda1:~$ vcs
Usage: vcs [-M[opts]] [-R] [-V] [-o output] [+rad] [+cli] [other-opts] files
vcs -help
five@eda1:~$ vcs -version
Error-[VCS_COM_UNE] Cannot find VCS compiler
VCS compiler not found. Environment variable VCS_HOME
(/home/five/synopsys_install/vcs/O-2018.09-SP2/linux) is selecting a
directory in which there isn't a compiler
'/home/five/synopsys_install/vcs/O-2018.09-SP2/linux/bin/vcs1' for a machine
of this type 'linux'.
Please check whether 'VCS_HOME' is incorrect; if not, see below.
Perhaps vcs hasn't been installed for machine of type "linux".
Or the installation has been damaged.
To verify whether vcsO-2018.09 supports machine of type "Linux 3.10.0-1160.el7.x86_64",
please look at ReleaseNotes for more details .
We determine the machine type from uname; maybe uname is incorrect.
You can fix installation problems by reinstalling from CDROM
or downloading it from the Synopsys ftp server.
For assistance, please contact vcs technical support
at vcs_support@synopsys.com or call 1-800-VERILOG
five@eda1:~$ vcs -full64 -debug_pp testbench.sv -R
Chronologic VCS (TM)
Version O-2018.09-SP2_Full64 -- Wed Dec 3 01:50:46 2025
Copyright (c) 1991-2018 by Synopsys Inc.
ALL RIGHTS RESERVED
This program is proprietary and confidential information of Synopsys Inc.
and may be used and disclosed only as authorized in a license agreement
controlling such use and disclosure.
1:50:46 (snpslmd) OUT: "VCSCompiler_Net" five@eda1 [snps_checkout_1764697846]
The design hasn't changed and need not be recompiled.
If you really want to, delete file simv.daidir/.vcs.timestamp and
run VCS again.
1:50:46 (snpslmd) IN: "VCSCompiler_Net" five@eda1 [snps_checkout_1764697846]
1:50:47 (snpslmd) OUT: "VCSRuntime_Net" five@eda1 [snps_checkout_1764697847]
Chronologic VCS simulator copyright 1991-2018
Contains Synopsys proprietary information.
Compiler version O-2018.09-SP2_Full64; Runtime version O-2018.09-SP2_Full64; Dec 3 01:50 2025
✅ VCS 绝对路径可用!
$finish called from file "testbench.sv", line 1.
$finish at simulation time 0
V C S S i m u l a t i o n R e p o r t
Time: 0
CPU Time: 0.110 seconds; Data structure size: 0.0Mb
Wed Dec 3 01:50:47 2025
1:50:47 (snpslmd) IN: "VCSRuntime_Net" five@eda1 [snps_checkout_1764697847]
CPU time: .155 seconds in simulation
- 关键细节
- 工具安装路径需选择磁盘空间充足的分区
- 许可文件需与工具版本匹配,且许可服务器需正常运行
- 踩坑记录
- 工具启动报错“缺少库文件”:通过
ldd命令查看依赖,补装对应包
- 工具启动报错“缺少库文件”:通过
七、结尾:全流程验收与后续规划
- 验收步骤:从VNC远程连接→vim编辑文件→启动VCS/Verdi,验证全链路正常
- 后续规划:本笔记各模块可拆分为“虚拟机安装”“VNC配置”“芯片工具部署”等独立专题内容
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐


所有评论(0)