Truth Table Implementation

S

shibu

Hi All,
I have several truth tables like the following

I/P1 I/P2 I/P3 I/P4 => O/P1, I/P1 I/P2 I/P3 => O/P1 O/P2, I/P1 I/P2
I/P3 => O/P1 O/P2 O/P3 etc.

I need to implement this as C code. What is the best way to implement
this. I know SOP/POS will help me to simplify the truth tables.Is
there any alternative way to solve this. Any generic/optimized way to
solve this?
Is there any lookup ideas to help me, so that I can say "N" Inputs and
"Y" outputs...

Regards
Shibu
 
R

Roadie Roger

(e-mail address removed) (shibu) wrote
I have several truth tables like the following

I/P1 I/P2 I/P3 I/P4 => O/P1, I/P1 I/P2 I/P3 => O/P1 O/P2, I/P1 I/P2
I/P3 => O/P1 O/P2 O/P3 etc.

I need to implement this as C code. What is the best way to implement
this. I know SOP/POS will help me to simplify the truth tables.Is
there any alternative way to solve this. Any generic/optimized way to
solve this?
Is there any lookup ideas to help me, so that I can say "N" Inputs and
"Y" outputs...

Are you using some kind of compiler/optimiser that will let you look
at the optimised equations? To state the obvious, if you have a total
of N states and inputs you have a lookup table of 2^N entries. The
width of each entry is the number of outputs you have. If you have a
limited number of inputs and lots of memory, the solution is
straightforward. Roadie Roger
 
M

Michael Tiomkin

Hi All,
I have several truth tables like the following

I/P1 I/P2 I/P3 I/P4 => O/P1, I/P1 I/P2 I/P3 => O/P1 O/P2, I/P1 I/P2
I/P3 => O/P1 O/P2 O/P3 etc.

I need to implement this as C code. What is the best way to implement
this. I know SOP/POS will help me to simplify the truth tables.Is
there any alternative way to solve this. Any generic/optimized way to
solve this?
Is there any lookup ideas to help me, so that I can say "N" Inputs and
"Y" outputs...

Regards
Shibu

You have a set of dependences of your boolean function. In case that
there is only one function satisfying these dependences, they define
a truth table. The simplest way is to define a set of n k-dimensional
character arrays for a function from 2**k to 2**n (n boolean functions
with k arguments). In you case this might be
'unsigned char arr[4][2][2][2][2];' - n and k are equal to 4..

First, set all the elements of the arrays to some illegal boolean value,
e.g. 'memset(arr, 3, sizeof(arr))'. Then, for every rule, set the array
values to satisfy the rule - 'arr[0][1][1][1][1] = 0;' etc. For consistency
check, test if you ever change a value from 1 to 0 or vice versa -
in this case there is NO truth table satisfying your rules. When you
finished, test if there is an undefined value in the tables, a character
equal to 3 in our case. If this happens, your rules don't completely
define a set of boolean functions.

If you succeeded to build a lookup table, you can see the value
of the result Qi as 'arr[p1][p2]...'.

Good luck!

Michael
 
M

Mario Trams

shibu said:
Hi All,
I have several truth tables like the following

I/P1 I/P2 I/P3 I/P4 => O/P1, I/P1 I/P2 I/P3 => O/P1 O/P2, I/P1 I/P2
I/P3 => O/P1 O/P2 O/P3 etc.

I need to implement this as C code. What is the best way to implement
this. I know SOP/POS will help me to simplify the truth tables.Is
there any alternative way to solve this. Any generic/optimized way to
solve this?
Is there any lookup ideas to help me, so that I can say "N" Inputs and
"Y" outputs...

Using a lookup table for speed-optimization or a language description
(i.e. boolean logic coding) for size-optimization ???

Regards,
Mario
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,744
Messages
2,569,482
Members
44,900
Latest member
Nell636132

Latest Threads

Top