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

以下VCS2018安装方法适用于 Ubuntu20Ubuntu18,亲测可用。其他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文件,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/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安装步骤相关推荐

  1. Ubuntu20.04安装步骤详细指导

    Ubuntu20.04安装步骤详细指导 前言:Ubuntu是一种桌面美观的Linux开发环境,其软件生态系统良好,我们选用Ubuntu20.04版本.下面介绍安装Ubuntu双系统,安装方法有三种: ...

  2. 【Tools】Windows下Git 2.18安装步骤

    0. 目录 0. 目录 1. Git简介 2. Git参考资料 3. Git 2.18安装 1. Git简介 Git(读音为/gɪt/.)是一个开源的分布式版本控制系统,可以有效.高速的处理从很小到非 ...

  3. Ubuntu20详细安装步骤

    Ubuntu20.04服务器版安装 下载地址:Download Ubuntu Desktop | Download | Ubuntu 一.语言选择:English(按Done确认,Done按钮在安装窗 ...

  4. ubuntu20输入法qiehuan_ubuntu20.04中文输入法安装步骤

    本文安装谷歌输入法. 其实之前一直用的是搜狗输入法,因为20.04取消qt4了没装成,就去尝试别的输入法了.发现谷歌输入法用起来极舒服,比sougou for linux好用多了.记得谷歌的中文输入法 ...

  5. Ubuntu20.04安装微信详细步骤,解决显示异常,无法显示输入内容问题和状态栏问题

    Ubuntu20.04安装微信,解决显示异常,无法输入问题和状态栏问题 最要提示 最终效果,输入窗口正常,应用图标收纳在状态栏中 步骤一:安装wine 步骤二 : 安装字体,解决显示异常[方框]的问题 ...

  6. ubuntu20.04中文输入法安装步骤

    这篇文章主要介绍了ubuntu20.04中文输入法安装步骤,文中通过图文介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧 本文安装谷歌输入法. 其实 ...

  7. ubuntu20.04 安装 Qt5.12步骤

    转载链接:ubuntu20.04 安装 Qt5.12_仙海寻波的博客-CSDN博客_ubuntu20.04安装qt第一步 下载 Qt5.12.9安装包使用清华镜像进行下载:https://mirror ...

  8. ubuntu20.04安装rxt3090驱动步骤和遇到的问题

    linux cuda 环境变量(linux安装cuda的正确姿势)-金芒果软件网 [Ubuntu20.04安装CUDA.cuDNN]_网络星空(luoc)的博客-CSDN博客_ubuntu20.04安 ...

  9. Ubuntu20.04安装NVIDIA显卡驱动、CUDA、CUDNN及突破NVENC并发限制

    1.查看当前系统版本 cat /proc/version 显示为: 2.查看当前显卡型号: sudo lshw -numeric  -C display 显示我的显卡型号为:GM107M[GeForc ...

最新文章

  1. C++11中头文件chrono的使用
  2. R语言ggplot2可视化包抑制数据轴使用科学计数法实战
  3. mysqil操作数据库
  4. Guava Cache用法介绍
  5. mysql启动时执行sql server_常见 mysql 启动、运行.sql 文件错误处理
  6. 数据要素市场的组织形式和估值框架
  7. 微服务升级_SpringCloud Alibaba工作笔记0027---Nacos集群配置上
  8. 水瓶座的回顾-高贵的程序员
  9. 20170908算法工程师在线笔试之jd编程思路
  10. IDEA 常用快捷键与设置
  11. x7 z8750 linux,x7-z8750 vs m3-7y30
  12. Picgo typora error in repo name
  13. QT编译程序出现[ui_Widget.h] Error 1
  14. 这五个灵魂问题,解决BI新人80%的困惑
  15. 酷我音乐盒去广告(续)
  16. 人不是因为有面子才牛逼,而是因为变牛逼才有面子
  17. python求平均数和中位数
  18. 2020YKB西医综合全程班资料
  19. 2017ife_yaoyao学院_task1
  20. 转本结束暑假2022.6.29-7.13我的深圳之行(体验)

热门文章

  1. 中公教育计算机老师笔试面试题,信息技术教师考试面试“答辩”技巧
  2. system.runtime.Serialization.SerializationException
  3. Numpy库学习—squeeze()函数
  4. 《机器人爱好者(第2辑)》——Robart III机器人
  5. 已解决实现心型图案时报错TypeError: ‘float‘ object cannot be interpreted as an integer
  6. 西南大学19春计算机在线作业,西南大学19春计算机应用基础在线作业.docx
  7. 预制菜前景可观,怎么打开销路实现有效拓客?
  8. 飘云QQ2007现有BUG解决办法...终于搞定!
  9. docker--httpd镜像
  10. 【世界杯黑技术专题】「原理探索专题」一文解读一下“卡塔尔世界杯”的先进技术之半自动越位技术SAOT+比赛用球Al Rihla