电路分析:32位加法减法器
加法模式:sub=0时候,对b[31:0]与0异或,数据不变,同时add16_1的cin=sub=0,即为两个正常的add16连接
减法模式:sub=1时,对b[31:0],进行异或运算(得到反码) ,再加上cin的sub得到b的补码
相当于sum=a+b补码(b取反再加1)实现减法运算
module top_module(
input [31:0] a,
input [31:0] b,
input sub,
output [31:0] sum
);
reg [31:0] in2;
reg link;
always@(*)
begin
if(sub==1)
for(int i=0;i<32;i++)
in2[i]=b[i]^1;
else
in2[31:0]=b[31:0];
end