Codierung von negativen Zahlen für Adder in Spartan

Gast #477446
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 )
Gast #477448
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
Gast #477505
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 ?

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