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
1 | imag_12bit = imag_46bit(42 downto 31); |
2 | real_12bit = real_46bit(42 downto 31); |
Die Werte verändern sich, wodurch ich immer unterschiedliche Bits brauche. Die Brechung des arctan2 soll möglichst genau erfolgen.
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.
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.
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.