Forum: Mikrocontroller und Digitale Elektronik Problem mit Bool´scher Algebra


von Bernhard (Gast)


Lesenswert?

Hallo an alle!

Ich komm an einem - wenn auch ganz einfachen - Problem nicht weiter:

Sgen wir ich will folgende logische Verknüpfung sowohl mit NAND als auch 
NOR Gattern realisieren und die Anzahl der benötigten Gatter 
vergleichen.

DIe Funktion sei: Y = !A*B + A*!B  (entspricht einem XOR Gatter).

Wie komm ich nun auf die(optimierte) NAND/NOR schaltung.

Ich habs mal mit doppelter inversion des ganzen ausdrucks und 
anschließendem de Morgan versucht, aber dann weiß ich nicht weiter.


Kann jemand si freundlich sein, mir zu erklären, wie ich so einem 
Problem systematisch zu Liebe rücken kann? Auf Wikipedia und ähnlichen 
Seiten fand ich nur die Lösung, weiß aber nicht, wie ich mittels 
bool´scher Algebra auf die nötige Gleichung gelangen kann.

DANKE!!

Lg,
Bernhard

von Xor (Gast)


Angehängte Dateien:

Lesenswert?

Das geht mit 4 Gattern

gruß aus C an der C

von Xor (Gast)


Lesenswert?

ich vergass : Karnaugh-Wiki

gruß aus C an der C

von Bernhard (Gast)


Lesenswert?

Danke sehr für die Antwort!!

Ich habe auf Wikipedia bereits gefunden, dass es mit 4 NAND Gattern 
möglich ist.

Was ich allerdings suche, ist die Gleichung, die dieses Netzwerk 
beschreibt, bzw. wie ich von der Ausgangsgleichung auf die optimierte 
Gleichung komme.

Wenn ich mir das anschreibe, schaff ich es immer nur mit 5 NAND Gattern.

Bzw mit 6 NOR Gattern, wobei ich auch net weiß, ob man das nicht noch 
optimieren kann?!

DANKE!

Gruß,
Bernhard

von Xor (Gast)


Lesenswert?

nach Karnaugh optimierte Sachen sind nicht weiter zu optimieren!!!!
da kannst Du auf und niederspringen!

Y = !(!(!(A^B))^!(AvB))


!(AvB)     ->  NOr
!(A^B)     ->  NAnd
!A         ->  Neg

Gruß aus C an der C

von Bernhard (Gast)


Lesenswert?

Ja, das es nicht weiter zu optimieren ist, ist mir klar.

Tut mir leid, scheinbar seht ich jetzt total daneben, aber auf deine 
oben genannte Gleichung

Y = !(!(!(A^B))^!(AvB))

komme ich einerseits nicht durch Umformungen und andererseits ist da ja 
weider ein NOR drinnen, was in ein NAND umgeformt wieder 2 gatter 
benötigt?!


Ich blick da einfach net durch?! ;-(

Grüße,
Bernhard

von Xor (Gast)


Lesenswert?

Ach, Du willst nur Nor oder nur Nand?

Hab ich das jetzt richtig Versatanden?

Gruß aus C*z an der C*z

von Xor (Gast)


Lesenswert?

entschuldige die langen Reaktionszeiten, ich muß nebenher auch arbeiten.

von Bernhard (Gast)


Lesenswert?

Ja genau, nur NOR bzw. nur NAND!

DANKE!

von Xor (Gast)


Lesenswert?

.. dann darfst Du "beim einkästeln" nur waagerechte Blöcke (And),
oder senkrechte (Or) zweier Blöcke nehmen!

Dieses bezieht sich auf die Ausrichrung:

Eingange links
Ausgange oben

gruß aus C?m*z an der C?m*z

von Holger S. (strabe)


Angehängte Dateien:

Lesenswert?

Hi,

ich hab' das mal irgendwann so gelernt. Doppelt negieren -> ändert ja am 
Gesamtausdruck nichts, dann solange die Rechenregeln anwenden bis man 
auf NORs ist. Hab dir mal 'n Foto reingestellt - ohne Gewähr auf 
richtigkeit, ist halt schon verdammt lang her
vielleicht hilft's

Gruß Strabe

von Bernhard (Gast)


Lesenswert?

Hallo Holger!

Ja genau so hab ich das bei der NOR Variante auch gemacht, (von daher 
kommen die 6 benötigten Gatter) - hab leider keinen funktionierenden 
scanner im Moment.


Nur wenn ich genau nach diesem Rechenschema vorgehe, dann erhalte ich 
(mit NAND) 5 Gatter.

Bei einem Übungsbeispiel ist aber eine lösung mit 4 NAND gattern 
gefordert. Und diesen Umformungs - Trick suche ich im Moment noch.

Lg,
Bernhard

von Xor (Gast)


Lesenswert?

.. durch einfaches Umstellen wird man dem Problem nicht Herre!

gruß aus C an der C

von Xor (Gast)


Lesenswert?

ich war auf die Reaktion von  Holger S. gespannt, aber er wirft eine
Sache in den Raum die wir alle kennen.

es geht neben der Umstellung auch um die Optimierung!

hab jetzt Feierabend bis morgen!

PS: Ich bin einer der noch TTL Bretter gemacht hat und es
    nachträglich versucht hat es in Si zu gießen. Jetzt gibt
    es solche feinen Sachen wie µC's, Gal's, ...
    ich möchte diese Zeit niiiiiiiiieeeeeeeee wieder!

    wenn sich Bernhard dafür interessiert "muß" wie es damals war,
    frage ich mich besorgt warum ihm seine Dozenten mit solchen
    Sinnlosen "Hausaufgaben" beschäftigen??????? beschäftigen können?
    Ich fände es sinnvoller Ihm ordentlich ASM oder VHDL bei zubingen!!

    Wenn wir allen die Grundschaltungen bis auf's letzte Gatter
    optiemieren können sind wir wieder bei den TTL-Bretten und das
    mit frischen Absolventen!

    WAS SOLL DAS

    wenn Du Holger S. wirklich Interesse daran hast, dann schaue Dir
    wirklich das Karnaugh-Diagramm an und versuche es zu verstehen!
    damit kannst Du jede Logik optimienen!

Gruß aus Chemnitz

von Holger S. (strabe)


Lesenswert?

Hallo XOR,

haste einen anner Mütze ?

Ich hab' überhaupt keine Frage gestellt und wollte nur behilflich 
sein....

Gruß Strabe

von Holger S. (strabe)


Angehängte Dateien:

Lesenswert?

Hallo Bernhard,

auflösen kann ich dein Rechenproblem leider nicht mehr ( hab' ehrlich 
gesagt auch nicht den Trieb mich wieder intensiv damit auseinander zu 
setzen). Wenn ich mich recht erinnere gibt's noch die Möglichkeit den 
Term zu erweitern und anders zusammenzufassen. In der Praxis 
funktioniert es jedenfalls sogar mit 4 NAND( s.Bild ) vielleicht kannst 
du dir das Rückwärts auflösen und kommst so auf den Weg.

http://discuss.fogcreek.com/techInterview/default.asp?cmd=show&ixPost=2131


Gruß Strabe

der auch TTL-Bretter gemacht hat...  ;)

von Xor (Gast)


Lesenswert?

Sorry @ Holger S.

bin jetzt zuhause.

Aber vieleiecht hast Du (Sie) einen an der Waffel mich so anzugreifen!

Ich wollte Dich (Sie) weder Bloßstellen noch Beleidigen!
Ich achte jeden der konstruktiv (ohne die .. wie kann ich eine 
Stinkbombe
bauen), einen Beitrag auf dieser Seite leisten!

so auch Dich! (Sie)

Xor

von Xor (Gast)


Lesenswert?

nochmal @ Holger S.

Das mit den 4 Nand's hatte Bernhard schon vor Stunden.
Ihm geht es um den Rechenweg.

... den ich auch nicht so genau beschreiben kann. (auch zu lange her)

löse ich sowas über Karnaugh graphisch.

Ausgänge max 4, da max 4 Eingangszustände

(1)         /Y/Z  Y/Z   /YZ   YZ

/A/B   0/0   0     X     X    X
 A/B   0/1   1     X     X    X
/A B   1/0   1     X     X    X
 A B   1/1   0     X     X    X

ODER

(2)        /Y/Z  Y/Z   /YZ   YZ

/A/B   0/0   X     0     X    X
 A/B   0/1   X     1     X    X
/A B   1/0   X     1     X    X
 A B   1/1   X     0     X    X

ODER

(3)         /Y/Z  Y/Z   /YZ   YZ

/A/B   0/0   X     X     0    X
 A/B   0/1   X     X     1    X
/A B   1/0   X     X     1    X
 A B   1/1   X     X     0    X

ODER

(4)         /Y/Z  Y/Z   /YZ   YZ

/A/B   0/0   X     X     X    0
 A/B   0/1   X     X     X    1
/A B   1/0   X     X     X    1
 A B   1/1   X     X     X    0

jetzt kommt Logik -> Brain

,da weder NOR noch NAND mit 1/0 bzw 0/1 was anfangen können
(beide geben die gleichen Zustande aus (nicht Meckern ich kenn den 
Unterschied), scheiden die zwei mittleren Spalten aus.

Daraus ergibt sich folgendes Diagramm


(5)         /Y/Z    YZ

/A/B   0/0   0      0
 A/B   0/1   1      1
/A B   1/0   1      1
 A B   1/1   0      0

wenn Du die beiden Blöcke waagerecht zusammenfasst Hast Du nur AND's
senkrecht nur OR's


(6)         /Y/Z    YZ

/A/B   0/0   0      0
 A/B   0/1   1      1
/A B   1/0   1      1
 A B   1/1   0      0

verdammt ich habe weder Farben noch ein Stich -_ überhalb der Zeichen!
somit kann ich das nicht "zusammen kästeln"!!!!

HILFE Moderator!

von Xor (Gast)


Lesenswert?

ha, hab die eckigen Klammern erfunden ...

(7)         /Y/Z    YZ

/A/B   0/0   0      0
 A/B   0/1  [1      1]
/A B   1/0  [1      1]
 A B   1/1   0      0

was genau deiner Ausgangsgleichung entspricht!

> Y = !A*B + A*!B

wenn Du jetzt senkrecht zusammen fäßt hasst Du Or's bzw Nor's

von Holger S. (strabe)


Lesenswert?

Hallo Xor,

ok --> Vertragung ! teilen wir 50/50 unglückliche 
Formulierung/unglückliche Interpretation - ich hatte mich eben von Dir 
angegriffen gefühlt...vergessen wir's.

sehr schöne Erklärung übrigens, ich glaube aber das Bernhard die 
Kreativen Einfälle, den Term von der optimierten Form kommend, 
umzubauen. Damit er als Ergebnis eine Schaltung mit 4 NAND aufbauen 
kann. Den Weg zur Optimierung hat er anscheinend drin...
Nix für Ungut - ich klink mich jetzt aus - bis demnächst mal

Gruß Strabe

von Xor (Gast)


Lesenswert?

angenommen!

Xor

von Bernhard (Gast)


Lesenswert?

OK, die Herren. Wieder mal was von meiner Seite.

Sorry, das ich so lange weg war, aber auch ein Student wie ich muss 
gelegentlich arbeiten, um was aufs Brot zu bekommen ^^

ICh werde mich nun jedenfalls erstmal eure ganzen Posts in Ruhe 
durchlesen und analysieren :-)

SOllte ich danach noch immer nicht schlauer sein, meld ich mich eben 
wieder ^^

Danke euch beiden für die Unterstützung!!

Lg,
Bernhard

von Xor (Gast)


Lesenswert?

:-) ^^ !!

ok:

Du (Sie) Student bist an einer Schauspielschule?

Es gibt mindestens zwei die sich über Deine (Ihre)
Aufgaben Gedanken gemacht haben.

Wenn Du einen mit deinem Beitrag uns "VERHOHNEPIPELN"
willst, macht evtl nur noch einer mit!

(ich glaube Holger S. war auch mal Student)

Xor (der, der weg ist!)

von dreg (Gast)


Lesenswert?

Hallo
Zitat Bernhard:
Ich habe auf Wikipedia bereits gefunden, dass es mit 4 NAND Gattern
möglich ist.

Was ich allerdings suche, ist die Gleichung, die dieses Netzwerk
beschreibt, bzw. wie ich von der Ausgangsgleichung auf die optimierte
Gleichung komme.
Zitat Ende

Der mathematische Weg von der Ausgangsgleichung zur optimierten 
Gleichung ist meines Erachtens noch nicht aufgezeigt.
Darum hier:
EXOR = (!A^B)v(A^!B)
Terme ausmultiplzieren:
EXOR = (!AvA)^(!Av!B)^(BvA)^(Bv!B)
zusammenfassen:
EXOR =    1  ^(!Av!B)^(BvA)^   1
EXOR = (!Av!B)^(BvA)
linken Term zum NAND umformen:
EXOR = !(A^B) ^(BvA)
Terme ausmultiplizieren:
EXOR = (!(A^B)^B) v (!(A^B)^A)
Terme doppelt negieren -> NAND
EXOR = !(!(!(A^B)^B)^!(!(A^B)^A))

Grus
dreg

von Bernhard (Gast)


Lesenswert?

@Xor:

Ich habe keine Ahnung, was für ein Problem du mit meinem letzten Post 
hast, von daher werde ich dies auch nicht weiter kommentieren.

@dreg:
Danke, danke, danke, genau das wollte ich wissen :-P

Gruß an alle Helfenden,

Bernhard

von Bernhard (Gast)


Lesenswert?

@dreg:

Noch eine Frage, hab mir das noch mal auf Papier zu Gemüte geführt.

Wenn ich

EXOR = (!A^B)v(A^!B)

ausmultipliziere zu

EXOR = (!AvA)^(!Av!B)^(BvA)^(Bv!B)


Hast du da nicht die ^ und v verwechselt?!

Oder ist das die Anwendung eines Theorems? Denn "normales" 
ausmultiplizieren wohl nicht?!

DANKE

von dreg (Gast)


Lesenswert?

Hallo

Terme ausmultiplizieren geht so:
(2+3)*(2+3) = 25
2*2 + 2*3 + 3*2 + 3*3 = 25
 4  +  6  +  6  +  9  = 25

gruss
dreg

von Holger S. (strabe)


Lesenswert?

Hallo allerseits,

perfekte Erklärung von dreg!

wenn man jetzt noch erkennt das !(A^B) zweimal vorkommt, also dafür 1 
Nand ausreicht ist man am Ziel.

Gruß Strabe

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.