• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

SOC/IP验证工程师

  • 博客园
  • 联系
  • 订阅
  • 管理

公告

View Post

VCD/FSDB/SHM/VPD在Vcs/Xrun 环境中的dump方法

仿真是IC设计不可或缺的重要步聚,其中仿真波形是debug的必要条件。今天简要介绍下一下几种波形文件VCD/FSDB /SHM/VPD的dump方法。
其中VCD通用性最好,VCS/XRUN环境中直接加函数dump;
对于FSDB,本文讲述了VCS/XRUN 2种环境中基于函数和Tcl的2种dump方法;
对于SHM, 本文简要介绍了XRUN中基于函数和Tcl的2种dump方法;
对于VPD,本文简要介绍了VCS中函数dump方法;
一、VCD (Valve Change Dump)
VCD是一个通用的格式。VCD文件是1EEE1364标准(Verilog HDL语言标准)中定义的一种ASCI文件。它主要包含了头信息,变量的预定义和变量值的变化信息。因为它包含了信号的变化信息,就相当于记录了整个仿真的信息,我们可以用这个文件来再现仿真,也就能够显示波形用于DEBUG。因为VCD是 Verilog HDL语言标准的一部分,因此所有的veriog的仿真器都要能够实现这个功能,也要允许用户在verilog代码中通过系統函数来dump VCD文件。我们可以通过Verilog HDL的系统函数dumpfile来 生成波形,通过dumpvars的参数来规定我们抽取仿真中某些特定模块和信号的数据。

特别说明的一点是,目前主流功耗分析工具都支持通过VCD文件来评估功耗。Encounter 和 PrimeTime Px (Prime Power)都可以通过输入网表文件,带功耗信息的库文件以及仿真后产生的VCD文件来实现功耗分析。VCD本质是文本文件,文件占用较大内存,极大拖慢仿真速度,但是由于对功耗分析支持比较友好,因此各种EDA仿真均有dump VCD的需求。
二、FSDB (Fast Signal DataBase)
FSDB 是Spring Soft (Novas) 公司 Debussy / Verdi 支持的波形文件,一般文件占用内存较小,使用较为广泛,其余仿真工具如ncsim,modlesim等等可以通过加载Verdi 的PLI 来dump fsdb文件。fsdb文件是verdi使用一种专用的数据格式,类似于VCD,但是它是只提取仿真过程中信号的有用信息,除去了VCD中信息元余,就像对VCD数据进行了一次huttman编码。因此fsdb数据量小,可以极大地提高仿真速度。本质上VCD文件使用verilog内置的系统函数来实现dump 的,fsdb是通过verilog的PLI接口来实现的。


其余波形文件就是各家不同的仿真或调试工具支持的文件类型,互不通用。但基本都可以由VCD文件转换而来(其实就是VCD文件的压缩版,因为只取仿真调试需要的数据,所以文件大小要远小于原始VCD文件)。
三、SHM
SHM 是Cadence公司 NC verilog 和Simvision 支持的波形文件,实际上 shm是一个目录,其中包含了 dsn和 tn两个文件。用simvision xxx.shm来打开波形。

四、VPD
VPD是Synopsys公司 VCS DVE支持的波形文件,现在逐渐被fsdb取而代之。用dve –vpd test.vpd打开对应波形。
生成VPD方法如下:
仿真bash中加入编译选项: -debug_pp +vcd+vcdpluson
Bench中添加dump函数:

以上介绍的基本方法,仅供参考,不同版本可能略有不同,具体的设置细节,需要查询对应的help文档。官方help文档提供了更为灵活而有效率的使用方法。

posted on 2023-05-20 11:36  SOC验证工程师  阅读(6153)  评论(0)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3