VCS2018在Ubuntu20 18安装步骤

本文详细记录了在Ubuntu 18和20版本下安装VCS 2018的步骤,包括设置安装路径、运行安装器、生成并验证许可证,以及配置环境变量、解决常见问题。适合想要避免重复劳动的技术人员参考。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

之前在Ubuntu20上下VCS,花了好几天时间,本来想写博客避免以后重复劳动。但由于各种原因拖了一两个月,这次由于疫情原因,期末考试推迟,所以就再次在Ubuntu18上下了VCS,顺便写博客记录。

以下VCS2018安装方法适用于 Ubuntu20Ubuntu18,亲测可用。其他Linux发行版没试过,但应该步骤差不多。

安装包

百度网盘:链接:https://pan.baidu.com/s/19CtwqWcxpv-4wPyAD4_ITw
提取码:3pib

文件包括:

在这里插入图片描述

libpng12.so.0:后面可能会需要这个包
scl_keygen_2030:这个是License生成器
scl_v2018.06:这个是SCL安装包,用来
synopsysinstaller_v5.0:这个是安装器
vcs_vO-2018.09-SP2:这个是vcs的安装包
verdi-2018.9:这个是verdi安装包

安装步骤

1、建立安装路径,更改权限

在这里插入图片描述

建立图2的安装目录文件:Liscen用来存放license文件,SCL2018vcs2018verdi是对应的安装路径;vcs_install用来存放安装包好安装器。通过以下命令建立目录和更改拥有者,以为后面需要对这些文件进行读写,更改拥有者比每次sudo更加方便,当然也可以chmod 777 ./

sudo mkdir 文件名
sudo chown 拥有者 文件名

2、运行安装器进行安装

进入synopsysinstaller_v5.0文件夹,运行SynopsysInstaller_v5.0.run,会出现下面界面,提示选择安装器安装路径,直接在本路径下安装即可
在这里插入图片描述
安装后出现setup.sh
在这里插入图片描述

运行setup.sh,进入安装界面,点击next依次安装Scl、vcs、verdi。下面以vcs安装为例:

./setup.sh

在这里插入图片描述
选择安装包的路径
在这里插入图片描述
选择要安装的地址,也就是第一步创建的目录
在这里插入图片描述
点击next,进入下面界面,选择vcs
在这里插入图片描述

一路next,进入下面界面,点击Accept,instaall,然后等待安装
在这里插入图片描述

安装完后会弹出安装失败
在这里插入图片描述
错误原因如下所示,这个没影响,只是一个脚本没有被执行,这个脚本是用来安装
文档的
在这里插入图片描述

可以跳转到这个目录,手动运行这个脚本,根据提示选择路径。也可以不管这个错误,点击OK
在这里插入图片描述

出现下面界面,点击Dismiss,vcs安装结束。然后重复运行setup.sh,按照上面步骤安装verdi SCL
在这里插入图片描述

3、生成License文件

在window下运行这个.exe文件,.exe是windows下的执行文件,无法在linux下运行,所以先在window下生成License,再放到linux下。
在这里插入图片描述
出现下面界面,图中需要修改三个地方,
在这里插入图片描述

1 2为电脑物理地址,通过ifconfig命令可以查看。填写物理地址的时候中间的记得去掉。3为linux的host-name,如下图所示。点击Generate,可以在本文件夹下看到Synopsys.dat,这个就是生成的License文件。
在这里插入图片描述
打开Synopsys.dat文件,需要修改的地方有一个
在这里插入图片描述

需要在1这个地方添加snpslmd的路径,注意路径记得改成自己的路径,如下图所示
在这里插入图片描述
同时需要注意license有效期的问题,其他的license生成器可能生成的license有效期是2019,需要手动改成2030。本license生成器license有效期为2030,所以不需要改动。如下图所示
在这里插入图片描述
改完之后把Synopsys.dat移到Liscen目录下。window下的文件放到linux下每行会有^M字符,这是因为linux和doc的换行符不一样。需要通过下面命令去掉^M

dos2unix 文件名

4、设置环境变量

通过下面命令在根目录下打开.bashrc,有其他编辑器也可以通过其他编辑器打开,如:sublime

gedit .bashrc

将下面内容复制进去,下面的路径记得改成自己的路径,改完后记得cd一下自己的路径,避免手残出错,找半天找不出来

#export export SYNOPSYS="/usr/software/synopsys"
export VCS_TARGET_ARCH="amd64"
export PATH="/usr/stone/software/vcs2018/vcs/O-2018.09-SP2/gui/dve/bin:"$PATH
export DVE_HOME="/usr/stone/software/vcs2018/vcs/O-2018.09-SP2/gui/dve"
export PATH="/usr/stone/software/vcs2018/vcs/O-2018.09-SP2/bin:"$PATH
export VCS_HOME="/usr/stone/software/vcs2018/vcs/O-2018.09-SP2"
#export VCS_ARCH_OVERRIDE="linux"
#verdi
export PATH="/usr/stone/software/verdi/verdi/Verdi_O-2018.09-SP2/bin:"$PATH
export VERDI_HOME="/usr/stone/software/verdi/verdi/Verdi_O-2018.09-SP2"
export LD_LIBRARY_PATH="/usr/stone/software/verdi/verdi/Verdi_O-2018.09-SP2/share/PLI/lib/LINUX64":$LD_LIBRARY_PATH
export VERDI_DIR="/usr/stone/software/verdi/verdi/Verdi_O-2018.09-SP2"
export NOVAS_INST_DIR="/usr/stone/software/verdi/verdi/Verdi_O-2018.09-SP2"
export NPI_PLATFORM="LINUX64_GNU_472"
export LD_LIBRARY_PATH="$NOVAS_INST_DIR/share/NPI/lib/LINUX64_GNU_520":$LD_LIBRARY_PATH
export NOVAS_HOME="/usr/stone/software/verdi/verdi/Verdi_O-2018.09-SP2"

#LICENSE
export SNPSLMD_LICENSE_FILE="/usr/stone/software/Liscen/Synopsys.dat"
export SNPSLMD_LICENSE_FILE=27000@自己的host-name
export LM_LICENSE_FILE="/usr/stone/software/Liscen/Synopsys.dat"

alias lmli="/usr/stone/software/SCL2018/scl/2018.06/linux64/bin/lmgrd -c /usr/stone/software/License/Synopsys.dat"
#SCL
export PATH=/usr/stone/software/SCL2018/scl/2018.06/linux64/bin:$PATH
alias dve="dve -full64 &"
alias vcs64="vcs -full64"
alias verdi="verdi -full64 &"

设置好环境变量后记得通过下面命令生效环境变量

source .bashrc

5、验证License

通过下面命令验证license,直到出现Passed,如下所示。如果多次验证依旧没有出现Passed,那么重新生成license,重新验证

sssverify 自己的license路径

在这里插入图片描述

6、启动lmgrd

lmgrd是license管理工具,用于将license运行在后台,使软件正常工作,目前对于lmgrd理解只有这些。由于在环境变量设置了命令,所以输入lmli就可以启动lmgrd大部分问题都出现这个地方!!!
问题一:
路径明明正确,通过ls也可以看到lmgrd,但它就是找不到lmgrd 。
在这里插入图片描述
解决方案: 这是因为没有32位运行库导致的通过下面命令安装即可,第一个为Ubuntu下的命令,第二个是centos下的命令,根据需要选择一个执行命令。

apt-get install lsb 
yum install lsb

问题二:
再次执行lmli,提示没有/usr/tmp目录和在/usr/local/flexlm/licenses目录下找不到license。这个是肯定的,因为你压根就没有建这些目录
在这里插入图片描述

解决方案: 在/usr建立tmp目录,建立local/flexlm/licenses目录,把Synopsys.dat复制到licenses目录下,并把名字改成license.bat

问题三:
提示打不开license,这是因为环境变量SNPSLMD_LICENSE_FILE的问题,在这个环境变量中赋值了两次,第一次是license的位置,第二次是用户。
在这里插入图片描述
解决方案: 这里需要license的位置,所以先把第二个赋值注释,在后面启动DVE中,又会需要第二次赋值,再把注释打开

问题四:
由于上面lmgrd没有启动成功,但是端口号他还是占用的。当你再次输入lmli,应该会出现下面错误,显示端口号被占用
在这里插入图片描述
解决方案: 输入下面命令终止该端口号。首先释放license,显示lmgrd占用的端口号,然后结束这个端口号进程,如下图所示

lmdown
ps auf | grep lmgrd
kill -9 2381

在这里插入图片描述

然后再次输入lmli,启动lmgrd,好了,见证成功吧~~跑着这里就算启动成功,可以ctrl+c结束
在这里插入图片描述

验证软件是否安装成功

dve

输入dve,再次报错,提示SNPSLMD_LICENSE_FILE指示错误server。
在这里插入图片描述

解决方案: 不慌,这个就是咱上面遗留的问题,把上面的注释打开即可。再次输入dve,见证dve的真面目吧!!!
在这里插入图片描述

verdi

输入verdi,不要慌张,该来的总会来的。提示没有libpng12.so.o这个库
在这里插入图片描述
解决方案: 还记得第一步提到的那个库文件么,这时候就派上用场了。输入下面命令,注意libpng12.so.0是文件夹里面的文件,移动整个文件夹无法解决问题

sudo cp libpng12.so.0  /usr/lib/x86_64-linux-gnu/

再次输入verdi,激动吧!
在这里插入图片描述

VCS

输入vcs -help,坚持就是胜利!出现下面错误

/bin/sh:0: illegal option –h

解决方案: 这是因为Ubuntu下默认将sh链接到bash,输入下面命令重新链接。

rm -f /bin/sh
ln -s /bin/bash /bin/sh

输入vcs -help,好了,你的努力不是白费的。
在这里插入图片描述

验证vcs与verdi联调

写一个简单的加法器

add.v

module add (

	input         [20:0]	A ,
	input signed  [17:0]	B	,

	output signed [22:0]	C);

	wire signed [21:0]	A_signed;

assign A_signed = {1'b0,A};
assign C = A_signed + B;

endmodule

test.v

`timescale 1ns/1ns

module test;

reg clk;
reg rst_n;

reg [20:0] A;
reg signed [17:0] B;

wire signed [22:0] C;

initial begin
	clk = 0;
	rst_n = 0;
        A = 21'b0;
	B = 18'b0;
	#10;
	rst_n = 1;
	repeat(80) @(posedge clk) begin
	  A = A + 21'b1;
	end
	
    #2000;
    $finish;

end

always #5 clk = ~clk;

initial begin
	$fsdbDumpfile("./rtl.fsdb");
	$fsdbDumpvars("+all");
end

add add_inst(
	.A(A),
	.B(B),
	.C(C));

endmodule

Makefile

假设你已经装上的 make 和 gcc,且熟悉make编译规则

VCS = vcs -full64 -sverilog -timescale=1ns/1ns \
		+v2k \
		-debug_access+all -kdb -lca\
		-f file.f	
comp:
	$(VCS) 

verdi:
	verdi -ssf rtl.fsdb

clean:
	rm -rf csrc simv* *.lib *.lib++ nLint*
	rm -rf *.log *.vpd *.fsdb* *.key *log rtl.fsdb*

-full64: 在64-bit模式下编译,生成64-bit模式仿真的可执行文件
-sverilog: 支持systemverilog语法
-timescale=1ns/1ns: 仿真时间刻度,要和tb保持一致
+v2k: 支持verilog2001
-debug_access+all: VCS2014之后加入debug_access,不需要手动配置verdi.tab,和静态库pli.a,只需要设置$VERDI_HOME,VCS会自动查找所需文件
-kdb -lca: 用于生成kdb.elab++,位于simv.daiddir目录下
-f file.f: 指定文件列表,file.f存着要编译文件的路径,可以通过shell命令find 该目录路径 -name "*.*v" 生成的文件名
-ssf rtl.fsdb: 加载fsdb波形文件。verdi是第三方软件,支持的波形文件为.fsdb,dve为vcs自带的软件,支持的波形文件为.vpd
verdi -ssf rtl.fsdb: verdi加载.fsdb文件

生成.fsdb有两种方法,一种是在vcs编译时生成,需要在tb顶层添加下面两个系统函数

	$fsdbDumpfile("./rtl.fsdb");//生成rtl.fsdb波形文件
	$fsdbDumpvars("+all");//把所有变量全都加进去

然后在用verdi加载波形文件。
第二种方法是通过verdi界面生成fsdb。编译完后通过输入下面命令

./simv -gui=verdi

打开verdi界面,然后在verdi命令行输入run,也可以生成.fsdb文件,但是这种方法比较麻烦,而且每加一个变量都得重新run,不然看不到这个变量的波形。所以一般采用第一种方式。

仿真

在这里插入图片描述

也可以通过输入下面命令通过dve仿真

./simv -gui

在这里插入图片描述

开机自启动License

/etc/profile.d/目录下创建lmli.sh

cd /etc/profile.d/ 
sudo touch lmli.sh
sudo chmod 777 lmli.sh

写入下面内容

`/usr/stone/software/SCL2018/scl/2018.06/linux64/bin/lmgrd -c /usr/stone/software/License/Synopsys.dat -l /usr/stone/software/SCL2018/scl/2018.06/linux64/bin/lmgrd.log`

这样开机不用手动启动lmgrd了


好了,vcs安装至此结束。能够看到这里的人应该都对vcs有着某种强烈的欲望吧。总得来说,安装vcs就是简单的排错,需要耐心。

评论 171
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值