Forum: FPGA, VHDL & Co. inkrementieren eines std_logic_vectors


von Hochpass (Gast)


Lesenswert?

Hi,

irgenwas haut nicht hin. Gibt es eine Abkürzung das so enfach wie 
möglich zu machen?
Randbedingungen:

USE ieee.NUMERIC_STD.all;

SIGNAL frame_err_0_reg : std_logic_vector( 15 DOWNTO 0 );
frame_err_0_reg<=std_logic_vector(TO_UNSIGNED(to_integer(unsigned(frame_ 
err_0_reg))+  1));


Ich birings gerade nicht zusammen. :-/
Und warum ist das nicht in NUMERIC_STD mit drin, dass direkt zu machen?

Danke

Gruß Hochpass

von Hochpass (Gast)


Lesenswert?

USE ieee.NUMERIC_STD.all;

SIGNAL frame_err_0_reg : std_logic_vector( 15 DOWNTO 0 );
frame_err_0_reg<=std_logic_vector(unsigned(frame_err_0_reg)+ 1);

Das schein zu funktionieren. :-/

von Andreas (Gast)


Lesenswert?

Hallo Hochpass,

mal abgesehen von der Tatsache dass Du dein Problem selbst geloest hast:

>Und warum ist das nicht in NUMERIC_STD mit drin, dass direkt zu machen?

lautet die Antwort: Weil ein std_logic_vector per se keine Zahl 
darstellt.
Du kannst den Vector zwar als Zahl interpretieren, musst dem 
Synthesetool jedoch mitteilen wie Du diese Zahl interpretiert haben 
moechtest (Signed oder unsigned).

Im alternativen arith-Paket muss dies durch ein zus. Paket 
(signed/unsigned) gemacht werden...

Gruss

Andreas

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.