在 Verilog 中将输出分配给两个模块

问题描述 投票:0回答:1

在下面的 Verilog 代码中,我想将输出分配给两个模块,即two_input_checker 和 Three_input_checker。但是当我如下所示直接分配它们时,它给出了错误。

module logical_function_check (
  IN1, IN2, IN3, IN4, IN5, IN6, 
  IN8, IN9, IN10, IN11, IN12, IN13,
  OP1, OP2, OP3, OP4, OP5, OP6,
  OP8, OP9, OP10, OP11, OP12, OP13,
  pass1, pass2, pass3, pass4, pass5, pass6,
  fail1, fail2, fail3, fail4, fail5, fail6,
  pass, fail,
  clk
);
  
  input OP1, OP2, OP3, OP4, OP5, OP6, OP8, OP9, OP10, OP11, OP12, OP13;
  output IN1, IN2, IN3, IN4, IN5, IN6, IN8, IN9, IN10, IN11, IN12, IN13;
  output pass1, pass2, pass3, pass4, pass5, pass6, fail1, fail2, fail3, fail4, fail5, fail6;
  output pass, fail;
  input clk;
  

  two_input_checker two_input_checker_inst(
    .A1(IN1),
    .A2(IN4),
     .A3(IN10),
     .A4(IN13),
     .B1(IN2),
     .B2(IN5),
     .B3(IN9),
     .B4(IN12),
    .op1(OP3),
    .op2(OP6),
    .op3(OP8),
    .op4(OP11),
    .pass1(pass1),
    .pass2(pass2),
    .pass3(pass3),
    .pass4(pass4),
    .fail1(fail1),
    .fail2(fail2),
    .fail3(fail3),
    .fail4(fail4),
    .pass(pass),
    .fail(fail),
     .clk(clk),
     .enable(1'b1)
  );
  
  three_input_checker three_input_checker_inst (
    .A1(IN1), 
    .A2(IN3), 
    .A3(IN11), 
    .B1(IN2), 
    .B2(IN4), 
    .B3(IN10),
    .C1(IN13), 
    .C2(IN5), 
    .C3(IN9),
    .op1(OP12), 
    .op2(OP6), 
    .op3(OP8),
    .pass1(pass1), 
    .pass2(pass2), 
     .pass3(pass3),
    .fail1(fail1), 
     .fail2(fail2), 
     .fail3(fail3),
    .pass(pass), 
     .fail(fail),
    .clk(clk),
     .enable(1'b0)
  );
    

endmodule

错误如下所示。

enter image description here

如何修复该错误并分配输出?或者还有其他方法可以实现吗?

verilog system-verilog fpga hdl quartus
1个回答
0
投票

我在这里假设您将一个信号分配给两个输出端口。您需要对两个模块的输出使用不同的信号,然后对这些信号进行“或”操作。信号不能由多个驱动器驱动。信号传递 1 的示例:

pass1 = two_input_checker_inst_pass1 | three_input_checker_inst _pass1;
© www.soinside.com 2019 - 2024. All rights reserved.