VCS软件使用步骤

VCS软件简介

VCS( verilog compiled simulator )是编译型Verilog模拟器,它完全支持OVI标准的Verilog HDL语言、PLI和SDF。 VCS具有目前行业中最高的模拟性能,其出色的内存管理能力足以支持千万门级的ASIC设计,而其模拟精度也完全满足深亚微米ASIC Sign-Off的要求。VCS结合了节拍式算法和事件驱动算法,具有高性能、大规模和高精度的特点,适用于从行为级、RTL到Sign-Off等各个阶段。VCS已经将CoverMeter中所有的覆盖率测试功能集成,并提供VeraLite、CycleC等智能验证方法。VCS和Scirocco也支持混合语言仿真。VCS和Scirocco都集成了Virsim图形用户界面,它提供了对模拟结果的交互和后处理分析。VCS 2009.12 Linux 验证库建立在经实践验证的DesignWare验证IP的基准上,并添加了对Synopsys的参考验证方法学(RVM)和本征测试平台的支持,能够实现覆盖率驱动的测试平台方法学,而且其运行时间性能提高了5倍。 VCS 2009.12 Linux 验证库是业界范围最广的基于标准的验证IP产品组合,可以方便地集成到Verilog、SystmVerilog、VHDL和Openvera的测试平台中,用于生成总线通信以及协议违反检查。监测器提供了综合全面的报告,显示了对总线通信协议的功能覆盖率。VCS验证库的验证IP也包含在DesignWare库中,或作为独立的套件购买。主要优势:
  ● 业界范围最广的IP产品组合;
  ● 采用VCS & Pioneer NTB时,仿真性能有显著的提高;
  ● 可充分进行配置,达成对测试的更好控制和更快的开发测试易于使用的界面,并且提供测试平台示例,加快学习速度,并加速测试平台的开发过。

文件准备

以一个二分频模块为例演示VCS的最简单使用方式。

ClockDiv.v

`timescale 1ns / 1ps
//
// Company: 
// Engineer: 
// 
// Create Date: 10/13/2020
// Design Name: Sniper
// Module Name: ClockDiv
// Project Name: 
// Target Devices: 
// Tool Versions: 
// Description: 
// 
// Dependencies: 
// 
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
// 
//

module ClockDiv(
    input clk,
    input rst_n,
	output reg clk_div
);

always@(posedge clk or negedge rst_n)
begin
	if(!rst_n)
		clk_div <= 1'b0;
	else
		clk_div <= ~clk_div;
end

endmodule

tb_ClockDiv.v

`timescale 1ns / 1ps
//
// Company:
// Engineer:
//
// Create Date: 10/13/2020
// Author Name: Sniper
// Module Name: tb_ClockDiv
// Project Name:
// Target Devices:
// Tool Versions:
// Description:
//
// Dependencies:
//
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
//
//

module tb_ClockDiv;

//input
reg clk;
reg rst_n;

//output
wire clk_div;

initial
begin
    clk = 0;
    rst_n = 0;

	#100;
	rst_n = 1;

end

//clock
always #5 clk = ~clk;

//DUT
ClockDiv DUT
(
    .clk(clk),
    .rst_n(rst_n),
    .clk_div(clk_div)
);

initial
begin
  $dumpfile("curve.vcd");
  $dumpvars(0,DUT);
end

initial #1000 $finish;

endmodule

VCS命令

Terminal中输入以下命令来编译文件:(也可以将命令写在shell脚本中)

vcs -R ClockDiv.v tb_ClockDiv.v

DVE看波形

Terminal中输入dve打开软件

dve

打开生成的.vcd波形文件:
在这里插入图片描述
在这里插入图片描述

打开新的波形显示窗口:

在这里插入图片描述

这里可以调整显示:

在这里插入图片描述

`

附录:VCS常用命令

  1. 在学习VCS(Verilog Compile Simulator)过程中遇到不知道的编译命令可以使用 vcs -full64 -help 来查看帮助.
  2. VCS学习过程中可能需要查看对应的 User Guide,一般情况下在vcs的安装目录下的doc文件夹里面会有PDF文件。
  3. VCS就是编译用户输入的源文件生成对应的可执行文件(默认是二进制的simv文件),在之后的仿真中运行这个可执行文件。

VCS语法

$ vcs [options] source_files

常用选项

-help		//vcs帮助,有各编译选项意义;

-full64		//以64位模式编译设计并创建64位可执行文件用于64位模式下的模拟;

-vpi		//允许使用vpi PLI访问例程;

-sverilog	//允许在Accellera systemVerilog规范中使用Verilog语言扩展;

-v2k		//使用Verilog 1364-2001标准;

-cpp		//使用c++编译器;

-debug_pp	//允许转储到VPD并使用UCLI命令和DVE;

-debug		//启用UCLI命令和DVE;

-debug_all	//启用UCLI命令和DVE,也使线路步进;

-notice		//启用详细的诊断消息;

+lint=[no]ID|none|all,... //使能或者禁用verilog的lint消息;

+rad			//对设计进行辐射技术优化;

+vcs+lic+wait	//如果没有可用的通知,则告诉VCS等待网络许可证;

-f <filename>	//指定一个文件,其中包含源文件和编译时选项的路径名列表;

-o <name>		//指定输出可执行文件的文件名,默认为 simv;

-R				//该选项告诉VCS在编译完后直接运行可执行程序,若没有该选项,那么vcs在编译后直接退出;

-l <filename>	//(小写字母L)如果包含-R,-RI或-RIG选项,则指定VCS记录编译消息和运行时消息的日志文件;

-Mupdate[=0]:默认情况下,VCS会在编译之间覆盖Makefile。 如果希望在编译之间保存Makefile,请输入此内容选项与0参数。输入不带0参数的参数,指定默认情况下,增量编译和更新Makefile文件;

-CFLAGS <options>	//将选项传递给C编译器,允许多个-CFLAGS,允许传递C编译器优化级别。

-timescale=<time_unit>/<time_precision>	//指明时间精度;

-ucli	//在运行时指定UCLI模式;

+incdir+<directory>		//指定包含使用`include 编译器指令指定的文件的目录,可以指定多个目录,用+字符分隔每个路径名称;

+libext+<extension>		//指定VCS仅在具有指定扩展名的Verilog库目录中搜索源文件,可以指定多个扩展名,用+字符分隔每个扩展名。例如+libext++.v指定搜索没有扩展名和库扩展名为.v的库文件。 输入-y选项时输入此选项。

+systemverilogext+<ext>	//指定包含SystemVerilog源代码的源文件的文件扩展名;

-gui[=<dve|verdi>]		//启动用户指定的图形用户界面,如果未提供参数,则在检测到有效的VCS_HOME环境变量时,VCS将启动Verdi。 否则DVE将默认启动;

-vcd <filename>			//将输出VCD文件名设置为指定文件。默认文件名为verilog.dump。Verilog源代码中的$dumpfile系统任务将覆盖此选项;

-verdi		//使用verdi图形界面;

+vcdfile+<filename>		//指定想要用于后期处理的VCD文件;

-vpd_file <filename>	//在运行时,定义VCS写入的VPD文件的替代名称,而不是缺省名称vcdplus.vpd;

+define+VCS				//定义全局的VCS,编译器在编译时如果源文件有类似`ifdef VCS等字样,那么会执行定义之后的代码。

+vcs+vcdpluson			//编译选项,加入后会使能产生vpd文件,默认文件名vcdplus.vpd

猜你喜欢

转载自blog.csdn.net/meng1506789/article/details/109057769
VCS