Sida 1 av 1

logiskt nät

Postat: 28 december 2009, 22:12:01
av dangraf
Hej!
jag skulle vilja göra ett eget litet logiskt nät och minns att jag har gjort detta nån gång i digitaltekniken på skolan. Tyvärr kommer jag inte ihåg vad metoden heter som vi använde. Man gjorde en tabell över vilka ingågnar man hade och vilka utgångar man ville skulle vara satta och "mixtrade lite" och plötsligt så hade man ett nät av and, nand mm för att få sin logiska funktion.

Någon som vet vad jag pratar om och peka i rätt riktining?


tabellen:

Kod: Markera allt

in1 in2 in3   ut1 ut2
1    0    x    1    0
0    1    x    0    1
1    1    0    1    0
1    1    1    0    1

Re: logiskt nät

Postat: 28 december 2009, 22:18:11
av xxargs
om du tänkte lösa genom att 'räkna' så är det förmodligen boolsk algebra du tänker på.

Re: logiskt nät

Postat: 28 december 2009, 22:28:37
av victor_passe
Använd logic friday, ett ganska fiffigt program.
Man kan göra om mellan tabeller / schema / algebraiska uttryck.

Re: logiskt nät

Postat: 28 december 2009, 22:36:42
av electronix
Och om du vill förenkla ett logiknät så använder man ett karnaughdiagram, vill jag minnas att det hette :doh:

Re: logiskt nät

Postat: 29 december 2009, 09:02:12
av prototypen
Hejsan

Jag kom aldrig överens med varken herrar Boolsk eller Karnaugh men om man tittar en stund på tillståndstabellen så kan man se vad som styr olika saker så jag ritar en stund så kommer lösningen.
I detta fallet så delar man problemet i två delar iom att IN3 kvittar i två av fyra fall.

Lösningen (inte 100% kollad men ni har så fina program för simulering)
Bild

Protte

Re: logiskt nät

Postat: 2 januari 2010, 23:41:33
av pagge
Som nämnts tidigare så är Karnaugh-diagram praktiska då du har 4 eller färre ingångar (du har tre t.ex.). Fördelen med dessa är att du får ut minimerade nät. Vill du lära dig dessa föreslår jag att du googlar lite, det visas enklast med bilder och det brukar google ha gott om.

Det går även, precis som du minns, att få ett fungerande (men inte garanterat minimalt) nät bara genom att titta på tabellen. Tricket är att för varje rad med etta på utgången, skapa ett uttryck som blir 1 exakt endast för indata på denna rad.

Exempel:

Kod: Markera allt

 in1 & !in2       (Blir 1 för indata motsvarande din första rad i tabellen)
 in1 &  in2 & in3 (Blir 1 för indata motsvarande din tredje rad i tabellen).
Orar du ihop dessa två uttryck så får du en etta vid bägge dessa tillfällen:

Kod: Markera allt

ut1 = (in1 & !in2) | (in1 & in2 & in3)
Sen hade du kunnat göra samma procedur för ut2, men det slipper du eftersom man ser "by inspection" att

Kod: Markera allt

ut2 = !ut1
Alltså, för varje rad med en etta i utgången så andar du ihop alla ingångar som inte är don't care.

De ingångar med en nolla på den raden i tabellen inverteras

Slutligen oras alla raduttrycken ihop.

Du har nu en tvåstegs lösning där du först ANDar ingångarna (och eventuellt inverterar). Svaret ifrån andningen går till en fleringångars OR. Du har ett så kallat AND-OR nät. Dock är den vanligaste grinden NAND (AND följt av NOT). Det riktigt magiska nu är att du kan ta ditt AND-OR nät och bara rakt av byta ut alla grindarna mot NAND grindar, och det fungerar ändå.

Du får ta det som övning att övertyga dig om att / hur det funkar.
HINT:
Ställ upp ett enkelt AND/OR nät.
Sätt dubbla inverterare (påverkar ju inget) mellan AND och OR grinden.
Reflektera över: Vad blir AND med inverterare efter? Vad blir OR med inverterade ingångar?