VCS仿真介绍

目录

一、VCS介绍

二、VCS仿真步骤

1.Simulator Setup File

2.Verilog Analyzer: vlogan

3.Compiling the Simulation

4.Executing the Simulator

5.VCS MX  Debugging

三、总结


一、VCS介绍

      1.数字IC中编译仿真工具
ModelSim/Questasim      (Mentor)
VCS                                (Synopsys:Verilog Compiler Simulator)
NCsim                             (Cadence:Incisive Enterprise Simulator的core simulation engine)
......
VCS_MX: mixed hdl仿真器,支持vhdl+verilog+sv的混合仿真

       2.仿真工具VCS(Verilog Compile Simulator)是编译型Verilog模拟器,它完全支持OVI(Open Verilog International,OVI)标准的Verilog HDL语言、编程语言接口PLI(Programming Language Interface)和标准延时格式SDF(Standard Delay Format)。 VCS具有行业中较高的模拟性能,其出色的内存管理能力足以支持千万门级的ASIC设计,而其模拟精度也完全满足深亚微米ASIC Sign-Off的要求。VCS结合了节拍式算法和事件驱动算法,具有高性能、大规模和高精度的特点,适用于从行为级、RTL到Sign-Off等各个阶段。VCS已经将保护层厚测定仪CM(CoverMeter)中所有的覆盖率测试功能集成,并提供VeraLite、CycleC等智能验证方法。VCS和Scirocco也支持混合语言仿真。VCS和Scirocco都集成了Virsim图形用户界面,它提供了对模拟结果的交互和后处理分析。

二、VCS仿真步骤

  •    VCS_MX Tool Flow混合仿真三步法
synopsys_sim.setup Setup file: synopsys_sim.setup设置环境变量
Analyze VHDL and Verilog
vlogan
vhdlan

Analyze all Verilog source
Command: vlogan
Analyze VHDL source, bottom-up
Command: vhdlan

分析语法

Elaborate/Compile Design
vcs

Compile the design
Command: vcs

编译设计

Simulate
simv

Simulate the design
Command: simv

可执行文件仿真

debug gui mode
batch mode可以利用DVE,或者Verdi

1.Simulator Setup File


• 了解就可以,这个一般使用默认的配置就可以了
• 对于一些复杂的开发环境,需要定义自己的setup文件,可以通过下面的命令指定到自己定义的
setup文件
setenv SYNOPSYS_SIM_SETUP /

2.Verilog Analyzer: vlogan

Common vlogan options
-full64                          支持64位模式运行
-l logfile                        Log file generation
-q                                 Quiet (no internal messages and banner)
-nc                               Suppresses copyright header
+v2k                             Enable Verilog 2001 constructs (default since 2012.09)
-sverilog                       Enable SystemVerilog constructs
-timescale=1ns/1ps     Specify default timescale 仿真时间单位和精度

 -f file                           Specify files as well as command options
+incdir+

               Specifies search directory for included files
+define+        Defines a macro in the Verilog source

3.Compiling the Simulation

%> vcs module

• Creates statically linked simulator executable (simv)  生成可执行的仿真文件
-o         Rename simulation executable
-debug_acc+all      Enable source-line debugging
-l              Create runtime log file
依赖AN.DB文件夹

4.Executing the Simulator

%> ./simv

-gui                      Start interactive GUI session  可视化界面DVE
-l            Create runtime logfile

5.VCS MX  Debugging

  •  Batch Mode 后台运行

         – Simulate in batch mode

  • Interactive Mode 带界面的                        

        – gui

6.VCS仿真简单脚本

.PHONY: com  cov  clean debug  sim dve

OUTPUT = simv_asyn_fifo
ALL_DEFINE = +define+DUMP_VPD

# Code coverage command 
#CM = -cm line+cond+fsn+branch+tql
CM = -cm line+cond+branch
CM_NAME = -cm_name $(OUTPUT)
CM_DIR = -cm_dir ./$(OUTPUT).vpd

#vpd file name 
VPD_NAME = +vpdfile+$(OUTPUT).vpd

#Comppile command 
VCS = vcs -sverilog  +v2k      \
	-debug_all				 \
	+notimingcheck				 \
	+nospecify				 \
	+vcs+flush+all				 \
	+vpdfile+$(OUTPUT).vpd			\
	$(CM)					 \
	$(CM_NAME)				 \
	$(CM_DIR)				 \
	$(ALL_DEFINE)				 \
	-o  $(OUTPUT)				 \
	-l  compile.log	                         \
         -f file_list.f
        	

  
	
#VCS = vcs -sverilog  +v2k      \
	-debug_all				 \
	+notimingcheck				 \
	+nospecify				 \
	+vcs+flush+all				 \
	$(ALL_DEFINE)				 \
   	$(VPD_NAME)				 \
	-o  $(OUTPUT)				 \
	-l  compile.log                \
        -f file_list.f		           
        	

# simulation  command 	
SIM = ./$(OUTPUT)		\
	$(CM)  $(CM_NAME) $(CM_DIR)	\
        -l $(OUTPUT).log		\
	 +vpdfile+$(OUTPUT).vpd  
#start compile 
com:
	$(VCS) 

#start simulation 
sim:
	$(SIM)

#start dve show 
dve:	
	dve  -vpd  $(OUTPUT).vpd  &

#show the coverage 
cov:
	dve  -covdir *vdb &
debug:
	dve -vpd  $(OUTPUT).vpd &

#start clean 
clean:
	rm -rf ./csrc   *daidir   ./csrc   *.log  *.vpd   *.vdb  simv*  *.key   *race.out  vc_hdrs.h    DVEfiles  sim*  compile*   *.fsdb  verdiLog  novas.conf data  race.out.static signal.rc
  •   VCS对verilog模型进行仿真包括两个步骤

 1. 编译verilog文件成为一个可执行的二进制文件命令为:
    $> vcs source_files

 2. 运行该可执行文件
    $> ./simv
  
  类似于NC, 也有单命令行的方式:
    $> vcs source_files -R
    -R 命令表示, 编译后立即执行.

    下面讲述常用的命令选项:
  -cm line|cond|fsm|tgl|obc|path     设定coverage的方式
  
  +define+macro=value+       预编译宏定义

  -f filename             RTL文件列表

  +incdir+directory+           添加include 文件夹

  -I                 进入交互界面

  -l                 logfile文件名

  -P pli.tab             定义PLI的列表(Tab)文件

  +v2k                 使用推荐的标准

  -y                 定义verilog的库

  -notice               显示详尽的诊断信息

  -o                 指定输出的可执行文件的名字,缺省是sim.v

三、总结

VCS/VCSMX 一般仿真步骤

VCS仿真可以分成两步法或三步法, 对Mix language, 必须用三步法。仿真前要配置好synopsys_sim.setup文件,里边有lib mapping等信息。设置环境变量'setenv SYNOPSYS_SIM_SETUP /xxx/xxx/synopsys_sim.setup'. VCS对应的waveform工具有DVE和Verdi, DVE因为是原生的,所以VCS对DVE非常友好。但DVE已经过时了,其对uvm等新feature支持的不好。Verdi是Debussy公司的产品,现在已被Synopsys收购并着力发展,说以Verdi是未来的潮流。但由于其原来是Synopsys第三方产品,所以VCS对其支持并不是很友好。 如果要支持Verdi,需要设置好NOVAS_LIB_PATH的环境变量,并且在命令行中添加-kdb的option,knowledge database(kdb)是VCS支持Verdi时的重要概念。另外,VCS支持vpd和fsdb两个格式的dump wave。 fsdb的文件相对比较小。

你可能感兴趣的:(仿真器,fpga开发,verilog,debug,vcs)