Minimization POS K-Map 4-Input

Discussion in 'Homework Help' started by Shamieh, Feb 13, 2014.

  1. Shamieh

    Thread Starter Member

    Oct 24, 2013
    36
    1
    Void this post
     
    • grup.JPG
      grup.JPG
      File size:
      113.1 KB
      Views:
      41
    • pi.JPG
      pi.JPG
      File size:
      102.2 KB
      Views:
      41
    Last edited: Feb 14, 2014
  2. WBahn

    Moderator

    Mar 31, 2012
    17,715
    4,788
    What is preventing you from checking your own work? That is one of the most important skill that an engineer needs to develop.

    Just work the problem backwards from your solution as though it were the problem. First, is your solution in the required form -- namely POS? If yes, then given your solution, what does the K-map look like? Is that consistent with your original map?
     
  3. Shamieh

    Thread Starter Member

    Oct 24, 2013
    36
    1
    Void this post.
     
    Last edited: Feb 14, 2014
  4. WBahn

    Moderator

    Mar 31, 2012
    17,715
    4,788
    "If it's tedious, then what would be the point of me doing it?"

    How about so that you don't kill someone some day because you can't be bothered to check your own results?

    As an engineer you are in the business of solving other people's problems. If they could do it themselves, they wouldn't be paying you. That's the value that you bring to the table. There often won't be someone there to verify your results -- again, if there were, they would just pay that person instead of you.

    Learn to check your own work now instead of copping the attitude that your time is too valuable and that others should use up their time doing what is your responsibility.

    Now, you say that you don't know how to check your own work and would like an example. That's something we can work to correct.

    Let's say that you had come up with

    F = (x' + y' + z)(w + x + y')

    as your answer.

    Let's see if that agrees with the original problem statement by working the problem backwards.

    You were given a function of the form:

    F = Prod(0', 1', 2', 7', 12', 15') with don't cares for 3' and 13'

    and asked to find the minimal Product of Sums expression for it.

    So turn that around and solve the following problem instead:

    Given a Product of Sums expression, what is the corresponding expression using the Prod() notation?

    Right away we run into a specification problem. Your original problem statement makes no mention of the variables {w,x,y,z} but that is what your solution is written in terms of. However, you don't say how those map to the integers that make up your maxterm values. So we are forced to guess what your mapping is (or, more to the point, reverse engineer your work to figure out that which you should have stated).

    Looking at your K-MAP, this is easiest using the don't cares, which you have as follows:

    WX
    00 01 11 10
    YZ 00 - - x -
    01 - - - -
    11 - x - -
    10 - - - -


    Since your don't cares are 3' (0011) and 13' (1101), that means that your mapping must be yzwx. That seems like a very strange mapping, but that's what you are using. Are you sure it's what you meant to use?

    The typical mapping would be

    (msb) wxyz (lsb)

    But that's NOT what you are using.

    Since you didn't specify the mapping you intended to use, and since my mind reading skills aren't very good, there is no way for me to tell if you are right or wrong. Frankly, my guess is that you intended to use the more typical mapping and just made a very easy to make mistake. But if you want people to verify your work for you, you need to specify the problem well enough to enable them to do so.

    If necessary, we can adjust later since it is a labeling issue, so let's keep working with the mapping you appear to be using.

    Getting back to the proposed solution of

    F = (x' + y' + z)(w + x + y')

    What are the maxterms that these represent?

    Do you understand what a maxterm is? If not, this might be of use:

    http://forum.allaboutcircuits.com/blog.php?b=583

    So we want the values for which (x' + y' + z) is zero. In order for an ORing of terms to be zero, each term must be zero, which means we need

    factor y z w x maxterms decimal
    (x' + y' + z) 1 0 x 1 (1001),(1011) 9,11


    Do you see what I did? If it isn't clear, ask and we can look at it step by step.

    So just do this for all of the factors in your POS solution:

    factor y z w x maxterms decimal
    (x' + y' + z) 1 0 x 1 (1001),(1011) 9,11
    (w + x + y') 1 x 0 0 (1000),(1100) 8,12


    So the Prod() expression that corresponds to this POS expression is

    F = Prod(8', 9', 11', 12')

    Comparing this to our original starting point:

    F = Prod(0', 1', 2', 7', 12', 15') with don't cares for 3' and 13'

    we see that it does not agree AND we can see which terms we are missing and which terms we have that we shouldn't.

    Notice that the K-map wasn't used at all in this process. In principle, you could start from the solution and draw the K-map and compare that to the K-map you developed when solving the problem, but that assumes that you did the first K-map correctly (which you didn't -- look at term 7). So isn't it better if we go directly from the answer back to the original problem?

    Now, armed with all that, you should be able to take your proposed solution

    F = (x' + y' + z')(w + x + y')(y + z)

    and literally in just two minutes get

    F = Prod(0' ,1' ,2' ,3' ,8' ,12' ,13' ,15')

    Which you will see does not cover 7 but erroneously covers 8.

    F = Prod(0', 1', 2', 7', 12', 15') with don't cares for 3' and 13'

    Which is better? To not waste your valuable time figuring out how to check your work and actually spend MORE time trying to find someone to do it for you, or learning how to check your work now when the consequences for mistakes are very low?
     
Loading...