跳到主要内容

1.3.6加法器1

您将获得一个名为add16的模块,该模块执行16位加法操作。实例化两个这样的模块以创建一个32位加法器。其中一个add16模块计算加法结果的低16位,而第二个add16模块在接收到第一个加法器的进位输出后,计算结果的高16位。您的32位加法器不需要处理进位输入(假设为0)或进位输出(忽略),但内部模块为了正确工作需要处理这些。换句话说,add16模块执行16位的 a + b + cin 加法,而您的模块执行32位的 a + b 加法。

根据下图所示连接这些模块。所提供的add16模块具有以下声明:

module add16 ( input[15:0] a, input[15:0] b, input cin, output[15:0] sum, output cout );

alt text

模块声明

module top_module(
input [31:0] a,
input [31:0] b,
output [31:0] sum
);

做题区