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?
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
> 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"
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!
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
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
>Darum verwende ich auch >Matlab-fixedPoint mit Null Nachkommastellen. Und was, wenn Du aussen etwas anderes brauchst? Für die Testvektoren skalieren?
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.