www.mikrocontroller.net

Forum: FPGA, VHDL & Co. signed vs fixed point


Autor: Guest (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Frage 1:
Gibt es eingentlich irgendeinen Nachteil von signed gegenüber fixed 
point?

Signed Arithmetik hat ja zumindest bei FPGA den Vorteil das es 
einwandfrei funktionierende Bibliotheken für VHDL gibt.
Bei fixed point ist das ja noch nicht der fall (ja ich kenn signed_pkg).
Was muss ich bei Fixed Point Berechnungen beachten die ich in Signed 
Berechnungen darstellen will?
Zumindest bei einer Erhöhung der Stellen Zahl macht es doch einen 
Unterschied ob ich die Resizebits zwischen signed bit und Rest Anfüge
oder hinten

also a) SRRBBBBB (S: Signb.,R: Resizeb., B.: normale Bits )
oder b) SBBBBBRR

a) signed   b) fixed point.

Mein Problem ist jetzt: bei einen Filter kann ich ja die 
Eingangswerte(kommen von einen AD-Wandler) als fixedpoint oder aber 
signed behandeln.
Also Werte zw. -1 und 1-LSB  bei fp oder eben je nach bitbreite bei 
sign.

Jetzt kommt der Punkt bei dem ich gerade am Schlauch stehe:
wenn ich jetzt sage eigentlich hätte ich bei fixedpoint
eingang: S,xxxx (irgendwas zw. -1 und 1-LSB) und koeffizient: S,xxxx 
irgendwas zw. -1 und 1-LSB)

Frage 2:
Man kann doch einfach beides mal einen Faktor nehmen so das sich der 
Dezimalpunkt verschiebt => ich mache nichts und tue so als währen die 
Werte signed?

Frage 3:
Aber wie kommmt dann der Unterschied bei der Bitbreiten änderung 
zustande?
=> Was muss man bei welchen Fall beachten?

Autor: Guest (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
1. Ja, du musst etwas mehr tippen. Dem FPGA ist es "wurscht".

2. und 3. Das sollte für den Anfang reichen: 
http://www.digitalsignallabs.com/papers.htm

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> a) SRRBBBBB (S: Signb.,R: Resizeb., B.: normale Bits )
signed ist einfach ein Vektor, der als vorzeichenbehaftet angesehen wird 
(Zweierkomplement). fixed hat keine "Resizebits". Bits, die angeben, 
welche Wertigkeit die nachfolgenden Bits haben findet man in der float 
Darstellung (als Exponent). Fixed-Point heißt nur, dass irgendwo mitten 
in den "Zahlenbits" ein Komma hineingedacht wird. Es wird also ein 
virtuelles fixes Komma eingefügt (Nomen est Omen).

Am einfachsten ist es, anzunehmen, man hätte einen Darstellungsbereich 
von 0...1 (unsigned) oder -1...+1. Denn dann wandert das Komma von 
hinter dem letzten Bit einfach vor das erste Bit.
Bei 8 bit wäre das dann so (unsigned):
    10101010 =   10101010.0 = 170
bzw 10101010 = 0.10101010   = 0.6640625
oder (signed)
    10101010 =   10101010.0 = -86
bzw 10101010 = 0.10101010   = -0.3359375
Allerdings sollten die vielen dezmalen Nachkommastellen nicht täuschen. 
Denn die Auflösung ist trotzdem nur 1/256

Das hatten wir schon mal im 
Beitrag "Re: Anfängerfrage"

Autor: amplatzsitzender (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Lothar Miller schrieb:
>> a) SRRBBBBB (S: Signb.,R: Resizeb., B.: normale Bits )
> signed ist einfach ein Vektor, der als vorzeichenbehaftet angesehen wird
> (Zweierkomplement). fixed hat keine "Resizebits". Bits, die angeben,
> welche Wertigkeit die nachfolgenden Bits haben findet man in der float
> Darstellung (als Exponent). Fixed-Point heißt nur, dass irgendwo mitten
> in den "Zahlenbits" ein Komma hineingedacht wird. Es wird also ein
> virtuelles fixes Komma eingefügt (Nomen est Omen).
>
> Am einfachsten ist es, anzunehmen, man hätte einen Darstellungsbereich
> von 0...1 (unsigned) oder -1...+1. Denn dann wandert das Komma von
> hinter dem letzten Bit einfach vor das erste Bit.
> Bei 8 bit wäre das dann so (unsigned):
>     10101010 =   10101010.0 = 170
> bzw 10101010 = 0.10101010   = 0.6640625
> oder (signed)
>     10101010 =   10101010.0 = -86
> bzw 10101010 = 0.10101010   = -0.3359375
> Allerdings sollten die vielen dezmalen Nachkommastellen nicht täuschen.
> Denn die Auflösung ist trotzdem nur 1/256
>
> Das hatten wir schon mal im
> Beitrag "Re: Anfängerfrage"

hallo zusammen, hallo Lothar Miller

bei IQ-Format multiplikation hat man:

z.b. I2Q30 = I1Q15 * I1Q15

Meine frage ist, wie sieht das aus bei Division?

vielen Dank im Vorraus für alle Anregungen!

Autor: Thomas Reinemann (Firma: abaxor engineering) (abaxor)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Guest schrieb:
> Frage 1:
> Gibt es eingentlich irgendeinen Nachteil von signed gegenüber fixed
> point?

In meinen Augen gibt es einen wesentlichen Nachteil von Fixed-Point 
gegenüber signed/unsigned. Der Logic Analyzer (sei es das Gerät auf dem 
Tisch, ChipScope, Reveal, ..) können nur signed/unsigned. Da man aber 
seine Zahlen aus der Simulation auch im LA wieder finden will, sind alle 
anderen Einstellung nachteilig. Darum verwende ich auch 
Matlab-fixedPoint mit Null Nachkommastellen.

Tom

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
amplatzsitzender schrieb:
> Meine frage ist, wie sieht das aus bei Division?
Das kommt auf die Implementierung an...
Aber ich würde erwarten:  I2Q30 / I1Q15 = I1Q15 R I1Q15

Autor: Michael O. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Darum verwende ich auch
>Matlab-fixedPoint mit Null Nachkommastellen.
Und was, wenn Du aussen etwas anderes brauchst?

Für die Testvektoren skalieren?

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.