Email: Password: Remember Me | Create Account (Free)

Back to Subject List

Old thread has been locked -- no new posts accepted in this thread
???
02/21/07 13:46
Read: times


 
#133417 - Boolean Algebra with "dont cares"
Basically, my goal is to convert 8051 machine bytes to a simplified set of expressions for my ROM.

here is my code:

start:
w1:
jnb P3.4,w1
mov A,P1
movx @dptr,A
inc dptr
w2:
jb P3.4,w2
ajmp start
mov R7,A
mov R7,A
mov R7,A
mov R7,A


Here is a sample of the above program assembled in bits:

/D /C /B /A   00110000  
/D /C /B  A   10110100  
/D /C  B /A   11111101  
/D /C  B  A   11100101  
/D  C /B /A   10010000  
/D  C /B  A   11110000  
/D  C  B /A   10100011  
/D  C  B  A   00100000  
 D /C /B /A   10110100  
 D /C /B  A   11111101  
 D /C  B /A   00000001  
 D /C  B  A   00000000  
 D  C /B /A   11111111  
 D  C /B  A   11111111  
 D  C  B /A   11111111  
 D  C  B  A   11111111  


The bits on the right represent the machine version of the script above. The letters on the left represent the address. a "/" before the letter means the inverse. For example, /D /C /B /A = 0000 and D C B A = 1111.

The left-most character in any column is the MSB.

Basically, I slice the bytes down vertically, so that I generate the individual truth tables for each byte where I perform the Quine McCluskey equation.

For example, The addresses below on the left make the LSB true.
Remember, this is my truth table for the LSB bit. I need to do one for all 8 bits.

/D /C  B /A   11111101  
/D /C  B  A   11100101  
/D  C  B /A   10100011  
 D /C /B  A   11111101  
 D /C  B /A   00000001  
 D  C /B /A   11111111  
 D  C /B  A   11111111  
 D  C  B /A   11111111  
 D  C  B  A   11111111  


Any "Mov R7,A" instruction in my script (above near the top) is represented in the assembled code as "11111111". These byte will appear in all truth tables because all bits are "1".

HOWEVER, I can include them anytime I want, and If I need to add more of them, I can.

My objective is to create the most simplest boolean equation based on my code, but I don't know how many "don't cares" I need.

As it stands now, I have my computer scan every single bit combination for the "don't care" status, but the problem is that this method will take a very long time.

This means it will scan at least 256 to the exponent of 4 combinations. That's about 4294967296 combinations provided each bit is checked on the same combination. But then if I had bit 1 check combo 1, and bit 2 check combo 2, then I have to put 4294967296 to the exponent of 8.

Seems to me that my only solution is to wait forever (literally), but rather than wait forever, I was wondering if there is a better way (mathematically) to assign the proper value for "Don't Cares" so that the equation is minimized.

Ultimately, I want to end up with a hardwired rom using the lowest number of necessary logic gates.

and of course, I don't care what happens if the 8051 microprocessor asks for addresses outside of my code.

Can someone help me on this please?
thanks.

List of 96 messages in thread
TopicAuthorDate
Boolean Algebra with "dont cares"            01/01/70 00:00      
   I do not fully get your applicatiojn, but            01/01/70 00:00      
      Let me explain            01/01/70 00:00      
   Karnaugh Mapping            01/01/70 00:00      
      longer?            01/01/70 00:00      
         8 times is longer?            01/01/70 00:00      
            I explained it            01/01/70 00:00      
               a square wheel is not that easy to make, is it?            01/01/70 00:00      
               Do you understand Karnaugh Mapping?            01/01/70 00:00      
   theres a very old program called espresso            01/01/70 00:00      
   also remember logic minimisation            01/01/70 00:00      
   Don't Cares            01/01/70 00:00      
      I don't think he needs an RS232 receiver            01/01/70 00:00      
         Well spotted            01/01/70 00:00      
            Deja Vu            01/01/70 00:00      
               Everything old is new again!            01/01/70 00:00      
                  For the paranoid...            01/01/70 00:00      
                     I have made my decision            01/01/70 00:00      
                        depending...            01/01/70 00:00      
                           yes and yes            01/01/70 00:00      
                              DPTR initialized            01/01/70 00:00      
                                 ...            01/01/70 00:00      
                                    fewest number of chips            01/01/70 00:00      
                                       You can do it with TWO chips.            01/01/70 00:00      
                                    You keep saying that!            01/01/70 00:00      
                                       Well ... he's on a crusade now ... let him be            01/01/70 00:00      
                                          ok            01/01/70 00:00      
                                             Common approach            01/01/70 00:00      
                                                I have a different idea            01/01/70 00:00      
                                                   that square wheel will get you in the ditch in 5 m            01/01/70 00:00      
                                                      No Sync -- The Same            01/01/70 00:00      
                                                         but            01/01/70 00:00      
                                                            thanks to Mr. Gates, that will not work            01/01/70 00:00      
                                                               at least I try.            01/01/70 00:00      
                                                                  driving your car into a tree also "can be done"            01/01/70 00:00      
                                                                     ...            01/01/70 00:00      
                                                                        I would never pay for something with 47 chips wher            01/01/70 00:00      
                                                                        well anyroad up            01/01/70 00:00      
                                                                        Proving one is crazy            01/01/70 00:00      
                                                                           Russell, you forgot the REAL issue            01/01/70 00:00      
                                                   just once            01/01/70 00:00      
                                 give him a a break ... he's using the INTEL part            01/01/70 00:00      
                        CrazyROM2 Still 15-18 Chips            01/01/70 00:00      
                           Practical? Credible?            01/01/70 00:00      
                              Impractical and Incredible            01/01/70 00:00      
                                 These guys knew what they were doing!            01/01/70 00:00      
                           That code is pretty much what I use            01/01/70 00:00      
      answer            01/01/70 00:00      
         Remove the blinkers!            01/01/70 00:00      
            A light dawns?            01/01/70 00:00      
   Don't cares are Dangerous Here            01/01/70 00:00      
      Now there's the thing...            01/01/70 00:00      
         Mike S I wish you a lot of fun            01/01/70 00:00      
   One 74154 and a handful of diodes            01/01/70 00:00      
      omg            01/01/70 00:00      
         Depends on buffer...            01/01/70 00:00      
            so does using ROM banks not make the use of a ROM            01/01/70 00:00      
               Used to have one...            01/01/70 00:00      
   has anyone ever 'lost' a ROM?            01/01/70 00:00      
      Yea, but I found it later :)            01/01/70 00:00      
      Lost ROMs            01/01/70 00:00      
         No part is failure-proof            01/01/70 00:00      
            statistical reliability issues            01/01/70 00:00      
               it's a learning experience ... [sigh]            01/01/70 00:00      
                  as usual, Mike replied "that is not what I want"            01/01/70 00:00      
                     well, maybe not zero ...            01/01/70 00:00      
                        ah, now I understand why Mike is doing this            01/01/70 00:00      
                           Buggy Whip Pricing            01/01/70 00:00      
                              oh, well            01/01/70 00:00      
                                 Maybe he should be left to his own devices            01/01/70 00:00      
                                    I made a better decision            01/01/70 00:00      
                                       the wheel is still square            01/01/70 00:00      
                                       why nop?            01/01/70 00:00      
                                          correction            01/01/70 00:00      
                                             answer            01/01/70 00:00      
                                                another question            01/01/70 00:00      
                                                   something else            01/01/70 00:00      
                                                      and I should have added...            01/01/70 00:00      
                                                         hard-coded            01/01/70 00:00      
                                       a couple of \'138\'s should do it            01/01/70 00:00      
                                          answer            01/01/70 00:00      
                                             not the first, more like #237654            01/01/70 00:00      
                                             "Invent"- Try 8052-BASIC            01/01/70 00:00      
                                       Just a thought            01/01/70 00:00      
                                       No thanks to anyone            01/01/70 00:00      
                                          Let the boy flounder ... he'll figure it out!            01/01/70 00:00      
                                          a bit of a chuckle?            01/01/70 00:00      
                                             sooner or later ...            01/01/70 00:00      
                                                you may be right :)            01/01/70 00:00      
                                                if I must lower my speed for programming, I will            01/01/70 00:00      
                                                   Capacitors on the write line            01/01/70 00:00      
                                                      NAAH            01/01/70 00:00      
                                                         anyone tell ya I have a slower clock too?            01/01/70 00:00      
                                                            Do you mean a crystal?            01/01/70 00:00      
                                                               it may            01/01/70 00:00      
   So, Mikey ... have you finally wised up?            01/01/70 00:00      

Back to Subject List