在Verilog中,模块例化是将一个模块实例化(创建一个模块的实例)。这允许你在设计中重复使用模块,促进模块化设计和代码重用。以下是一个简单的Verilog模块例化的例子:

假设有一个简单的模块,我们称之为 AndGate,它实现了两个输入的逻辑与门:
module AndGate(
  input wire A,
  input wire B,
  output reg Y
);
  // 逻辑行为
  always @(A or B)
    Y = A & B;
endmodule

现在,我们可以在另一个模块中实例化这个 AndGate 模块:
module TopModule;
  // 顶层模块的输入
  reg input_a;
  reg input_b;
  // 顶层模块的输出
  wire output_y;

  // 实例化 AndGate 模块
  AndGate andGateInstance1 (
    .A(input_a),
    .B(input_b),
    .Y(output_y)
  );

  // 在这里连接输入输出信号,或者添加其他逻辑

endmodule

在上面的例子中,TopModule 是一个顶层模块,它包含了 input_a 和 input_b 两个输入信号,以及 output_y 输出信号。然后,通过 AndGate 模块的实例化,我们创建了一个名为 andGateInstance1 的实例,并通过连接输入和输出端口来与其通信。

这样,TopModule 中的 AndGate 实例就可以执行逻辑与操作,而且可以在设计中重复使用 AndGate 模块,提高了代码的可维护性和可重用性。


转载请注明出处:http://www.zyzy.cn/article/detail/15103/Verilog