企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
[TOC] # 前言 ` `system verilog的仿真软件基本都要license,并且环境安装起来比较复杂。 ` `在这里搭建VCS+Verdi环境用于仿真system verilog。 # 安装vcs+verdi ## vcs2016安装文件结构 –synopsys_installer #此程序用于安装下面三个程序。所以你想安装VCS,Verdi,SCL的任意一个,都需要这个文件。 –vcs_2016 –verdi_2016 –scl_11.9    #此程序统一管理license等破解文件 –scl_keygen #这个是破解程序(放在windows下的)。此文件用于生成license文件 ## 软件包 [vcs2016](https://pan.baidu.com/s/1AHsMVCQ0So9K6opBmJlBWw) 提取码: hpta ## 解压相关压缩包 ` `synopsys_installer是rar格式压缩包,可以在Windows下先解压。之后把四个文件夹:synopsys_installer、vcs_2016、verdi_2016、scl_v11.9传到deepin linux上。 ## 安装synopsys installer ` `将对应的安装包下载解压之后,现在我们需要在Ubuntu里面安装synopsys installer,之后通过synopsys installer安装scl、verdi、vcs。 (1)解压后的synopsys_installer文件夹里有: –checksum_info.txt –installer_INSTALL_README.txt –SynopsysInstaller_v3.3.run (可执行文件) (2)在Deepin的shell环境下运行SynopsysInstaller_v3.3.run   command: ~~~bash ./SynopsysInstaller_v3.3.run ~~~ (3)第二步后得到在同一文件夹等到setup.sh文件。 ## 建立相关文件夹 ` `在第三步我们有了setup.sh文件,之后就是安装vcs, verdi, scl了 ` `但是首先,必须先给这三个建立属于自己的文件夹。 command: ~~~bash mkdir synopsys       #这个是建一个总文件夹cd synopsys         #切换到该文件夹 mkdir vcs_2016.06 #为vcs建立文件夹mkdir scl_11.9 #为scl建立文件夹mkdir verdi_2016.06-1 #为verdi建立文件夹 ~~~ ## 启动synopsys installer并安装 ` `在第三步synopsys installer文件夹下我们得到setup.sh文件,切换到该文件夹下执行该文件 command: ~~~bash cd synopsys_installer./setup.sh ~~~ ![](https://img.kancloud.cn/1b/e5/1be5dd87135349a86fc3dd0c4abce9fa_579x266.png) ` `点击Start,有几个选项,什么站点信息,邮箱,名字,随便填就好了。Next后,得到 ![](https://img.kancloud.cn/14/01/140199326c8043595cc9efe278371746_578x263.png) ` `这个Browse就是找到vcs, verdi, scl的位置。我们在第二步不是把vcs, verdi, scl三个软件的包传到Deepin上了吗。此时Browse就是找到这个我们需要安装的那个软件的软件包地址。 ` `在这里,vcs、verdi、scl安装步骤是一样的,以vcs为例。 ` `点击Browse后,选中第二步存放VCS的那个文件夹之后,点击Done–>Next。 ` `接下来选择与自己系统相对应的版本选择安装,途中需要选择安装路径,选择在第4步建好的相应的文件夹,并且等待成功安装即可。 ## window上或者使用wine获得license 以上5步便已经安装完毕了,但是,并没有license,所以不能打开软件。这个时候,就要用到scl_keygen这个文件夹了。 scl_keygen文件夹有: ![](https://img.kancloud.cn/4a/a3/4aa3fb0e89dcad1d6128f3339ac992c7_443x127.png) ` `使用deepin-wine打开scl_keygen.exe。 ![](https://img.kancloud.cn/73/51/73514201faef6180e63ff4df15b33521_545x372.png) ` `只需要修改以上涂黑的三项:HOST ID Deamon、HOST ID Feature、HOST_Name ` `其中HOST ID Deamon和HOST ID Feature填的是一样的,HOST_Name填自己主机的名字。 **那怎么查看具体填什么?** 1、HOST ID Deamon和HOST_Name查看方法: 如下图,我使用的是无线。若用电缆,大部分是eth0,我虚拟机里面是ens33。HOST ID Deamon就是ether后面红色覆盖的12个字符(冒号除外);比如ether 00:0a:21:51:12:4w。则HOST ID Deamon就是:000a2151124w ![](https://img.kancloud.cn/83/ae/83ae785e1a847b3f5fb42f759958f021_629x157.png) 2、HOST_Name可以直接在终端输入hostname获得 ~~~bash hostname #直接在Terminal的shell里面输入 ~~~ ` `填好之后,直接点击Generate。在同一个文件夹就会出现Synopsys.dat。这个就是我们要的文件了。 ## 修改Synopsys.dat文件并复制到对应文件夹 ` `之前说过scl是一个统一管理Synopsys软件license的软件。 1、修改Synopsys.dat: 将第二行 修改成DAEMON snpslmd  /home/路径/synopsys/scl_11.9/amd64/bin/snpslmd (这是你snpslmd对应的路径,修改成你自己的) 那怎么查看自己的snpslmd对应的路径? 在第五步安装SCL时,我们选择了一个目录去安装它。切换到SCL安装目录。然后用命令去查找snpslmd文件: ~~~bash find ./ -name snpslmd ~~~ 返回的就是snpslmd相对于现在目录的相对路径。我们再加上前面路径即可(直接pwd查看前面路径) 2、文件复制: 将Synopsys.dat文件复制到…/synopsys/vcs_2016.06/license/和…/synopsys/verdi_2016/license/两个文件夹中(这是你license对应的路径,修改成你自己的,如没有license文件夹,自己建即可)。 ## 设置环境变量 ``` #dve export PATH=$PATH:/home/chenqw/synopsys/vcs_2016.06/gui/dve/bin #改成自己vcs的安装路径 alias dve=“dve -full64” #VCS export PATH=$PATH:/home/chenqw/synopsys/vcs_2016.06/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,这两个需要自己独立安装 #VERDI export PATH=$PATH:/home/chenqw/synopsys/verdi_2016.06-1/bin #改Verdi安装路径 export VCS_HOME=/home/chenqw/synopsys/vcs_2016.06 export VERDI_HOME=/home/chenqw/synopsys/verdi_2016.06-1 export NOVAS_HOME=/home/chenqw/synopsys/verdi_2016.06-1 #LICENCE export LM_LICENSE_FILE=27000@chenqw-pc #这个chenqw-pc改成自己的host name alias lmg_vcs=“lmgrd -c /home/chenqw/synopsys/vcs_2016.06/license/Synopsys.dat” #注意改路径 #scl export PATH=$PATH:/home/chenqw/synopsys/scl_11.9/linux/bin #改SCL安装路径 export VCS_ARCH_OVERRIDE=linux ``` 以上的配置仅作参考,需要根据你的安装路径进行配置。 之后使配置文件立即生效即可: ~~~bash source .bashrc ~~~ ## 激活 激活license是最关键的步骤。在之前可能需要安装: ~~~bash sudo apt-get install lsb-core   #lsb-core 上述不可以时尝试使用 sudo apt-get install lsb-compat ~~~ 因为激活的端口使用的是27000。我实现开放了此端口。开放端口的方法可自行百度。 接下来直接在终端输入 ~~~bash lmg_vcs ~~~ 等待激活即可。 1、若途中有关TCP port的报错,查询27000端口进程,直接kill 掉等待27000端口完全释放再重新lmg\_vcs即可。 command: sudo netstat -ap | grep 27000 kill -9 \*\*\*\*\*\* 2、Failed to open the TCP port number in the license问题: 如果遇到这个问题,可以在Terminal输入:lmdown 然后会问y/n,输入y。然后等待一会儿就可以了。注意要等待一会儿 参考:[http://bbs.eetop.cn/thread-307403-3-1.html](http://bbs.eetop.cn/thread-307403-3-1.html) 3、lmgrd can't make directory /usr/tmp/.flexlm when running server on Ubuntu问题: 这个问题,可以参考这个链接[http://www.myir-tech.com/faq\_list.asp?id=521](http://www.myir-tech.com/faq_list.asp?id=521) 就是: ``` sudo -i #切换到root权限 mkdir /usr/tmp/ #创建目录(Ubuntu下没有这个目录) chmod 777 /usr/tmp/ #修改权限 ``` lmdown一遍,等待一会儿,再重新lmg_vcs竟然好了。 ![](https://img.kancloud.cn/cd/98/cd985f971a3a4e9ca799b20234b69f72_562x291.png) 如果你看到你的输出最下面几行和这个文件可以对应,就成功了。Enter一下就OK。 ## 运行dve, vcs ,verdi ### 1、启动dve ~~~bash dve #启动vcs图形界面 ~~~ ### 2、启动verdi: ~~~bash verdi #启动verdi ~~~ 1、在启动verdi时,可能会出现一个语法错误: verdi_2016/bin/verdi: 433: /home/book/synopsysoftware/verdi_2016/bin/verdi: Syntax error: "(" unexpected 解决: 进入verdi安装目录下的/bin目录,里面有一个verdi的脚本,把这个脚本第433行的那个function去掉。 2、可能有些32位的共享包没有安装的情况,比如:libjpeg.so.62: cannot open shared object file: No such file or directory。 ~~~ sudo apt install libjpeg62 ~~~ 3、或者是libpng12.so.0: cannot open shared object file: No such file or directory ``` sudo -i #先进入root权限 wget -q -O /tmp/libpng12.deb http://mirrors.kernel.org/ubuntu/pool/main/libp/libpng/libpng12-0_1.2.54-1ubuntu1_amd64.deb > && dpkg -i /tmp/libpng12.deb \ > && rm /tmp/libpng12.deb #用wget得到相应的包 ``` 一切问题解决后,再返回到用户状态,执行: ![](https://img.kancloud.cn/e7/9e/e79edb074fe2516226262804c29a7c16_577x318.png) ## 使用 注意,在每重启一遍机器,想要运行dve或verdi之前,都要先运行 ~~~bash lmg_vcs ~~~ 这个命令成功后,方可运行vcs和verdi. # 上述方法可以在deepin v20中使用 ![](https://img.kancloud.cn/bd/84/bd84cc6fd8a0a9682b2d191e805e92c9_1684x617.png) 已经验证过,但是需要注意的是有一些小问题,做以下记录: **问题1:** ![](https://img.kancloud.cn/a5/69/a5697ef012554c692cbe2c6178f645ae_769x445.png) **问题2:安装lsb-core失败,软件仓库中没有** 换用deepin 15.110的软件源后再安装。 **问题3:fish shell下的配置** 在fish shell下配置环境变量,需要更改文件 `~/.config/fish/config.fish`,我的更改如下: ``` ####------ 配置 vcs ----------- #dve set -x PATH $PATH /home/yhp/data/exsoft/vcs/vcs-mx_vL-2016.06/gui/dve/bin #改成自己vcs的安装路径 alias dve="dve -full64" #VCS set -x PATH $PATH /home/yhp/data/exsoft/vcs/vcs-mx_vL-2016.06/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,这两个需要自己独立安装 #VERDI set -x PATH $PATH /home/yhp/data/exsoft/vcs/verdi_vL-2016.06-1/bin #改Verdi安装路径 set -x VCS_HOME /home/yhp/data/exsoft/vcs/vcs-mx_vL-2016.06 set -x VERDI_HOME /home/yhp/data/exsoft/vcs/verdi_vL-2016.06-1 set -x NOVAS_HOME /home/yhp/data/exsoft/vcs/verdi_vL-2016.06-1 #LICENCE set -x LM_LICENSE_FILE 27000@yhp-PC #这个chenqw-pc改成自己的host name alias lmg_vcs="lmgrd -c /home/yhp/data/exsoft/vcs/vcs-mx_vL-2016.06/license/Synopsys.dat" #注意改路径 #scl set -x PATH $PATH /home/yhp/data/exsoft/vcs/scl_v11.9/amd64/bin #改SCL安装路径 set -x VCS_ARCH_OVERRIDE linux ###---------------------------- ```