Ubuntu 18.04/16.04 安装破解 VCS 2016/2018 和 Verdi 2016/2018,以及和vivado联合仿真

本文以ubuntu 18.04为例,但16.04与18.04差异不大,操作步骤类似。
本文系转载,原文出处不详。

目录:

1. 简介

Ubuntu 18.04 代号为 Bionic Beaver,Canonical 将会支持此款操作系统到 2023 年 5 月。Ubuntu 18.04 LTS 采
用 4.15 版本的 Linux 内核,支持一些全新的特性。而 Ubuntu 16.04 Xenial Xerus 将于 2021 年 4 月停止维护,
Ubuntu 14.04 Trusty Tahr 将于 2019 年 4 月 30 日停止维护。因此,如果是新安装的服务器,最好还是选用
Ubuntu 18.04,可以享有长达 5 年的维护时间。
Synopsys 的 和 Verdi 默认都是基于 Red Hat 编译和配置的,而且很多的动态库都是 采用 gcc 4.4.7 编译的。
而 Ubuntu 16.04、18.04 的 APT 软件源都不再维护 gcc 4.4.7版本了。主要是由于这个版本的 gcc 实在是太老了。
目前还支持该版本 gcc 的有 Ubuntu 12.04 和 Ubuntu14.04 。因此,这两个版本也是适合安装破解 VCS 和 Verdi
的。但由于这两个版本的官方维护支持即将到期,我们还是以最新版 Ubuntu 18.04 为例子做讲解吧。

2. 需求

我是在 VMware 下安装测试的,用到的软件列表如下:

  • VMware® Workstation 12 Pro,12.5.7 build-5813279
  • ubuntu-18.04.1-desktop-amd64.iso
  • scl_v2016.12_common.spf
  • scl_v2016.12_linux64.spf
  • SynopsysInstaller_v3.5.run
  • uvm-1.1d.tar.gz
  • VCS_vL-2016-SP2-12
  • verdi_vL-2016.06-SP2-12

经测试 VCS 2018/2019, verdi 2018/2019安装情况基本类似,具体差异见下文详述

Win7 下的许可证破解软件是:

  • scl_keygen.rar

3. 系统配置

使用 VMware 安装 Ubuntu 18.04,安装过程略过,重点讲下必须要做的配置。

3.0 替换dash为bash

sudo dpkg-reconfigure dash
在对话框中选”NO”
dash.JPG

3.1解决网卡名称非 eth0 的问题,方法如下:

sudo vim /etc/default/grub
找到 GRUB_CMDLINE_LINUX=””
改为 GRUB_CMDLINE_LINUX=”net.ifnames=0 biosdevname=0”
然后 sudo update-grub
最后 sudo reboot
重启后……
ifconfig -a
查看网口名称是否变为 eth0
如果没有 ifconfig 命令,请安装 net-tools 软件包

3.2 解决 APT 仓库没有 GCC 4.4.7 的问题,方法如下:

sudo vim /etc/apt/sources.list

文件追加以下内容:

deb http://mirrors.ustc.edu.cn/ubuntu/ trusty main restricted universe multiverse
deb http://mirrors.ustc.edu.cn/ubuntu/ trusty-security main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ trusty-updates main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ trusty-backports main restricted universe multiverse

最后:
sudo apt update
更新源

3.3安装必要软件,如下:

sudo apt install software-properties-common apt-transport-https ca-certificates
sudo apt install csh vim python2.7 perl lsb-core make dos2unix libjpeg62 libpng12-0
sudo apt install gcc-4.4 g++-4.4 gcc-multilib gcc-4.4-multilib
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.4 100
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.4 100

输入:

gcc -v
g++ -v

确保版本号为:4.4.7

3.4必要的设置,如下:

sudo mkdir /usr/tmp
sudo touch /usr/tmp/.flexlm
sudo mkdir -p /usr/synopsys
sudo chown $USER:$USER /usr/synopsys

经过上面的准备步骤,就可以正式进入安装 VCS 和 Verdi 的主题了。

4. VCS 和 Verdi 安装

4.1先需要安装 SynopsysInstaller_v3.5.run,如下:

chmod +x SynopsysInstaller_v3.5.run
./SynopsysInstaller_v3.5.run -d /usr/synopsys/installer_v3.5

经过以上两步就把 SynopsysInstaller 安装到目录 /usr/synopsys/installer_v3.5了。

4.2安装 SCL,这里用的是 SCL 2016.12 版本,老的版本我没试过,不知道是否可以。命令如下:

cd /usr/synopsys/installer_v3.5
./setup.sh

在图形对话框中选择 SCL spf 所在的目录,选择 LINUX64 的版本安装,
安装路径为:/usr/synopsys/scl_2016.12

4.3安装 VCS,命令如下:

cd /usr/synopsys/installer_v3.5
./setup.sh
在图形对话框中选择 VCS spf 所在的目录,选择 LINUX64 的版本安装,
安装路径为:/usr/synopsys/vcs_L-2016.06-SP2-12

4.4安装 Verdi,命令如下:

cd /usr/synopsys/installer_v3.5
./setup.sh

在图形对话框中选择 Verdi spf 所在的目录,选择 LINUX64 的版本安装,
安装路径为:/usr/synopsys/verdi3_L-2016.06-SP2-12

安装过程都是类似的,只要会安装 SCL,其他的软件照样去安装就可以了。

4.5安装 uvm-1.1d,命令如下:

tar xf uvm-1.1d.tar.gz -C /usr/synopsys/

5. 生成许可证

Win7 上使用 scl_keygen.exe 生成许可证,如下:

DeepinScrot-2032.png

  • 步骤1、2中填写 Ubuntu 的 eth0 MAC 地址,通过 ifconfig -a 命令获取,本例是:000C29929C28
  • 步骤 3 中填写 Ubuntu 的 主机名,通过 echo $HOSTNAME 命令获取,本例是:asic-dev
  • 步骤 4 生成许可,会在 scl_keygen.exe 所在的目录下产生 Synopsys.dat 文件

打开 Synopsys.dat 文件,修改第1、2 行,verdi VCS 2018 版本不需要下面的步骤

SERVER asic-dev 000C29929C28 27000
DAEMON snpslmd /usr/synopsys/scl_2016.12/linux64/bin/snpslmd
第 1 行,asic-dev 为 Ubuntu 主机名,000C29929C28 为 eth0 的 MAC 地址
第 2 行,/usr/synopsys/scl_2016.12/ 为 scl 的安装路径
这 2 处,请按照电脑的实际参数和安装路径修改

修改好以后,把 Synopsys.dat 文件上传到 Ubuntu 主机,操作如下:

cp Synopsys.dat /usr/synopsys/
dos2unix /usr/synopsys/Synopsys.dat
/usr/synopsys/scl_2016.12/linux64/bin/sssverify /usr/synopsys/Synopsys.dat

执行 sssverify 后,如果得到以下输出,则许可证有效:

Integrity check report for license file "/usr/synopsys/Synopsys.dat".
Report generated on 09-Nov-2018 (SCL_2016.12)
---------------------------------------------------------
Checking the integrity of the license file...
Valid SSS feature found.
Licensed to student@eetop
Siteid: 26356, Server Hostid: 000C29929C28, Issued on: 1/8/2014
License file integrity check PASSED!
---------------------------------------------------------
You may now USE this license file to start your license server.
Please don't edit or manipulate the contents of this license file.

如果没有 License file integrity check PASSED! 则许可证无效,说明你使用 scl_keygen.exe 的时候,参数配置
的不对。请检查参数,严格按照本教程的步骤生成。

6. 配置环境

我习惯使用 bash,所以配置的是 bash 的环境变量, vim ~/.bashrc ,追加如下:

#synopsys
export SYNOPSYS=/usr/synopsys
#uvm
export UVM_HOME=$SYNOPSYS/uvm-1.1d
#vcs
export VCS_HOME=$SYNOPSYS/vcs_L-2016.06-SP2-12
#export PATH=$PATH:$VCS_HOME/bin
#dve
export DVE_HOME=$VCS_HOME/gui/dve
export PATH=$PATH:$DVE_HOME/bin:$VCS_HOME/bin
#verdi
export VERDI_HOME=$SYNOPSYS/verdi3_L_2016.06_SP2_12
export NOVAS_HOME=$SYNOPSYS/verdi3_L_2016.06_SP2_12
export FSDB_HOME=$VERDI_HOME/share/PLI/VCS/LINUX64
export PATH=$PATH:$VERDI_HOME/bin:$VERDI_HOME/platform/LINUX64/bin
#export LD_LIBRARY_PATH=$VERDI_HOME/bin:$FSDB_HOME:$PATH
#scl
export SCL_HOME=$SYNOPSYS/scl_2016.12
export PATH=$PATH:$SCL_HOME/linux64/bin
# asic-dev 为主机名,根据实际情况自行修改
export SNPSLMD_LICENSE_FILE=27000@$HOSTNAME
export LM_LICENSE_FILE=27000@$HOSTNAME
export VCS_ARCH_OVERRIDE=linux
export VCS_TARGET_ARCH=amd64
#export DISPLAY=unix:0
alias vcs64="vcs -full64"
alias verdi64="verdi -full64 &"
alias dve64="dve -full64 &"
#alias lmli2="lmgrd -c $SYNOPSYS/Synopsys.dat -l $SYNOPSYS/lmgrd.log"
alias lmli2="lmgrd -c $SYNOPSYS/Synopsys.dat"

修改保存以后,记得执行 source ~/.bashrc 让环境变量生效。

然后输入: lmli2 ,输出如下:

11/09/2018 14:51:43 (snpslmd) ---------------------------------------------------------
---------
11/09/2018 14:51:43 (snpslmd) Checking the integrity of the license file...
11/09/2018 14:51:43 (snpslmd) Valid SSS feature found.
11/09/2018 14:51:43 (snpslmd) The feature is needed to enable the other keys in your
license file.
11/09/2018 14:51:43 (snpslmd) Licensed to student@eetop
11/09/2018 14:51:43 (snpslmd) Siteid: 26356, Server Hostid: 000C29929C28, Issued on:
1/8/2014
11/09/2018 14:51:43 (snpslmd) ---------------------------------------------------------
---------

如果输出 “(snpslmd) Valid SSS feature found.” ,这样就表明许可证服务器工作正常了,可以正常使用 VCS 和
Verdi 了。

重要提示:

每次开机后,首先执行 lmli2 命令,启动许可证服务器。
如果忘记启动许可证服务器,VCS 和 Verdi 拿不到许可证,会导致无法使用。

7. 测试 VCS 和 Verdi

通过上面的步骤,VCS、Verdi、SCL都安装好了、也都破解好了。现在我们验证一下 VCS 和 Verdi 是否能正常工作
吧。本例以 uvm-1.1d 中的例子做个测试,例子路径为:
/usr/synopsys/uvm-1.1d/examples/simple/hello_world
另外,还需要简单修改一下,以便支持 fsdb 格式:

7.1 首先编辑,vi hello_world.sv,修改为:

initial begin 后面添加 2 行:
$fsdbDumpfile(“top.fsdb”);
$fsdbDumpvars();

7.2 再编辑,vi Makefile.vcs,修改为:

comp: 后面修改为:
$(VCS) -fsdb -debug_all \
-P $(FSDB_HOME)/novas.tab $(FSDB_HOME)/pli.a \
+incdir+. \
hello_world.sv
添加以下内容:
dbg:
verdi -f file.f -ssf top.fsdb &

Makefile.vcs 里面的空格排版都是 TAB 键,否则会出错,修改的时候请注意一下这个细节。

7.3 创建 file.f 文件, vi file.f 内容为:

hello_world.sv
top.sv
packet.sv
producer.sv
consumer.sv

7.4 经过以上修改,可以使用 vcs 和 verdi 测试了,命令如下:

make -f Makefile.vcs clean
make -f Makefile.vcs
make -f Makefile.vcs dbg

最终 Verdi 的效果如下:

DeepinScrot-2058.png

安装破解教程到这里就结束了。

8 vivado调用VCS仿真

8.1 VCS编译XILINX vivado 仿真库

很坑,不知原因,需要从命令行终端启动vivado才能找得到VCS工具,猜测是由于环境变量的配置。 在vivado认出VCS来之后就跟windows上面编译XILINX VIVADO仿真库没有任何区别了。

至于调用VCS和verdi之后的流程,后面有时间再作记录。有一点,就是首先得保证你能独立使用VCS仿真成功。

编辑 重设标签(回车键确认) 标为违禁 关闭 合并 删除
匿名用户

匿名