boolean-expressiontruthtablekarnaugh-map

Karnaugh map dont-care case


I'm currently working with the following truth table

enter image description here

I need to get the karnaugh map from this table and a simulation gives me this

enter image description here

However when I manually do it I get this result (since X can be whatever you need)

enter image description here

I don't really know what I'm missing... I know it must be related to the X but what I studied says you don't really need to group all the X to get the result

What I'm currently doing is getting the group of 1s this way

1st group

0 0 0 0

0 0 1 0

this gives me a'b'd'

2nd group

0 1 1 1

this gives me a'bcd

3rd group

1 1 0 0

1 0 0 0

this gives me ac'd'

So yeah I'm not getting the same result of the simulation and I don't know why... I'm sure its something related to the don't care fields (X)


Solution

  • The other solution is considered better, because yours did not use the X in the bottom right corner to your advantage - to gain a quad (each of the four corners forms it). Also the two solutions cannot be equivalent, because the X are evaluated differently - you took it as a zero, the other solution made it a part of the group of logical ones.

    Your expression uses two pairs and one single cell and the other solution covers one quad, one pair and one single cell.

    The X cells can be indeed either 1 or 0, but it is intended to use them to find larger groups of cells for the currently chosen output value (1/0).

    You can use it in either way (as a zero or as a logical one), but then the minimal DNF and minimal CNF would not be fully equivalent to each other, because the X is kind of a shape-shifter:)

    You can see in the following picture, that one of the Xs is used in both minimal forms - once as a zero, once as a logical one.

    Using the X in K-maps

    f_1 = ¬b·¬d + a·¬c·¬d + ¬a·b·c·d
    f_0 = (c + ¬d)·(b + ¬d)·(¬a + ¬c)·(a + ¬b + d)
    

    (Images were generated using latex.)