【问题标题】:With ModelSim, how to obtain all signals' simulation data before adding signals to waveform window?使用ModelSim,如何在将信号添加到波形窗口之前获取所有信号的仿真数据?
【发布时间】:2018-03-27 14:53:52
【问题描述】:

背景:ModelSim v10.4d 与 quartus v16.0 一起安装

我是 Cadence Incisive 用户,现在必须通过指导 ModelSim,但使用 ModelSim,我无法找到在将所有信号数据添加到波形窗口之前获取所有信号数据的方法。

例如,

在 .do(tcl) ModelSim 仿真脚本中,典型的流程可能是:

1,vcom : compile all sources files and testbench
2,vsim : load testbench for simulation
3,view structure/signals/wave : open some windows
4,add wave : add signals to waveform window
5,run xx us : run simulation for a certain time

使用此流程,每次将信号添加到波形窗口时,我都必须重新执行第 5 步,否则对于新添加的信号,它将显示“NO DATA”。

所以我想知道是否有可能我们跳过第4步,只执行第5步以获得所有信号的模拟数据,然后我们选择要发送到波形窗口的信号,并且我们拥有每个信号的数据而无需重新执行“运行”。

【问题讨论】:

    标签: vhdl verilog modelsim intel-fpga


    【解决方案1】:

    您需要的命令是log。参考手册说:

    此命令创建一个波形日志格式 (WLF) 文件,其中包含名称与提供的规范匹配的所有 HDL 对象的仿真数据。

    试试这个流程,你可以在第 5 步结束前进入第 6 步:

    1- vcom *.vhd :编译所有源文件和测试台
    2- vsim work.my_tb :加载测试平台进行模拟
    3-视图结构/信号/波形:打开一些窗口
    4- log * -r :告诉modelsim记录一切
    5- run xx us : 运行模拟一段时间
    6-将信号添加到波形窗口

    使用log * -r 会减慢模拟速度并填满您的磁盘。因此,您可能希望针对设计的特定部分而不是使用*,或者可能希望使用-depth 选项来限制深度。完整的详细信息可以在 Modelsim 参考手册中找到,可通过Help 菜单获得。

    【讨论】:

    • 谢谢!这正是我想要的。其实我并没有很大的项目,所以我没觉得log * -r减慢了模拟速度。
    【解决方案2】:

    如果您想在设计中添加每个信号,只需执行以下操作:

    add wave -recursive -depth 10 *
    

    这会将每个信号添加到多达 10 级的层次结构深度。请注意,信号记录仅适用于在add 命令之后运行的仿真。

    在大型设计中,记录每个信号会导致仿真速度变慢。通过在运行仿真之前挑选您真正感兴趣的信号,您将获得最短的仿真运行时间。

    您可以使用“sim”面板快速浏览设计,然后右键单击“对象”面板中的对象以添加到 wave 中。在这里您也可以添加到> Wave > 区域内的信号,或者在“sim”面板中您可以添加到> Wave > 区域内及以下的信号

    【讨论】:

    • 模拟速度变慢,因为所有选定的信号都记录到一个文件中。这个文件 IO 当然比简单的操作要慢得多。捕获。
    • 如果对象窗口没有显示信号,那么这不是真的,所以从技术上讲,sim 数据还没有“获得”,使用 OP 的话。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多