4. 验证环境搭建:Linux环境配置、EDA工具安装与License设置
好,咱们进入第四章。这一章,说白了就是“磨刀”的环节。
很多同学觉得验证就是写代码、跑仿真,环境什么的随便搞搞就行。我刚开始也这么想,结果呢?有一次折腾了整整两天,就为了装一个VCS的补丁。后来我学乖了——环境搭得稳,后面才能跑得快。今天我就把这几年的经验,一股脑倒给你们。
4.1 Linux环境配置——你的“作战基地”
EDA工具基本都跑在Linux上。我个人习惯用CentOS 7或者Red Hat Enterprise Linux。Ubuntu也行,但有些老工具对Ubuntu的支持不太好,容易出幺蛾子。
第一步:检查系统版本
cat /etc/redhat-release
uname -a
确保是64位系统。现在基本没有32位的EDA工具了。
第二步:安装必要的依赖库
EDA工具依赖一堆共享库。缺一个,装到一半就报错,很烦人。我建议一次性装全:
yum groupinstall -y "Development Tools"
yum install -y glibc.i686 libstdc++.i686 zlib.i686
yum install -y ncurses-libs.i686 libXext.i686 libXtst.i686
yum install -y redhat-lsb-core
yum install -y perl perl-devel
yum install -y tcl tk
嗯,这里要注意:有些工具需要32位的库,比如VCS的老版本。你想想看,一个64位的系统,为了跑一个32位的工具,还得装兼容库。没办法,这就是现实。
ldconfig -p | grep lib,看看关键库是不是都在。我曾经因为缺了一个libXss.so.1,VCS死活起不来,查了半天才发现。
4.2 EDA工具安装——VCS与QuestaSim
EDA工具的安装,说白了就是解压、运行安装脚本、设置环境变量。但细节决定成败。
4.2.1 安装VCS
VCS是Synopsys家的仿真工具。安装包通常是一个压缩文件,比如 vcs_mx_vL-2016.06.tar。
安装步骤:
- 解压安装包到目标目录,比如
/opt/synopsys/vcs - 运行
./installer或./setup.sh - 按照提示选择安装路径、组件
- 安装完成后,设置环境变量
环境变量设置(加到.bashrc或.cshrc里):
export VCS_HOME=/opt/synopsys/vcs
export PATH=$VCS_HOME/bin:$PATH
export LM_LICENSE_FILE=27000@license_server_ip
4.2.2 安装QuestaSim
QuestaSim是Mentor(现属Siemens)家的仿真器。安装方式和VCS类似,但有个坑——它需要配置一个叫 MGLS_LICENSE_FILE 的环境变量。
安装步骤:
- 解压安装包到
/opt/mentor/questa - 运行
./install或./questasim-gui-xxx-linux - 选择安装组件,建议全选
- 配置环境变量
环境变量设置:
export QUESTA_HOME=/opt/mentor/questa
export PATH=$QUESTA_HOME/bin:$PATH
export MGLS_LICENSE_FILE=1717@license_server_ip
这里有个细节:VCS和QuestaSim的License端口号不一样。VCS默认用27000,QuestaSim用1717。别搞混了,否则工具会报“License check failed”。
4.3 License设置与调试——最头疼的一环
License,说白了就是工具的“通行证”。没有它,工具就是个摆设。我见过太多人卡在这一步了。
4.3.1 License服务器配置
通常公司会有一台专门的License服务器。你需要做的是:
- 在服务器上安装
lmgrd(License守护进程) - 准备好License文件(.lic或.dat)
- 启动License服务
启动命令:
lmgrd -c /path/to/license.dat -l /var/log/lmgrd.log
检查License状态:
lmstat -a -c /path/to/license.dat
如果看到 Server status: UP,恭喜你,License服务器跑起来了。
4.3.2 常见License问题与调试
我遇到过最典型的问题,就是“Feature not found”。明明License文件里有这个feature,但工具就是报找不到。为什么会这样?
原因通常有两个:
- 环境变量没设对:检查
LM_LICENSE_FILE或MGLS_LICENSE_FILE是否指向正确的端口和服务器 - License文件格式错误:有些License文件是加密的,需要特定的daemon
# 检查环境变量
echo $LM_LICENSE_FILE
# 检查License服务器是否可达
telnet license_server_ip 27000
# 查看License详细信息
lmstat -a
# 查看特定feature
lmstat -f vcs_verilog
我曾经有一次,VCS报“License check out timeout”。查了半天,发现是防火墙把27000端口给封了。跟IT部门沟通后开了端口,问题解决。所以,如果你遇到类似问题,先检查网络连通性。
4.4 环境验证——跑一个Hello World
工具装好了,License也配好了。怎么知道一切正常?跑一个最简单的仿真。
创建一个test.sv文件:
module test;
initial begin
$display("Hello, Verification World!");
$finish;
end
endmodule
用VCS编译运行:
vcs -sverilog test.sv
./simv
用QuestaSim编译运行:
vlog test.sv
vsim -c test -do "run -all; exit"
如果看到“Hello, Verification World!”打印出来,恭喜你,环境搭建成功了!
4.5 避坑指南——我踩过的那些坑
最后,分享几个我亲身经历过的坑:
- 坑一: 安装路径有空格。VCS编译时,路径解析会出错。解决方案:用下划线或连字符代替空格。
- 坑二: 环境变量没source。每次开新终端都要重新设置。解决方案:把环境变量写到
.bashrc或.cshrc里。 - 坑三: License文件过期。有些License有有效期,过期了工具就用不了。解决方案:定期检查License有效期,提前续期。
- 坑四: 多个License文件冲突。如果你同时用VCS和QuestaSim,它们的License文件可能会互相干扰。解决方案:分别设置
LM_LICENSE_FILE和MGLS_LICENSE_FILE,不要混用。
嗯,环境搭建这部分,说难不难,说简单也不简单。关键是要细心、耐心。把这一步做好了,后面的验证工作才能顺利开展。好了,这一章就到这里。下一章,咱们开始写第一个验证组件——Driver。