Forum: FPGA, VHDL & Co. 12bit signed in 14bit unsigned umwandeln


von Dennis L. (eslon)


Lesenswert?

Ich habe das Problem, dass ich

signed(11 downto 0)
in
unsigned(13 downto 0)

umwandeln will. Die 12 bit kommen aus einem ADC und die 14bit sind dann 
für einen DAC gedacht.
Mein Problem liegt jetzt darin, das 12bit Signal in ein 14bit 
umzuwandeln, also das auffüllen der fehlenden Stellen durch nullen 
bekomm ich irgendwie nicht hin.
Das mit dem signed nach unsigned, sollte doch automatisch gehen oda?

von ... (Gast)


Lesenswert?

Ich glaub die meisten Leute würde noch interessieren, in welcher 
Programmiersprache du das machen möchtest.

von Christian R. (supachris)


Lesenswert?

Signal ADC : signed(11 downto 0);
Signal DAC : unsigned(13 downto 0);

DAC <= unsigned(resize(ADC, 14));

Musst halt nur schauen, ob das dann mit dem Offset passt...

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Dennis Lindner schrieb:
> Ich habe das Problem, dass ich
> signed(11 downto 0)
> in
> unsigned(13 downto 0)
> umwandeln will.
Und was soll passieren, wenn in signed z.B. der Wert -23 steht? Soll 
dann im unsigned das entsprechende Bitmuster (Zweierkomplement) 
stehen? Oder sollen die restlichen Bits mit 0 aufgefüllt werden? Oder 
soll gar der Wert 0 herauskommen?

Für -1 also:
-1 = signed(11 downto 0) = 1111_1111_1111
-->
sowas: unsigned(13 downto 0) = 11_1111_1111_1111
oder:  unsigned(13 downto 0) = 00_1111_1111_1111
oder:  unsigned(13 downto 0) = 00_0000_0000_0000

von Christian R. (supachris)


Lesenswert?

Von der Anwendung her gesehen, muss man sicher einfach nur auf den 14 
Bit Wer 8192 drauf addieren, und dann passt das. Deswegen schrieb ich 
ja, das Offset muss stimmen. Die 0 vom ADC rutscht dann in die Mitte des 
DAC Bereiches auf 8192.

von Dennis L. (eslon)


Lesenswert?

Danke erstmal, ich denke ich muss das wirklich mit nem Offset machen, 
bin aber nicht ganz sicher, der DAC braucht halt nen unsigned binary 
signal und wenn ich ein signal vorher durch den ADC schicke, gibt der 
den Bitstream signed aus.
Ich werds mal testen :)

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.