Verilog - 如何插入测试台模块中输出寄存器的值?
Verilog - How to plug values from an output register in a testbench module?
因此,我们在 Verilog 中提供了一个顺序模块,并负责创建一个测试台以显示非阻塞和阻塞分配之间的区别。
提供的代码:
module sequential_module (A, B, C, D, clk);
input clk;
output A, B, C, D;
reg A, B, C, D;
always @(posedge clk)
begin
A = B;
B = A;
end
always @(posedge clk)
begin
C <= D;
D <= C;
end
endmodule
我似乎无法将任何值插入测试台中的任何变量(A、B、C、D),因为我收到“非法输出或输入输出端口连接”错误。
我成功创建的测试平台:
module testbench_sequential;
reg clk;
wire A, B, C, D;
sequential_module test(A, B, C, D, clk);
always
#5 clk = ~clk;
initial
begin
clk = 1'b0;
$display ("Simulating output for Activity 3a");
$monitor ($time,,, "clk = %b A = %b B = %b C = %b D = %b ", clk, A, B, C, D);
#25 $finish;
end
endmodule
我从上面的测试台得到的唯一输出是时钟似乎在工作,但其他变量上有“无关”值 (1'bx)。我是使用此应用程序的新手,如有任何帮助,我们将不胜感激。
- 您将所有信号 (A-D) 定义为输出。
- 在您的作业中,例如
A = B
(应该是<=
),所有的regs其实都没有值。你没有初始化它们。因此,它们在您的测试台中显示为 1'bx
。
要实现你想要的,你可以简单地修改你的 regs 的声明,例如:
reg A = 1'b0, B = 1'b1, C = 1'b0, D = 1'b1;
Simulating output for Activity 3a
0 clk = 0 A = 0 B = 1 C = 0 D = 1
5 clk = 1 A = 1 B = 1 C = 1 D = 0
10 clk = 0 A = 1 B = 1 C = 1 D = 0
15 clk = 1 A = 1 B = 1 C = 0 D = 1
20 clk = 0 A = 1 B = 1 C = 0 D = 1
因此,我们在 Verilog 中提供了一个顺序模块,并负责创建一个测试台以显示非阻塞和阻塞分配之间的区别。
提供的代码:
module sequential_module (A, B, C, D, clk);
input clk;
output A, B, C, D;
reg A, B, C, D;
always @(posedge clk)
begin
A = B;
B = A;
end
always @(posedge clk)
begin
C <= D;
D <= C;
end
endmodule
我似乎无法将任何值插入测试台中的任何变量(A、B、C、D),因为我收到“非法输出或输入输出端口连接”错误。
我成功创建的测试平台:
module testbench_sequential;
reg clk;
wire A, B, C, D;
sequential_module test(A, B, C, D, clk);
always
#5 clk = ~clk;
initial
begin
clk = 1'b0;
$display ("Simulating output for Activity 3a");
$monitor ($time,,, "clk = %b A = %b B = %b C = %b D = %b ", clk, A, B, C, D);
#25 $finish;
end
endmodule
我从上面的测试台得到的唯一输出是时钟似乎在工作,但其他变量上有“无关”值 (1'bx)。我是使用此应用程序的新手,如有任何帮助,我们将不胜感激。
- 您将所有信号 (A-D) 定义为输出。
- 在您的作业中,例如
A = B
(应该是<=
),所有的regs其实都没有值。你没有初始化它们。因此,它们在您的测试台中显示为1'bx
。
要实现你想要的,你可以简单地修改你的 regs 的声明,例如:
reg A = 1'b0, B = 1'b1, C = 1'b0, D = 1'b1;
Simulating output for Activity 3a
0 clk = 0 A = 0 B = 1 C = 0 D = 1
5 clk = 1 A = 1 B = 1 C = 1 D = 0
10 clk = 0 A = 1 B = 1 C = 1 D = 0
15 clk = 1 A = 1 B = 1 C = 0 D = 1
20 clk = 0 A = 1 B = 1 C = 0 D = 1