目录
一、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 <files.v> vhdlan <files.vhd> | Analyze all Verilog source 分析语法 |
| Elaborate/Compile Design vcs <option> <design_top> | Compile the design 编译设计 |
| Simulate simv <options> | Simulate the design 可执行文件仿真 |
| debug | gui mode batch mode可以利用DVE,或者Verdi |
1.Simulator Setup File
• 了解就可以,这个一般使用默认的配置就可以了
• 对于一些复杂的开发环境,需要定义自己的setup文件,可以通过下面的命令指定到自己定义的
setup文件
setenv SYNOPSYS_SIM_SETUP <path>/<filename>
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+<dir> Specifies search directory for included files
+define+<macro> Defines a macro in the Verilog source
3.Compiling the Simulation
%> vcs module <options>
• Creates statically linked simulator executable (simv) 生成可执行的仿真文件
-o <simname> Rename simulation executable
-debug_acc+all Enable source-line debugging
-l <logfile> Create runtime log file
依赖AN.DB文件夹
4.Executing the Simulator
%> ./simv <runtime_options>
-gui Start interactive GUI session 可视化界面DVE
-l <logfile> 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的文件相对比较小。

734

被折叠的 条评论
为什么被折叠?



