0

如何通过第三个模块实例化两个不同模块的副本?

module instantiate (modx, mody);
  // ?  
endmodule
4

1 回答 1

2

只需实例化它们。add使用块名称实例化两次add_0 add_1。对于不同的模块,只需将它们实例化,就像您在测试工具中的主要块一样。

module add(
  input      [31:0] i, //32 bit unsigned
  input      [31:0] j, //32 bit unsigned 
  output reg [31:0] y  //32 bit unsigned
); 

  always @* begin
    y = i + j;
  end

endmodule

module instantiate (modx, mody);
  reg [31:0] a; //reg or wire depending on how it is driven
  reg [31:0] b;
  reg [31:0] c;
  reg [31:0] d;

  wire [31:0] sum1; //wire or logic as driven from an output port
  wire [31:0] sum2;

  add add_0(
    .i( a    ),
    .j( b    ),
    .y( sum1 )
  );

  add add_1(
    .i( c    ),
    .j( d    ),
    .y( sum2 )
  );

endmodule
于 2013-09-19T06:50:02.127 回答