# how do i derive an equation from a function table?

#### player123

Joined May 25, 2007
4
hi! i am trying to deduce a boolean expression from a function table. For example how would you derive function from this table:

A B C Result
0 0 0 0
0 0 1 1
0 1 0 1
0 1 1 0
1 0 0 1
1 0 1 0
1 1 0 0
1 1 1 1

thanks!

#### hgmjr

Joined Jan 28, 2005
9,027
Two things you might want to look into are "exclusive or gates" and the technique called "parity" bit generation.

hgmjr

#### recca02

Joined Apr 2, 2007
1,212
if i m reading the question correctly,
u want a function in terms of sop or pos form to produce above result,
in such cases kernaugh map is very hand try reading about it.
the solution of such problems is very easy with the use of kernaugh map.
or else you can identify the minterms for whic o/p is high (for sop)
and try using and logic to get the minterms in form of product of three variable such that o/p is high for the combination then join them by or function.
in case u are confused.
example
o/p is high when a b c read 1,2,4 and 7 (see table) in binary form.
since for one input shud be A'.B'.C (low inputs are complimented)
for 4 A.B'.C' etc add them all and simplify using boolean algebra
like op = a.b'.c' + a'.b'.c + ......
u wil get the req function.

#### Papabravo

Joined Feb 24, 2006
20,624
You simply read off the terms by inspection.
For each row where the result is a one read the inputs from left to right saying not<variable> for a zero and <variable> for a one with AND as the connective. Then OR all of these terms together.

Not-A .AND. Not-B .AND. C .OR.
Not-A .AND. B .AND. Not-C .OR.
A .AND. Not-B .AND. Not-C .OR.
A .AND. B .AND. C

Four ones in the result column implies four terms connected with .OR.
Each term has three factors connected with .AND.
It is the same story for all the truth tables you will ever see, besides all the one you won't, no matter how many inputs there are.

#### Dave

Joined Nov 17, 2003
6,969
Further to Papabravo's answer, you could/should then look at simplifying the expression to obtain it in its simplest (in terms of required gates) form.

Dave

#### player123

Joined May 25, 2007
4
ok thanks alot guys! )

#### Dave

Joined Nov 17, 2003
6,969
ok thanks alot guys! )
No problems. If when you have derived your expression if want to post it we can check it for you.

Dave

#### player123

Joined May 25, 2007
4
oh its ok i just put this example on the forum so someone could show me the method of derriving a function. now i am trying to apply this method to real example. but it kinda gets complicated. can u just have a quick look at the question:
-------------------------------------------------------------------------
A certain committee has four officers; Chair, Deputy, Secretary and Treasurer, each of whom is provided with a voting 'button'; being a switch which gives:
'0' = "Against" or '1' = "For" a resolution.
The rules of Simple Majority Voting apply except that, in the event of a tie, the Chair's vote is "casting" (i.e. the vote, for or against, is that of the Chair).

A combinational logic circuit is required to accept the four switch values as its inputs and generate the overall Vote as a single output; V.
(You may assume that each voting switch gives true and complement outputs; i.e. C and C, D and D etc., are all available directly.)

4.1 Incorporate these voting rules into a Function Table and hence, derive an equation which expresses V in terms of C, D, S and T.

4.2 Hence draw a circuit of logic gates which will deliver the required voting signal output; V.

------------------------------------------------------------------------

i have done the function table which is:

C D S T Vote
0 0 0 0 0
0 0 0 1 0
0 0 1 0 0
0 0 1 1 0
0 1 0 0 0
0 1 0 1 0
0 1 1 0 0
0 1 1 1 1
1 0 0 0 0
1 0 0 1 1
1 0 1 0 1
1 0 1 1 1
1 1 0 0 1
1 1 1 0 1
1 1 1 1 1

using your method with AND and OR that papabravo suggested i came to the function:

C.D.S.T +
notC.D.S.T +
C.notD.notS.notT +
C.notD.S.notT +
C.notD.S.T +
C.D.notS.notT +
C.D.notS.T +
C.D.S.notT

but think that a bit too complicated and i am sure there was a simpler solution using XOR when our teacher showed us, but i cant really remember. so any suggestions? thanks again!

#### Papabravo

Joined Feb 24, 2006
20,624
Step 1. Your table has 15 rows instead of 16
Step 2. Adjacent rows may imply a simpler expression. Example, the last two rows reveal that if C=D=S=1, then T is a don't care because the function is a 1 regardless of the value.
Step 3. It can be hard to see what is going on with XOR in a function of four variables. Stick to the AND/OR formulation until you gain some confidence. It is hard to make a mistake and the results are obvious by inspection.

#### player123

Joined May 25, 2007
4
ok thanks!

#### Dave

Joined Nov 17, 2003
6,969
Step 1. Your table has 15 rows instead of 16
Correct, the 1-1-0-1 row is missing.

Step 2. Adjacent rows may imply a simpler expression. Example, the last two rows reveal that if C=D=S=1, then T is a don't care because the function is a 1 regardless of the value.
The simplification process will eliminate these conditions, for example:

1-1-1-0 = 1
1-1-1-1 = 1

As an expression:

C.D.S.T' + C.D.S.T = (C.D.S)(T'+T) = C.D.S

Since T'+T = 1 where ' implies NOT

Dave