How to make a full adder using 1/4 DEMUXs and 1 NOR gate?

I was supposed to make a full adder circuit of two 1 bit numbers using any amount of 1/4 demultiplexers and only one NOR gate with arbitrary number of inputs.I have no idea how to do this.Is such thing even possible?With just one NOR gate you can have either a carry bit output or a sum bit output, not both.How does one approach a problem like this one?What's the general procedure?

• There isn't a general procedure. This is a puzzle-type problem, not the kind of thing that you'll actually encounter in real design. Still fun if you like puzzles :) – Justin Jan 29 at 20:03
• I don't think there is a general procedure here. Start with each FA function distinctly and see how you can implement with the given constraints. – Eugene Sh. Jan 29 at 20:03
• @EugeneSh.I did, I've spent over 1 hour and still have no clue if this is even possible with given constraints.Considering how there's (almost) infinite amount of things that can be done and only one of them is correct, this is pretty difficult. – JoeDough Jan 29 at 20:15
• @JoeDough I agree. I don't have a solution from the top of my mind as well. If you ask me if it is a good exercise that is teaching any useful engineering skill - I would say no. – Eugene Sh. Jan 29 at 20:22
• Is the NOR gate to provide the combination of the Carry bits? – analogsystemsrf Jan 30 at 3:21

A dumb, but a universal approach would be to use the demux to implement a universal gate such as NOR. Each demux can implement 4 different functions of two variables on the following way:

     |^^^^^^|
|      |--- A'B'
1 ---|      |--- A'B
|      |--- AB'
|      |--- AB
|______|
|  |
A  B


Notice A'B'. It is the same as (A+B)', which is... NOR! So this proves that the task is possible and doable (or a stronger claim - that any logical function can be implemented using 1-4 demuxes).

As a bonus you can get an AND gate and two components of XOR out of it, which will significantly reduce the number of such a a units in the final circuit.

Note
If you are not allowed to use constants such as 1, you can utilize the provided single NOR gate connected to the two of the demux outputs as following:

     |^^^^^^|
|      |---______
A ---|      |---\ NOR \____
|      |---/_____/
|      |---
|______|
|  |
A  A


Since these two outputs will be low for any A, the NOR will output 1 always.

• This scheme reminds me of how FPGA logic units work, only they use multiplexers and constants instead. – Hearth Jan 29 at 22:11
• @Hearth Well, multiplexers a much more convenient in terms of arbitrary logical function implementation... – Eugene Sh. Jan 29 at 22:33
• I haven't considered making standard logic gates at all (for some reason I thought it wasn't possible), cramming all the logic into as few demuxes as possible obviously wasn't a good idea.How did you approach this problem?Where did you start from and why?I'm interested in your thought process from reading the problem to finding a solution. – JoeDough Jan 30 at 16:21
• @JoeDough Well, obviously it is not a full solution, but a somewhat general method. You could start with writing down the functions of demux in general and identify which variables you could fix and which to use as an input to get something useful. At first I though about using the AND function and one of the other functions to implement NOT and have it combined into NAND, but then, when I started to write the answer I was that there is a ready to use NOR. – Eugene Sh. Jan 30 at 16:27
• The second part - about getting constant 1 was kind of intuitive. It is obvious that you can't get it out of demux alone no matter what the inputs are, if they are variable. Meaning that you need something to combine these. The only thing that we have here is this NOR. Now, NOR requires two low inputs to produce 1. Now you only need to find two inputs that will always be low, while feeding it any input. The choice of feeding A was arbitrary. – Eugene Sh. Jan 30 at 16:30