IC开发——Ubuntu安装VCS2018

1. 简介

VCS是一种常用的Verilog仿真和综合工具,由Synopsys公司开发。它提供了一个完整的设计验证环境,用于验证硬件设计的正确性和性能。以下是VCS工具的一些主要特点和功能:

  1. 仿真功能:VCS支持基于事件驱动的数字电路级仿真,能够准确地模拟设计中的信号传输和电路行为。它可以处理大型设计,并提供高效的仿真方式和快速的仿真速度。
  2. 综合功能:VCS还提供了综合功能,允许将Verilog描述的设计转换成门级电路,在后端流程中进行布局和布线以及时序优化。
  3. 调试功能:VCS提供了强大的调试工具,包括信号波形查看器、断点设置、单步执行等功能,有助于定位设计中的错误并检查设计的正确性。
  4. 性能分析:VCS可以生成详细的仿真报告和性能分析结果,帮助设计人员优化设计,改进时序约束以满足各种性能目标。
  5. 支持多种设计语言:VCS支持Verilog和SystemVerilog等多种硬件描述语言,方便用户采用不同的设计风格和编码方式。
  6. 高级验证功能:VCS提供了诸多高级验证功能,例如,事务级建模、函数覆盖率分析、断言语句(Assertion)的支持等,帮助设计人员更全面地验证和测试设计。
  7. 集成与兼容性:VCS与其他EDA工具集成紧密,可以与逻辑综合工具、时序约束工具以及物理布局工具等进行无缝连接,方便整个设计流程的集成和协同工作。

2. 安装

此处安装VCS2018套装,包括vcs_vO-2018.09-SP2、scl_v2018.06、vcs_mx_vO-2018.09-SP2、verdi-2018.9。

2.1. 依赖安装

sudo apt install -y csh
sudo apt install -y lsb 

2.2. 软件安装

  1. 下载vcs2018,百度网盘 请输入提取码,提取码gbkc 。
  2. 解压,添加权限,执行脚本。
    mkdir ~/synopsysunzip VCS.zipcd VCS/synopsysinstaller_v5.0chmod 777 SynopsysInstaller_v5.0.run./SynopsysInstaller_v5.0.run
  3. 启动安装脚本./setup.sh,弹出安装界面

    依次Next,直到安装源选择scl_v2018.06,再点击OK

    选择安装目录:

    选择安装组件(勾选所有):选择Next直到下图,点击Accept,Install进入安装:安装结束,显示下图,点击Finish:出现下图,点击Dismiss结束安装。用同样的方式分别安装目录下的vcs_vO-2018.09-SP2、vcs_mx_vO-2018.09-SP2、verdi-2018.9。

2.3. 破解

  1. 获取Hostname和MAC地址:
  2. 在Windows下运行scl_keygen_2030/scl_keygen.exe,配置获取的hostname和mac地址,点击Generate生成授权信息文件Synopsys.dat。
  3. 将文件拷贝进Ubuntu的/home/michael/synopsys/license/Synopsys.dat
  4. 打开Synopsys.dat文件,在第2行添加/home/michael/synopsys/scl/2018.06/linux64/bin/snpslmd。
  5. 启用授权服务
    sudo mkdir /usr/tmpsudo mkdir /usr/tmp/.flexlm/home/michael/synopsys/scl/2018.06/linux64/bin/lmgrd -c /home/michael/synopsys/license/Synopsys.dat

2.4. 环境路径配置

打开~/.bashrc,在最后面添加如下内容,路径根据安装情况相应修改,27000@ubuntu22的ubuntu22修改为相应的HostName。

 #export export SYNOPSYS="/usr/software/synopsys"export VCS_TARGET_ARCH="amd64"export DVE_HOME="/home/michael/synopsys/vcs/O-2018.09-SP2/gui/dve"#export PATH="/home/michael/synopsys/vcs/O-2018.09-SP2/bin:"$PATHexport PATH="/home/michael/synopsys/vcs-mx/O-2018.09-SP2/bin:"$PATH#export VCS_HOME="/home/michael/synopsys/vcs/O-2018.09-SP2"export VCS_HOME="/home/michael/synopsys/vcs-mx/O-2018.09-SP2"#export VCS_ARCH_OVERRIDE="linux"#verdiexport PATH="/home/michael/synopsys/verdi/Verdi_O-2018.09-SP2/bin:"$PATHexport VERDI_HOME="/home/michael/synopsys/verdi/Verdi_O-2018.09-SP2"export LD_LIBRARY_PATH="/home/michael/synopsys/verdi/Verdi_O-2018.09-SP2/share/PLI/lib/LINUX64":$LD_LIBRARY_PATHexport VERDI_DIR="/home/michael/synopsys/verdi/Verdi_O-2018.09-SP2"export NOVAS_INST_DIR="/home/michael/synopsys/verdi/Verdi_O-2018.09-SP2"export NPI_PLATFORM="LINUX64_GNU_472"export LD_LIBRARY_PATH="$NOVAS_INST_DIR/share/NPI/lib/LINUX64_GNU_520":$LD_LIBRARY_PATHexport NOVAS_HOME="/home/michael/synopsys/verdi/Verdi_O-2018.09-SP2"#LICENSEexport SNPSLMD_LICENSE_FILE="/home/michael/synopsys/license/Synopsys.dat"export SNPSLMD_LICENSE_FILE=27000@ubuntu22export LM_LICENSE_FILE="/home/michael/synopsys/license/Synopsys.dat"alias lmli="/home/michael/synopsys/scl/2018.06/linux64/bin/lmgrd -c /home/michael/synopsys/license/Synopsys.dat"#SCLexport PATH=/home/michael/synopsys/scl/2018.06/linux64/bin:$PATHalias dve="dve -full64 &"alias vcs64="vcs -full64"alias vcs="vcs -full64"alias verdi="verdi -full64 &"

2.5. 验证License

sssverify 自己的license路径

出现下面信息表示License生成正确。

2.6. 开机自动开启授权服务

在/etc/profile.d/目录下创建lmli.sh

cd /etc/profile.d/ 
sudo touch lmli.sh
sudo chmod 777 lmli.sh

在lmli.sh文件中添加如下内容:

`/home/michael/synopsys/scl/2018.06/linux64/bin/lmgrd -c /home/michael/synopsys/license/Synopsys.dat -l /home/michael/synopsys/scl/2018.06/linux64/bin/lmgrd.log`

2.7. 解决异常

1. libpng12.so.0 cannot read

sudo ln -s /home/michael/synopsys/vcs-mx/O-2018.09-SP2/vcfca/linux64/vcst/lib/libpng12.so.0.31.0 /usr/lib/x86_64-linux-gnu/libpng12.so.0

2. undefined reference to `pthread_yield'

cd /home/michael/synopsys/vcs-mx/O-2018.09-SP2/linux64/lib
mv vcs_save_restore_new.o vcs_save_restore_new.o.bak
objcopy --redefine-sym pthread_yield=sched_yield ./vcs_save_restore_new.o.bak ./vcs_save_restore_new.o

3. Failedto open the TcP port number in thelicense

lmdown
killall lmgrd

 4. Can't make directory/usr/tmp/.flexlm

cd /usr
sudo mkdir tmp
cd local
sudo mkdir flexlm
cd flexlm
sudo mkdir licenses

5. /bin/sh:0: illegal option –h

sudo rm -f /bin/sh
sudo ln -s /bin/bash /bin/sh

3. 验证

3.1. VCS

VCS有两个版本,分别为vcs和vcs-mx,vcs-mx在vcs的基础上更好地支持SystemVerilog和SystemC。像在使用UMV/UVMC时,就必须使用vcs-mx。另外,在64位系统上,推荐使用64位的vcs,性能更好,通过-full64来指定。

3.1.1. top文件

module add (input         [20:0]	A ,input signed  [17:0]	B	,output signed [22:0]	C);wire signed [21:0]	A_signed;assign A_signed = {1'b0,A};assign C = A_signed + B;endmodule

3.1.2. testbench文件

`timescale 1ns/1nsmodule test;reg clk;reg rst_n;reg [20:0] A;reg signed [17:0] B;wire signed [22:0] C;initial beginclk = 0;rst_n = 0;A = 21'b0;B = 18'b0;#10;rst_n = 1;repeat(80) @(posedge clk) beginA = A + 21'b1;end#2000;$finish;endalways #5 clk = ~clk;initial begin$fsdbDumpfile("./rtl.fsdb");$fsdbDumpvars("+all");endadd add_inst(.A(A),.B(B),.C(C));endmodule

3.1.3. 源文件列表

vcs中以.f文件为源文件列表,其中每一行记录一个verilog/SystemVerilog源文件。

filelist.f文件内容如下:

top.v

tb.v

3.1.4. Makefile文件

VCS = vcs -full64 -sverilog -timescale=1ns/1ns \+v2k \-debug_access+all -kdb -lca\-f file.f	
comp:$(VCS) .PHONY:verdi clean sim
verdi:verdi -ssf rtl.fsdbsim:./simvverdi:verdi -ssf rtl.fsdbclean:rm -rf csrc simv* *.lib *.lib++ nLint*rm -rf *.log *.vpd *.fsdb* *.key *log rtl.fsdb*

3.1.5. 编译

make

3.1.6. 仿真

make sim

3.1.7. verdi查看波形

make verdi

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/842843.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Linux命令】--- Linux下的分卷压缩与解压

在编程的艺术世界里,代码和灵感需要寻找到最佳的交融点,才能打造出令人为之惊叹的作品。而在这座秋知叶i博客的殿堂里,我们将共同追寻这种完美结合,为未来的世界留下属于我们的独特印记。 【Linux命令】--- 多核压缩命令大全&…

vue通过数据劫持可以精准的探测数据变化,为什么还要进行diff检测差异?

Vue通过数据劫持(也称为响应式系统)确实可以精准地探测到数据的变化,但为什么还要进行Diff检测差异呢?这主要是出于以下原因: 核心是最小化dom更新 性能优化: 数据劫持虽然可以侦测到数据的变化&#xff0c…

markdown画时序图的时候,如何自动显示每一条时序的序号

1: 现象描述 今天画时序图的时候,发现时序上面没有显示序号,看起来不够清晰,只有单纯的说明; 如下图所示 刚测试CSDN的时序图,默认是带序号的,看起来和实际使用的markdown工具有关系; 2:解决办…

XPosed项目的接入、模版制作、改名全过程

XPosed项目的接入、模版制作、改名全过程 写在前面 之前写过这篇Xposed Hook 过登录密码验证配置开发Xposed项目的文章,这次的接入使用的是当前最新版Android Studio,接入稍微有些差别,也记录下。 本篇文章主要是写关于XP项目接入、制作XP模…

两年前的微信聊天记录能恢复吗?正确答案在这里(全)

微信已经成为我们日常沟通中不可或缺的一部分,承载着无数重要的对话和回忆。然而,面对手机更换、系统升级或意外删除等情况,许多人不禁要问:两年前的微信聊天记录能恢复吗?这个问题的答案并不简单,因为能否…

WGCLOUD部署好后,怎么登录WGCLOUD界面

WGCLOUD的server启动完成后,我们在浏览器里输入URL,如下 http://[server主机IP]:9999 注意默认端口就是9999,如果修改过,那么把端口改成自己的实际端口 这样就可以看到登录页面了,默认账号密码是:admin/…

辅助科技照亮道路,携手共促盲文书写技能新飞跃

在这个科技日新月异的时代,创新的力量正以前所未有的方式融入我们的日常生活,特别是对于视觉障碍群体而言,技术的每一次进步都是通往更加独立生活的桥梁。今天,让我们聚焦于一款名为“蝙蝠避障”的辅助软件,它不仅为盲…

Python中日期和时间的互相转换指南

在Python开发中,处理日期和时间是一种非常常见的需求。不论是在数据处理、日志管理、用户行为分析还是其他场景中,我们经常需要在时间戳和日期对象之间相互转换,以及处理相对时间计算。今天,我将通过一个实用的例子向大家展示如何…

探索数字规律与数组操作

新书上架~👇全国包邮奥~ python实用小工具开发教程http://pythontoolsteach.com/3 欢迎关注我👆,收藏下次不迷路┗|`O′|┛ 嗷~~ 目录 一、问题描述与需求概述 二、数字规律的理解 1. 观察数字模式 2. 思考生成方法 三、实现…

C/C++利用 %f 格式化输出整型变量的结果为0.000000

【算法代码】 #include <bits/stdc.h> using namespace std;int main() {int a97;printf("%f\n",a); //0.000000printf("%f\n",(float)a); //97.000000 }/* out: 0.000000 97.000000 */ 【算法分析】 ● 强制类型转换&#xff08;1&#xff09;强制…

Ubuntu24.04安装tabby-terminal-1.0.207并处理依赖

1 下载 tabby-terminal-1.0.207 地址&#xff1a; https://github.com/Eugeny/tabby/releases 点击show all 36 assets 选择 tabby-1.0.207-linux-x64.deb 并下载。 2 依赖下载 gconf2_3.2.6-3ubuntu6_amd64.deb gconf2-common_3.2.6-3ubuntu6_all.deb gconf-service_3.2.6-…

嵌入式开发中做文件同步时的常用工具

在嵌入式开发中&#xff0c;文件同步工具是至关重要的&#xff0c;它们可以帮助开发者在本地计算机和嵌入式设备之间高效地同步文件。根据调研结果&#xff0c;常用嵌入式开发中的文件同步工具有四种&#xff1a; 1.rsync&#xff1a;这是一个非常流行的文件同步工具&#xff…

Vue实现列表的无缝滚动功能

Vue实现列表的无缝滚动功能 直接上代码 codePen地址 <template><div id"app"><div class"list" mouseenter"mouseEnter" mouseleave"mouseLeave"><divclass"list-box"ref"listRef":style&…

怎么挑选骨传导耳机?精选六大选购技巧教你如何挑选

过去的两年里&#xff0c;骨传导耳机逐渐被大众的所熟知。可能毕竟长时间使用音量过大的传统入耳式耳机&#xff0c;多多少少会对我们的听力健康构成威胁。所以很多人就想找一款不伤耳朵的耳机。然后就了解到了骨传导耳机&#xff0c;所以就会延伸出这些问题——骨传导耳机好用…

vue3学习(二)

前言 上一篇分享了vue的基础指令&#xff0c;这篇记录下vue3的核心内容&#xff0c;也是自己的学习笔记&#xff0c;可能有些核心还不全&#xff0c;大佬请略过。 一、核心内容 分享这个之前&#xff0c;先声明下&#xff0c;我这里是用的脚手架的写法&#xff0c;分享的讲解截…

Springboot项目——网页版本五子棋

网页五子棋&#xff1a;本项目简单实现了网页版本的五子棋对战功能&#xff0c;同时会根据用户的天梯分数来匹配&#xff0c;可供多位用户同时提供对战功能。大致可分为三个模块&#xff0c;用户模块&#xff0c;匹配模块&#xff0c;对战模块&#xff0c;下面重点介绍以下三个…

Json读写文件工具类封装

一、概述 在json的读写中主要涉及两种数据类型&#xff0c;字符串和json文件&#xff0c;读取后的数据主要用于传参&#xff0c;由于json文件读取到的数据无法进行直接传参&#xff0c;参数化的数据格式一般为元组格式&#xff0c;所以文件类型的格式读取后还要再做数据类型转…

如何进行数据要素制度建设?

“让数据放心‘供’出来&#xff0c;让更多数据‘活’起来&#xff0c;让数据安全‘动’起来。”11月10日&#xff0c;国家数据局党组书记、局长刘烈宏出席北京数据基础制度先行区启动会议并作重要讲话。 这是刘烈宏履新国家数据局局长以来&#xff0c;首次在公开场合就数据要…

磁力搜索器,磁力链接,磁力狗

磁力链接是一种特殊的下载链接&#xff0c;磁力链接可以理解为一个文件识别码&#xff0c;而并非具体的资源地址&#xff0c;下载软件需要拿着这个识别码去整个互联网(DHT网络)去寻找持有该资源的用户(节点)&#xff0c;如果找到则可以进行传输下载。一般年代越久远的磁力链接下…

腾盾科创无人机亮相第二十四届新疆农机博览会引发观展热潮

5月25日&#xff0c;第二十四届新疆农业机械博览会、2024“一带一路”智慧农业大会&#xff08;以下简称新疆农机博览会&#xff09;在新疆国际会展中心开幕。展会现场多种农牧业的新装备、新技术集中亮相&#xff0c;其中首次在新疆农机博览会上亮相的腾盾科创无人机产品引发观…