System verilog 我正在为一个模块编写SystemVerilog测试台,该模块对原理图进行建模,但don';我不知道为什么成绩单窗口显示与Y端口没有连接?

System verilog 我正在为一个模块编写SystemVerilog测试台,该模块对原理图进行建模,但don';我不知道为什么成绩单窗口显示与Y端口没有连接?,system-verilog,digital-logic,questasim,digital-design,System Verilog,Digital Logic,Questasim,Digital Design,下面的示意图是我对模块进行建模的依据。这是一个SystemVerilog硬件分配,其中我们必须使用连续分配。签名模型是给我们的。注意:电路中没有延迟。我遇到的问题是,我真的不知道我在做什么,因为我是SystemVerilog的新手,这是我第一次必须编写自己的测试台。 以下是模块代码: module hw2_prob1 ( input logic A, B, C, D, output logic Y ); assign Y = (~(A|D)) & (B & C

下面的示意图是我对模块进行建模的依据。这是一个SystemVerilog硬件分配,其中我们必须使用连续分配。签名模型是给我们的。注意:电路中没有延迟。我遇到的问题是,我真的不知道我在做什么,因为我是SystemVerilog的新手,这是我第一次必须编写自己的测试台。

以下是模块代码:

module hw2_prob1 (
  input logic A, B, C, D,
  output logic Y
);  

  assign Y = (~(A|D)) & (B & C & ~D);


endmodule     
到目前为止,我的测试台代码就是这样的:

timeunit 1ns/1ns;

module tb_hw2_prob1();
 reg A, B, C, D;
 wire Y;



hw2_prob1 DUT(A, B, C, D, Y);

initial begin
#5 {A,B,C,D} = 4'b0000;
#5 {A,B,C,D} = 4'b0001;
#5 {A,B,C,D} = 4'b0010;
#5 {A,B,C,D} = 4'b0011;

#5 {A,B,C,D} = 4'b0100;
#5 {A,B,C,D} = 4'b0101;
#5 {A,B,C,D} = 4'b0110;
#5 {A,B,C,D} = 4'b0111;

#5 {A,B,C,D} = 4'b1000;
#5 {A,B,C,D} = 4'b1001;
#5 {A,B,C,D} = 4'b1010;
#5 {A,B,C,D} = 4'b1011;

#5 {A,B,C,D} = 4'b1100;
#5 {A,B,C,D} = 4'b1101;
#5 {A,B,C,D} = 4'b1110;
#5 {A,B,C,D} = 4'b1111;
end

initial begin #500 $finish; 
end

initial begin $monitor ($time,"%h %b", {A,B,C,D},Y);
end

endmodule
分配要求“此电路的测试台应在一个初始块中设置$monitor()语句,并在更改输入之间以5 ns的延迟生成所有可能的输入组合。” 我们使用QuestaSim或ModelSim进行模拟,这是文本和波形窗口。

我必须加一个时钟吗?为什么它说Y端口缺少连接?我的波形窗口是否正确?

hw2_prob1 DUT(Y、A、B、D)缺失
C
,端口顺序错误

选择一个:

  • hw2_prob1 DUT(A、B、C、D、Y)//按端口顺序连接
  • hw2_prob1 DUT(.Y(Y),.A(A),.B),.C(C),.D(D))//按端口名显式连接
  • hw2_prob1 DUT(.Y、.A、.B、.C、.D)//按端口名隐式连接
  • hw2_prob1 DUT(.*)//按端口名自动连接