在Verilog中,模块是一种用于封装和实例化硬件功能的结构。模块可以有输入、输出、内部寄存器等。端口则是模块与外部环境进行通信的接口。以下是一个简单的Verilog模块及其端口的例子:
module MyModule(
  input wire A,
  input wire B,
  output reg Y
);

  // 逻辑行为
  always @(A or B)
    Y = A & B;

endmodule

在这个例子中,MyModule是一个简单的逻辑门模块,有两个输入端口 A 和 B,以及一个输出端口 Y。在这个模块中,Y 的值由 A 和 B 的逻辑与运算决定。

模块的声明以 module 关键字开始,其后是模块的名称。括号内是模块的端口声明,包括输入端口 (input)、输出端口 (output),以及内部寄存器 (reg)。

你可以在其他模块或顶层模块中实例化这个模块,如下所示:
module TopModule;

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

  // 定义顶层模块的输入输出信号
  reg input_a;
  reg input_b;
  wire output_y;

  // 在这里连接输入输出信号或者进行其他操作

endmodule

在顶层模块中,通过实例化 MyModule 模块,并通过连接端口的方式与之通信。这个例子中使用了寄存器 (reg) 和线 (wire) 来声明信号。

这只是一个简单的例子,实际的Verilog代码可能包含更多复杂的逻辑和模块互连。


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