Binäre Subtraktion auf Gatterebene

Gast #6190869
Lesenswert?

Ich möchte gerne einen kleinen Binärrechner bauen. Anfangs mal 4-Bit. 
Addieren, subtrahieren soll er können. Addieren ist natürllich kein 
Problem aber beim Subtrahieren bin ich nicht weitergekommen. Ich habe 
gelesen das man mittels eines Addierers auch subtrahieren kann indem man 
einen Summanden negiert. Mein Problem ist aber: Wie stellt man negative 
Zahlen Binär dar und rechnet mit ihnen. Das ist mal das wichtigste. Die 
Schaltung kann ich mir dann wahrscheinlich selbst machen. Schon mal 
jetzt danke für alle Antworten.

LG
Jakob
Gast #6190892
Lesenswert?

Hallo ilm8.

Am Besten schaust du Dir mal die Wahrheitstabellen an.

Addition: (Ü = Übertrag in nächste Stelle)
0 + 0 = 0, Ü = 0
0 + 1 = 1, Ü = 0
1 + 0 = 1, Ü = 0
1 + 1 = 0, Ü = 1

Subtraktion:
0 - 0 = 0, Ü = 0
0 - 1 = 1, Ü = 1
1 - 0 = 1, Ü = 0
1 - 1 = 0, Ü = 0

Der Ausgang für beide Funktionen entspricht der XOR Funktion.

XOR: (# = XOR)
0 # 0 = 0
0 # 1 = 1
1 # 0 = 1
1 # 1 = 0

Den Übertrag für Addition bildest du aus A UND B.
Den Übertrag für Subtraktion aus A/ UND B.

Gruß. Tom
Gast #6190905
Lesenswert?

Habe noch vergessen. Die Tabellen zeigen nur einen Halbaddierer (1. 
Sufe). Für alle folgenden Stufen brauchst du einen Volladdierer, welcher 
einen Übertrag der vorhergehenden Stufe berücksichtigt.

Unter Halb- Volladdierer findest du alles Nötige im Netz oder 
Digitaltechnik Büchern.
Beitrag #6200044 wurde von einem Moderator gelöscht.
Gast #6200609
Lesenswert?

TomA schrieb:
> Der Ausgang für beide Funktionen entspricht der XOR Funktion.

Richtig, und wenn man das jetzt noch auf einen 
Volladdierer/-subtrahierer erweitert (mit Uebertrags-Eingang), dann 
komme ich auf

A' = A xor SUB
Q = A xor B xor Ci
Co = (B and Ci) or (A' and (B or Ci))

(A, B = Operanden, Ci = Carry in, Co = Carry out, Q = Ergebnis, SUB = 0 
fuer addieren, 1 fuer subtrahieren)

Das laesst sich noch vereinfachen, indem man statt (B or C) (B xor Ci) 
nimmt, so dass man das Gatter aus Q verwenden kann. In diesem Fall kann 
man das letzte OR auch als XOR ausfuehren (da (B and Ci) und (B xor Ci) 
nie gleichzeitig eins sind), so dass man mit zwei Typen auskommt:

4x XOR, 2x AND.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren