汇佳网为您带来《vcd是什么格式(vcd格式用什么软件打开)》,本文围绕vcd是什么格式展开分析,讲述了关于vcd是什么格式相关的内容,希望您能在本文中获取到有用的信息!

  在verilog和systemverilog等逻辑仿真的过程中,最关心的就是最后生成的波形是如何,我们才能根据波形去具体分析。但是往往会根据各个公司和各个平台工具的不同,会产生不同的波形文件,那么不同的波形文件,有什么不同?接下来会分别进行描述。并且对主要用到两种波形文件,如何生成及语法做简要介绍。

vcd是什么格式(vcd格式用什么软件打开)

  通常不同的仿真工具产生的不同波形文件主要有这些,WLF(Wave Log File)、VCD(Value Change Dump)文件,fsdb(Fast Signal DataBase)、shm、vpd。

  1.WLF (Wave Log File)

  Mentor Graphics 公司Modelsim支持的波形文件。

  在modelsim波形窗口观察波形时,仿真结束时都会生成一个*.wlf的文件(默认是vsim.wlf),可以用modelsim直接打开,命令如下:

  其中,run.do中的内容为要查看的波形信号。

  这个wlf文件只能由modelsim来生成,也只能通过modelsim来显示。不是一个通用的文件格式。

  2.VCD(Value Change Dump)

  IEEE1364标准(Verilog HDL语言标准)中定义的一种ASCII文件,是通用的文件格式。

  它主要包含了头信息,变量的预定义和变量值的变化信息。正是因为它包含了信号的变化信息,就相当于记录了整个仿真的信息,我们可以用这个文件来再现仿真,也就能够显示波形,但是波形文件会很大。因为VCD是 Verilog HDL语言标准的一部分,因此所有的verilog的仿真器都能够查看该文件,允许用户在verilog代码中通过系统函数来dump VCD文件。

  我们可以通过modelsim 命令来dump VCD文件,这样可以扩展到VHDL中。具体的命令:

  特别说明的一点是,正是因为VCD记录了信号的完整变化信息,我们还可以通过VCD文件来估计设计的功耗,而这一点也是其他波形文件所不具备的。Encounter 和 PrimeTime PX (Prime Power)都可以通过输入网表文件,带功耗信息的库文件以及仿真后产生的VCD文件来实现功耗分析。

  3.FSDB (Fast Signal DataBase)

  Spring Soft (Novas)公司 Debussy / Verdi 支持的波形文件,一般较小,使用较为广泛,其余仿真工具如ncsim,modlesim 等可以通过加载Verdi 的PLI (一般位于安装目录下的share/pli 目录下) 而直接dump fsdb文件。

  fsdb文件是verdi使用一种专用的数据格式,类似于VCD,但是它是只提出了仿真过程中信号的有用信息,除去了VCD中信息冗余,就像对VCD数据进行了一次huffman编码。因此fsdb数据量小,而且会提高仿真速度。我们知道VCD文件使用verilog内置的系统函数来实现 的,fsdb是通过verilog的PLI接口来实现的,例fsdbDumpfile, fsdbDumpvars等。示例如下:

  //testbench中加入内容:

  4.shm

  Cadence公司 NC verilog 和Simvision支持的波形文件,实际上 .shm是一个目录,其中包含了.dsn和.trn两个文件。使用NC Verilog 对同一testcase和相同dump波形条件的比较,产生shm文件的时间最短(废话,本来就是一个公司的),产生vcd文件的时间数倍于产生shm和 fsdb的时间。在笔者测试的例子中,产生的fsdb文件为十几MB,shm文件为几十MB,而vcd文件则要几个GB的大小。

  5.vpd

  Synopsys公司 VCS DVE支持的波形文件,可以用$vcdpluson产生。

  6. 其余波形文件

  就是各家不同的仿真或调试工具支持的文件类型,互不通用,但基本都可以由VCD文件转换而来(其实就是VCD文件的压缩版,因为只取仿真调试需要的数据,所以文件大小要远小于原始VCD文件),有的还提供与VCD文件的互转换功能。

  ————————————–强迫症分割线————————————–

  Verilog提供一系列系统任务用于记录信号值变化,常见的格式有vcd,fsdb等。

  接下来对这两种波形文件的生成及语法做一个简要介绍:

  1.VCD

  Dump VCD格式

  用法:

  关于 VCD $dumpvars 的用法:

  2.fsdb

  1). 一个自由开关FSDB 的方法有时候要运行很长时间的仿真,但是关心的波形却只是其中一小段。这个时候怎么来开关波形,使文件不至于太过庞大呢?这里介绍一个方法。示例仅供参考,大家可以结合实际应用创造出更加多样的变化来。

  $fsdbAutoSwitchDumpfile,表示文件大小,单位MB;表示文件前缀名,生成dump文件后,会在后面自动加001,002,一直到最大,即表示文件个数,就会返回到开始覆盖000开始的文件,一直循环。

  $fsdbDumpfile,表示文件前缀名字,不约束文件大小,只会生成一个文件,知道运行结束为止。

  $fsdbDumpvars,表示仿真深度,*表示具体dumo的模块,具体可以参考VCD $dumpvars 的用法,如果有更多的模块,可以在后面继续加。

  2). 我们比较常用的一般还有$value$plusargs 这个task,在test_top 中:

  通过脚本在run的时候把casename传递进去(给vcs/nc SIM_ARG:+casename=$Testcase_name.fsdb)

  如果同时跑多个testcase 的时候可以同时dumpfsdb,另外就是跳过一些时间开始。

  具体解析可以跳转链接

  3). project 中每个人关注的module 不同,为了频繁去修改test_top 的dump,一般也会把需要dump 的内容用dumplist的file 来实现。

  用的时候一般是在test_top.v 添加相关的语句:

  2.其他文件生成参考

  1、VCS仿真生成fsdb文件(verilog)

  2、VCS仿真生成VPD文件(verilog)

  3、VSIM生成fsdb波形文件(verilog)

  4、Vsim(ModelSim)生成VCD波形文件(verilog)

  5、vsim(modelsim)仿真VHDL输出fsdb格式文件

  6、ncsim仿真VHDL

《vcd是什么格式(vcd格式用什么软件打开)》来自网络,本文围绕vcd是什么格式的观点不代表本网站,仅作参考。

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。