Prev Problem
Next Problem

69. Binary Subtractor

Back To All Submissions
Previous Submission
Next Submission

Solving Approach

How do you plan to solve it?

 

Code

module adder_1(input a,b,cin,output cout,sum);
    xor x1(sum,a,b,cin);
    assign cout = (a&b)|(a&cin)|(b&cin);
endmodule
module sub_4(input [3:0]a,b,output cout,output [3:0]sum);
    wire c1,c2,c3;
    adder_1 ad1(.a(a[0]),.b(~b[0]),.cin(1'b1),.cout(c1),.sum(sum[0]));
    adder_1 ad2(.a(a[1]),.b(~b[1]),.cin(c1),.cout(c2),.sum(sum[1]));
    adder_1 ad3(.a(a[2]),.b(~b[2]),.cin(c2),.cout(c3),.sum(sum[2]));
    adder_1 ad4(.a(a[3]),.b(~b[3]),.cin(c3),.cout(cout),.sum(sum[3]));
endmodule
module sub4_2c(input [3:0]a,b,output [3:0]diff,output bout);
    wire cout;
    sub_4 s1(.a(a),.b(b),.sum(diff),.cout(cout));
    not n1(bout,cout);
endmodule

 

Was this helpful?
Upvote
Downvote