2. 测试环境搭建:硬件环境准备、软件工具链安装、EDA环境配置、License设置

环境搭建这件事,说难不难,说简单也不简单。我见过太多项目,最后卡在环境问题上——不是License没配好,就是EDA工具版本对不上。说白了,环境搭得稳,后面才能跑得快。

这一章,我把整个流程拆成四个部分来讲。你跟着走一遍,基本不会出大问题。

2.1 硬件环境准备

先说说硬件。做GEM验证,服务器是核心。我个人习惯用Linux工作站,CentOS 7或RHEL 8都行。内存至少64GB,推荐128GB以上。为什么呢?因为GEM的仿真模型比较大,内存小了,跑个回归测试直接卡死。

硬件最低配置清单:

  • CPU:8核以上,主频2.5GHz+
  • 内存:64GB起步,128GB推荐
  • 硬盘:SSD 500GB+,用于存放工具和工程
  • 网络:千兆以太网,用于License服务器通信

我在项目中遇到过一个问题:服务器硬盘用的是机械盘,结果每次编译都要等半小时。后来换成SSD,时间直接砍到10分钟。你想想看,这个差距有多大。

另外,如果你用的是虚拟机,记得给足资源。别抠门,CPU和内存给少了,后面有你受的。

2.2 软件工具链安装

软件工具链这块,我把它分成三类:基础工具、EDA工具、辅助工具。

类别 工具名称 版本要求 用途
基础工具 GCC/G++ 4.8.5+ 编译C/C++代码
基础工具 Make 3.82+ 构建管理
基础工具 Perl 5.16+ 脚本处理
EDA工具 VCS 2020.12+ 仿真编译
EDA工具 Verdi 2020.12+ 波形调试
辅助工具 Git 2.0+ 版本管理
辅助工具 Python 3.6+ 自动化脚本

安装步骤其实不复杂,但要注意顺序。我建议先装基础工具,再装EDA工具。为什么呢?因为EDA工具依赖基础工具里的库文件。

举个例子,VCS安装时需要libstdc++.so.6这个库。如果GCC版本太低,这个库可能没有,或者版本不对。嗯,这里要注意,最好用系统自带的包管理器来装基础工具。

# 安装基础工具(CentOS 7示例)
sudo yum install -y gcc gcc-c++ make perl git python3

# 安装EDA工具(以VCS为例)
tar -xzf vcs-2020.12.tar.gz
cd vcs-2020.12
./install.sh -dir /tools/synopsys/vcs-2020.12

小技巧:安装EDA工具时,建议单独创建一个目录,比如 /tools。这样方便管理,也方便后续升级。

2.3 EDA环境配置

工具装好了,接下来就是配置环境变量。这一步很关键,配置不对,工具根本跑不起来。

我一般把环境变量写在 .bashrc 或 .cshrc 里。这样每次登录终端,环境就自动加载好了。

# .bashrc 配置示例
export SYNOPSYS=/tools/synopsys
export VCS_HOME=$SYNOPSYS/vcs-2020.12
export VERDI_HOME=$SYNOPSYS/verdi-2020.12
export PATH=$VCS_HOME/bin:$VERDI_HOME/bin:$PATH
export LD_LIBRARY_PATH=$VCS_HOME/lib:$VERDI_HOME/lib:$LD_LIBRARY_PATH

配置完记得 source 一下:

source ~/.bashrc

然后验证一下工具是否正常:

vcs -version
verdi -version

如果能看到版本号,说明环境配置成功了。

注意:不同EDA工具对环境变量的要求可能不一样。比如VCS需要设置SNPSLMD_LICENSE_FILE,Verdi需要设置LM_LICENSE_FILE。别搞混了。

2.4 License设置

License这块,是很多人容易踩坑的地方。我曾经因为License配置不对,折腾了一整天。

License有两种常见模式:浮动License和节点锁定License。GEM验证一般用浮动License,因为多台机器可以共享。

配置步骤:

  1. 把License文件放到指定目录,比如 /tools/licenses/
  2. 启动License服务器(lmgrd)
  3. 设置环境变量指向License文件
# 启动License服务器
lmgrd -c /tools/licenses/synopsys.dat -l /var/log/lmgrd.log

# 设置环境变量
export SNPSLMD_LICENSE_FILE=27000@license-server-ip
export LM_LICENSE_FILE=27000@license-server-ip

验证License是否生效:

lmstat -a -c 27000@license-server-ip

如果能看到Feature列表,说明License配置成功了。

避坑指南:我曾经遇到过一个问题——License服务器启动了,但客户端就是连不上。后来发现是防火墙没开端口。记得检查一下防火墙设置,把27000端口放行。

2.5 整体环境验证

所有配置完成后,我建议做一个整体验证。写一个简单的测试用例,跑一下仿真流程。

// test.sv
module test;
  initial begin
    $display("Hello, GEM World!");
    #10 $finish;
  end
endmodule
# 编译仿真
vcs -sverilog test.sv -o simv
./simv

如果能看到 "Hello, GEM World!" 输出,说明整个环境搭建成功了。

下面这张图,帮你梳理了整个环境搭建的流程:

GEM测试环境搭建流程 GEM测试环境搭建流程 硬件环境准备 软件工具链安装 EDA环境配置 License设置 整体环境验证 关键检查点 • 内存≥64GB • EDA工具版本匹配 • License端口放行 常见问题 • 环境变量未source • License服务器未启动 • 防火墙阻挡端口

环境搭建这块,看起来步骤多,但只要你按顺序来,每一步都验证一下,基本不会出大问题。我个人习惯是每做完一步,就做个简单测试,这样能快速定位问题。