一、引言:笔记的定位与准备

  1. 笔记用途:记录从CentOS7虚拟机搭建到芯片验证核心工具部署的完整流程,适配芯片验证初学者/ Linux环境运维需求
  2. 前置资源清单:
  3. 阅读提示:各模块相对独立,后续可拆分对应细分场景的专题内容

二、模块1:VMware下CentOS7虚拟机安装(20min+)

  1. 操作流程

    • 步骤1:VMware新建虚拟机(自定义配置:按自己的电脑配置来,内存≥4G、磁盘≥50G、网络暂选NAT)

    • 步骤2:加载CentOS7镜像,启动后选择或带GUI的服务器:gnome_desktop在这里插入图片描述

    • 步骤3:配置分区(建议根分区/、swap分区、boot分区)在这里插入图片描述

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

    • 在这里插入图片描述

    • 设置root密码与普通用户,密码设置简单一些,提示密码弱再点击一次确认即可
      在这里插入图片描述

    • 在这里插入图片描述

    • 步骤4:重启虚拟机,验证系统正常启动

  2. 关键细节

    • 最小化安装需后续手动装基础工具(yum install net-tools等)
    • 磁盘分区避免“全部空间给根分区”,留后续扩展余地
  3. 踩坑记录

    • 镜像校验失败:重新下载镜像并核对MD5值
    • 虚拟机启动黑屏:调整VMware硬件兼容性至对应版本
      在这里插入图片描述

三、模块2:CentOS7网络连接与hostname配置(20min内)

  1. 操作流程
    • 子步骤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权限的普通用户在这里插入图片描述
    在这里插入图片描述
  1. 关键细节
    • NAT模式下,虚拟机IP需与VMware虚拟网卡在同一网段
    • 防火墙(firewalld)需提前开放常用端口(后续VNC会用到)或者直接关闭防火墙
  2. 踩坑记录
    • 网络重启失败:检查网卡文件名与配置文件中NAME字段是否一致

四、模块3:VNC服务配置与远程连接(17min左右)

  1. 操作流程
    • 步骤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被杀掉了,检查一下

  2. 关键细节
    • 不同VNC端口对应不同用户(@:1对应5901,@:2对应5902)
    • 带GUI的系统才能正常显示VNC桌面
  3. 踩坑记录
    • 连接超时:检查防火墙端口是否开放、虚拟机IP是否正确
      在这里插入图片描述

五、模块4:vim编辑器与Shell环境个性化配置(11min+)

  1. 操作流程
    • 步骤1:yum安装vim(yum install vim -y
    • 步骤2:编辑~/.vimrc,添加行号(set number)、语法高亮(syntax on)等配置
    • 步骤3:编辑~/.bashrc,添加常用命令别名(如alias ll=‘ls -l’)、工具环境变量占位
    • 步骤4:执行source ~/.vimrcsource ~/.bashrc使配置生效
    • vimrc
" ===================== 基础核心设置 =====================
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

  1. 关键细节
    • .vimrc与.bashrc为用户级配置,全局配置需修改/etc/vimrc、/etc/bashrc
    • 可备份默认配置文件(如cp ~/.bashrc ~/.bashrc.bak)避免配置错误

六、模块5:VCS与Verdi安装及环境配置(32min+)

  1. 操作流程
    • 步骤1:安装依赖库(yum install glibc.i686 libXext.x86_64等,解决工具兼容性)
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文件

  • ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/38cd78bc3e2844678e128f9fcdbfe36e.png

  • 在这里插入图片描述

  • 生成的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

  1. 关键细节
    • 工具安装路径需选择磁盘空间充足的分区
    • 许可文件需与工具版本匹配,且许可服务器需正常运行
  2. 踩坑记录
    • 工具启动报错“缺少库文件”:通过ldd命令查看依赖,补装对应包

七、结尾:全流程验收与后续规划

  1. 验收步骤:从VNC远程连接→vim编辑文件→启动VCS/Verdi,验证全链路正常
  2. 后续规划:本笔记各模块可拆分为“虚拟机安装”“VNC配置”“芯片工具部署”等独立专题内容
Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐