使用scansion查看波形

问题描述 投票:0回答:2

注意:如果有更好的地方让我问这个,请告诉我!我已经广泛搜索,无法找到答案

我正在尝试使用波形查看器scansion查看简单计数器/ sin LUT的输出。我正在使用icarus verilog进行编译。到目前为止,我在命令行上运行了iverilog -o sinGen_TB sinGenerator_TB,然后是vvp sinGen_TB

我收到一条错误,上面写着“文档”sinGen_TB“无法打开.Scansion无法打开此类文件。”

或者,当我将文件保存为sinGen_TB.vvp或sinGen_TB.vcd时,我无法打开“文档”sinGen_TB.vvp“.Scansion无法以”文档“格式打开文件。”

这是什么意思,我能做些什么才能让我看到这个波形?

这是我正在编译的代码,如果我需要实例化的模块,请告诉我:

`include "sinGenerator"

module sinGenerator_TB();
reg clk, rst;
reg [0:3]M;
wire [16:0]data_out;

//instantiate the unit under test
sin_LUT UUT(
  .clk(clk),
  .rst(rst),
  .M(M),
  .data_out(data_out)
  );

//initialize clock
always begin
#5 clk = ~clk;
end

//initialize variables
initial begin
rst = 1;
M = 1;
#20 rst = 0;
#200 M = 2;
#200 M = 4'b0100;
#200 $stop;
end

endmodule
command-line verilog waveform icarus
2个回答
0
投票

Verilog文件通常使用.v作为文件扩展名; SystemVerilog使用.sv。请使用文件扩展名。它有助于模拟器知道您尝试编译的语言(所有现代Verilog模拟器都是具有向后兼容性的SystemVerilog模拟器)。另外,文本编辑器(如vim和emacs)使用文件扩展名来决定如何进行语法突出显示/格式化。

模拟器需要生成.vcd文件。 Scansion只是查看波形的工具。它与生成波形无关,似乎与问题无关。

为了让模拟器知道在哪里创建VCD文件,它需要$dumpfile;要知道要放入VCD文件的信号需要$dumpvars。阅读IEEE Std 1800-2012§21.7值更改转储(VCD)文件

例如,如果要转储所有内容并将其放在dump.vcd中,则将其添加到测试平台:

initial begin
  $dumpfile("dump.vcd");
  $dumpvars;
end

0
投票

iverilog -o sinGen_TB sinGenerator_TB仅生成最终的可执行文件sinGen_TB。

使用man iverilog获取有关如何运行Iicarus模拟器的更多信息。

可执行文件需要运行-vvp sinGen_TB。这将运行模拟,并将生成一个可由波形查看器打开的输出文件。

[我猜./sinGen_TB也运行模拟]

您还需要添加以下代码以转储波形。

initial
 begin
    $dumpfile("sinGen_TB.vcd"); //file name 
    $dumpvars(0,sinGenerator_TB); // module name 
 end
© www.soinside.com 2019 - 2024. All rights reserved.