Synopsys实验系列3数字电路仿真VCS.ppt
71页Synopsys 实验系列3_数字电路仿真_VCS,——Verilog Compile Simulator,2010.12.16,,大纲,,,VCS (Verilog Compile Simulator),1、编译型的Verilog模拟器2、支持OVI标准的Verilog HDL语言、PLI和SDF 3、具有目前行业中最高的模拟性能 4、出色的内存管理能力 5、支持千万门级的ASIC设计,,VCS (Verilog Compile Simulator),,提供VeraLite、CycleC等智能验证方法 a)支持混合语言仿真 b)集成了Virsim图形用户界面c)提供了对模拟结果的交互和后处理分析,,VCS结合了节拍式算法和事件驱动算法 a)具有高性能、大规模和高精度的特点b)适用于从行为级、门级、RTL到Sign-Off等各个阶段的模拟仿真,,,,VCS特点,,Synopsys Complete SoC Verification Solution,,RTL级模拟仿真流程,,门级模拟仿真流程,,VCS,Compiler generates optimized executable simulationSimulator 1)Executes user testbench 2)Reports simulation resultsDebugger 1)Text-based: Command Line Interface (CLI) 2) GUI-based: VirSim and DVE,,VCS中的帮助文档,,,VCS中的帮助文档,,VCS仿真流程,Compile Verilog source into an executable simulation % vcs design.vRun executable simv to perform simulation % ./simvDebug Verilog design,,VCS仿真流程,sources_files 源程序-R : executes simulation binary immediately after compilation-Xman=4 : combines all source files into a single file “tokens.v”,,VCS仿真流程,,,,VCS仿真流程,% ./simv [run_time_options]run_time_options -s: stops simulation at time 0,,VCS仿真流程,,,,VCS仿真流程,,,编译所有的Verilog源文件,包括测试文件,,,VCS仿真流程,,VCS生成仿真使用的二进制的测试文件,,启动仿真文件开始仿真测试,,,,VCS仿真流程,,仿真结果的输出,,VCS Debugging,Verilog System Task calls $display、$monitor、$time、$stop、$finishVCS CLI(command line interface)VCS VirSimVCS DVE,,Invoke CLI,,Invoke CLI,,CLI的一些命令,,CLI下的简单示例,,,CLI下的简单示例,,,,CLI下的简单示例,,,,,,,Debug a Verilog design using VirSim,VirSim概况:是基于 OSF/Motif 的图形化仿真调试系统利用 Virsim与 VCS交互式的工作方式可以在模拟的过程中显示仿真结果结果可以存到一种叫做 VCD+的文件中支持三种基本的调试方式:波形、结构和代码支持标准 Verilog 的所有函数、语法、系统调用和编程语言接口,,VirSim两种运行方式,Interactive mode (交互模式) 允许实时的控制仿真的进行,允许在模拟的过程中改变寄存器的值或者设置,这些改变会实时地影响到模拟的结果。
VirSim两种运行方式,Post-processing mode(后台处理方式) 先输出用户指定选择的信号及其变化过程到一个文件中,然后可以用 VirSim来分析这个文件该文件是 VCD+类型的,VCD+文件是一种二进制的格式,里面记录了 VCS模拟的结果,和信号的变化历史等信息交互式调用Virsim(方法一),,交互式调用Virsim(法二),,VirSim的调用,,,Debug a Verilog design using VirSim,,,Virsim界面和功能介绍,,交互式窗口界面,菜单栏,,工具栏,,历史栏,,命令行输入,,用户自定义区,交互仿真控制区,,,,断点的分类,硬断点:是调用了 verilog 的系统函数$stop 的这类断点软断点:是在交互环境中用 tbreak 命令产生的断点信号变化断点:是在模拟过程中定义了敏感信号,当这个信号一旦有变化,就会中断模拟过程,,,层次窗口界面,菜单栏,工具栏,,,层次结构,,,层次窗口界面,层次结构,可以表示出来的有:模块、任务、函数、有名块、信号、寄存器、线网、输入输出等拖动到其他的窗口,,波形窗口界面,菜单栏,工具栏,,,文件标识区,,波形显示区,,,源程序窗口界面,,源程序窗口界面,,源程序窗口界面,单步运行设置断点,,寄存器窗口界面,Menu bar,Tool bar,Value change icons,,,,,寄存器窗口界面,按下红色按钮,就会模拟到任一信号有变化为止,高亮显示。
作辅助图形,和信号一起做标签,保存,可便于检查信号逻辑窗口界面,,逻辑窗口界面,模块结构比较复杂的时候,方便检查是否有连接错误信号变化软中断功能:暂停状态下,点击绿色按钮,所选信号就会模拟到下一个变化时刻,并且暂停下来;点击红色按钮,运行到当前视图任一个信号有变就停Virsim有三种基本的调试方式: 波形、结构和代码,多种方式协同调试时能更容易找到错误Post-processing(后台处理模式),先用批处理方式产生需要的信号到 VCD+的文件中再分析这个 VCD+文件,,Post-processing(后台处理模式),批处理方式编译并且运行 myfile.v % vcs -R -I myfile.v -R 指用批处理方式, -I指明了 vcs自动包含+cli(command line interface)、-P(PLI table)和-lm(数学库 math library)批处理完,就可以用-RPP 参数来调用调试器 % vcs –RPP myfile.v在菜单中选择加载已经产生了的 VCD+文件(默认的产生的 VCD+文件名为 vcdplus.vpd),,如何产生VCD+文件,通过在源代码中加入相应系统函数来产生,如$vcdpluson(),或者$vcdplustraceon()。
例: initial begin $vcdpluson(example.n1); //产生 VCD+文件 $vcdplustraceon; //允许源代码级的调试 end,,Invoking DVE,From the Command Line%vcs –debug_all source files %./simv -gui –tbugFrom the GUI%dve,,From the Command Line,,,,From GUI,,,New project,,Open project,,DVE Components,Top Level WindowWave WindowList WindowSchematic Window,,Top Level Window,,,,,Edit Menu,,文本操作,,标记,,View Menu,,schematic views,,,,C1指针,,Wave window,,Simulator Menu,,Run,,,,Hierarchy Browser,,Data Pane,,,,Source Pane,有效断点,,无效断点,,,Console,,The Waveform Window,Signal Pane,,Waveform Pane,,Lower timescale,,,,,,The List Window,,Opening a Design Schematic View,,Invoke breakpoints,。





