Forum: FPGA, VHDL & Co. VHDL signed/unsigned shift_right Probleme


von Paul Werth (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,

ich stehe wie ein Ochs vorm Berg... VHDL-Probleme wohin ich gucke ;-)

Konkret habe ich ein seltsames Verhalten bei der Umwandlung eines 
IP-Core Ausgangs in eine verarbeitbare Vorzeichenbehaftete Zahl.

Es gibt in meinem Projekt ein Xilinx IP-Core FIR-Filtermodul mit 
std_logic_vector als Ausgang (der ein signed-signal enthält). Dessen 
Ausgang leite ich durch ein eigenes Wrappermodul nach draußen:
1
dout <= signed(fir3_out);
In einem anderen Block wird dann aus diesem Ausgang ein Teil 
"herausgeschnitten", damit er bequem versendet werden kann. Welchen Teil 
ich dann nehme, ist zur Laufzeit einstellbar (siehe angehängte Grafik)
1
pcm_data_small <= std_logic_vector(resize(shift_right(pcm_data,scaleFactor),pcm_data_small'length));
Irgendwie ist das Ergebnis nun aber immer negativ, mit entsprechenden 
Überläufen bei Null falls einzelne Samples positiv sein wollen. Ich bin 
mir relativ sicher das der Filter auch positive Ausgangswerte haben 
sollte -- es muss also etwas bei meiner Konvertierung daneben gehen...

Sehe ich mir aber die entsprechenden Dateien des Standards an 
(numeric_std.vhdl), verstehe ich die Funktion der Umwandelfunktionen 
genau so, wie ich sie verwendet habe.

Grüße
Paul

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.