Linux系统中VCS、Dve & Verdi的使用

1. 资料来源:
1)http://bbs.eetop.cn/thread-633801-1-1.html
2)https://blog.csdn.net/Chi_Hong/article/details/86298048
3)https://blog.csdn.net/qq_40829605/article/details/85345795

2. Linux系统中VCS、Dve & Verdi的安装与破解
具体的安装包在资料来源3)中能找到。按照资料来源1)、2)、3)进行安装和破解。本文主要总结的不是安装与破解的过程,主要总结的是在安装与破解过程中遇到的问题。
安装的大概步骤:下载安装包-解压-安装-获取license-修改Synopsys.dat文件-设置环境变量-安装lsb-core-激活。

3. VCS、Dve & Verdi的安装与破解过程中的问题
1)在激活期间,如果激活失败,多半是27000端口被占用了,所以要使用kill指令干掉占用的程序。

2)每次使用VCS、Dve & Verdi,都需要开启激活。

3)若破解后运行VCS报出"/bin/sh illegal option -h"的错误,则需要检查是否安装了sh。若没有安装sh,则需要sudo apt-get install sh。

4)若在VCS运行期间报以下错误:

/XXX/synopsys/vcs_2016.06/linux/lib/libvcsnew.so: undefined reference to `snpsGroupGetActive'
/XXX/synopsys/vcs_2016.06/linux/lib/libvcsnew.so: undefined reference to `miHeapProf_init'
/XXX/synopsys/vcs_2016.06/linux/lib/libvcsucli.so: undefined reference to `printIclBeginMarker'
/XXX/synopsys/vcs_2016.06/linux/lib/libvcsnew.so: undefined reference to `snpsCallocFunc'
/XXX/synopsys/vcs_2016.06/linux/lib/libvcsucli.so: undefined reference to `executeTclProc'
/XXX/synopsys/vcs_2016.06/linux/lib/libvcsnew.so: undefined reference to `snpsCheckMallocFromGroupFunc'
/XXX/synopsys/vcs_2016.06/linux/lib/libvcsucli.so: undefined reference to `waitForUserInput'
/XXX/synopsys/vcs_2016.06/linux/lib/libvcsucli.so: undefined reference to `storeSimLogFileHandle'
/XXX/synopsys/vcs_2016.06/linux/lib/libvcsnew.so: undefined reference to `snpsSetOutOfMemoryRoutine'
/XXX/synopsys/vcs_2016.06/linux/lib/libvcsucli.so: undefined reference to `registerPreRestartFunc'
/XXX/synopsys/vcs_2016.06/linux/lib/libvcsucli.so: undefined reference to `initNativeUcli'
/XXX/synopsys/vcs_2016.06/linux/lib/libvcsnew.so: undefined reference to `snpsCheckReallocFunc'
/XXX/synopsys/vcs_2016.06/linux/lib/libvcsnew.so: undefined reference to `snpsNamedAllocateGroup'
/XXX/synopsys/vcs_2016.06/linux/lib/libvcsucli.so: undefined reference to `printIclEndMarker'
/XXX/synopsys/vcs_2016.06/linux/lib/libvcsnew.so: undefined reference to `snpsCallocFromGroup'
/XXX/synopsys/vcs_2016.06/linux/lib/libvcsnew.so: undefined reference to `snpsSetSmallCaching'
/XXX/synopsys/vcs_2016.06/linux/lib/libvcsnew.so: undefined reference to `snps__StrdupFunc'
/XXX/synopsys/vcs_2016.06/linux/lib/libvcsnew.so: undefined reference to `snpsHighMemory'
/XXX/synopsys/vcs_2016.06/linux/lib/libvcsnew.so: undefined reference to `snpsStrdupFunc'
/XXX/synopsys/vcs_2016.06/linux/lib/libvcsnew.so: undefined reference to `snpsCheckMallocFunc'
/XXX/synopsys/vcs_2016.06/linux/lib/libvcsnew.so: undefined reference to `snpsGetMemBytes'
/XXX/synopsys/vcs_2016.06/linux/lib/libvcsnew.so: undefined reference to `snpsMallocFunc'
/XXX/synopsys/vcs_2016.06/linux/lib/libvcsnew.so: undefined reference to `snpsReallocFromGroup'
/XXX/synopsys/vcs_2016.06/linux/lib/libvcsnew.so: undefined reference to `snpsCheckCallocFromGroupFunc'
/XXX/synopsys/vcs_2016.06/linux/lib/libvcsucli.so: undefined reference to `execMhpiTclCommand'
/XXX/synopsys/vcs_2016.06/linux/lib/libvcsnew.so: undefined reference to `snpsMallocFromGroup'
/XXX/synopsys/vcs_2016.06/linux/lib/libvcsnew.so: undefined reference to `snpsSetHook'
/XXX/synopsys/vcs_2016.06/linux/lib/libvcsnew.so: undefined reference to `snpsFreeFunc'
/XXX/synopsys/vcs_2016.06/linux/lib/libvcsnew.so: undefined reference to `snpsMemSetLogFileHandle'
/XXX/synopsys/vcs_2016.06/linux/lib/libvcsnew.so: undefined reference to `snpsFreeGroup'
/XXX/synopsys/vcs_2016.06/linux/lib/libvcsnew.so: undefined reference to `snpsOutOfMem'
/XXX/synopsys/vcs_2016.06/linux/lib/libvcsnew.so: undefined reference to `snpsNamedPushGroup'
/XXX/synopsys/vcs_2016.06/linux/lib/libvcsnew.so: undefined reference to `miHeapOn'
/XXX/synopsys/vcs_2016.06/linux/lib/libvcsucli.so: undefined reference to `setIclCmd_ResVars'
/XXX/synopsys/vcs_2016.06/linux/lib/libvcsucli.so: undefined reference to `setEnvPair'
/XXX/synopsys/vcs_2016.06/linux/lib/libvcsnew.so: undefined reference to `snpsLowMemory'
/XXX/synopsys/vcs_2016.06/linux/lib/libvcsnew.so: undefined reference to `snpsCheckFreeFunc'
/XXX/synopsys/vcs_2016.06/linux/lib/libvcsnew.so: undefined reference to `registerOutOfMemHandle'
/XXX/synopsys/vcs_2016.06/linux/lib/libvcsucli.so: undefined reference to `vcsRunUcliErrorScript'
/XXX/synopsys/vcs_2016.06/linux/lib/libvcsucli.so: undefined reference to `shutDownNativeUcli'
/XXX/synopsys/vcs_2016.06/linux/lib/libvcsnew.so: undefined reference to `snpsMemManagerIsActive'
/XXX/synopsys/vcs_2016.06/linux/lib/libvcsnew.so: undefined reference to `snpsDoStackUnwind'
/XXX/synopsys/vcs_2016.06/linux/lib/libvcsucli.so: undefined reference to `breakNativeTclLoop'
/XXX/synopsys/vcs_2016.06/linux/lib/libvcsnew.so: undefined reference to `snpsCheckCallocFunc'
/XXX/synopsys/vcs_2016.06/linux/lib/libvcsnew.so: undefined reference to `snpsNamedPopGroup'
/XXX/synopsys/vcs_2016.06/linux/lib/libvcsucli.so: undefined reference to `storeMiscTfCb'
/XXX/synopsys/vcs_2016.06/linux/lib/libvcsnew.so: undefined reference to `snpsCurrentGroup'
/XXX/synopsys/vcs_2016.06/linux/lib/libvcsucli.so: undefined reference to `isUcliEngineStarted'
/XXX/synopsys/vcs_2016.06/linux/lib/libvcsnew.so: undefined reference to `snpsPrintf'
/XXX/synopsys/vcs_2016.06/linux/lib/libvcsnew.so: undefined reference to `snpsCheckStrdupFunc'
/XXX/synopsys/vcs_2016.06/linux/lib/libvcsucli.so: undefined reference to `execMhpiTclCommandNoPrint'
/XXX/synopsys/vcs_2016.06/linux/lib/libvcsnew.so: undefined reference to `snpsGetHook'
/XXX/synopsys/vcs_2016.06/linux/lib/libvcsnew.so: undefined reference to `snpsReallocFunc'
/XXX/synopsys/vcs_2016.06/linux/lib/libvcsnew.so: undefined reference to `snpsGroupSize'

其中/XXX/是我个人目录,所以不用理会。出现这个问题的原因是gcc版本过高,VCS一般是运行在gcc4.4上。解决办法:安装多个gcc版本。

4. gcc版本降级
如果能使用sudo apt-get install gcc - 4.4 g++ - 4.4的可以忽略下面的内容,直接使用sudo apt-get install gcc - 4.4 g++ - 4.4进行安装。
我的ubuntu系统是16.04的,已经没有gcc - 4.4 g++ - 4.4的安装源,最低的是gcc - 4.8 g++ - 4.8,所以我无法使用上面的方式,因此需要采用以下的方式:

1)登陆http://old-releases.ubuntu.com/ubuntu/pool/universe/g/,下载
1.1) g++ - 4.4_4.4.7-8ubuntu1_i386.deb
1.2) cpp-4.4_4.4.7-8ubuntu1_i386.deb
1.3) gcc-4.4_4.4.7-8ubuntu1_i386.deb
1.4) gcc-4.4-base_4.4.7-8ubuntu1_i386.deb
1.5) libstdc++6-4.4-dev_4.4.7-8ubuntu1_i386.deb
1.6) libstdc++6-4.4-dbg_4.4.7-8ubuntu1_i386.deb

2)运行sudo dpkg -i *.deb。

3)由于某些原因,我不想切换gcc的版本,所以我再VCS运行的脚本中加入了:

vcs -cpp g++-4.4 -cc gcc-4.4

指定gcc-4.4 g++ - 4.4作为VCS运行的gcc。需要切换的话可以参考以下文章:
https://blog.csdn.net/researchstep/article/details/50325945

5. 附加VCS仿真的选项说明
VCS部分仿真选项的说明:
https://blog.csdn.net/qq_41394155/article/details/81486760

  • 2
    点赞
  • 44
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
### 回答1: 我可以为您提供一些关于Linux系统VCSDve 、 Verdi的使用教程的参考资料: 1.VCS:https://help.ubuntu.com/community/VersionControl 2.Dve:http://www.dve-software.com/support/documentation/ 3.Verdi:https://www.verdi-software.com/documentation/ ### 回答2: VCSDve和Verdi都是在Linux系统上常用的工具。 VCS是一款用于模拟电路设计验证的工具。使用VCS,我们可以编译和模拟设计文件,并对其进行功能验证。首先,我们需要在Linux系统上安装VCS。然后,通过命令行界面进入到设计文件所在的目录,并运行VCS编译命令。编译成功后,可以使用VCS的命令行参数来指定需要验证的模块,并执行模拟过程。通过观察波形图和日志输出,可以判断设计是否达到了预期的功能。 DveVCS的一部分,它提供了一个图形用户界面,用于方便地显示和分析VCS产生的波形图。使用Dve,我们可以加载VCS生成的波形文件,并进行波形编辑、信号分析和时序验证等操作。在Linux系统打开Dve,我们需要首先在命令行界面输入dve命令,然后在Dve界面打开波形文件。通过Dve的操作,我们可以更直观地了解设计的信号波形,并进行相关的验证工作。 Verdi是一款用于设计调试和分析的工具,也是VCS的一部分。在使用Verdi之前,我们需要确保已经安装了VCS。Verdi提供了一个图形用户界面,可以用于快速定位设计的错误和优化设计性能。在Linux系统,可以通过命令行进入到设计文件所在的目录,然后输入verdi命令来打开Verdi界面。在Verdi,我们可以加载VCS产生的仿真数据,通过图形界面分析设计的时序、查看设计层次和进行时序约束的调整等。 总的来说,使用VCS需要编译和模拟设计文件,Dve可以帮助我们更直观地查看和分析波形,而Verdi则提供了设计调试和性能优化的功能。通过合理使用这三个工具,我们可以在Linux系统下进行高效而准确的电路设计验证工作。 ### 回答3: VCS是一种用于验证和确认电子设计的软件工具,被广泛用于硬件描述语言(HDL)设计、仿真和调试。以下是在Linux系统使用VCS的简要教程: 1. 安装VCS:首先,下载VCS安装包,并将其解压到指定目录。然后,通过命令行运行安装脚本,按照提示完成安装过程。 2. 编写和编译设计文件:使用任何一种硬件描述语言(如Verilog或VHDL)编写设计文件。然后,使用VCS提供的选项和命令编译设计文件,生成仿真可执行文件。 3. 运行仿真:使用命令行启动仿真,并提供所需的仿真参数,如时钟周期、仿真时间等。VCS将加载仿真可执行文件,并启动仿真进程。 4. 调试设计:VCS提供了一些强大的调试功能,如波形查看器、信号追踪、断点设置等。通过运行VCS提供的调试工具,可以在仿真过程定位和解决设计的问题。 5. 生成仿真报告:仿真完成后,VCS将生成仿真报告,其包含仿真过程的详细信息,如时钟周期、信号值变化等。可以使用报告来分析和评估设计的性能和正确性。 另外,Dve(Debug Visualizer for Engineers)和Verdi是VCS的附加工具,用于图形化调试和可视化分析设计。以下是它们的使用教程: 1. 安装Dve和Verdi:与安装VCS类似,先下载安装包并解压,然后按照指导进行安装。 2. 启动Dve和Verdi:可以通过命令行或图形界面启动Dve和Verdi工具。在启动后,选择要调试的仿真文件,并加载仿真波形。 3. 查看仿真波形:Dve和Verdi提供了直观的波形查看器,可以展示设计信号的时序波形和值的变化。可以放大、缩小、平移波形,以便更好地分析设计的问题。 4. 设置断点和触发条件:在Dve和Verdi,可以设置断点和触发条件,以便在仿真过程暂停,并检查设计的信号和寄存器的值。 总结:使用VCSDve和Verdi能够在Linux系统进行硬件设计的仿真、调试和分析。这些工具可以帮助设计工程师更轻松地验证设计的性能和正确性,并加快设计的开发和优化过程。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值