逻辑仿真工具-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的更多相关文章

  1. 02-逻辑仿真工具VCS使用

    逻辑仿真工具VCS使用 1 Makefile执行VCS仿真 # Makefile for simulating the full_adder.v with the simulator VCS # -- ...

  2. 01-逻辑仿真工具VCS使用

    1 逻辑仿真工具VCS的使用 在书写完成RTL代码之后,确保自己书写的代码和自己想要的逻辑是一致的. VCS是synopsys公司下的的仿真工具. 1 VCS仿真过程 编译-->仿真--> ...

  3. 027 01 Android 零基础入门 01 Java基础语法 03 Java运算符 07 逻辑“与”运算符

    027 01 Android 零基础入门 01 Java基础语法 03 Java运算符 07 逻辑"与"运算符 本文知识点:Java中的逻辑"与"运算符 逻辑运 ...

  4. VCS 常用命令速查

      VCS是编译型Verilog模拟器,它完全支持OVI标准的Verilog HDL语言.PLI和SDF.VCS具有目前行业中最高的模拟性能,其出色的内存管理能力足以支持千万门级的ASIC设计,而其模 ...

  5. Windows7WithSP1/TeamFoundationServer2012update4/SQLServer2012

    [Info   @09:03:33.737] ====================================================================[Info   @ ...

  6. DataStage 七、在DS中使用配置文件分配资源

    DataStage序列文章 DataStage 一.安装 DataStage 二.InfoSphere Information Server进程的启动和停止 DataStage 三.配置ODBC Da ...

  7. DDR3 IP和CIC IP仿真问题解决记录

    1.更新vivado的仿真库(data/secureip和verilog和vhdl文件夹)至最新的vivado库和生成IP的版本匹配: 2.vcs编译脚本里面把仿真库地址指向匹配的仿真库版本: 3.v ...

  8. Windbg调试命令详解

    作者:张佩][原文:http://www.yiiyee.cn/Blog] 1. 概述 用户成功安装微软Windows调试工具集后,能够在安装目录下发现四个调试器程序,分别是:cdb.exe.ntsd. ...

  9. modelsim(3) - tips(zt)

    1)如果需要跟踪信号,可以使用dataflow,直观,缺点是后仿太慢! http://www.cnblogs.com/asus119/archive/2011/04/01/2002525.html M ...

  10. oracle10g在rh6上安装缺少libXtst*的包导致不能出OUI

    由于测试需要,今天在linux6.0上装了下oracle10g,确实是知道oracle10g已经不支持redhat5.0以后的版本了,但是根据自己以往在redhat5.0上装oracle的经验就鲁莽下 ...

随机推荐

  1. MinIO客户端之ping

    MinIO提供了一个命令行程序mc用于协助用户完成日常的维护.管理类工作. 官方资料 mc ping 检查指定的MinIO节点的服务是否可用. 不带参数,命令如下: ./mc ping local1 ...

  2. ElasticSearch之Clear cache API

    本方法用于清理缓存. 命令样例如下: curl -X POST "https://localhost:9200/testindex_001/_cache/clear?pretty" ...

  3. 以报时机器人为例详细介绍tracker_store和event_broker

      报时机器人源码参考[1][2],本文重点介绍当 tracker_store 类型为 SQL 时,events 表的表结构以及数据是如何生成的.以及当 event_broker 类型为 SQL 时, ...

  4. 2021平(jia)凡(ban)的一年

    0x00 刚刚把<平凡的世界>电视剧看完.也不知道什么原因,又去刷了一遍, 可能是有那么一段时间比较迷茫.加班加到怀疑人生了吧. 记得当年第一次看这本小说还是17年,好像是为了借一本什么书 ...

  5. Java 将Excel工作簿按工作表拆分为多个文档

    本文介绍在Java代码环境中如何将Excel工作簿按工作表拆分为多个Excel文档,即:把Excel工作簿中的每一个工作表单独保存为一个Excel工作簿文件. 思路及方法:通过将源文档中的每个工作表通 ...

  6. 神经网络基础篇:梯度下降法(Gradient Descent)

    梯度下降法 梯度下降法可以做什么? 在 测试集上,通过最小化代价函数(成本函数)\(J(w,b)\)来训练的参数\(w\)和\(b\), 如图,在第二行给出和之前一样的逻辑回归算法的代价函数(成本函数 ...

  7. 云小课|MRS基础原理之Hudi介绍

    阅识风云是华为云信息大咖,擅长将复杂信息多元化呈现,其出品的一张图(云图说).深入浅出的博文(云小课)或短视频(云视厅)总有一款能让您快速上手华为云.更多精彩内容请单击此处. 摘要:Hudi是数据湖的 ...

  8. 从原理带你掌握Spring MVC拦截处理器知识

    摘要:SpringWebMVC的处理器拦截器,类似于Servlet开发中的过滤器Filter,用于处理器进行预处理和后处理. 本文分享自华为云社区<不讲废话,全程干货,0基础带你学习Spring ...

  9. 火山引擎DataTester:企业如何使用A/B实验优化商业化能力

      商业化是企业将研发成果,如新产品.新技术.新服务等,转变成可盈利的商业化产品:整个流程中包含了研发.推广.服务,全程通过精细化管理运营.商业化的本质是流量的变现,而对企业而言,商业化链路的打磨至关 ...

  10. MySQL 错误记录:Data too long for column 'xxx' at row 1

    Content 字段是 text 类型(Text是6万多)改成了 longtext 就OK了 ALTER TABLE `Article` CHANGE `Content` `Content` LONG ...