Я работаю над кодом systemVerilog, где значение поиска сравнивается с 8 регистрами одинакового размера в битах, оно должно давать действительный 1, если один из регистров соответствует значению поиска. все компилируется, но выдает несколько предупреждений о том, что «Отсутствует соединение для порта 'v1'», и я не знаю, как решить эту проблему.
код ниже с простым тестовым стендом
module V(
input logic [3:0] A,B,
output logic valid);
logic xnor_3, xnor_2, xnor_1, xnor_0, and_0;
assign xnor_3 = ~(A[3] ^ B[3]);
assign xnor_2 = ~(A[2] ^ B[2]);
assign xnor_1 = ~(A[1] ^ B[1]);
assign xnor_0 = ~(A[0] ^ B[0]);
assign and_0 = xnor_1 & xnor_0 & xnor_2 & xnor_3 ;
assign valid = and_0 ;
endmodule
module Vt(
input logic[3:0] D_lookup,
input logic[3:0] r0,r1,r2,r3,r4,r5,r6,r7,
output logic v0, v1, v2, v3, v4, v5, v6, v7, Valid);
V vt0(D_lookup,r0,v0);
V vt1(D_lookup,r1,v1);
V vt2(D_lookup,r2,v2);
V vt3(D_lookup,r3,v3);
V vt4(D_lookup,r4,v4);
V vt5(D_lookup,r5,v5);
V vt6(D_lookup,r6,v6);
V vt7(D_lookup,r7,v7);
assign Valid = v0 || v1 || v2 || v3 || v4 || v5 || v6 || v7;
endmodule
module tb_V();
logic[3:0] D_lookup;
logic[3:0] r0,r1,r2,r3,r4,r5,r6,r7;
Vt dut(D_lookup,r0,r1,r2,r3,r4,r5,r6,r7,Valid);
initial begin
D_lookup = 4'b1010;
r0 = 4'b1000;
r1 = 4'b1001;
r2 = 4'b1010;
r3 = 4'b1011;
r4 = 4'b1100;
r5 = 4'b1101;
r6 = 4'b1110;
r7 = 4'b1111;
#10;
end
endmodule
Было бы полезно, если бы вы разместили и прочитали точное сообщение об ошибке, которое вы получаете
# ** Warning: (vsim-2685) [TFMPC] - Too few port connections for 'dut'. Expected 18, found 10.
# Time: 0 ns Iteration: 0 Instance: /tb_V/dut File: testbench.sv Line: 36
# ** Warning: (vsim-3722) testbench.sv(36): [TFMPC] - Missing connection for port 'v1'.
# ** Warning: (vsim-3722) testbench.sv(36): [TFMPC] - Missing connection for port 'v2'.
# ** Warning: (vsim-3722) testbench.sv(36): [TFMPC] - Missing connection for port 'v3'.
# ** Warning: (vsim-3722) testbench.sv(36): [TFMPC] - Missing connection for port 'v4'.
# ** Warning: (vsim-3722) testbench.sv(36): [TFMPC] - Missing connection for port 'v5'.
# ** Warning: (vsim-3722) testbench.sv(36): [TFMPC] - Missing connection for port 'v6'.
# ** Warning: (vsim-3722) testbench.sv(36): [TFMPC] - Missing connection for port 'v7'.
# ** Warning: (vsim-3722) testbench.sv(36): [TFMPC] - Missing connection for port 'Valid'.
Таким образом, кажется, что вам не хватает всех соединений выходного порта с вашим модулем Vt. Все, что вам нужно сделать, это добавить их. Вам даже не нужно объявлять их отдельно; будут неявно объявлены как 1-битные провода.
Vt dut(D_lookup,r0,r1,r2,r3,r4,r5,r6,r7,
v0, v1, v2, v3, v4, v5, v6, v7, Valid );