VCS课时4: 使用VCD文件进行后处理

课程目标

原来是互动的过程,这一节课主要讲的是仿真平台完成任务,用DVE打开打开波形文件

  • 查看波形文件

  • 查看log文件

最早的是VCD文件,在这基础上推出的VCD+文件,文件比较大,读取慢

  1. 在仿真代码中,嵌入dump 波形
  2. 产生VCD文件
  3. DVE在仿真后步骤

1 DVE后处理模式

PPT1

  • 仿真的速度(depend on data dump commands 各种开关)

    (设计验证的初期,需要我们把波形保持下来,这个时候bug比较多,但是到后面设计收敛,跑的比较久,这个时候就不需要dump波形)

  • 信号的可见性(查看仿真工具的信息,波形和log文件)

  • 问题的追踪性(可以追踪到问题出在哪儿)

  • 是否方便使用(是否对用户友好,user friendly)(verdi、debussy对应的fsdb文件,debug最好用的工具之一)

PPT2

项目里面通过makefile的文件,脚本(批处理)

PPT3

DVE目前只支持VCD plus文件,可以用相互的转换工具

PPT4

关键是dump波形,$vcdpluson(参数),可以记录部分的波形文件

2 VCD+的系统任务

PPT1

层次化的记录波形(0, A)整个模块,以A为top层的

PPT2

从memory中写入磁盘,当有任务的时候

PPT3

PPT4 例子

1576115652488

不带参数:仿真哪个module里面,以及所有的子模块信号

$readmenb display语句

3 VCD+文件的编译

PPT1

  • files 编译需要的文件
  • vcdplus_switchs 打开vcd+系统任务

直接的就是 vcs source.v -degugg_all

编译后打开vpd文件,dve -vpd vcdplus.vpd

PPT2

  • -debug_all全部开关打开对性能影响比较大,-pp打开关键的开关
  • +vpdfile+filename 指定生成的vpd文件
  • 后面三个用的比较多

4 小技巧

PPT1

PPT2

PPT3

5. 课程实验

Makefile的格式

givm显示行号,命名模式下输入: set nu

学脚本就是一劳永逸,简化操作

开始的几句

  • 代码覆盖率和设置输出文件

  • VCS的编译命令

包括了时序检查

  • 仿真的命令(这里用SIM代替了很多复杂的命令)

  • 编译命令,开始仿真命令,清除命令

技巧:在GVIM打开新的文件,进入命令行输入tabnew ./打开一个窗口显示了当前文件夹下的所有文件,上下移动光标,按enter进入改文件或者文件夹

verilog文件加入命令

各种不同的vcdpluson

makefile执行

make clean执行makefile下的清除命令

make con执行编译命令

编译上产生的log文件和终端产生的信息是一样的,语法错误会在这里记录下来

make sim执行仿真

dve打开波形文件

  1. dve & 左上角file找到vpd+文件

选择波形信号,然后加入到波形文件add wave view

  • debug的过程,发现信号哪里错了,鼠标移动到那,双击会跳到源文件中去
  1. dve -vpd ***文件名

只记录顶层信号

更改记录波形的命令$vcdpluson(1, fsm_top)

重新编译,结果只计入top层

加载数组并记录

.txt文本记录的数据

重新编译终端会显示的结果如下:

默认情况下是不会记录的数组的,打开开关vcdolusmemon()

波形信号的显示为:

加入display语句

第一句加在仿真文件里为:

第二句和第三句为,加在设计文件里面

开始仿真,终端打出了三个hello verilog,问题是你不知道是哪一个文件的输入。可能是随机执行顺寻

重要的宏__file____line__

加入了宏,告诉额外的信息,哪一个文件的哪一行

重新执行仿真,不同的是:

猜你喜欢

转载自www.cnblogs.com/ICworkman/p/12076214.html
VCS