在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 15174|回复: 49

[原创] v c s 2016&v e r d i2016安装及调试总结(教程)

[复制链接]
发表于 2021-2-19 01:00:46 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
前言
system verilog的仿真软件vcs和Verdi安装比较复杂,之前在网上找了不少帖子,前前后后搞了好久,踩了不少坑,总算安装成功。这里写个总结,给需要安装vcs和Verdi的小伙伴们做个参考,希望能有所帮助。

系统及相关软件包
题主使用的是笔记本电脑,系统为kubuntu,版本信息如下:




  1. LSB Version:    core-11.1.0ubuntu2-noarch:printing-11.1.0ubuntu2-noarch:security-11.1.0ubuntu2-noarch
  2. Distributor ID: Ubuntu
  3. Description:    Ubuntu 20.10
  4. Release:        20.10
  5. Codename:       groovy


复制代码
v c s2016和V e r d i2016安装包:
百度网盘 链接: https://pan.baidu.com/s/1sD2NnEb_eSb_yyFueoRQRg 提取码:h37v

另外,破解程序需要在Windows系统下运行,生成license文件。如果没有双系统或者两台电脑的小伙伴们,可以安装一个虚拟机。题主安装的是VirtualBox,可以直接去官网下载,有Linux版本的安装包。虚拟机及Windows系统安装,包括设置共享目录什么的,这里不再赘述了,不清楚的话可以问度娘。

安装VCS+Verdi
将vcs安装包从百度网盘下载之后,里面包含以下几部分:
  • Syn Installer.rar #此程序用于安装下面三个程序。所以你想安装VCS,Verdi,SCL的任意一个,都需要这个文件。
  • v c s-mx_vL-2016.06
  • verdi_vL-2016.06-1
  • scl_v11.9    #此程序统一管理license等破解文件
  • scl_keygen #这个是破解程序(需要在windows系统下运行)。此文件用于生成license文件

下面开始逐个安装:
1.解压Syn Installer.rar





  1. unrar x SynopsysInstaller.rar


复制代码
得到名为3.3的目录,terminal中进入该目录,为SynopsysInstaller_v3.3.run添加可执行权限,并运行SynopsysInstaller_v3.3.run




  1. chmod +x SynopsysInstaller_v3.3.run
  2. ./SynopsysInstaller_v3.3.run


复制代码
运行之后会让你选择安装目录,直接按回车,选择默认的当前目录即可。
完事之后在当前目录下会生成一些文件和文件夹,其中包括setup.sh这个文件,该文件就是安装vcs、Verdi、scl的脚本。

在安装vcs、Verdi、scl之前,先给它们建一个专属的文件夹。像这种比较大的软件,我安装在了根目录下。当然安装在home目录下也是可以的,看个人习惯。
切换到根目录下,建立synopsys文件夹:




  1. cd /
  2. sudo mkdir synopsys


复制代码
再在synopsys目录下新建scl11.9,vcs2016.06,verdi2016.06,后续安装scl、vcs、verdi时,分别安装至这3个目录中。

2.安装vcs、Verdi、scl
这三步是一样的,这里以vcs为例,切换回刚才的名为3.3的目录里面,执行:




  1. sudo ./setup.sh -install_as_root


复制代码
如果像题主一样在根目录下建立的synopsys目录,将软件安装到根目录下的话,需要加上-install_as_root参数,否则的话会因为没有写权限导致安装失败。
之后进入安装界面,点start,第一个界面随便填,点next,进入到选择source的界面:
图片.png
这里选择的是source,也就是从百度网盘下载下来的vcs目录里面的vcs-mx_vL-2016.06文件夹,选择该文件夹之后,点击done,再点击next,即可看到可安装的版本:
图片.png
一路点击next,选择安装32bit还是64bit,如果系统是64bit的,就选择64bit的吧:
图片.png

点击next之后,会让你选择安装到什么地方,这里就选择我们刚刚在根目录下建的synopsys文件夹,安装到synopsys/vcs2016.06文件夹中:
图片.png
点击done,next,accept install,即可开始安装。
Verdi、scl安装过程同上,不再赘述。

安装license并激活
以上三个软件安装完之后,先别着急打开,因为没有license,软件无法正常运行。
1.生成license文件

进入到scl_keygen文件夹中,用vim或者其他文本编辑器打开synopsys.src文件,将其中的2020全部替换成2030。否则的话生成的license只能支持到2020年12月30日。咱现在都已经2021年了,那显然是不行的。
图片.png


打开虚拟机,在Windows系统中进入到scl_keygen文件夹中,双击运行scl_keygen.exe:


图片.png
需要填写红框处的内容,其中
  • HOST ID Daemon和HOST ID Feature填写一样的内容。
  • EXPIRE为license有效截止日期,可以尽量填的远一些。
  • HOST name为Linux系统的hostname。

HOST ID Daemon和HOST ID Feature查看方法:如下图,我使用的是无线。若用电缆,大部分是eth0。HOST ID Deamon就是ether后面红色覆盖的12个字符(冒号除外);比如ether 00:0a:21:51:12:4w。则HOST ID Deamon就是:000a2151124w
图片.png


HOST name查看方法:
图片.png
点击Generate即可生成license文件synopsys.dat

2.修改Synopsys.dat:
将第二行 修改成DAEMON snpslmd /synopsys/scl11.9/amd64/bin/snpslmd(这是你snpslmd对应的路径,修改成你自己的)
这里题主曾犯过一个粗心的错误,将中间的 snpslmd给漏掉了,导致在激活时报了一个奇怪的错,折腾了好久。
题外话:
细心的小伙伴可能会发现Synopsys.dat中有很多的^M这个符号,这个是因为文件是在Windows系统下生成的,是dos格式,如果不爽的话,可以用dos2unix命令转换一下:




  1. dos2unix Synopsys.dat


复制代码


3.将license文件拷贝到对应文件夹
将Synopsys.dat拷贝到/synopsys/vcs2016.06/license和/synopsys/verdi2016.06/license目录下,如果没有license目录的,可以自己新建一个

4.设置环境变量




  1. #synopsys
  2. #dve
  3. export PATH=$PATH:/synopsys/vcs2016.06/gui/dve/bin #改成自己vcs的安装路径
  4. alias dve='dve -full64'

  5. #VCS
  6. export PATH=$PATH:/synopsys/vcs2016.06/bin     #改成自己vcs的安装路径
  7. #alias vcs='vcs -full64 -cpp g++ -cc gcc -LDFLAGS -Wl,--no-as-needed' #vcs需要的固定的参数

  8. #VERDI
  9. export PATH=$PATH:/synopsys/verdi2016.06bin #改Verdi安装路径
  10. export VCS_HOME=/synopsys/vcs2016.06
  11. export VERDI_HOME=/synopsys/verdi2016.06
  12. export NOVAS_HOME=/synopsys/verdi2016.06

  13. #LICENCE
  14. export LM_LICENSE_FILE=27000@asus        #这个asus改成自己的host name
  15. alias lmg_vcs='lmgrd -c /synopsys/vcs2016.06/license/Synopsys.dat' #注意改路径

  16. #scl
  17. export PATH=$PATH:/synopsys/scl11.9/amd64/bin  #改SCL安装路径
  18. export VCS_ARCH_OVERRIDE=linux


复制代码
这里关于这个gcc和g++版本的问题,网上很多帖子说vcs2016需要4.8版本的gcc和g++,其实是不需要的,题主实测最新版本的gcc和g++也可以。另外,
alias vcs='vcs -full64 -cpp g++ -cc gcc -LDFLAGS -Wl,--no-as-needed'可设可不设,我这里是注释掉的。强烈推荐大家通过Makefile来管理自己的工程,通过make指令来实现编译、仿真运行等等。相关的vcs参数在Makefile里面设置好即可。不建议直接用vcs命令去编译或者仿真。

以上的配置仅作参考,需要根据你的安装路径进行配置。之后使配置文件立即生效即可:




  1. source ~/.bashrc


复制代码

5.激活
激活license是最关键的步骤。在之前可能需要安装:




  1. sudo apt-get install lsb-core   #lsb-core
  2. #上述不可以时尝试使用
  3. sudo apt-get install lsb-compat


复制代码
然而题主通过这两个方式都安装不了lsb-core,于是直接去下载安装包:
https://pkgs.org/download/lsb-core

因为激活的端口使用的是27000。所以需要打开27000端口:




  1. sudo iptables -I INPUT -p tcp -d 27000 -j ACCEPT
  2. sudo iptables-save


复制代码
接下来在terminal中运行lmg_vcs等待激活成功就可以了。




  1. lmg_vcs


复制代码
激活过程中可能遇到的问题:
1.若途中有关TCP port的报错,查询27000端口进程,直接kill 掉等待27000端口完全释放再重新lmg_vcs即可:




  1. sudo netstat -ap | grep 27000
  2. kill -9 ******


复制代码
2.Failed to open the TCP port number in the license问题:如果遇到这个问题,可以在Terminal运行:lmdown,然后会问y/n,输入y。然后等待一会儿再执行lmg_vcs就可以了。注意要等待一会儿

3.lmgrd can't make directory /usr/tmp/.flexlm when running server on Ubuntu问题




  1. sudo  su#切换到root权限
  2.     mkdir /usr/tmp/      #创建目录(Ubuntu下没有这个目录)
  3.     chmod 777 /usr/tmp/  #修改权限


复制代码
lmdown一遍,等待一会儿,再重新执行lmg_vcs。


当你看到下图信息时,就表示激活成功了,按一下Enter即可:
图片.png

调试
1.启动dve,terminal中运行dve:




  1. dve



复制代码



2.启动Verdi,terminal中运行Verdi




  1. verdi


复制代码
(1)在启动verdi时,可能会出现一个语法错误:verdi_2016/bin/verdi: 433: /synopsys/verdi2016.06/bin/verdi: Syntax error: "(" unexpected
解决:
进入verdi安装目录下的/bin目录,里面有一个verdi的脚本,把这个脚本第433行的那个function去掉。


(2)可能有些32位的共享包没有安装的情况,比如:libjpeg.so.62: cannot open shared object file: No such file or directory。安装libjpeg62:




  1. sudo apt install libjpeg62


复制代码

(3)或者是libpng12.so.0: cannot open shared object file: No such file or directory,安装libpng12.deb




  1. sudo -i #先进入root权限
  2.     wget -q -O /tmp/libpng12.deb http://mirrors.kernel.org/ubuntu/pool/main/libp/libpng/libpng12-0_1.2.54-1ubuntu1_amd64.deb
  3.     dpkg -i /tmp/libpng12.deb
  4.     rm /tmp/libpng12.deb


复制代码
题主下载了libpng12-0_1.2.54-1ubuntu1_amd64.deb之后,死活安装不上,一直报错,后来通过以下方式解决了问题:
直接下载libpng12.so.0,然后拷贝到/usr/lib/x86_64-linux-gnu/目录下,问题解决。
libpng12.so.0文件放在附件里面,大家有需要的话可以直接在这里下载。

问题都解决之后,Verdi即可正常打开:
图片.png

注意,在每重启一遍机器,想要运行dve或verdi之前,都要先运行




  1. lmg_vcs


复制代码
这个命令成功后,方可运行vcs和verdi.


3.调试vcs
将/synopsys/vcs2016.06/doc/examples/uvm/simple/hello_world 拷贝到home目录下,尝试一下编译及仿真运行
图片.png
(1)报/bin/sh illegal option -h的错
解决办法:




  1. sudo \rm -f /bin/sh
  2. sudo ln -s /bin/bash /bin/sh


复制代码


再次执行make all

(2)报以下错:
图片.png
原因:64位的操作系统

解决方法:
在Makefile的编译选项中添加-full64参数:
图片.png

再次执行make all,
(3)报以下错:
图片.png
原因:gcc/g++版本问题
解决方法:
在Makefile的编译选项中添加以下参数:
图片.png

再次执行make all,编译已没有问题
(4)仿真时报错,说找不到simv:
图片.png
解决方法:
在Makefile中的仿真命令中,将simv改成./simv:
图片.png

再次执行make all:
图片.png

完美运行!


libpng12.so.0.zip

70.06 KB, 下载次数: 98 , 下载积分: 资产 -2 信元, 下载支出 2 信元

发表于 2021-2-19 10:00:08 | 显示全部楼层
perfect
 楼主| 发表于 2021-2-19 10:16:28 | 显示全部楼层
帖子好像涉及到侵权了,早上刚看到版块里的《侵权公告》,可怜我昨天晚上码了一大晚。晚上回去保存一下再删掉。。。
发表于 2021-2-19 13:40:15 | 显示全部楼层


飞翔的马甲 发表于 2021-2-19 10:16
帖子好像涉及到侵权了,早上刚看到版块里的《侵权公告》,可怜我昨天晚上码了一大晚。晚上回去保存一下再删 ...


可以将整个虚拟机备份上传到百度网盘,这样就不用摸索安装了,之前闲鱼上十几块钱可以买到。
 楼主| 发表于 2021-2-19 14:12:56 | 显示全部楼层


年轻的韭菜 发表于 2021-2-19 13:40
可以将整个虚拟机备份上传到百度网盘,这样就不用摸索安装了,之前闲鱼上十几块钱可以买到。 ...


我的Linux系统是装在电脑上的,没有装在虚拟机里面
发表于 2021-2-19 18:34:38 | 显示全部楼层
发表于 2021-2-24 20:50:53 | 显示全部楼层
license过期了
 楼主| 发表于 2021-2-24 22:20:01 | 显示全部楼层


注意看教程,修改synopsys.src文件

发表于 2021-2-25 10:41:41 | 显示全部楼层
支持
发表于 2021-2-25 13:20:21 | 显示全部楼层


年轻的韭菜 发表于 2021-2-19 13:40
可以将整个虚拟机备份上传到百度网盘,这样就不用摸索安装了,之前闲鱼上十几块钱可以买到。 ...


其实摸索安装是非常好的一件事情,很多东西都是在这个过程中得到学习。

作为一个资深的芯片工程师,工具安装,license的管理以及查看,其实还是很有必要的。


您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条

×

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-4-28 18:35 , Processed in 0.042919 second(s), 7 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表