完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
VCS-verilog compiled simulator是synopsys公司的产品。其仿真速度相当快,而且支持多种调用方式;使用的步骤和modelsim类似,都要先做编译,再调用仿真。
Vcs包括两种调试界面:Text-based:Command Line Interface(CLI) 和 GUI-based(VirSim);仿真主要的两个步骤是编译,运行: >vcs design.v //编译verilog的源文件并且生成一个可执行文件simv >simv //运行simv 一般情况下都存在vcs 做编译的时候的compile_time_options和运行时候的run_time_options,这些我们在下面再具体介绍。 一.VCS的三种调试模式 使用vcs存在三种调试模式:CLI调试模式,VirSim交互调试模式和VirSim后处理调试模式。下面举例说明: 1. CLI调试模式 CLI调试模式存在两种调用方法,一种是编译后马上执行,一种是把编译执行分开处理 >vcs source.v +cli+3 –R –s 或者 >vcs source.v +cli+3 >simv source.v –s 其中 +cli+[1 2 3 4]是指调试时候交互调试的能力。 +cli+[<module_name>=]1|2|3|4 Enable CLI debugging. 1 enables you to see the values of nets and registers and deposit values to registers. 2 also enables breakpoints on value changes of nets and registers. 3 also enables you to force a value on nets. 4 also enables you to force a value on a register. You can specify a module to enable CLI debugging only for instances of the module. -line 能够支持单步调试 但是这些都是会增加运行时间的。 这里不详细介绍CLI 命令具体可以参考usrerguide.注意我们也可以把CLI的命令写成一个script的文件在vcs编译时调用。 >vcs source.v –R –s –include script_file 或者在cli下调用cli>source script_file 2. VirSim交互调试模式 启动VirSim交互调试模式和调用CLI一样也是有两中方法。 >vcs source.v –RI –line +vcsd +cfgfile+filename 或者 >vcs source.v –I –line +vcsd >vcs source.v -RIG +cfgfile+filename 其中-RI 作用有两个:编译生成可以在VirSim中可执行的文件并且编译后马上启动Virsim; 要编译成可以在VirSim中可执行的文件必须在编译阶段加-I,在要生成vcd或vpd时这个参数一定要添加;-RIG通过一个已编译完成的默认的simv文件启动Virsim,在启动之前一定要通过vcs –RI或者-I对源文件做过编译。 使用vcs编译源文件之后会发现目录下多了simv和/csrc等文件,其中simv是默认的可执行文件,可以在vcs做编译的时候 –o filename改变输出的名字,/csrc是存的增量编译的结果,/simv.daidir如果设置中使用到了PLI就会创建。 具体如何使用VirSim做交互调试这里也不具体介绍,可以参考VirSim的userguide和vcs安装下面的doc的tutorial. 3. VirSim的后处理调试模式 注意什么时候用后处理调试模式,什么时候使用交换模式那?在初步仿真的过程使用交互模式,若是调试一个成熟的设计或者很多人一起做调试这样子可以使用post-processing mode.其主要的方法是通过仿真运行dump数据在vcd或者vpd文件中,运行结束后通过vcd或者vpd观察运行过程的情况,交互调试能力相对较差,但是通过记录的数据可以观察出其中异常的地方;也就是包括两个步骤Write VCD+ file,View result. >vcs source.v –line –R -PP +vcsd 其中-R自动运行并且生成vcd+文件 -PP编译的时候是faster VirSim post_processing >VCS –RPP source.v +vpdfile+vcdplus.vpd 注意:VirSim只能处理VCD+ file.VCD文件可以被转换成VCD+格式的文件。 VCD+和VCD有什么不一样那?更快,更小。 VCD+系统任务可以在testbench中使用也可以在仿真的时候添加。(注意使用到这些系统函数时,在vcs编译的时候一定要添加-I或者-RI.) $vcdpluson(level_number,module_instance,…。|net_or reg,…。) level_numbers 指定记录的层次 0- 记录整个指定module_instance的所有信号 1- 记录指定module_instance顶层信号 n- 记录从顶层开始到下面的n层例化模块的信号 module_instance 指定例化名 net_ or reg 指定特定的wire或者reg作为记录的对象,默认是所有信号。 $vcdplusoff(module_instance,…。|net_ or reg,…) 其他系统函数可以参见VCS quick reference. 二。 其他情况 注意区别的两个方面: 1. –R –I 不同于-RI -R –I是编译成VirSim的可执行文件而且马上运行仿真, -RI是编译成VirSim的可执行文件并且调用VirSim. 2. –R –PP 不同于-RPP -R –PP是编译成VirSim的可执行文件并且在运行的时候加快输出VCD+文件 -RPP是在存在VCD+的条件下调用VirSim进行post processing的调试。 门级仿真需要反标SDF文件,可以在testbench中添加$sdf_annotate系统函数。并且在编译的时候注意要使用standcell的仿真库. |
|
|
|
只有小组成员才能发言,加入小组>>
785 浏览 0 评论
1151 浏览 1 评论
2527 浏览 5 评论
2859 浏览 9 评论
移植了freeRTOS到STMf103之后显示没有定义的原因?
2709 浏览 6 评论
keil5中manage run-time environment怎么是灰色,不可以操作吗?
1068浏览 3评论
192浏览 2评论
455浏览 2评论
368浏览 2评论
M0518 PWM的电压输出只有2V左右,没有3.3V是怎么回事?
453浏览 1评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-21 02:05 , Processed in 0.970865 second(s), Total 50, Slave 41 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号