使用扫描查看波形
viewing waveform using scansion
注意:如果有更好的地方让我问这个问题,请告诉我!我在谷歌上进行了大量搜索,但找不到答案
我正在尝试使用波形查看器 scansion 查看简单 counter/sin LUT 的输出。我正在使用 icarus verilog 进行编译。到目前为止,我在命令行上 运行 iverilog -o sinGen_TB sinGenerator_TB,然后 vvp sinGen_TB
我收到一条错误消息 "The document “sinGen_TB” could not be opened. Scansion cannot open files of this type."
或者,当我将文件另存为 sinGen_TB.vvp 或 sinGen_TB.vcd 时,我得到 "The document “sinGen_TB.vvp” could not be opened. Scansion cannot open files in the “Document” format."
这是什么意思,我该怎么做才能查看此波形?
这是我正在编译的代码,如果我正在实例化的模块也需要让我知道:
`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
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
Verilog 文件通常使用 .v
作为文件扩展名; SystemVerilog 使用
.sv
。请使用文件扩展名。它帮助模拟器了解您要编译的语言(所有现代 Verilog 模拟器都是具有向后兼容性的 SystemVerilog 模拟器)。加上文本编辑器,例如vim和emacs,使用文件扩展名来决定如何做语法highlighting/formatting.
模拟器需要生成.vcd
文件。 Scansion只是一个查看波形的工具。它与生成波形无关,似乎与问题无关。
让模拟器知道在哪里创建它需要的 VCD 文件$dumpfile
;知道需要将什么信号放入 VCD 文件 $dumpvars
。阅读 IEEE Std 1800-2012 § 21.7 值更改转储 (VCD) 文件
例如,如果您想转储所有内容并将其放入 dump.vcd,则将其添加到您的测试台:
initial begin
$dumpfile("dump.vcd");
$dumpvars;
end
注意:如果有更好的地方让我问这个问题,请告诉我!我在谷歌上进行了大量搜索,但找不到答案
我正在尝试使用波形查看器 scansion 查看简单 counter/sin LUT 的输出。我正在使用 icarus verilog 进行编译。到目前为止,我在命令行上 运行 iverilog -o sinGen_TB sinGenerator_TB,然后 vvp sinGen_TB
我收到一条错误消息 "The document “sinGen_TB” could not be opened. Scansion cannot open files of this type."
或者,当我将文件另存为 sinGen_TB.vvp 或 sinGen_TB.vcd 时,我得到 "The document “sinGen_TB.vvp” could not be opened. Scansion cannot open files in the “Document” format."
这是什么意思,我该怎么做才能查看此波形?
这是我正在编译的代码,如果我正在实例化的模块也需要让我知道:
`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
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
Verilog 文件通常使用 .v
作为文件扩展名; SystemVerilog 使用
.sv
。请使用文件扩展名。它帮助模拟器了解您要编译的语言(所有现代 Verilog 模拟器都是具有向后兼容性的 SystemVerilog 模拟器)。加上文本编辑器,例如vim和emacs,使用文件扩展名来决定如何做语法highlighting/formatting.
模拟器需要生成.vcd
文件。 Scansion只是一个查看波形的工具。它与生成波形无关,似乎与问题无关。
让模拟器知道在哪里创建它需要的 VCD 文件$dumpfile
;知道需要将什么信号放入 VCD 文件 $dumpvars
。阅读 IEEE Std 1800-2012 § 21.7 值更改转储 (VCD) 文件
例如,如果您想转储所有内容并将其放入 dump.vcd,则将其添加到您的测试台:
initial begin
$dumpfile("dump.vcd");
$dumpvars;
end