目录
- 简述
- 安装环境和文件
- 1. 环境
- 2. 文件
- 安装包链接
- 1. 环境
- 2. 文件
- 安装前踩坑
- 安装步骤
- 1. 安装前的准备工作
- 2. 用Synopsys Installer安装
- 3. 在windows上生成License文件
- 4. 设置环境变量
- 5. 激活License
- 6. 软件测试
- (1)DC
- (2)PT
- (3)FM
- (4)VCS
- (5)Verdi
- 7. 安装SpyGlass
- (1)安装spyglas2016
- (2)激活
- (3)测试
- 8. 致谢
- 9. 文末分享
简述
这篇文章讲述了如何在Ubuntu 64位系统上安装Synopsys公司的VCS2016、Verdi2016、Design complier2016、Primetime2016、Formality2015、SpyGlass2016软件和基本的环境配置,这些都是数字IC设计中的重要EDA工具,安装的过程中参考了很多教程,博主会在文末一一感谢的O(∩_∩)O。
安装环境和文件
1. 环境
- Ubuntu16.04 64位
- VMware Workstation Pro14
2. 文件
- SCL11.9 —— Synopsys官方的管理License文件的软件
- VCS2016 —— Verilog仿真软件
- Verdi2016 —— 一款可以生成仿真波形的软件,验证工程师必备
- Formality2015 —— 形式化验证软件
- SpyGlass2016 —— 有五大模块: lint,CDC,LP,Constraint,DFT,功能强大
- Primetime2016 —— 针对STA(静态时序分析)的软件
- Design complier2016 —— 用于做电路综合的核心工具
- Installer3.2 —— Synopsys官方的安装软件,以上软件除SpyGlass外,均用它安装
- License —— 用来生成license的文件
安装包链接
1. 环境
- Ubuntu16.04 http://mirrors.aliyun.com/ubuntu-releases/16.04.6/
- VMware Workstation Pro14 https://pan.baidu.com/s/1Ny8RGzvwlm73ve0x3j1KZA 提取码:hgls
安装前踩坑
- 虚拟机软件
之前安装的是VMware Workstation Pro15,开关系统时容易黑屏,感觉可能是兼容问题,于是换了VMware Workstation Pro14,瞬间流畅起来了; - 操作系统的选择
- Redhat
首先在Redhat7上安装,因为是企业版本,yum得重新安装,网易镜像网站上需要安装的依赖库太对,遂pass;选择Redhat6,跟着既定的教程走(后面有说明),可以成功的走通6个软件,结果Verdi2016报错,查了很多教程,还是解决不了(可能实力不够吧),遂pass;
错误如下图显示:
- 普通用户
- root用户
- Ubuntu
选择Ubuntu18.04,在激活lmgrd时,出现了问题 lmgrd no such file or dictionary,原因是64位系统执行32位文件需要32位的lib,于是运行了apt install lsb,结果还是有问题,打听了一下,说老版本比较好用,遂pass(心累),选择Ubuntu16.04,成功激活了lmgrd,接下来开始介绍具体安装步骤。
安装步骤
1. 安装前的准备工作
- 建立文件夹
预留好安装空间,并把Synopsys EDA Tools里的安装包文件夹都放到Installer里面
- 解压安装软件
Installer3.2里面的文件SynopsysInstaller_v3.2.run是一个可执行文件,需要解压之后,才能得到我们想要的安装文件setup.sh
2. 用Synopsys Installer安装
运行./setup.sh
进行安装,可能会遇到以下错误
这是由于没有安装csh(一种计算机中的linux、unix命令,用来调用 C shell)的原因,执行sudo apt install csh
即可
再执行./setup.sh
,就出现了吗如下的安装界面
选择好对应的安装包和安装位置即可,(注意:安装包首字母大写,安装位置小写)
一路Next,该选择的都选上,最后点击finish和dismiss即可
安装软件的顺序:
Scl11.9 —— Vcs2016 —— Verdi2016 —— DesignComplier2016 —— Primetime2016 —— Formality2015
SpyGlass2016单独安装
3. 在windows上生成License文件
由于是安装的付费软件,license文件必不可少
如果是虚拟机上安装,并且License文件夹里面的是exe文件,需要在Windows系统上操作
打开scl_keygen文件夹下的scl_keygen.exe文件,如下:
我们需要注意的是以下三个地方:
这两个ID就是你的虚拟机Ubuntu系统的Host ID,是一样的
进入ubuntu上安装的scl文件夹里,找到lmhostid,然后执行
出现这个问题的原因是lmhostid这个文件是一个32位的文件,而64位系统执行32位文件需要32位的lib文件支持(lmgrd出现这个问题时也同理)
执行sudo apt install lsb
,这时问题就解决了,获得了Host ID
这样就获得了HOST ID,而 HOST Name 可以在bash里面输入hostname
得到填好之后,如下,点击 Generate
这样就生成了 Synopsys.dat
然后修改一下Synopsys.dat的开头两行:
- 第一行的SERVER后的名字替换成Ubuntu的hostname,直接在Terminal里面输入
hostname
即可得到; - 第二行的snpslmd后面换成Ubuntu系统中snpslmd,可以在scl文件夹下用
find ./ -name snpslmd
命令去查询路径,一般在安装的scl文件夹的
/amd64/bin/snpslmd
/linux/bin/snpslmd
路径下,记得填完整路径
这样license文件——Synopsys.dat就得到了,将这个文件复制到ubuntu上
我是在scl文件夹下新建的license,无论放哪都行,后面配置环境变量即可
还有一步,就是修改网卡名称为 eth0 ,这是Synopsys公司默认的有线网
首先进入root用户,输入
gedit /etc/default/grub
在GRUB_CMDLINE_LINUX位置处不改变之前原有信息,在其基础上进行追加信息net.ifnames=0 biosdevname=0
如下
更新配置:
update-grub
编辑网络接口文件:
gedit /etc/network/interfaces
追加以下信息
auto eth0
iface eth0 inet dhcp
即
然后reboot,这样查询 ifconfig ,就是eth0了,这里的mac地址和HOST ID 一样
不同的license软件有不同的 Synopsys.src,分别对应唯一的SECRET DATA,只有有效的SECRET DATA才能成功。
4. 设置环境变量
为了激活license和运行程序更为方便,设置环境变量是很重要的
在root权限下输入vim ~/.bashrc
,前提是已经安装了vim,直接在 .bashrc文件的最后面,加上一下几行:
#dve
export PATH=$PATH:/home/cjw/Synopsys/vcs2016/gui/dve/bin #改成自己 vcs 的安装路径
alias dve='dve -full64'
#VCS
export PATH=$PATH:/home/cjw/Synopsys/vcs2016/bin #改成自己 vcs 的安装路径
alias vcs="vcs -full64 -cpp g++-4.8 -cc gcc-4.8 -LDFLAGS -Wl,--no-as-needed"
#vcs需要的固定的参数,注意系统要安装 gcc-4.8 和 g++-4.8,这两个需要自己独立安装
export VCS_ARCH_OVERRIDE=linux #加这个可以说明 VCS 也支持 2.*以上的内核
#VERDI
export PATH=$PATH:/home/cjw/Synopsys/verdi2016/bin #改 Verdi安装路径
export VCS_HOME=/home/cjw/Synopsys/vcs2016
export VERDI_HOME=/home/cjw/Synopsys/verdi2016
export NOVAS_HOME=/home/cjw/Synopsys/verdi2016
#LICENCE
export SNPSLMD_LICENSE_FILE=27000@cjw-host
export LM_LICENSE_FILE=/home/cjw/Synopsys/scl/license/Synopsys.dat # license文件的位置
alias lmg_scl='lmgrd -c /home/cjw/Synopsys/scl/license/Synopsys.dat' #注意改路径
#scl
export PATH=$PATH:/home/cjw/Synopsys/scl/linux/bin #改 SCL 安装路径
#Design Compalier
export SYNOPSYS=/home/cjw/synopsys/dc2016 #不加这个路径,直接运行 dc 会报错
export PATH=$PATH:/home/cjw/Synopsys/dc2016/bin #改 Verdi 安装路径
export DC_HOME=/home/cjw/Synopsys/dc2016
alias dc='dc_shell'
alias dv='design_vision'
#Primetime
export PATH=$PATH:/home/cjw/Synopsys/pt2016/bin #改 Verdi 安装路径
export PT_HOME=/home/cjw/Synopsys/pt2016
alias pt='primetime'
#Formality
export PATH=$PATH:/home/cjw/Synopsys/fm2015/bin #改 Verdi 安装路径
export FM_HOME=/home/cjw/Synopsys/fm2015
alias fm='formality'
Synopsys.dat可能也要放到Verdi安装目录的license文件夹下
配置好 .bashrc文件后,输入source ~/.bashrc
使环境变量立马生效
5. 激活License
由于使用的是27000端口,记得开放这个端口,一般是打开的
接下来在终端输入
lmg_scl
等待激活
出现了如下问题error while loading shared libraries: libstdc++.so.6
缺少libstdc++6库,解决方法如下:
sudo apt-get install libstdc++6
sudo apt-get install lib32stdc++6
再次输入lmg_vcs
,出现了Failed to open the TCP port number in the license
问题,这比较常见
输入
lmdown
然后会问y/n,输入y;等待一会儿就可以了(注:一定要等待几分钟)
再次输入lmg_scl
,出现了lmgrd can't make directory /usr/tmp/.flexlm
问题
- 原因:Flex浮动许可证管理工具在Linux系统下需要flexlm文件保存一些暂存数据,所以如果无法创建,lmgrd就无法启动
- 解决方法:用root权限创建 /usr/tmp/.flexlm文件,并赋予最高权限"777"。然后再重新启动 lmgrd即可
如下操作:
#都是在root权限下执行的
mkdir /usr/tmp/ #创建目录
chmod 777 /usr/tmp/ #赋予最高权限
lmdown
一遍,等待一会儿,再重新启动lmg_vcs
就好了
出现以下输出,就代表激活成功
6. 软件测试
(1)DC
输入dc
,会有以下的错误出现,关于libtiff.so.3
由于Ubuntu16.04已经安装了libtiff.so.5,这个文件可以在/usr/lib/x86_64-linux-gnu/
下找到,输入locate libtiff.so.5
即可找到它的路径
接下来直接做一个软链接即可
sudo ln -s /usr/lib/x86_64-linux-gnu/libtiff.so.5 /usr/lib/x86_64-linux-gnu/libtiff.so.3
接着输入dc
,又出现一个错误,关于libmng.so.1
解决方案也和上面差不多
可以先安装libmng2,如果已存在,就直接软链接到libmng.so.1
sudo apt-get install libmng2
sudo ln -s /usr/lib/x86_64-linux-gnu/libmng.so.2 /usr/lib/x86_64-linux-gnu/libmng.so.1
再此输入dc
,dc_shell虽然启动了,但是还有一些小的问题
解决方法有两种:
- 命令行
sudo dpkg-reconfigure dash
选择No
主要是将ubuntu默认的shell链接的dash改成传统的bash
lrwxrwxrwx 1 root root 4 8月 11 09:53 /bin/sh -> dash (为修改之前)
lrwxrwxrwx 1 root root 4 8月 11 09:53 /bin/sh -> bash
由于dash和bash不兼容才导致了此类问题的发生
- 改文件
将dc_shell中的"==“改成”=" ,原因是在dash中默认的判断语句是"="
再检验dv
,即dc的图形界面,成功!
(2)PT
输入pt测试,成功!
(3)FM
输入fm测试,会出现以下问题
原因是得在工作路径有读写权限,进行如下操作:
mkdir /home/cjw/program
chmod 777 /home/cjw/program
fm -work_path /home/cjw/program/
成功!
(4)VCS
输入vcs
,出现了以下问题
原因:在ubuntu上,/bin/sh默认是链接到 /bin/dash的,当你从源代码编译软件的时候,dash可能会导致一些错误,因此,把 /bin/sh的链接改为了 /bin/bash即可
rm -f /bin/sh
ln -s /bin/bash /bin/sh
输入dve
,即vcs的图形界面,成功!
(5)Verdi
输入verdi测试,成功!
7. 安装SpyGlass
(1)安装spyglas2016
进入到安装包文件夹
运行SpyGlass-Install.sh文件(可以跟着其中的安装教程走)
添加环境变量
#SPYGLASS
export SPYGLASS_HOME=/home/cjw/Synopsys/spyglass2016/SpyGlass-L2016.06/SPYGLASS_HOME
export PATH=$PATH:$SPYGLASS_HOME/bin
export SPYGLASS_DC_PATH=/home/cjw/Synopsys/dc2016
alias sg='spyglass'
(2)激活
将SpyGlass_vL_201606_crack文件夹的check.linux4文件复制替换 /SPYGLASS_HOME/obj/ 里面的check.linux4
完成!
(3)测试
输入sg测试,出现以下问题
这是由于Spyglass 2016 只支持linux kernel version 3,而Ubuntu16.04的版本是linux kernel version 4,可以通过修改standard-environment.sh 和 perl 两个文件来解决问题
- standard-environment.sh
位于已安装的spyglass2016目录…/SPYGLASS_HOME/lib/SpyGlass/下,用gedit编辑器打开,定位到以下位置
在linux-3*下面添加 linux-4*的内容
Linux-4*)
if [ X"$switch32bit" = "Xyes" ]; then
echo "Linux2"
elif [ X"$switch64bit" = "Xyes" ]; then
PROCNAME=`uname -p`
if [ "X$PROCNAME" = "Xunknown" ]; then
PROCNAME=`uname -m`
fi
if [ X"$PROCNAME" = "Xx86_64" ]; then
echo "Linux4"
else
echo "Linux2"
fi
else
PROCNAME=`uname -p`
if [ "X$PROCNAME" = "Xunknown" ]; then
PROCNAME=`uname -m`
fi
if [ X"$PROCNAME" = "Xx86_64" ]; then
if [ X"$defExeOn64Bit" = "X32" ]; then
echo "Linux2"
else
echo "Linux4"
fi
else
echo "Linux2"
fi
fi
;;
即
- perl
位于已安装的spyglass2016目录…SpyGlass-L2016.06/perl/bin 下,用gedit编辑器打开,定位到以下位置
在linux-3* 下面添加linux-4*的内容
Linux-4*) ##now we have Linux-64 bit also
PROCNAME=`uname -p`
if [ "X$PROCNAME" = "Xunknown" ]; then
PROCNAME=`uname -m`
fi
if [ X"$PROCNAME" = "Xx86_64" ]; then
species=Linux4
else
species=Linux2
fi
;;
即
输入sg
测试,成功!
至此,6个软件全部安装完毕!