vcd文件中存储多维数组 vcs_VCS课时4: 使用VCD文件进行后处理
课程目标
原来是互动的过程,这一节课主要讲的是仿真平台完成任务,用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__
加入了宏,告诉额外的信息,哪一个文件的哪一行
重新执行仿真,不同的是:
标签:仿真,文件,VCD,波形,vpd,课时,编译,VCS
来源: https://www.cnblogs.com/ICworkman/p/12076214.html
vcd文件中存储多维数组 vcs_VCS课时4: 使用VCD文件进行后处理相关推荐
- vcd文件中存储多维数组 vcs_IC设计——EDA软件篇——VCS使用
1. 基础知识 运行机理 HDL仿真器编译代码的过程由编译,建模和仿真三个阶段(详情见该文第4大点:https://blog.csdn.net/qq_39815222/article/details/ ...
- vcd文件中存储多维数组 vcs_怎样在Modelsim软件中产生一个.vcd文件并且显示波形?...
解决方案ID: rd07062010_692 最后修改: 2012 年9 月11 日 产品类别: 设计软件 产品领域: 仿真/一致性验证 产品子领域: ModelSim-Altera(仿真/一致性验证 ...
- Verilog中的二维数组及其初始化
Verilog中的二维数组 Verilog中提供了两维数组来帮助我们建立内存的行为模型.具体来说,就是可以将内存宣称为一个reg类型的数组,这个数组中的任何一个单元都可以通过一个下标去访问.这样的数组 ...
- 二维数组在c语言中的作用,C语言中的二维数组
1.二维数组的定义和引用 一. 数据类型 数组名[常量表达式1][常量表达式2]; (1)假如有个二维数组array[n][m],则行下标的取值范围0~n-1 (2)列下标的取值范围0~m-1 (3) ...
- java代码中fastjson生成字符串和解析字符串的方法和javascript文件中字符串和json数组之间的转换方法...
1.java代码中fastjson生成字符串和解析字符串的方法 List<TemplateFull> templateFulls = new ArrayList<TemplateFu ...
- 【C 语言】文件操作 ( 读取文件中的结构体数组 | feof 函数使用注意事项 )
文章目录 一.读取文件中的结构体数组 | feof 函数使用注意事项 二.代码示例 一.读取文件中的结构体数组 | feof 函数使用注意事项 读取文件结构体时 , 可以循环读取文件中的数据 , 只使 ...
- java 数组存入数据库_Java中关于二维数组的理解与使用
今天练习的时候遇到一个题目,题目需求是这样的: 需求说明: 根据3个班各5名学生某门课程的成绩,正确使用二维数组计算如图所示3个班各自的总成绩 分析: 要实现这个功能需要存储两个信息: 一个是班级信息 ...
- c语言字符串二维数组的动态分配应,C语言中动态分配二维数组复习过程.doc
C语言中动态分配二维数组复习过程.doc C语言中动态分配二维数组在C中动态分配内存的,对于单个变量,字符串,一维数组等,都是很容易的.C中动态分配二维数组的方法,很少有C语言书中描述,我查找了有的C ...
- scala中的二维数组_Scala中的多维数组
scala中的二维数组 多维数组 (Multi-dimensional arrays) An Array that stores data in the form multidimensional m ...
最新文章
- python的flask框架显示柱状图_使用Python的Flask框架,结合Highchart,动态渲染图表(Ajax 请求数据接口)...
- VC6里面的中文名字或者注释复制乱码解决
- Axure元件库:ElementUI元件、蚂蚁金服元件
- 2020有效的邮箱号大全_2020年公众号免费裂变涨粉的3个有效方法,让我一天涨粉6000...
- 【动态规划】天上掉馅饼
- SpringMVC中RequestMethod同时支持POST和GET访问
- 自学鄙视链顶端的王者
- 【C++】获取二维数组的行和列
- 300字总结计算机flash,Flash学习心得体会范文
- 兄弟们,以后不能愉快的抽烟
- 成都盛铭轩:电商图片必备哪些信息
- 教你利用clustalw和blat解决接头问题问题
- bable.js是什么
- 开源项目怎么找?最新的优质开源项目来了
- windows NTFS文件系统手动数据恢复
- 刚开始怎么做好项目管理?
- 2018年5月25日 晴
- excel打开之后很小
- 优质且免费的10个在线图片设计网站!
- Improving speech recognition by revising gated recurrent units