# Encoder

Discussion in 'Homework Help' started by digitalize, Apr 16, 2015.

1. ### digitalize Thread Starter New Member

Apr 15, 2015
9
0
I'm currently working on an assignment where a 3-input encoder that assigns a 2-bit code to each of the three input combinations. Here I'm trying to figure out how many implementations I could have. So, for example I have 2^3, which is 8 possibilities.
Here is my current three input combinations:
|X|Y|Z | A|B|
|0|0|1 | 0|1|
|0|1|0 | 1|0|
|1|0|0 | 1|1|

My question is, if there are a total of 8 total possibilities and 5 of them are don't care, is it possible to have more than three implementations? I feel as though I'm confusing myself with implementation and possibilities.

2. ### ericgibbs Moderator

Jan 29, 2010
8,534
1,713
hi,
Are you sure that your table includes all the combinations.?
E

3. ### digitalize Thread Starter New Member

Apr 15, 2015
9
0
These are the only cases i'm currently aware of where either a or b equals 1

4. ### WBahn Moderator

Mar 31, 2012
24,555
7,691
Not sure what you are asking. Where does the "three implementations" come from to begin with?

Let's simply things and use two inputs and say that I'm only interested in having the output, Y, follow the following two states for the inputs, A and B (with all the others being don't cares):

|A|B|Y|
|1|0|0|
|1|1|1|

I could implement this a number of ways, including just setting Y=B. But I could also use an AND gate or an XNOR gate. I could also implement it using a circuit that has ten thousand gates, which gets into the distinction between a logic function and an implementation of that function.

In this case, I have two Boolean inputs so I have four possible combinations. Since two of those combinations are don't cares, those two lines could take on any of four possible combination of output values. Hence there are four Boolean functions on those two inputs that will give me what I want. But each of those functions can be implemented in an infinite number of ways.

As an example, consider the function Y = A+B. I can implement that direction using an OR gate. But I can also implement it as Y=(A'B')'. It's a different implementation of the exact same function.

5. ### digitalize Thread Starter New Member

Apr 15, 2015
9
0
I actually meant 4 implementations. Here are the four:
a=z'
b=y'
a=x'yz'+xy'z'
b=x'y'z +xy'z'

I was wondering if more were were possible?

6. ### WBahn Moderator

Mar 31, 2012
24,555
7,691
Sure more are possible.

Take your first function for A, namely A=Z'. Enumerate the truth table for it. Now flip the state of any on of the "don't care" rows and you have a different function that, if implemented, gives you the correct output for the three rows you happen to care about.

How many different ways can I change the function outputs for five rows? That's how many different functions there are that will produce the correct output for the three rows you care about -- and that's just for the A output. You have the same for the B output. Now consider that you get to mix and match A and B outputs.

7. ### digitalize Thread Starter New Member

Apr 15, 2015
9
0
Ok, I think I get it, so if I have 5 don't care states, then couldn't I just take 2^5=32, which give me possible implementations for A only? Then I would have to do the same for B.

8. ### WBahn Moderator

Mar 31, 2012
24,555
7,691
That will give you the number of unique functions for each output. But there are literally in infinite number of implementations.

Consider the function Y=A+B. I could implement that as

Y = A+B
Y = A'B + AB' + AB (canonical SOP)
Y = (A'B')'

and the list could keep going.