You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ModelSim中如何在添加信号到波形窗口前获取所有信号仿真数据?

在ModelSim中先获取仿真数据再添加波形信号的方法

作为从Cadence Incisive切换到ModelSim的过来人,我完全理解你这种操作习惯转变的困惑——毕竟两款工具的流程逻辑确实有不少差异。其实ModelSim完全支持先跑完仿真、再添加波形查看历史数据的操作,下面给你详细讲两种实用方法:

方法一:直接先跑仿真,再回溯加载波形

这是最直接的方式,利用ModelSim自带的波形回溯能力,步骤如下:

  • 保留你原有的编译和加载流程:用vcom编译所有源文件和测试平台,然后用vsim加载测试平台(务必加上-voptargs=+acc参数,避免工具优化隐藏信号)
  • 跳过打开窗口和添加波形的步骤,直接运行仿真到目标时间点,比如run -all(跑完全部仿真)或者run 500ns(指定仿真时长)
  • 仿真完成后,再用add wave命令添加你需要的信号,比如添加顶层所有信号:add wave sim:/tb_top/*
  • 最后打开波形窗口并查看全部数据:view wave + wave zoom full

这时候你会发现,波形窗口里已经显示了从仿真开始到结束的所有信号数据,哪怕是在添加波形前就已经跑完的仿真周期。

方法二:保存波形数据库,后续随时加载查看

如果你的仿真时间很长、内存占用过高,或者需要后续反复查看仿真数据,可以先把仿真数据保存到WLF波形文件,再按需加载查看:

  1. 完成编译和加载后,先运行仿真:run -all
  2. 将当前仿真的所有波形数据保存到WLF文件:write wave -format wlf my_simulation_wave.wlf
  3. 关闭当前仿真会话后,后续可以直接加载这个WLF文件查看:vsim -view my_simulation_wave.wlf
  4. 加载后用add wave添加信号即可查看历史数据

完整的.do脚本示例

给你一个整合后的完整脚本参考:

# 编译源文件和测试平台
vcom -work work ./src/*.vhd
vcom -work work ./tb/tb_top.vhd

# 加载测试平台,禁用优化确保所有信号可访问
vsim -voptargs=+acc work.tb_top

# 先跑完全部仿真
run -all

# 添加顶层所有信号到波形
add wave -position end sim:/tb_top/*

# 打开波形窗口并显示全部数据
view wave
wave zoom full

关键注意点

  • 一定要加上-voptargs=+acc:ModelSim默认会做优化,可能会把未被引用的信号从仿真中移除,导致你后续添加信号时找不到。这个参数会强制保留所有信号的可访问性,和Incisive的默认行为更接近。
  • 波形回溯的前提是仿真数据还在内存中(或者已经保存到WLF文件),如果仿真后执行了restart命令,历史数据会被清空,就无法回溯了。

内容的提问来源于stack exchange,提问作者Cong Li

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 04:27:59