vcd文件中存储多维数组 vcs_VCS课时4: 使用VCD文件进行后处理

本课程介绍了如何利用VCD和VCD+文件进行仿真后处理,包括如何在VCS中插入dump波形指令生成VCD/VCD+文件,DVE工具的使用方法,层次化记录波形,以及调试过程中的技巧。重点讲解了VCD+的系统任务,如 `$vcdpluson` 参数调整,以及如何在DVE中查看和分析波形。同时,课程还涵盖了Makefile在自动化流程中的应用。
摘要由CSDN通过智能技术生成

课程目标

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

查看波形文件

查看log文件

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

f37ea8bc13774f6e992b55d8c49de3eb.png

在仿真代码中,嵌入dump 波形

产生VCD文件

DVE在仿真后步骤

1 DVE后处理模式

PPT1

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

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

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

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

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

PPT2

aadb06b55ef7a2e658dfbff4b0ccd9cc.png

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

PPT3

85fb9ecac26922a0cb1a8aaeb376d42d.png

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

PPT4

14975fd7ca96fd470a55e82fed6fe48b.png

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

2 VCD+的系统任务

PPT1

0974acc5cd63820055861c8dbca69f6b.png

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

PPT2

e85f92ed0889bb8a78f80737a26a63d2.png

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

PPT3

6597f966503f61c1d1be8855464d7a81.png

PPT4 例子

3326102

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

$readmenb display语句

3 VCD+文件的编译

PPT1

559ff9569811d1b725e2edac66ddcf6a.png

files 编译需要的文件

vcdplus_switchs 打开vcd+系统任务

直接的就是 vcs source.v -degugg_all

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

PPT2

63984273615f94dc4bb525d4ce5f5f43.png

-debug_all全部开关打开对性能影响比较大,-pp打开关键的开关

+vpdfile+filename 指定生成的vpd文件

后面三个用的比较多

4 小技巧

PPT1

d13a3065a368976e0178fd3fb9a42b5f.png

PPT2

420a2d6c2dc3817bb2c4a49daefe0019.png

PPT3

434a66c53fa76665bb143331d750a5de.png

5. 课程实验

Makefile的格式

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

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

开始的几句

1f56fcfc773a042193af3a3bf0bc3e7a.png

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

68c857e3748670d5bb99989275061bea.png

VCS的编译命令

a933727b633135d1ad2f6eaafe4e0243.png

包括了时序检查

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

7757b6e58889d9ccca6e6283e0612335.png

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

18e3495c1f8c3adaa982a78a6dea230b.png

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

0785578c5dac92021a8288fdf4d6edff.png

verilog文件加入命令

e08524226e281b1a22a35db477c04556.png

各种不同的vcdpluson

makefile执行

make clean执行makefile下的清除命令

make con执行编译命令

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

make sim执行仿真

dve打开波形文件

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

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

debug的过程,发现信号哪里错了,鼠标移动到那,双击会跳到源文件中去

dve -vpd ***文件名

只记录顶层信号

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

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

42432481c891fb5a1743a96824ae1aa3.png

加载数组并记录

70e1d05e8e08148af38f1f4496e86778.png

.txt文本记录的数据

68ea0d0cbb5df1d2a2347a4c7c6a43c1.png

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

6584cecddbfe48825a0d45b1451947f2.png

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

波形信号的显示为:

963b2316ffe26f3c4b1253ec17c01dbe.png

加入display语句

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

41b24069fada5812df6581166d0c7606.png

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

9f6472b2fefb23db60aaa78d5e48f678.png

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

8caba75b2fbfefbfe5a05b23e5a15103.png

重要的宏__file__和__line__

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

b0b440e8aca512164dbb3fef66d9dbdc.png

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

33d6741f3ee55a87bc35b51064790edf.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值