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