目录
1 准备
1.1 系统版本
1.2 软件版本
Synopsys Installer:v5.0
SCL(Synopsys Common Licensing): v2018.06
VCS: 2018.09
verdi: 2018.09
原来装好环境的linux电脑无了,这次我详细记录一下自己在Ubuntu 18.04 虚拟机上的环境配置过程,不然下次安装又忘记了,主要值得参考的是遇到一些环境问题的解决过程,内容仅供参考 😃。
关于软件版本的说明:在正常使用2018.09之前,我还安装过2016.06版本,我个人测试2016.06版本是用不了的,虽然能正常安装和打开软件,但是在编译的时候会报链接库的错,一直解决不了所以才换的2018.09。
关于注册机时间失效了的解决办法:进入到scl_keygen文件夹中,开synopsys.src文件,将其中的2020全部替换成2030,就可以到2030。或者改好的:链接
2 安装过程
2.1 安装installer
- 为各软件创建好子文件夹:
a473@a473-ubuntu:~/Desktop/synopsys$ sudo mkdir -p /edaTools/synopsys/
[sudo] password for a473:
a473@a473-ubuntu:~/Desktop/synopsys$ sudo mkdir -p /edaTools/synopsys/installer
- 安装installer
- 改变所有安装文件的权限
sudo chmod 777 -R ./
- 运行installer安装包所在路径下的
SynopsysInstaller_v3.3.run
文件:``
2.2 安装SCL
sh命令运行installer安装路径所在路径下的setup.sh
文件:
2016版本 直接运行,提示语法错误:
打开setup.sh
一看,使用的是C shell(csh)。
#! /bin/csh -f
安装csh:
sudo apt-get install csh
重新使用csh命令运行setup.sh
文件:
提示不可以使用root运行:
2018版本从这开始就行:
需要先改变目的文件夹的权限:
sudo chmod -R 777 /edatools/synopsys/
运行setup.sh
文件:
随便填写信息,next:
点击browser按钮选择需要安装的软件的SCL安装包.spf文件的路径,选好之后点击done,next:
选择安装路径:
一路next:
accept,install:
finish。
2.3 安装VCS
首先将shell从dash换为bash,不然会报错/bin/sh: 0: illegal option -h
首先ls -al /bin/sh
查看当前sehll。一般默认为dash,执行sudo dpkg-reconfigure dash
然后选择取消就行。
安装VCS_mx_vO
安装VCS_vO
2.4 安装verdi
3 激活
-
获取linux环境的hostname:
-
获取linux环境的MAC地址:
安装net-tools:sudo apt-get install net-tools
使用ifconfig,得到mac地址:
-
windows系统运行破解软件,填写对应信息,生成License
点击generate产生licence:程序所在路径下的Synopsys.dat
修改Synopsys.dat第二行为自己安装的scl的snpslmd软件所在路径:
-
将Licence文件放在[scl安装路径]/admin/licence下
-
激活
以下部分是以前安装2016版本激活遇到的问题,与2018是差不多的。
首先重启电脑。
先开放设置license需要的27000端口,然后查看27000端口是否空闲,如果不空闲,则要结束使用这个端口的进程:sudo ufw allow 27000 sudo ufw enable sudo ufw reload sudo ufw status netstat -ap | grep 27000 # kill -9 XXX(使用27000端口的进程ID)
此时环境变量还没有设置,所以我们使用绝对路径运行licence管理器。
2016版本:/edaTools/synopsys/scl/2018.06/linux64/bin/lmgrd -c /edaTools/synopsys/scl/admin/license/Synopsys.dat
2018版本:
/edaTools/synopsys/scl/2018.06/linux64/bin/lmgrd -c /edaTools/synopsys/scl/2018.06/admin/license/Synopsys.dat
此时显示no such file and directory:
这是因为缺少依赖包,先在Softwore & Updates软件中切换软件源为国内源,不然非常慢。安装lsb-core:
sudo apt-get install lsb-core
再次执行lmgrd命令, 出错:
(snpslmd) Can't make directory /usr/tmp/.flexlm, errno: 2(No such file or directory)
没这个路径,我们自己新建一个,记得改权限,不然一会又说禁止访问了:
sudo mkdir /usr/tmp/ sudo chmod 777 /usr/tmp/
再次尝试执行lmgrd命令,报错:
(lmgrd) Failed to open the TCP port number in the license.
这是因为刚才执行第一次的时候占用端口了,所以它打开TCP端口出错了,所以我们要关闭这个进程:netstat -ap | grep 27000 # kill -9 XXX(使用27000端口的进程ID)
直到没有进程占用了,再次尝试执行lmgrd命令,成功:
/edaTools/synopsys/scl/amd64/bin/lmgrd -c /edaTools/synopsys/scl/admin/license/Synopsys.dat
打开verdi测试一下是否破解成功:
/edaTools/synopsys/verdi/bin/verdi
欸。报错::
/edaTools/synopsys/verdi/platform/LINUXAMD64/bin/Novas: error while loading shared libraries: libjpeg.so.62: cannot open shared object file: No such file or directory
又是没文件,没有库文件,那就安装libjpeg62-dev,Development files for the IJG JPEG library (version 6.2):
这个网站有介绍,安装一下:sudo apt-get install libjpeg62-dev
再次运行Verdi,还会报一个错:
/edaTools/synopsys/verdi/platform/LINUXAMD64/bin/Novas: error while loading shared libraries: libpng12.so.0: cannot open shared object file: No such file or directory
我装,我装还不行嘛,ubuntu14开始不支持libpng12,所以需要自己下载安装:
增加软件源,双击/etc/apt/source.list,打开软件和更新界面:
在其他软件加上源ppa:linuxuprising/libpng12
(这种源随时保不齐失效,没用就要找其他的)
如果失效了可以在https://ppa.launchpad.net/linuxuprising/libpng12/ubuntu/pool/main/libp/libpng/
下载安装。
安装libpng12:
sudo apt update sudo apt install libpng12-0
以下是虚拟机遇到的问题,实体主机没遇到:
运行
[verdi路径]/verdi -licdebug
可见,licence的路径并不正确。
不过先执行后面的配置运行环境之后就好了。猜测是LM_LICENSE_FILE环境变量的问题。
再次执行verdi。成功:/edaTools/synopsys/verdi/bin/verdi
2018:
4 配置运行环境
用绝对路径启动太不方便,加一下环境变量:
打开~/.bashrc
(如果看不见,按ctrl+h显示隐藏文件), 然后加入一些路径变量以及命令重命名:
2016版本:
export SynopsysList=/edaTools/synopsys
export DVE_HOME=$SynopsysList/vcs/gui/dve
export VCS_HOME=$SynopsysList/vcs/
export VERDI_HOME=$SynopsysList/verdi
#dve
export PATH=$PATH:$VCS_HOME/gui/dve/bin
alias dve='dve -full64'
#VCS
export PATH=$PATH:$VCS_HOME/bin
alias vcs='vcs'
#VERDI
export PATH=$PATH:$VERDI_HOME/bin
alias verdi='verdi'
#scl
export PATH=$PATH:$SynopsysList/scl/amd64/bin
export VCS_ARCH_OVERRIDE=linux
#LICENCE
export LM_LICENSE_FILE=27000@a473-ubuntu
alias lmg_vcs='lmgrd -c $SynopsysList/scl/admin/license/Synopsys.dat'
2018版本:
export SynopsysList=/edaTools/synopsys
export DVE_HOME=$SynopsysList/vcs/O-2018.09-SP2/gui/dve/
export VCS_HOME=$SynopsysList/vcs/O-2018.09-SP2/
export VERDI_HOME=$SynopsysList/verdi/Verdi_O-2018.09-SP2/
#dve
export PATH=$PATH:$VCS_HOME/gui/dve/bin
alias dve='dve -full64'
#VCS
export PATH=$PATH:$VCS_HOME/bin
alias vcs='vcs'
#VERDI
export PATH=$PATH:$VERDI_HOME/bin
alias verdi='verdi'
#scl
export PATH=$PATH:$SynopsysList/scl/2018.06/linux64/bin/
export VCS_ARCH_OVERRIDE=linux
#LICENCE
export LM_LICENSE_FILE=27000@ming-ubuntu
alias lmg_vcs='lmgrd -c $SynopsysList/scl/2018.06/admin/license/Synopsys.dat'
下次电脑启动之后,执行lmg_vcs
, 就可以直接用verdi
命令以及其他工具了。
5 测试
5.1 hello_world
拷贝一份[vcs安装路径]/doc/examples/uvm/simple
路径下的hello_world工程。
切换到工程路径,执行make命令:
make
报错:
可以看到路径中的linux,我们实际是linux64才有这些文件,64位系统的问题,工程路径下的mkefile加上-full64
再次make, 报错
这篇博客给出了解决方案:
vcs命令加上选项: -full64 -cpp g++ -cc gcc -LDFLAGS -no-pie -LDFLAGS -Wl,--no-as-needed -CFLAGS -fPIE
再次make, 报错
make: simv: Command not found
原因:simv是hello_world下的文件,由于没有设置环境变量,不能直接使用simv命令。makefile中改为相对路径:
再次make, 成功
5.2 自己的工程测试
有了hello_world的经验,就可以试着自己新建一个工程进行测试。
运行
报错
试了很多方法,最后只能试试改变gcc版本为6.2。但是编译gcc6.2一直出问题。
只能换版本了。
我换成了2018.09版,这时只要按相同的方式安装软件就好了,环境都是好的。