Forum: FPGA, VHDL & Co. Codierung von negativen Zahlen für Adder in Spartan


von Nichtwisser (Gast)


Lesenswert?

Hallo zusammen,

bin Anfänger in VHDL und lerne mit der WEB ISE.

Meine Frage betrifft die Kodierung von negativen ganzen Zahlen.

Beispiel: Wenn ich mit dem Coregen einen Adder z.B. mit jeweils 
Eingangs-Bitbreite 9 Bit entwerfe ( als vorzeichenbehaftet deklariert ) 
und diesen in meinen code einbinde und ich möchte die Zahlen A= -12 und 
B= -32 addieren.

Wie muss dann das Bitmuster für A und B aussehen ?

Dezimal 12 entspricht binär 0 0000 1100

Dezimal 32 entspricht binär 0 0010 0000

Dezimal -12 entspricht dann binär 1 000 1100 ( das ist die Frage ?? )

Wird bei Dezimal = -12 das höchste Bit einfach als Vorzeichen bit vom 
Addierer interpretiert ?   Also in unserem Fall das Bit 9 ???

Wie würde das Bitmuster für das Ergebnis aussehen ? ( Dezimal - 48 )

von Falk (Gast)


Lesenswert?

@Nichtwisser

>Meine Frage betrifft die Kodierung von negativen ganzen Zahlen.

Zweier Komplement

>und diesen in meinen code einbinde und ich möchte die Zahlen A= -12 und
>B= -32 addieren.
>Dezimal 12 entspricht binär 0 0000 1100
>Dezimal 32 entspricht binär 0 0010 0000

>Dezimal -12 entspricht dann binär 1 000 1100 ( das ist die Frage ?? )

Das wäre Einer Komplement. Du brauchst das Zwierkomplement.

http://de.wikipedia.org/wiki/Zweierkomplement

MFG
Falk

von Nichtwisser (Gast)


Lesenswert?

Hallo Falk,

danke für den Link. Habs jetzt verstanden.

Meine Frage ist eigentlich aus folgendem Sachverhalt entstanden:

Ich habe einen VHDL code durchgearbeitet, bei dem 2 Zahlen multipliziert 
werden.

Das wurde so gemacht:

1. vorzeichen der Vorzeichenbehafteten Zahlen einlesen. ( MS Bit)
2. Falls es sich um eine negative Zahl handelt:
   wird eine  1 subtrahiert und dann die Zahl negiert
3. Mulitplikation durchführen
4. Ergebnis Vorzeichen hinzufügen über XOR Verknüpfung der Vorzeichen er 
Summanden


Nun hab ich mich gefragt, ob man beim Spartan3 unter Verwendung eines 
MULT18 (also den Hardware Multiplizierer aus dem Coregen )sich die ganze 
Geschichte mit dem extrahieren der Vorzeichen usw. sparen kann ?

Kann der MULT18 keine vorzeichenbehafteten Zahlen verarbeiten ???

Hat die obige multiplizierer Version einen versteckten Vorteil ?
( evtl. schneller oder braucht weniger Resourcen ?? )

Kann mir das bitte jemand erklären ?

von Falk (Gast)


Lesenswert?

>Kann der MULT18 keine vorzeichenbehafteten Zahlen verarbeiten ???

Die Hardware-Multiplier gibts mit und ohne Vorzeichen.

MfG
Falk

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.