Forum: Mikrocontroller und Digitale Elektronik Binäraddierer mit NAND


von Paul M. (paulmeiler)


Lesenswert?

Hallo,

Gegeben sein ein Chip mit 4x Eingängen.
Diese sind A3 bis A0.
Und den Ausgängen Y3 bis Y0.
Wenn man an A3 bis A0 eine Binärzahl anlegt (0-15) wird an Y3 bis Y0 die 
Binärzahl plus 8 ausgegeben.

D.h. ich gebe rein 0000(0) und bekomme raus 0111(7).

Jetzt soll diese Operation aber rückgängig gemacht werden.

D.h. Ich könnte entweder minus oder plus 8 rechnen.

Mit einem 4x voll Addierer kein Problem.

Der harken ist: Es dürfen nur NAND Gatter verwendet werden pro Signalweg 
Maximal 2x (plus ein Inverter), dafür dürfen die NANDs bis zu 4 Eingänge 
pro Gatter haben.

Beiße mir seit 5 Tagen an dem Problem die Zähne aus und komm einfach 
nicht drauf wie man das lösen könnte.

Vielleicht habt ihr ja ne idee, ich bin für jeden Denkansatz dankbar :)

von Peter D. (peda)


Lesenswert?

Paul M. schrieb:
> Binärzahl plus 8 ausgegeben.
>
> D.h. ich gebe rein 0000(0) und bekomme raus 0111(7).

Aha, 0 + 8 = 7

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Paul M. schrieb:
> Jetzt soll diese Operation aber rückgängig gemacht werden.
Du willst also am Ausgang das selbe wie am Eingang?

> D.h. Ich könnte entweder minus oder plus 8 rechnen.
Den Chip für +8 hast du doch schon...

Kannst du da mal eine Skizze malen, was da wo rein und raus geht und 
damit passieren soll?

von Achim S. (Gast)


Lesenswert?

Paul M. schrieb:
> Beiße mir seit 5 Tagen an dem Problem die Zähne aus und komm einfach
> nicht drauf wie man das lösen könnte.

Wow, da warst du hartnäckig.

Mein Vorschlag zur grundsätzlichen Herangehensweise wäre:
- erstelle die Warheitstabelle
- trage die Werte in ein KV-Diagramm ein
- lies aus dem KV-Diagramm die minimierten disjunktiven Gleichungen aus 
(also in der Art "(a0 oder a1) und (a0 oder /a3)". Damit hast du eine 
zweistufige Logik mit UND und ODER Gattern
- ersetzte alle UND und ODER durch NAND (das entspricht einem 
zweimaligen Invertieren und hinterher de Morgan anwenden)
- damit hast du deine zweitufige NAND-Logik. Manche Eingänge müssen zwar 
noch invertiert werden, aber dafür wurden dir ja die extra Inverter 
erlaubt.

Ob NANDs mit 4 Eingängen ausreichen weiß ich nicht (dazu müsste ich die 
Aufgabe erst selbst lösen), aber ich gehe mal davon aus. Zum einen hat 
deine Schaltung ja insgesamt nur fünft Eingänge und zum anderen hätte 
der Aufgabensteller sonst was falsch gemacht.

von (prx) A. K. (prx)


Lesenswert?

Wie üblich besteht die Hauptaufgabe darin, überhaupt erst einmal die 
Frage zu verstehen und auf das zu reduzieren, was tatsächlich dahinter 
steht. Dann schrumpft die Aufgabe ein Bisschen ein.

Tipp: Es hilft dabei deutlich, wenn man das Binärsystem versteht.

Achim S. schrieb:
> Ob NANDs mit 4 Eingängen ausreichen weiß ich nicht

;-)

: Bearbeitet durch User
von Michael A. (micha54)


Lesenswert?

Hallo,

kann es sein, dass die Lösung einen gewissen Verblüffungseffekt aufweist 
?
Ich sehe da nur ein einziges Nand mit nur einem Eingang.

Gruß,
Michael

von Jim Beam (Gast)


Lesenswert?

Paul M. schrieb:
> Binärzahl plus 8 ausgegeben.
> D.h. ich gebe rein 0000(0) und bekomme raus 0111(7).

Und würdest Du denn jetzt BITTE ENDLICH erklären
wieso bei Dir 0 + 8 = 7  ist?

Ansonsten macht keinerlei Hilfe irgendwelchen Sinn.

von Paul M. (paulmeiler)


Angehängte Dateien:

Lesenswert?

Hier mal die Wahrheitstabelle.

bei F0-F3 soll am ende wieder das selbe stehen wie bei A3-A0

von HildeK (Gast)


Lesenswert?

Wenn S1..S4 an A0 ... A3 angeschlossen ist, wieso steht dann in der 
Tabelle unterschiedliches?
Und wo soll f0 ... f3 angeschlossen sein?
Es bleibt unverständlich.

von Mario M. (thelonging)


Lesenswert?

F3 = not A0  ;-)
Und den Rest gibst Du hier ein:
http://www.32x8.com/var4.html

von Peter D. (peda)


Lesenswert?

Paul M. schrieb:
> Hier mal die Wahrheitstabelle.

Was denn nun?
+/-8 oder +/-7

von Mario M. (thelonging)


Lesenswert?

Peter D. schrieb:
> Was denn nun?
> +/-8 oder +/-7

Wenn Y gegeben ist und A raus kommen soll, muss man minus 7 rechnen.

von Zeno (Gast)


Lesenswert?

Binäre Subtraktion wird durch Addition des Einerkomplements gelöst. 
Bilde also von Deiner 8 das Einerkomplement und addiere es zu Deiner 
Zahl.

von Dieter W. (dds5)


Lesenswert?

Paul M. schrieb:
> Wenn man an A3 bis A0 eine Binärzahl anlegt (0-15) wird an Y3 bis Y0 die
> Binärzahl plus 8 ausgegeben.

Das wird schwierig, denn für Eingangswerte >=8 entsteht ein Übertrag der 
hier nicht berücksichtigt ist.

von Paul M. (paulmeiler)


Angehängte Dateien:

Lesenswert?

Habe von jemandem die Lösung gesteckt bekommen (siehe Anhang).
Jedoch bin ich mir nicht sicher wie man von dem Funktionen welche man 
aus den KV-Maps zieht auf die umsetzung in NAND kommt.

von Mario M. (thelonging)


Lesenswert?

Paul M. schrieb:
> Es dürfen nur NAND Gatter verwendet werden pro Signalweg
> Maximal 2x

Wie verträgt sich das mit der Lösung?

Paul M. schrieb:
> umsetzung in NAND kommt

Die Aufgabenstellung verlangt die Anwendung des DeMorgan'schen Gesetzes.

von Michael A. (micha54)


Lesenswert?

Mario M. schrieb:
> Paul M. schrieb:
>> Es dürfen nur NAND Gatter verwendet werden pro Signalweg
>> Maximal 2x
>
> Wie verträgt sich das mit der Lösung?
>
> Paul M. schrieb:
>> umsetzung in NAND kommt
>
> Die Aufgabenstellung verlangt die Anwendung des DeMorgan'schen Gesetzes.

Hallo,

also die Stellen A0 bis A2 gehen glatt durch, da wird nix addiert.

Nur bei A3 wird 1 addiert. Das ist ein Inverter.

Übertrag gibt's keinen.

Oder versteh ich was falsch ? Oder ist heute Freitag ?

Gruß,
Michael

von Mario M. (thelonging)


Lesenswert?

Michael A. schrieb:
> also die Stellen A0 bis A2 gehen glatt durch, da wird nix addiert.

Er will aber aus Y wieder A machen. Laut der Logiktabelle muss er minus 
7 "rechnen". Dazu darf er laut Aufgabenstellung nur max. 2 NAND-Gatter 
pro Bit verwenden. In der gezeigten Lösung sehe ich aber mehr.

von gustav (Gast)


Lesenswert?

Mario M. schrieb:
> Laut der Logiktabelle muss er minus
> 7 "rechnen".

Minus 7 geht so, falls das das Problem sein sollte:

https://www.mathetreff-online.de/wissen/mathelexikon/subtraktion-von-binaerzahlen

ciao
gustav

von Ralf D. (doeblitz)


Lesenswert?

Mario M. schrieb:
> Michael A. schrieb:
>> also die Stellen A0 bis A2 gehen glatt durch, da wird nix addiert.
>
> Er will aber aus Y wieder A machen. Laut der Logiktabelle muss er minus
> 7 "rechnen". Dazu darf er laut Aufgabenstellung nur max. 2 NAND-Gatter
> pro Bit verwenden. In der gezeigten Lösung sehe ich aber mehr.

Da im ersten Bild etwas von "GAL" stand nehme ich an, dass er meinte, 
"maximal 2 NAND-Gatter hintereinander" und Eingänge normal und 
invertiert.

von (prx) A. K. (prx)


Lesenswert?

Paul M. schrieb:
> Hier mal die Wahrheitstabelle.

Mit einem seltenen Sinn für Systematik. Mit 1=0 und 4=3 auf der einen 
Seite und 4=0 sowie 1=3 auf der anderen Seite spazierst du durch diese 
Aufgabe mit zusammengebundenen Schnürsenkeln.

Wär ausserdem immer noch offen, weshalb 7=8 ist.

von Paul M. (paulmeiler)


Angehängte Dateien:

Lesenswert?

Also ich bin der Lösung näher gekommen.
3/4 Ausgängen zeigen bereits das richtige in der Simulation.

[Linke Seite der Simulation ist der GAL, Mitte ist output des GAL und 
Rechts is der Finale Output welcher mit dem Input des GAL identisch sein 
soll.

von Schorsch X. (bastelschorsch)


Lesenswert?

Paul M. schrieb:
> Wenn man an A3 bis A0 eine Binärzahl anlegt (0-15) wird an Y3 bis Y0 die
> Binärzahl plus 8 ausgegeben.
>
> D.h. ich gebe rein 0000(0) und bekomme raus 0111(7).

Und nochmal: 0+8 soll 7 sein ????????????

Es ist ja schon fast Freitach.

von Paul M. (paulmeiler)


Angehängte Dateien:

Lesenswert?

[SOLVED]
siehe Anhang
(jedoch eigentlich mit 2 Invertern zuviel)

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.