07-逻辑仿真工具VCS-Post processing with VCD+ files
逻辑仿真工具-VCS

- 编译完成不会产生波形,仿真完成之后,生成波形文件,通过dve产看波形
- vcd是波形文件的格式,但是所占的内存比较大,后面出现了vpd(VCD+)波形文件
- 将一些系统函数嵌入到源代码中,VCS不会自动保存波形文件
- Dump波形,就是将仿真波形记录下来
1.后处理考虑的因素

- 在设计的初期或者验证平台搭建初期保存波形,随着项目进行就不会保存波形文件
2.什么时候进行post-processing

3.什么是VCD+

- DVE只支持VCD+文件,
4.波形产生函数

在verilog中代码,嵌入$vcdpluson()函数dump波形




不带参数,将所在的module波形以及包含的子模块的波形都保存
5.编译选项


- +vpdfile+filenames -- 重命名产生的波形文件



- `ifdef 条件编译
- $values$plusargs
6.使用Makefile进行VCS后处理
Makefile文件
# 产生的二进制可执行文件
OUTPUT = simv_fsm_moore
# 进行宏定义,用于条件编译
ALL_DEFINE = +define+DUMP_VPD
# vpd file name
VPD_NAME = +vpdfile+${OUTPUT}.vpd
# compile command
VCS = vcs -sverilog +v2k -timescale = 1ns/1ns
-debug_all
+vcs+flush+all
${ALL_DEFINE}
${VPD_NAME}
-o ${OUTPUT}
-l compile.log
# simulation command
SIM = ./${OUTPUT}
${VPD_NAME}
-l ${OUTPUT}.log
# start compile
com:
${VCS} -f file_list.f
# start simulation
sim:
${SIM}
#start clean
rm -rf ./csrc *.daidir ./csrc *.log *.vpd *.vdb simv* *.key *race.out*
file_list.f
-timescale = 1ns/1ns
// Macro define
// +define+INC_COUNTER
// Source file
./rtl/fsm_moore.v
//testbench
./tb/fsm_top.v
./tb/hello.c
- make clean -- 删除当前目录下产生的仿真文件
- make com -- 执行编译
- dve & -- 打开图形化界面-->file-->找到xx.vpd文件
- dve -vpd xxx.vpd & -- 打开图形化界面,并且将波形文件加载进去
// verilog
initial begin
`ifdef DUMP_ME
$vcdpluson(); // 不加参数,dump所有波形
$vcdpluson(1,fsm_top); //只记录top层的波形
`endif
end
- VCS默认是不会记录数组波形的
- 使用$vcdplusmemon(); dump数组的波形
dump数组的波形
// 在top层中定义了mem
reg [7:0] mem[0:15]
// 使用$readmemh()函数进行初始化
initial begin
$readmemh('./data/src.txt',mem); // 将src.txt文件内容加载到mem中
for(i = 0;i<16;i = i+1) begin
$display("mem[%2d]" = "%8h",i,mem[i]); // 打印数组的内容
end
end
src.txt内容
@0000
7
6
4
7
a
b
@0009
11
12
13
// 使用 $vcdplusmemon() dump数组的波形
initial begin
`ifdef DUMP_ME
$vcdplusmemon();
`endif
end
7.Skills
initial begin是并行的,执行顺序位置,可以通过宏确定执行语句的文件及行数
__FILE__,LINE- 执行仿真之后,由于有上面的宏,并且显示出文件路径以及执行的行数
initial begin
$display("Hello Verilog!",`__FILE__,`__LINE__)
end
initial begin
$display("Hello Verilog!",`__FILE__,`__LINE__)
end
initial begin
$display("Hello Verilog!",`__FILE__,`__LINE__)
end
07-逻辑仿真工具VCS-Post processing with VCD+ files的更多相关文章
- 02-逻辑仿真工具VCS使用
逻辑仿真工具VCS使用 1 Makefile执行VCS仿真 # Makefile for simulating the full_adder.v with the simulator VCS # -- ...
- 01-逻辑仿真工具VCS使用
1 逻辑仿真工具VCS的使用 在书写完成RTL代码之后,确保自己书写的代码和自己想要的逻辑是一致的. VCS是synopsys公司下的的仿真工具. 1 VCS仿真过程 编译-->仿真--> ...
- 027 01 Android 零基础入门 01 Java基础语法 03 Java运算符 07 逻辑“与”运算符
027 01 Android 零基础入门 01 Java基础语法 03 Java运算符 07 逻辑"与"运算符 本文知识点:Java中的逻辑"与"运算符 逻辑运 ...
- VCS 常用命令速查
VCS是编译型Verilog模拟器,它完全支持OVI标准的Verilog HDL语言.PLI和SDF.VCS具有目前行业中最高的模拟性能,其出色的内存管理能力足以支持千万门级的ASIC设计,而其模 ...
- Windows7WithSP1/TeamFoundationServer2012update4/SQLServer2012
[Info @09:03:33.737] ====================================================================[Info @ ...
- DataStage 七、在DS中使用配置文件分配资源
DataStage序列文章 DataStage 一.安装 DataStage 二.InfoSphere Information Server进程的启动和停止 DataStage 三.配置ODBC Da ...
- DDR3 IP和CIC IP仿真问题解决记录
1.更新vivado的仿真库(data/secureip和verilog和vhdl文件夹)至最新的vivado库和生成IP的版本匹配: 2.vcs编译脚本里面把仿真库地址指向匹配的仿真库版本: 3.v ...
- Windbg调试命令详解
作者:张佩][原文:http://www.yiiyee.cn/Blog] 1. 概述 用户成功安装微软Windows调试工具集后,能够在安装目录下发现四个调试器程序,分别是:cdb.exe.ntsd. ...
- modelsim(3) - tips(zt)
1)如果需要跟踪信号,可以使用dataflow,直观,缺点是后仿太慢! http://www.cnblogs.com/asus119/archive/2011/04/01/2002525.html M ...
- oracle10g在rh6上安装缺少libXtst*的包导致不能出OUI
由于测试需要,今天在linux6.0上装了下oracle10g,确实是知道oracle10g已经不支持redhat5.0以后的版本了,但是根据自己以往在redhat5.0上装oracle的经验就鲁莽下 ...
随机推荐
- 深入理解 Docker 核心原理:Namespace、Cgroups 和 Rootfs
通过这篇文章你可以了解到 Docker 容器的核心实现原理,包括 Namespace.Cgroups.Rootfs 等三个核心功能. 如果你对云原生技术充满好奇,想要深入了解更多相关的文章和资讯,欢迎 ...
- 神经网络优化篇:如何理解 dropout(Understanding Dropout)
理解 dropout Dropout可以随机删除网络中的神经单元,为什么可以通过正则化发挥如此大的作用呢? 直观上理解:不要依赖于任何一个特征,因为该单元的输入可能随时被清除,因此该单元通过这种方式传 ...
- pytest框架中conftest.py的作用
conftest.py 是 pytest 框架中的一个特殊文件.它允许你为测试提供自定义的配置和钩子函数.以下是 conftest.py 的主要作用: 提供全局配置:你可以在 conftest.py ...
- 玩转Python:用Python处理文本数据,附代码
Python 提供了多种库来处理纯文本数据,这些库可以应对从基本文本操作到复杂文本分析的各种需求.以下是一些常用的纯文本处理相关的库: str 类型: Python 内建的字符串类型提供了许多简便的方 ...
- 5分钟搞定vue3函数式弹窗
前言 最近接到一个需求,需要在一些敏感操作进行前要求输入账号和密码,然后将输入的账号和密码加到接口请求的header里面.如果每个页面都去手动导入弹窗组件,在点击按钮后弹出弹窗.再拿到弹窗返回的账号密 ...
- Unicode编码:打破语言壁垒,实现无缝交流
Unicode编码是一种用于表示文本字符的编码系统,它旨在解决不同字符集之间相互兼容的问题,使各种语言和文化得以在数字世界中无缝交流.本文将从多个方面介绍Unicode编码的概念.原理及其在现实中的应 ...
- 微服务架构下,DLI的部署和运维有何奥秘?
摘要:探讨DLI两个问题:如何在生产环境中部署与运维实现快速迭代上线,如何实现监控告警来提升整体运维能力. 华为云数据湖探索DLI是支持多模引擎的Serverless大数据计算服务,其很好的实现了Se ...
- 一文带你了解EiPaaS和EiPaaS的国际趋势
摘要:EiPaaS (Enterprise Integration Platform as a Service) 是企业级的集成平台和服务. 本文分享自华为云社区<初识EiPaaS和EiPaaS ...
- 带你读顶会论文丨基于溯源图的APT攻击检测
摘要:本次分享主要是作者对APT攻击部分顶会论文阅读的阶段性总结,将从四个方面开展. 本文分享自华为云社区<[论文阅读] (10)基于溯源图的APT攻击检测安全顶会总结>,作者:eastm ...
- AI为啥能读懂说话人的情感?
摘要:本文介绍了语音情感识别领域的发展现状,挑战,重点介绍了处理标注数据缺乏的问题. 本文分享自华为云社区<语音情感识别的应用和挑战>,作者:SSIL_SZT_ZS. 情感在人与人的交流中 ...