代码编织梦想

可以通过选择性地否定其中一个输入来从加法器构建加法器-减法器,这相当于反转输入然后加 1。最终结果是一个可以执行两个操作的电路:(a + b + 0)和(a + ~b + 1)。

构建一个加法减法器,输入sub为0时表示加法器,输入sub为1时表示减法器。

为您提供了一个 16 位加法器模块,您需要实例化两次:

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

module top_module(
    input [31:0] a,
    input [31:0] b,
    input sub,
    output [31:0] sum
);
    wire [31:0] b_r = b ^ {32{sub}};
    wire cout;
    add16 add16_1(.a(a[15:0]), .b(b_r[15:0]), .cin(sub), .sum(sum[15:0]), .cout(cout));
    add16 add16_2(.a(a[31:16]), .b(b_r[31:16]), .cin(cout), .sum(sum[31:16]), .cout());    
endmodule
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_44830822/article/details/130473227