课程目标

原来是互动的过程,这一节课主要讲的是仿真平台完成任务,用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文件进行后处理相关推荐

  1. vcd文件中存储多维数组 vcs_IC设计——EDA软件篇——VCS使用

    1. 基础知识 运行机理 HDL仿真器编译代码的过程由编译,建模和仿真三个阶段(详情见该文第4大点:https://blog.csdn.net/qq_39815222/article/details/ ...

  2. vcd文件中存储多维数组 vcs_怎样在Modelsim软件中产生一个.vcd文件并且显示波形?...

    解决方案ID: rd07062010_692 最后修改: 2012 年9 月11 日 产品类别: 设计软件 产品领域: 仿真/一致性验证 产品子领域: ModelSim-Altera(仿真/一致性验证 ...

  3. Verilog中的二维数组及其初始化

    Verilog中的二维数组 Verilog中提供了两维数组来帮助我们建立内存的行为模型.具体来说,就是可以将内存宣称为一个reg类型的数组,这个数组中的任何一个单元都可以通过一个下标去访问.这样的数组 ...

  4. 二维数组在c语言中的作用,C语言中的二维数组

    1.二维数组的定义和引用 一. 数据类型 数组名[常量表达式1][常量表达式2]; (1)假如有个二维数组array[n][m],则行下标的取值范围0~n-1 (2)列下标的取值范围0~m-1 (3) ...

  5. java代码中fastjson生成字符串和解析字符串的方法和javascript文件中字符串和json数组之间的转换方法...

    1.java代码中fastjson生成字符串和解析字符串的方法 List<TemplateFull> templateFulls = new ArrayList<TemplateFu ...

  6. 【C 语言】文件操作 ( 读取文件中的结构体数组 | feof 函数使用注意事项 )

    文章目录 一.读取文件中的结构体数组 | feof 函数使用注意事项 二.代码示例 一.读取文件中的结构体数组 | feof 函数使用注意事项 读取文件结构体时 , 可以循环读取文件中的数据 , 只使 ...

  7. java 数组存入数据库_Java中关于二维数组的理解与使用

    今天练习的时候遇到一个题目,题目需求是这样的: 需求说明: 根据3个班各5名学生某门课程的成绩,正确使用二维数组计算如图所示3个班各自的总成绩 分析: 要实现这个功能需要存储两个信息: 一个是班级信息 ...

  8. c语言字符串二维数组的动态分配应,C语言中动态分配二维数组复习过程.doc

    C语言中动态分配二维数组复习过程.doc C语言中动态分配二维数组在C中动态分配内存的,对于单个变量,字符串,一维数组等,都是很容易的.C中动态分配二维数组的方法,很少有C语言书中描述,我查找了有的C ...

  9. scala中的二维数组_Scala中的多维数组

    scala中的二维数组 多维数组 (Multi-dimensional arrays) An Array that stores data in the form multidimensional m ...

最新文章

  1. python的flask框架显示柱状图_使用Python的Flask框架,结合Highchart,动态渲染图表(Ajax 请求数据接口)...
  2. VC6里面的中文名字或者注释复制乱码解决
  3. Axure元件库:ElementUI元件、蚂蚁金服元件
  4. 2020有效的邮箱号大全_2020年公众号免费裂变涨粉的3个有效方法,让我一天涨粉6000...
  5. 【动态规划】天上掉馅饼
  6. SpringMVC中RequestMethod同时支持POST和GET访问
  7. 自学鄙视链顶端的王者
  8. 【C++】获取二维数组的行和列
  9. 300字总结计算机flash,Flash学习心得体会范文
  10. 兄弟们,以后不能愉快的抽烟
  11. 成都盛铭轩:电商图片必备哪些信息
  12. 教你利用clustalw和blat解决接头问题问题
  13. bable.js是什么
  14. 开源项目怎么找?最新的优质开源项目来了
  15. windows NTFS文件系统手动数据恢复
  16. 刚开始怎么做好项目管理?
  17. 2018年5月25日 晴
  18. excel打开之后很小
  19. 优质且免费的10个在线图片设计网站!
  20. Improving speech recognition by revising gated recurrent units

热门文章

  1. Python利用requests和xpath爬取网页内容过程
  2. 基于element-upload的自定义图片裁剪上传
  3. php 过滤粘贴_粘贴过滤的数据时出现错误1004
  4. C语言基础——“hello word”篇
  5. 以太网包的格式 --转
  6. 为什么说技术人也要有产品思维
  7. 语音按键不能调用谷歌语音助手问题分析
  8. [会写代码的健身爱好者成长史]之Jsoup的简单使用
  9. 红木装修——重现新时代下的东方神韵
  10. js日期时间比较大小