【发布时间】:2021-06-09 01:58:56
【问题描述】:
我正在尝试使用 txt 文件编写一个简单的测试台,以将数字读入我的测试台。
我有以下测试台
temp_tb.v
module temp_tb();
logic clk;
logic rst;
logic [0:31] data [639:0];
logic output_valid;
logic [0:31] output_data_r [63:0];
logic [0:31] output_data_i [63:0];
top_level t0(
.clk(clk),
.rst(rst),
.data(data),
.output_valid(output_valid),
.output_data_r(output_data_r),
.output_data_i(output_data_i));
// set up clock
// tests
initial begin
$readmemb("song.mem", data);
// put your tests here
$vcdpluson;
rst = 1'b0;
clk = 1'b0;
#100
clk = 1'b1;
#100
clk = 1'b0;
#100
clk = 1'b1;
#100
rst = 1'b1;
clk = 1'b0;
#100
clk = 1'b1;
#100
clk = 1'b0;
#100
clk = 1'b1;
#100
rst = 1'b0;
for (int i = 0; i < 999; i++) begin
clk = ~clk;
#100;
end
$finish;
end
endmodule
还有一个代码文件 song.mem 读取
00000000000000000000010000000000
00000000000000000000010000000000
00000000000000000000010000000000
00000000000000000000010000000000
00000000000000000000010000000000
00000000000000000000010000000000
00000000000000000000010000000000
// etc etc etc etc
但是,当我使用 VCS 运行此测试台时,它不会吐出任何错误,但是波形看起来像这样
所有代码文件和内存都在这个文件夹中。
以前我的数据逻辑宽度错误,它出现在日志中。但是我现在在日志中没有看到任何错误。有没有可能它应该是 [31:0] 而不是 [0:31] 我在其他地方看到过这个,但不确定它是什么意思。目标是有 640 个整数。
【问题讨论】:
标签: verilog test-bench