How do you plan to solve it?
/*Write your code here*/
module full_adder(
input a, b, cin,
output sum, cout
);
assign sum = a ^ b ^ cin;
assign cout = (a&b) | (b&cin) | (a&cin);
endmodule
module full_adder_4(
input [3:0] a, b,
input cin,
output [3:0] sum,
output cout
);
wire [2:0] carry;
full_adder f1(a[0], b[0], cin, sum[0], carry[0]);
full_adder f2(a[1], b[1], carry[0], sum[1], carry[1]);
full_adder f3(a[2], b[2], carry[1], sum[2], carry[2]);
full_adder f4(a[3], b[3], carry[2], sum[3], cout);
endmodule
module sub4_2c(
input [3:0] a, b,
output [3:0] diff,
output bout
);
wire [3:0] b_inv;
wire cout, cin;
assign b_inv = ~b;
assign cin = 1;
full_adder_4 fa(a, b_inv, cin, diff, cout);
assign bout = ~cout;
endmodule