Forum: FPGA, VHDL & Co. Höchstwertigen 12 bit


von Tobi (Gast)


Lesenswert?

Hallo,
ich führe mit meinen FPGA eine DFT aus und erhalte den Imaginär- und 
Realteil, die 46 bit breit sind.
Für die spätere Phasenberechnung brauche ich nur 12 bit.
Wie bekomme ich aus den 46 Bit die höchsten 12 Bit Werte?

Zur verdeutlichung meines Problems:
Bsp:
Imag = 00 0000 0001 0101 1010 0100 1010 0101 0011 0011 1111 0011
Real = 00 0100 1010 1110 1010 1101 0100 1110 1011 0110 0011 1111
Als ergebnis brauche ich:
Imag = 0000 0010 1011
Real = 1001 0101 1101

von Michael A. (michiavelli)


Lesenswert?

1
imag_12bit = imag_46bit(42 downto 31);
2
real_12bit = real_46bit(42 downto 31);

von Tobi (Gast)


Lesenswert?

Die Werte verändern sich, wodurch ich immer unterschiedliche Bits 
brauche. Die Brechung des arctan2 soll möglichst genau erfolgen.

von Lattice User (Gast)


Lesenswert?

Tobi schrieb:
> Die Werte verändern sich, wodurch ich immer unterschiedliche Bits
> brauche. Die Brechung des arctan2 soll möglichst genau erfolgen.

Solnage nach links schieben bis sich in einem der beiden Werten das 
Vorzeichen vom MSB unterscheidet. Braucht maximal 44 Takte.
Aber bitte eine FSM verwenden, weder while noch for ist dafür geeignet.

von Tobi (Gast)


Lesenswert?

Ich weiß jetzt wie ich es mache. Durch eine Pause von mehr als 40 Takte 
nach der Dft führe ich jeden takt ein linksshift durch ist das höchste 
Bit eine 1 wird das Ergebnis rausgegeben.

von Tobi (Gast)


Lesenswert?

Danke lattic :)

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.