Forum: Mikrocontroller und Digitale Elektronik Subtrahieren mit Digitaler Schaltung


von Marcel H. (punkkeks)


Angehängte Dateien:

Lesenswert?

Moin moin,

ich befasse mich zur Zeit auf Bitebene mit den Grundlegenden 
Operationen, also HA, FA, ALU, (CPU), FF usw.

Addition: Kein Problem...
Subtraktion: In der Theorie ja, praktisch funktioniert es null!
Multiplikation: (wenn man weiß, einfach :) )
Division: Noch gar kein Plan...

Es geht aber zur Zeit um die Subtraktion:
Ich habe zwei Schaltungen aufgebaut. Die Erste (FS_II) ist nach der 
Vorlage von Wikipedia angelegt ( 
http://de.wikipedia.org/wiki/Addierwerk#Subtrahieren )
Es funktioniert in keinster Weise... Egal wie ich es drehe und wende... 
nö :) Als Schaltung mal unter http://cookiesoft.de/~keks/FS_II.gcg zu 
finden :) (Das Programm heißt Logic Gate Simulator, gefällt mir ganz 
gut.. ein wenig unordentlich, aber sonst gut :) )
Die Zweite  (FS.png bzw. http://cookiesoft.de/~keks/FS.gcg nach einer 
Idee von http://www.metafair.de/pub/da03_facharbeit.pdf und das 
funktioniert schon besser, aber auch nicht 100% gut. Das Problem hier 
ist, dass der Signum Ausgang (das letzte Carry out) dauerhaft leuchtet 
und auch nicht sehr gut ist.
Also nun mein Ding. Habt ihr eine wirklcih 100% funktionierende 
Subtraktionseinheit, die man am besten auch umschalten kann bzw. auf 
einen Volladdierer aufbauen. Das ganze muss dann "6-Bit-Fähig" sein.

Dankeschön ;)

Mfg

Marcel

von Uwe .. (uwegw)


Lesenswert?

Eigentlich liefert Wikipedia ja direkt die Lösung: statt a-b rechnet man 
a+(-b), ändert also lediglich das Vorzeichen des zweiten Operanden. Und 
das soll nicht funktionieren? Hast du dir mal angeschaut, ob das 
Zweierkomplement korrekt gebildet wurde?

von Jürgen H. (jrgen_h)


Lesenswert?

...was ist denn "FA" und wie ist das miteinander verbunden?

Ich würde mich mal ein wenig mit dem Thema Zweierkomplement 
auseinadersetzen.

J.

von oldmax (Gast)


Lesenswert?

Hi
Wieso tust du dich so schwer ? Im Dezimalsystem rechnest du mit der 
Basis 10, also mit Ziffern zwischen 0 und 9. Das ist schon ein 
Riesenbereich. Die Digitaltechnik hat nur Zahlen auf der Basis 2, also 
nur Ziffern zwischen 0 und 1, das sollte doch viel einfacher sein.....
Ach ja das andere ist ja bereits erwähnt, also, das eine Subtraktion nur 
eine Addition negativer Zahlen und eine negative Zahl im Binärsystem 
eben das Zweierkomplement ist....
Gruß oldmax

von Michael S. (rbs_phoenix)


Lesenswert?

ich denke mal "FA" soll "VA" heißen, wie Voll-Addierer ;)

von (prx) A. K. (prx)


Lesenswert?

Michael Skropski schrieb:

> ich denke mal "FA" soll "VA" heißen, wie Voll-Addierer ;)

Oder für nicht mit Deutsch geplagte Anwender eben Vull Adder. ;-)

von Michael S. (rbs_phoenix)


Lesenswert?

Ich wollts grad editieren in: "FA" ist ein "VA" (Voll-Addierer)...

Aber nee.. du bist ja zu schnell, dass man noch was hätte editieren 
können^^

von Peter D. (peda)


Lesenswert?

Du brauchst einen 6Bit-Inverter und einen 6Bit-Adder mit Carry-Input.

A - B = A + NOT(B) + 1


Peter

von Marcel H. (punkkeks)


Lesenswert?

so guten morgen :) endlich ausgeschlafen...
ja FA ist ein FullAdder bzw. Volladdierer, daran sollte man sich nicht 
stören ;) dachte mach ich da mal einen auf MultiKulti. Spaß beiseite.

Das Problem ist nun mal, dass man mit dem ersten fast nicht rechnen 
kann, also z.B. 10-01 ergibt ja 01, alles normal. (FS_II), aber 10-10 
ergibt - .... also das letzte carry bit ist aktiv, und das sollte es ja 
nicht sein, denn ist ja 0, also kein ausgang an!
Auch 01-11 ergibt laut dem 10, es muss aber -10 sein... ach alles ein 
wenig komisch. Addieren funtkioniert wunderbar ;)

Die andere Schaltung Selbes Szenario. Alles aus ergibt - .... nicht das 
gelbe vom Ei.
10-01 = 01, alles gut 01-10=-01, auch gut, aber es funktioniert doch 
nicht so recht. Ich bin grade dabei eine Mischung aus beiden zu bilden, 
mal schauen, wie das funktioniert ;)

von Peter D. (peda)


Lesenswert?

Marcel Hellwig schrieb:
> aber 10-10
> ergibt - .... also das letzte carry bit ist aktiv, und das sollte es ja
> nicht sein, denn ist ja 0, also kein ausgang an!

Einfach nen Inverter hinter das letzte Carry.


Peter

von L- S. (l_s497)


Angehängte Dateien:

Lesenswert?

Ich habe selbst eine solche Schaltung erstählt über binär Code ich hoffe 
das Hilft dir.

von Hans (ths23)


Lesenswert?

L- S. schrieb:
> ... erstählt ...
Ja die beigefügte Schaltung ist wirklich stahlhart.

von Wastl (hartundweichware)


Lesenswert?

Hans schrieb:
> Ja die beigefügte Schaltung ist wirklich stahlhart.

Sie benötigte ja auch eine Entwicklungszeit von
mehr als 12 Jahren.

von Motopick (motopick)


Lesenswert?

Wastl schrieb:
> Hans schrieb:
>> Ja die beigefügte Schaltung ist wirklich stahlhart.
>
> Sie benötigte ja auch eine Entwicklungszeit von
> mehr als 12 Jahren.

Vermutlich hat das FPGA-Tool, aus dem die Schaltung "herausraubkopiert"
wurde, solange fuer die Synthese gebraucht.

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.