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

SOC/IP验证工程师

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

公告

View Post

Verilog中dump vcd格式的波形文件

值变转储文件(VCD)是一个ASCII文件,它包含仿真时间、范围与信号的定义以及仿真运行过程中信号值的变化等信息。设计中的所有信号或者选定的信号集合在仿真过程中都可以被写入VCD文件。
后处理工具可以把VCD文件作为输入并把层次信息、信号值和信号波形显示出来。现在有许多商业后处理工具以及集成到仿真器中的工具可以使用。
对于大规模设计的仿真,设计者可以把选定的信号转储到VCD文件中,并使用后处理工具去调试、分析和验证仿真输出结果。
Verilog提供了系统任务来选择要转储的模块实例或模块实例信号,选择VCD文件的名称,选择转储过程的起点和终点,选择生成监测点($dumpall),每个任务的使用方法如下所示。

//指定VCD文件名。若不指定VCD文件名,则有仿真器指定以默认文件名
$dumpfile("myfile.dump");//仿真信息转储到myfile.dump文件
//转储到模块中的信号
initial
  $dumpvars;  //没有指定变量范围,把设计中的全部信号都转储
initial
  $dumpvars(1, top); //转储模块实例top中的信号
                     //数1表示层次的等级,只转储top下第一层信号
                     //即转储top模块中的变量,而不转储在top中调用模块中的变量
initial
  $dumpvars(2, top.m1);  //转储top.m1模块下面2层的信号
initial
  $dumpvars(0, top.m1); //数0表示转储top.m1模块下面各个层的所有信号
//启动和停止转储过程
initial
  begin
    $dumpon;  //启动转储过程
    #100000 $dumpoff; //过了10000个仿真单位后,停止转储过程
  end
//生成一个检查点,转储所有VCD变量的现行值
initial
  $dumpall;

$dumpfile和$dumpbvars任务通常在仿真开始时指定,$dumpon和$dumpoff和$dumpall任务在仿真过程中控制转储过程。

posted on 2022-04-30 14:49  SOC验证工程师  阅读(1315)  评论(0)    收藏  举报

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