目录

  • 简述
  • 安装环境和文件
  • 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. 环境

安装前踩坑

  • 虚拟机软件
    之前安装的是VMware Workstation Pro15,开关系统时容易黑屏,感觉可能是兼容问题,于是换了VMware Workstation Pro14,瞬间流畅起来了;
  • 操作系统的选择
  • Redhat
    首先在Redhat7上安装,因为是企业版本,yum得重新安装,网易镜像网站上需要安装的依赖库太对,遂pass;选择Redhat6,跟着既定的教程走(后面有说明),可以成功的走通6个软件,结果Verdi2016报错,查了很多教程,还是解决不了(可能实力不够吧),遂pass;
    错误如下图显示:
  1. 普通用户
  2. 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里面

bios nps bios nps在哪设置_bash


bios nps bios nps在哪设置_ubuntu_02

  • 解压安装软件
    Installer3.2里面的文件SynopsysInstaller_v3.2.run是一个可执行文件,需要解压之后,才能得到我们想要的安装文件setup.sh

bios nps bios nps在哪设置_bash_03

2. 用Synopsys Installer安装

运行./setup.sh进行安装,可能会遇到以下错误

bios nps bios nps在哪设置_经验分享_04


这是由于没有安装csh(一种计算机中的linuxunix命令,用来调用 C shell)的原因,执行sudo apt install csh即可

bios nps bios nps在哪设置_经验分享_05


再执行./setup.sh,就出现了吗如下的安装界面

bios nps bios nps在哪设置_bios nps_06


选择好对应的安装包和安装位置即可,(注意:安装包首字母大写,安装位置小写)

一路Next,该选择的都选上,最后点击finishdismiss即可

安装软件的顺序:
Scl11.9 —— Vcs2016 —— Verdi2016 —— DesignComplier2016 —— Primetime2016 —— Formality2015

SpyGlass2016单独安装

bios nps bios nps在哪设置_经验分享_07

bios nps bios nps在哪设置_bios nps_08


bios nps bios nps在哪设置_经验分享_09


bios nps bios nps在哪设置_linux_10

3. 在windows上生成License文件

由于是安装的付费软件,license文件必不可少
如果是虚拟机上安装,并且License文件夹里面的是exe文件,需要在Windows系统上操作
打开scl_keygen文件夹下的scl_keygen.exe文件,如下:

bios nps bios nps在哪设置_linux_11

我们需要注意的是以下三个地方:

bios nps bios nps在哪设置_linux_12

这两个ID就是你的虚拟机Ubuntu系统的Host ID,是一样的
进入ubuntu上安装的scl文件夹里,找到lmhostid,然后执行

bios nps bios nps在哪设置_ubuntu_13


出现这个问题的原因是lmhostid这个文件是一个32位的文件,而64位系统执行32位文件需要32位的lib文件支持(lmgrd出现这个问题时也同理)

执行sudo apt install lsb,这时问题就解决了,获得了Host ID

bios nps bios nps在哪设置_ubuntu_14


这样就获得了HOST ID,而 HOST Name 可以在bash里面输入hostname得到填好之后,如下,点击 Generate

bios nps bios nps在哪设置_bash_15

这样就生成了 Synopsys.dat

然后修改一下Synopsys.dat的开头两行:

  • 第一行的SERVER后的名字替换成Ubuntuhostname,直接在Terminal里面输入hostname即可得到;
  • 第二行的snpslmd后面换成Ubuntu系统中snpslmd,可以在scl文件夹下用find ./ -name snpslmd命令去查询路径,一般在安装的scl文件夹的

/amd64/bin/snpslmd
/linux/bin/snpslmd

路径下,记得填完整路径

bios nps bios nps在哪设置_linux_16


这样license文件——Synopsys.dat就得到了,将这个文件复制到ubuntu

我是在scl文件夹下新建的license,无论放哪都行,后面配置环境变量即可

bios nps bios nps在哪设置_linux_17


还有一步,就是修改网卡名称为 eth0 ,这是Synopsys公司默认的有线网

首先进入root用户,输入

gedit /etc/default/grub

GRUB_CMDLINE_LINUX位置处不改变之前原有信息,在其基础上进行追加信息net.ifnames=0 biosdevname=0
如下

bios nps bios nps在哪设置_bios nps_18


更新配置:

update-grub

编辑网络接口文件:

gedit /etc/network/interfaces

追加以下信息

auto eth0
iface eth0 inet dhcp

bios nps bios nps在哪设置_bash_19


然后reboot,这样查询 ifconfig ,就是eth0了,这里的mac地址和HOST ID 一样

bios nps bios nps在哪设置_ubuntu_20


不同的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

bios nps bios nps在哪设置_linux_21


缺少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问题

bios nps bios nps在哪设置_经验分享_22

  • 原因:Flex浮动许可证管理工具在Linux系统下需要flexlm文件保存一些暂存数据,所以如果无法创建,lmgrd就无法启动
  • 解决方法:用root权限创建 /usr/tmp/.flexlm文件,并赋予最高权限"777"。然后再重新启动 lmgrd即可

如下操作:

#都是在root权限下执行的
mkdir /usr/tmp/                      #创建目录
chmod 777 /usr/tmp/                  #赋予最高权限

lmdown一遍,等待一会儿,再重新启动lmg_vcs就好了
出现以下输出,就代表激活成功

bios nps bios nps在哪设置_ubuntu_23

6. 软件测试

(1)DC

输入dc,会有以下的错误出现,关于libtiff.so.3

bios nps bios nps在哪设置_经验分享_24


由于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

bios nps bios nps在哪设置_ubuntu_25


解决方案也和上面差不多

可以先安装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虽然启动了,但是还有一些小的问题

bios nps bios nps在哪设置_bios nps_26


解决方法有两种:

  • 命令行
    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

由于dashbash不兼容才导致了此类问题的发生

  • 改文件
    dc_shell中的"==“改成”=" ,原因是在dash中默认的判断语句是"="

再检验dv,即dc的图形界面,成功!

bios nps bios nps在哪设置_linux_27

(2)PT

输入pt测试,成功!

bios nps bios nps在哪设置_经验分享_28

(3)FM

输入fm测试,会出现以下问题

bios nps bios nps在哪设置_经验分享_29


原因是得在工作路径有读写权限,进行如下操作:

mkdir /home/cjw/program
chmod 777 /home/cjw/program
fm -work_path /home/cjw/program/

成功!

bios nps bios nps在哪设置_bios nps_30


bios nps bios nps在哪设置_经验分享_31

(4)VCS

输入vcs,出现了以下问题

bios nps bios nps在哪设置_经验分享_32


原因:在ubuntu上,/bin/sh默认是链接到 /bin/dash的,当你从源代码编译软件的时候,dash可能会导致一些错误,因此,把 /bin/sh的链接改为了 /bin/bash即可

rm -f /bin/sh
ln -s /bin/bash  /bin/sh

bios nps bios nps在哪设置_bios nps_33


输入dve,即vcs的图形界面,成功!

bios nps bios nps在哪设置_bash_34

(5)Verdi

输入verdi测试,成功!

bios nps bios nps在哪设置_ubuntu_35

7. 安装SpyGlass

(1)安装spyglas2016

进入到安装包文件夹

bios nps bios nps在哪设置_linux_36


运行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测试,出现以下问题

bios nps bios nps在哪设置_经验分享_37


这是由于Spyglass 2016 只支持linux kernel version 3,而Ubuntu16.04的版本是linux kernel version 4,可以通过修改standard-environment.shperl 两个文件来解决问题

  • standard-environment.sh
    位于已安装的spyglass2016目录…/SPYGLASS_HOME/lib/SpyGlass/下,用gedit编辑器打开,定位到以下位置

bios nps bios nps在哪设置_bash_38


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
            ;;

bios nps bios nps在哪设置_ubuntu_39

  • perl
    位于已安装的spyglass2016目录…SpyGlass-L2016.06/perl/bin 下,用gedit编辑器打开,定位到以下位置

bios nps bios nps在哪设置_bash_40


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
              ;;

bios nps bios nps在哪设置_经验分享_41


输入sg测试,成功!

bios nps bios nps在哪设置_linux_42


至此,6个软件全部安装完毕!