Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

[SOLVED] [Moved] Implementing full adder

Status
Not open for further replies.

Prameeth

Newbie level 4
Newbie level 4
Joined
Aug 3, 2020
Messages
6
Helped
0
Reputation
0
Reaction score
0
Trophy points
1
Activity points
64
Hi
I was wondering about implementing a full adder using ONLY half adders and no other gates by assuming half adder as a black box. Can someone please help in this regard.
 

As I suspect this is homework, I won't just give you the answer, but will instead try to help you realize what you should be looking at to figure this out on your own.

Think about this what is the difference between a full adder and a half adder.
  • How many inputs does a half adder have?
  • What does the half adder do with it's input bits?
  • How many inputs does a full adder have?
  • What does the full adder do with all it's input bits?
Now answering those questions it should be easy to see how you can use half adders to make a full adder.
--- Updated ---

I'm also moving this to the Elementary Electronics section as I highly doubt this is being implemented in an ASIC or needs ASIC tools to do.
 

So I am able to implement the sum by just cascading 2 half adders, but then won't we require at least an or gate for implementing carry?
S=A xor B xor C ( all I need to do is connect output of one half adder as one of inputs to other while other being Cin)
But for carry Cout=AB+Cin(A xor B)
(Or)
Cout=AB+BCin+ACin
We do need an or gate right? As my half adder only implements xor, and gate. But I need to OR gate values for Cout.
Please help
 

Hi,

It's not clear to me how your solution looks like. Show your design.

Klaus
 

So I am able to implement the sum by just cascading 2 half adders, but then won't we require at least an or gate for implementing carry?
S=A xor B xor C ( all I need to do is connect output of one half adder as one of inputs to other while other being Cin)
so far you're doing great!

But for carry Cout=AB+Cin(A xor B)
(Or)
Cout=AB+BCin+ACin
We do need an or gate right? As my half adder only implements xor, and gate. But I need to OR gate values for Cout.
Please help
You've cascaded the half adders. The AB_sum and AB_cout are the outputs of the first half adder.

You took the AB_sum + Cin and got an ABCin_sum and ABCin_cout.

So you now have two different carries AB_cout and ABCin_cout. Don't these both have information on what the carry should be for the cascaded half adders?
--- Updated ---

Just to make it clear what circuit Prameeth and I are discussing

Code Verilog - [expand]
1
2
3
4
half_adder  ha1 (.s (sum_ab), .c(cout_ab), .a(a), .b(b));
half_adder  ha2 (.s(sum_abci), .c(cout_abci), .a(ci), .b(sum_ab));
// sum_abci is the correct sum as Prameeth has determined in post #3
// but what should be done with the signals cout_ab and cout_abci?

 
Last edited:

I got it right
Thank you
 

Attachments

  • 1599898231456389268231034502692.jpg
    1599898231456389268231034502692.jpg
    3.4 MB · Views: 203
  • IMG_20200912_134058__01.jpg
    IMG_20200912_134058__01.jpg
    1.2 MB · Views: 224

Exactly.

Did you notice that you don't need an OR gate (as your thought in post #3)? What you needed was an XOR gate to finish computing the carry calculation as the two carry bits can only be 00, 01, or 10 with a 0 or 1 resulting sum (with no new carry).
 

Status
Not open for further replies.

Similar threads

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top