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 ~/synopsys
    
    unzip VCS.zip
    
    cd VCS/synopsysinstaller_v5.0
    
    chmod 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/tmp
    
    sudo 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:"$PATH
 export 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"
 #verdi
 export PATH="/home/michael/synopsys/verdi/Verdi_O-2018.09-SP2/bin:"$PATH
 export 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_PATH
 export 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_PATH
 export NOVAS_HOME="/home/michael/synopsys/verdi/Verdi_O-2018.09-SP2"
 
 #LICENSE
 export SNPSLMD_LICENSE_FILE="/home/michael/synopsys/license/Synopsys.dat"
 export SNPSLMD_LICENSE_FILE=27000@ubuntu22
 export 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"
 #SCL
 export PATH=/home/michael/synopsys/scl/2018.06/linux64/bin:$PATH
 alias 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/1ns

module test;

  reg clk;
  reg rst_n;

  reg [20:0] A;
  reg signed [17:0] B;

  wire signed [22:0] C;

  initial begin
    clk = 0;
    rst_n = 0;
    A = 21'b0;
    B = 18'b0;
    #10;
    rst_n = 1;
    repeat(80) @(posedge clk) begin
      A = A + 21'b1;
    end

    #2000;
    $finish;

  end

  always #5 clk = ~clk;

  initial begin
    $fsdbDumpfile("./rtl.fsdb");
    $fsdbDumpvars("+all");
  end

  add 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.fsdb

sim:
  ./simv

verdi:
  verdi -ssf rtl.fsdb

clean:
	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

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值