www.mikrocontroller.net

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


Autor: Bernhard (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Xor (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Das geht mit 4 Gattern

gruß aus C an der C

Autor: Xor (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich vergass : Karnaugh-Wiki

gruß aus C an der C

Autor: Bernhard (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Xor (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Bernhard (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Xor (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ach, Du willst nur Nor oder nur Nand?

Hab ich das jetzt richtig Versatanden?

Gruß aus C*z an der C*z

Autor: Xor (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
entschuldige die langen Reaktionszeiten, ich muß nebenher auch arbeiten.

Autor: Bernhard (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja genau, nur NOR bzw. nur NAND!

DANKE!

Autor: Xor (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Holger S. (strabe)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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

Autor: Bernhard (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Xor (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
.. durch einfaches Umstellen wird man dem Problem nicht Herre!

gruß aus C an der C

Autor: Xor (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Holger S. (strabe)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo XOR,

haste einen anner Mütze ?

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

Gruß Strabe

Autor: Holger S. (strabe)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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....


Gruß Strabe

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

Autor: Xor (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Xor (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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!

Autor: Xor (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Holger S. (strabe)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Xor (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
angenommen!

Xor

Autor: Bernhard (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Xor (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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!)

Autor: dreg (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Bernhard (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Bernhard (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: dreg (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Holger S. (strabe)
Datum:

Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.