Verilog 中模块实例化与调用方式

一、基本实例化方法

Verilog通过模块实例化实现层次化设计,语法格式为:

模块名 实例名(
  .端口1(信号1),
  .端口2(信号2),
  //...
);

二、两种连接方式 

1.顺序连接:严格按模块定义端口顺序

Adder adder_inst(in1, in2, sum);  // 假设Adder模块端口顺序为(input a, input b, output c) 

2.命名连接:显式指定端口映射

Adder adder_inst(
  .a(in1),
  .b(in2),
  .c(sum)
);

注:
  1. 端口位宽匹配:连接信号位宽需严格匹配,否则自动截断或补零
  2. 悬空端口处理:未连接输入端口应明确赋值,避免产生锁存器

UnusedModule inst(
  .used_port(sig),
  .unused_input(1'b0)  // 显式接地
); 

三、实例
module FullAdder(
  input a, b, cin,
  output sum, cout
);
  assign {cout, sum} = a + b + cin;
endmodule

module Adder4bit(
  input [3:0] A, B,
  output [3:0] Sum,
  output Cout
);
  wire [3:0] carry;
  
  FullAdder fa0(.a(A[0]), .b(B[0]), .cin(1'b0), .sum(Sum[0]), .cout(carry[0]));
  FullAdder fa1(.a(A[1]), .b(B[1]), .cin(carry[0]), .sum(Sum[1]), .cout(carry[1]));

endmodule

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值