VCS仿真流程

一个人想着一个人 提交于 2019-11-30 06:28:01

去中兴面试的时候被问到vcs 的使用方式,现在整理一下。

1. three-step flow

第一步:analysis——vlogan、vhdlan

  在analysis phase中VCS会检查文件的语法错误,并将文件生成elaboration phase需要的中间文件,将这些中间文件保存在默认的library中(也可以用-work指定要保存的library)。

  1. analyzing VHDL files

% vhdlan [vhdlan_options] file1.vhd file2.vhd

  2. analyzing verilog files

% vlogan [vlogan_options] file1.v file2.v

  3. analyzing system verilog files

% vlogan -sverilog [vlogan_options] file1.sv file2.sv

  这个也可以仿真verilog 文件

  4. analyzing open vera files

% vlogan -ntb [vlogan_options] file1.vr file2.vr file3.v

  

-ntb   :     Enables the use of the OpenVera testbench language constructs described in the OpenVera Language Reference Manual: Native 
Testbench.

  如果是vera 文件,好像在vcs中加-vera选项也可以仿真,

  vlogan有一些常用的选项,比如-sverilog,-l,-f,-full64,-timescale,-y,+define+macro,+libext+extension等等选项。

 

第二步:elaboration

 
   In this phase, using the intermediate files generated during analysis, VCS MX builds the instance hierarchy and generates a binary executable simv. 
  
  可以用optimized mode或者debug mode来elaborate design(也就是compile)。debug mode也叫interactive mode,顾名思义可以调试排查设计中的问题,但是比较消耗时间。optimized mode也叫batch mode(批处理模式),带来最优的编译和运行时间,一般用来run regression。synopsys建议在设计完全正确之前用full_debug或者particial_debug,当设计没问题了用optimized mode。
 
% vcs [elab_options] [libname.]design_unit

  libname:是analysis phase中-work选项指定的library,如果没有指定就用默认的(定义在synopsys_sim.setup中)。

  design_unit:可以是verilog的top module(vhdl另论)。

  常用的elaboration option: -full64 ,-file filename,-gui,-R,-l,-f,-debug,-debug_all。

 

第三步:simulation

运行elaboration phase生成的二进制文件simv来运行仿真。
 
 Based on how you elaborate the design, you can run your simulation the following ways:
  • Interactive mode(用了debug或者debug_all选项)
  • Batch mode 
 
在interactive mode中, To debug using a GUI, you can use the Discovery Visualization Environment (DVE), and to debug through the command-line interface, you can use the Unified Command-line Interface (UCLI). 
仿真之后可以在dve中查看生成的波形文件(当然需要自己制定要生成波形$vcdpluson、+vcs+vcdpluson等方式)。
 
在batch mode中,不要加debug选项。
./simv #直接运行simv

  

2. two-step flow

两步走的方法只在verilog和system verilog有用,也就是说VHDL文件一定要用three-step flow。

这是常用的方式,先vcs再simv。

 

3. one-step flow

这其实就是加了-R选项的two-step flow方式。

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!