以异步fifo为例使用vcs进行仿真(二):使用vcs对异步fifo进行仿真

对vcs需要掌握的东西:

        一、使用vcs做仿真

        二、使用vcs进行debug

        三、使用vcd+file进行后仿

        四、检测仿真不匹配

        五、快速RTL级仿真

        六、快速门级仿真

        七、代码覆盖率

一、使用vcs做仿真

        1、基础知识 

        vcs仿真分为两个步骤:1、编译;2、仿真 

            vcs编译命令格式:vcs  sourcefile  [compile_time_option]

                     sourcefile:包含所有的verilog/SV格式的DUT和testbench文件,文件之间以空格分开

                     compile_time_option:vcs仿真时的控制指令

             vcs -help:列出所有的编译选项,运行时间选项和环境变量

以异步fifo为例使用vcs进行仿真(二):使用vcs对异步fifo进行仿真

             主要编译命令选项:

                          -Mupdate:增量控制编译(只有改变了文件会再被编译)

                          -R:在编译之后之间运行

                          -gui:运行的时候启动dve

                          -l <filename>:改变运行日志文件名

                          -sverilog:支持system Verilog

                          -+v2k:编译支持verilog 2001

                          --debug_all:启用debug选项

             库文件选项:

                          -v lib_file  :在lib_file文件中搜索未解析的模块引用

                          -y lib_dir :在lib_dir目录中搜索未解析的模块引用

                          +incdir+inc_dir:在inc_dir路径中搜索`include文件

             通过文件获取需要编译的文件列表:

                          -file filename:该filename中可以包含要被编译的文件列表和选项

             输出自定义文件

                          -o outputfile:vcs默认输出的可执行文件为simv,加上该选项后,输出为outputfile,主要作用就是改了名字

             宏定义选项:

                          +define+<macro_name>=value:可以在文件外宏定义一个值,主要作用就是开关

            vcs命令格式:simv [run_time_options]

                          -s 仿真0时刻就停止

                          -l log 仿真输出到log

        1、仿真

        本次代码使用的是上次的异步fifo代码

       以异步fifo为例使用vcs进行仿真(二):使用vcs对异步fifo进行仿真

                  文件建立格式如上图:flist存放file.list类文件,该文件中存放rtl设计文件和testbench文件的路径,在编译时输给vcs,            对应选项-f;rtl文件夹中存放设计文件;tb中存放testbench文件sim文件夹为编译仿真时的运行文件夹,用于存放makefile              和仿真产生的可执行文件、.o文件和log文件;work中主要用于综合。

         编译指令如下:

          以异步fifo为例使用vcs进行仿真(二):使用vcs对异步fifo进行仿真

         编译后产生的文件:

         以异步fifo为例使用vcs进行仿真(二):使用vcs对异步fifo进行仿真     以异步fifo为例使用vcs进行仿真(二):使用vcs对异步fifo进行仿真

          sim.log文件编译信息文件,里面包含了版本信息,warning信息,如果出错也会报出错信息,以及编译过程中信息,如读             入的文件,调用的库,产生的.o文件;simv为可执行文件,是下一步仿真的文件;simv.daidir存放了db和sdb文件;crcs存             放了.o文件,是增量编译的关键。

         运行指令如下:

         以异步fifo为例使用vcs进行仿真(二):使用vcs对异步fifo进行仿真

         该指令启动dve gui界面进行波形分析

      以异步fifo为例使用vcs进行仿真(二):使用vcs对异步fifo进行仿真

         选中波形加入波形窗口,即可看见波形

以异步fifo为例使用vcs进行仿真(二):使用vcs对异步fifo进行仿真

         现在尝试其他选项:

         以异步fifo为例使用vcs进行仿真(二):使用vcs对异步fifo进行仿真

         连续两次使用该选项,可以看见编译信息输出如下:

          以异步fifo为例使用vcs进行仿真(二):使用vcs对异步fifo进行仿真

          其实该选项是默认的。

          以异步fifo为例使用vcs进行仿真(二):使用vcs对异步fifo进行仿真

          file.list内容如下:

         以异步fifo为例使用vcs进行仿真(二):使用vcs对异步fifo进行仿真

       其他选项不再赘述。

       所有的命令都可以写成makefile的形式,我的makefile格式如下:

      以异步fifo为例使用vcs进行仿真(二):使用vcs对异步fifo进行仿真