课程目标
原来是互动的过程,这一节课主要讲的是仿真平台完成任务,用DVE打开打开波形文件
- 查看波形文件
- 查看log文件
最早的是VCD文件,在这基础上推出的VCD+文件,文件比较大,读取慢
- 在仿真代码中,嵌入dump 波形
- 产生VCD文件
- 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 例子
不带参数:仿真哪个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打开波形文件
dve &
左上角file找到vpd+文件
选择波形信号,然后加入到波形文件add wave view
- debug的过程,发现信号哪里错了,鼠标移动到那,双击会跳到源文件中去
dve -vpd ***文件名
只记录顶层信号
更改记录波形的命令$vcdpluson(1, fsm_top)
重新编译,结果只计入top层
加载数组并记录
.txt文本记录的数据
重新编译终端会显示的结果如下:
默认情况下是不会记录的数组的,打开开关vcdolusmemon()
波形信号的显示为:
加入display语句
第一句加在仿真文件里为:
第二句和第三句为,加在设计文件里面
开始仿真,终端打出了三个hello verilog,问题是你不知道是哪一个文件的输入。可能是随机执行顺寻
重要的宏__file__
和__line__
加入了宏,告诉额外的信息,哪一个文件的哪一行
重新执行仿真,不同的是:
原文地址:https://www.cnblogs.com/ICworkman/p/12076214.html