VCS2018在Ubuntu20 18安装步骤
之前在Ubuntu20
上下VCS
,花了好几天时间,本来想写博客避免以后重复劳动。但由于各种原因拖了一两个月,这次由于疫情原因,期末考试推迟,所以就再次在Ubuntu18
上下了VCS
,顺便写博客记录。
以下VCS2018
安装方法适用于 Ubuntu20
、Ubuntu18
,亲测可用。其他Linux发行版没试过,但应该步骤差不多。
文章目录
- 安装包
- 安装步骤
- 1、建立安装路径,更改权限
- 2、运行安装器进行安装
- 3、生成License文件
- 4、设置环境变量
- 5、验证License
- 6、启动lmgrd
- 验证软件是否安装成功
- dve
- verdi
- VCS
- 验证vcs与verdi联调
- add.v
- test.v
- Makefile
- 仿真
- 开机自启动License
安装包
百度网盘:链接: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文件,SCL2018;vcs2018、verdi是对应的安装路径;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/1nsmodule test;reg clk;
reg rst_n;reg [20:0] A;
reg signed [17:0] B;wire signed [22:0] C;initial beginclk = 0;rst_n = 0;A = 21'b0;B = 18'b0;#10;rst_n = 1;repeat(80) @(posedge clk) beginA = A + 21'b1;end#2000;$finish;endalways #5 clk = ~clk;initial begin$fsdbDumpfile("./rtl.fsdb");$fsdbDumpvars("+all");
endadd 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.fsdbclean: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就是简单的排错,需要耐心。
VCS2018在Ubuntu20 18安装步骤相关推荐
- Ubuntu20.04安装步骤详细指导
Ubuntu20.04安装步骤详细指导 前言:Ubuntu是一种桌面美观的Linux开发环境,其软件生态系统良好,我们选用Ubuntu20.04版本.下面介绍安装Ubuntu双系统,安装方法有三种: ...
- 【Tools】Windows下Git 2.18安装步骤
0. 目录 0. 目录 1. Git简介 2. Git参考资料 3. Git 2.18安装 1. Git简介 Git(读音为/gɪt/.)是一个开源的分布式版本控制系统,可以有效.高速的处理从很小到非 ...
- Ubuntu20详细安装步骤
Ubuntu20.04服务器版安装 下载地址:Download Ubuntu Desktop | Download | Ubuntu 一.语言选择:English(按Done确认,Done按钮在安装窗 ...
- ubuntu20输入法qiehuan_ubuntu20.04中文输入法安装步骤
本文安装谷歌输入法. 其实之前一直用的是搜狗输入法,因为20.04取消qt4了没装成,就去尝试别的输入法了.发现谷歌输入法用起来极舒服,比sougou for linux好用多了.记得谷歌的中文输入法 ...
- Ubuntu20.04安装微信详细步骤,解决显示异常,无法显示输入内容问题和状态栏问题
Ubuntu20.04安装微信,解决显示异常,无法输入问题和状态栏问题 最要提示 最终效果,输入窗口正常,应用图标收纳在状态栏中 步骤一:安装wine 步骤二 : 安装字体,解决显示异常[方框]的问题 ...
- ubuntu20.04中文输入法安装步骤
这篇文章主要介绍了ubuntu20.04中文输入法安装步骤,文中通过图文介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧 本文安装谷歌输入法. 其实 ...
- ubuntu20.04 安装 Qt5.12步骤
转载链接:ubuntu20.04 安装 Qt5.12_仙海寻波的博客-CSDN博客_ubuntu20.04安装qt第一步 下载 Qt5.12.9安装包使用清华镜像进行下载:https://mirror ...
- ubuntu20.04安装rxt3090驱动步骤和遇到的问题
linux cuda 环境变量(linux安装cuda的正确姿势)-金芒果软件网 [Ubuntu20.04安装CUDA.cuDNN]_网络星空(luoc)的博客-CSDN博客_ubuntu20.04安 ...
- Ubuntu20.04安装NVIDIA显卡驱动、CUDA、CUDNN及突破NVENC并发限制
1.查看当前系统版本 cat /proc/version 显示为: 2.查看当前显卡型号: sudo lshw -numeric -C display 显示我的显卡型号为:GM107M[GeForc ...
最新文章
- C++11中头文件chrono的使用
- R语言ggplot2可视化包抑制数据轴使用科学计数法实战
- mysqil操作数据库
- Guava Cache用法介绍
- mysql启动时执行sql server_常见 mysql 启动、运行.sql 文件错误处理
- 数据要素市场的组织形式和估值框架
- 微服务升级_SpringCloud Alibaba工作笔记0027---Nacos集群配置上
- 水瓶座的回顾-高贵的程序员
- 20170908算法工程师在线笔试之jd编程思路
- IDEA 常用快捷键与设置
- x7 z8750 linux,x7-z8750 vs m3-7y30
- Picgo typora error in repo name
- QT编译程序出现[ui_Widget.h] Error 1
- 这五个灵魂问题,解决BI新人80%的困惑
- 酷我音乐盒去广告(续)
- 人不是因为有面子才牛逼,而是因为变牛逼才有面子
- python求平均数和中位数
- 2020YKB西医综合全程班资料
- 2017ife_yaoyao学院_task1
- 转本结束暑假2022.6.29-7.13我的深圳之行(体验)
热门文章
- 中公教育计算机老师笔试面试题,信息技术教师考试面试“答辩”技巧
- system.runtime.Serialization.SerializationException
- Numpy库学习—squeeze()函数
- 《机器人爱好者(第2辑)》——Robart III机器人
- 已解决实现心型图案时报错TypeError: ‘float‘ object cannot be interpreted as an integer
- 西南大学19春计算机在线作业,西南大学19春计算机应用基础在线作业.docx
- 预制菜前景可观,怎么打开销路实现有效拓客?
- 飘云QQ2007现有BUG解决办法...终于搞定!
- docker--httpd镜像
- 【世界杯黑技术专题】「原理探索专题」一文解读一下“卡塔尔世界杯”的先进技术之半自动越位技术SAOT+比赛用球Al Rihla