简述

这篇文章讲述了如何在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. 环境

2. 文件

安装前踩坑

  • 虚拟机软件
    之前安装的是VMware Workstation Pro15,开关系统时容易黑屏,感觉可能是兼容问题,于是换了VMware Workstation Pro14,瞬间流畅起来了;

  • 操作系统的选择

    • Redhat
      首先在Redhat7上安装,因为是企业版本,yum得重新安装,网易镜像网站上需要安装的依赖库太对,遂pass;选择Redhat6,跟着既定的教程走(后面有说明),可以成功的走通6个软件,结果Verdi2016报错,查了很多教程,还是解决不了(可能实力不够吧),遂pass;
      错误如下图显示:
    1. 普通用户

      cjw用户

    2. root用户

      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(一种计算机中的linuxunix命令,用来调用 C shell)的原因,执行sudo apt install csh即可

在这里插入图片描述
再执行./setup.sh,就出现了吗如下的安装界面

在这里插入图片描述
选择好对应的安装包和安装位置即可,(注意:安装包首字母大写,安装位置小写)
一路Next,该选择的都选上,最后点击finishdismiss即可

安装软件的顺序:
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后的名字替换成Ubuntuhostname,直接在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

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

  • 改文件
    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.shperl 两个文件来解决问题

  • 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个软件全部安装完毕!

8. 致谢

以下是在安装中给了我很大帮助的教程网址:

https://blog.csdn.net/huayangshiboqi/article/details/89525723
https://blog.csdn.net/Ztrans/article/details/88757695
https://blog.csdn.net/a_weiming/article/details/90741174
https://blog.csdn.net/Chi_Hong/article/details/86298048
https://my.oschina.net/clw/blog/72024
https://blog.csdn.net/cloume/article/details/42425085
https://blog.csdn.net/qq_28752595/article/details/81737851
http://bbs.eetop.cn/thread-604891-11-1.html

9. 文末分享

一切都是兴趣所向…
这次推荐的是校长的《雨夜的浪漫》
这首歌是香港当代著名歌星谭咏麟于1985年发表于专辑《爱情陷阱》中的一首经典名曲,此歌是该专辑的最后一首歌。
原曲是布施明 《fantasy》
不过呢,这次推荐的是学友版的(两个版本都各有千秋,都很棒)
在这里插入图片描述
雨浓夜深方能安躺,丝丝浪漫绕心头,才成眠,又小醒,如此反复,朦朦胧似梦,fantasy,发梢有余香!
                     ——摘自QQ音乐

大概上面那段话就能概括我当时听歌的感受吧,极力推荐!

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐