小白也能开始VCS+Verdi的旅程

 

 前言   

        随着工艺发展,芯片集成度越来越高,内部能达到几千万甚至上亿的逻辑单元以及功能模块。无论是FPGA RD还是IC RD,在做复杂RTL开发的时候,都不可能保证没有经过Simulation功能正常运行,都需要进行仿真,可能FPGA RD接触的比较多的Simulation tool是Modelsim。

        鄙人经历过IC、FPGA研发、FPGA-FAE,使用过Modelsim、Active-HDL、Vcs+Verdi。总体感觉下来Vcs+Verdi的优点更加突出,主要有以下几点:

  • 仿真时间短。同样的RTL、Testbench,同样的仿真时间长度,VCS运行的仿真时间大大缩短,加快研发效率。
  • 添加波形方便。Modelsim要添加没有仿真的信号,需要重新Run,即使有脚本运行,也浪费时间。而VCS能遍历所有信号,仿真一次,一劳永逸,想看什么信号,直接添加,无需重新Run。
  • 查看RTL顶层图方便。虽然Modelsim也能查看RTL顶层,但无法根据顶层图添加想看的信号。而Verdi能根据RTL顶层图添加想看波形,增加效率。从此不再需要理解RTL代码,直接RTL框架图+波形理解整个模块、系统功能。
  • ASIC比起FPGA更为严谨,其IC RD也普遍用的VCS+Verdi。

    综上所述,可想而知,为什么我要折腾1个月的VCS和Verdi了,这个将会大大加快你的开发进度。在此分享给有需要的人,让大家能够节省时间,快速安装完成。


运行环境

主系统 Windows 10 专业版
Linux CentOS-6.10-x86_64-bin-DVD1.iso
虚拟机 VMware Workstation 15 Player

Vcs和Verdi链接:https://pan.baidu.com/s/1dV2MK2c3OOTriMd0w10SUA   

提取码:6p6f 

注:

  •        破解仅用于学习,如商业用途,请购买正版软件。
  •        链接的安装文件和PDF均为他人成果,感谢前人奉献的经验。
  •        在此感谢EETOP的两位同僚, yoof2000 的资料 和  superpig2b 提供的帮助。

               以及下面链接博主的文章作为参考。

                https://blog.csdn.net/qq_40829605/article/details/85345795


CentOS的准备工作

        假设各位都已经顺利安装虚拟机+CentOS 6.10 ,因为这个实在是很简单。

1. 更换 yum 源为国内源:

sudo curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo
sudo curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo
sudo yum makecache
sudo yum update

2. 安装必要软件,如下:

sudo yum install bash-completion
sudo yum install make patch binutils kernel-devel dos2unix
sudo yum install gcc gcc-c++ perl python tcsh redhat-lsb

    安装好以后,terminal 输入:

gcc -v
g++ -v         

    确保版本号为:4.4.7

3. 必要的设置,如下:

sudo mv /bin/sh /bin/sh2
sudo ln -s /bin/bash /bin/sh
sudo mkdir /usr/tmp
sudo touch /usr/tmp/.flexlm
sudo mkdir -p /usr/synopsys
sudo chown $USER:$USER /usr/synopsys

4. Centos默认是没有设置主机名的,需要设置下

a、修改hosts文本内容,fae-riven是我的主机名字,这个名字请自行修改。可以通过 echo $HOSTNAME 获取主机名。

sudo vi /etc/hosts 

127.0.0.1   fae-riven  localhost localhost.localdomain localhost4 localhost4.localdomain4
::1              fae-riven  localhost localhost.localdomain localhost6 localhost6.localdomain6

b、修改network内容

sudo vi /etc/sysconfig/network

NETWORKING=yes
HOSTNAME=fae-riven

c、更改主机名:

sudo hostname fae-riven

d、重启

sudo reboot

 


安装 VCS 和 Verdi


1. 将 SynopsysInstaller_v3.5.run 安装到目录 /usr/synopsys/installer_v3.5  ,命令如下:

chmod +x SynopsysInstaller_v3.5.run 

./SynopsysInstaller_v3.5.run -d /usr/synopsys/installer_v3.5

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

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

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

3. 安装 VCS,命令如下:

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

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

4. 安装 Verdi,命令如下:

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

 在图形对话框中选择 Verdi spf 所在的目录,选择 LINUX64 的版本安装,安装路径为:/usr/synopsys/verdi3_L-2016.06-SP2-12
安装过程都是类似的,只要会安装 SCL,其他的软件照样去安装就可以了。

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

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

生成许可证

1.在 Win10 上使用 scl_keygen.exe 生成许可证,如下:

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

2.打开 Synopsys.dat 文件,修改第1、2 行:

SERVER fae-riven 000C29929C28 27000
DAEMON snpslmd /usr/synopsys/scl_2016.12/linux64/bin/snpslmd

      第 1 行,fae-riven 为 Centos 主机名,000C29929C28 为 eth0 的 MAC 地址
      第 2 行,/usr/synopsys/scl_2016.12/ 为 scl 的安装路径
      这 2 处,请按照电脑的实际参数和安装路径修改


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

cp Synopsys.dat /usr/synopsys/
dos2unix /usr/synopsys/Synopsys.dat

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

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

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 的时候,参数配置
的不对。请检查参数,严格按照本教程的步骤生成。


配置环境

    我习惯使用 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

#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 LD_LIBRARY_PATH=${NOVAS_HOME}/share/PLI/VCS/LINUX64
export FSDB_HOME=$VERDI_HOME/share/PLI/VCS/LINUX64
export PATH=$PATH:$VERDI_HOME/bin:$VERDI_HOME/platform/LINUX64/bin

#scl
export SCL_HOME=$SYNOPSYS/scl_2016.12
export PATH=$PATH:$SCL_HOME/linux64/bin
export SNPSLMD_LICENSE_FILE=27000@$HOSTNAME
export VCS_ARCH_OVERRIDE=linux
export VCS_TARGET_ARCH=amd64

alias vcs64="vcs -full64"
alias verdi64="verdi -full64 &"
alias dve64="dve -full64 &"
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 了。


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

 lmli2

如果执行lmli2出现如下错误:

bash: /usr/synopsys/scl_2016.12/linux64/bin/lmgrd: /lib64/ld-lsb-x86-64.so.3: bad ELF interpreter: No such file or directory

则执行如下命令即可:

sudo yum -y install redhat-lsb

 


开放端口

请参考 FEFJay 分享的Centos6.5 防火墙开放端口


使用Makefile,让VCS、Verdi 做个简单的 Test Bench

关于Makefile,我前面的博客有提道,有兴趣的同学可以去翻来看看:

https://blog.csdn.net/u014164742/article/details/88781141

1.下载百度盘的例程

链接:https://pan.baidu.com/s/1h-MG69uybxcTyU86x7AyVg     提取码:xwbs 

2.复制到 ~ 目录下,如果你不知道是什么目录,可以通过以下方式获取路径

cd ~
pwd

/home/riven

3.修改 filelist.f 的路径改成你自己的当前路径,我的如下:

/home/riven/led/rtl/arsr.v
/home/riven/led/rtl/led.v
/home/riven/led/rtl/top.v
/home/riven/led/tb/tb_top.v

4.进入sim目录

cd ~/led/sim/

5.运用Makefile 执行VCS

make vcs

    如果出现以下提示 “ V C S   S i m u l a t i o n   R e p o r t” ,则运行成功

6.运用Makefile 执行 Verdi

make verdi

                                         

                                       恭喜你,大功告成!

 


有问题联系可以我,一起讨论。


 

你可能感兴趣的:(小白也能开始VCS+Verdi的旅程)