假设有一个简单的模块,我们称之为 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