VHDL signed/unsigned shift_right Probleme

Gast #1655215
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
Angehängte Dateien:

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren