Forum: FPGA, VHDL & Co. conv_std_logic_vector


von Thomas S. (tstoll)


Lesenswert?

Hallo -

ich habe folgendes Problem:

1 package in dem der subtype für datain deklariert wird.
Bsp:
subtype datain_length : std_logic_vector(11 downto 0);

Nun möchte ich in meiner testbench datain mit integer werten setzen, so 
dass in erster Linie unabhängig von der Länge des subtypes bin.

also:

datain <= conv_std_logic_vector(3,XX);

Was muss ich da an die Stelle der XX schreiben? normalerweise ja 12, da 
in 12 bit konvertiert wird.. aber die (11 downto 0) können sich ja 
theoretisch bei Bedarf ändern, und ich möchte nicht jedesmal alle XX in 
der testbench etc. ändern.

Grüße,
tOM

von dito (Gast)


Lesenswert?

Das hier:

datain <= conv_std_logic_vector(3,datain'length);

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


Lesenswert?

> conv_std_logic_vector
Ein Tipp: nimm statt der
1
use IEEE.STD_LOGIC_ARITH.ALL;
2
use IEEE.STD_LOGIC_UNSIGNED.ALL;
zukünftig besser die herstellerunabhängige
1
use IEEE.NUMERIC_STD.ALL;
Dort gibt es dann schöne Casts und Konvertierungen:
http://www.lothar-miller.de/s9y/archives/14-Numeric_Std.html

von Thomas S. (tstoll)


Lesenswert?

Danke!

von Hotte (Gast)


Lesenswert?

Ich habe auch ein Problem mit den Libs: Ich habe :

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.NUMERIC_STD.ALL;

...

signal output_d1  : std_logic_vector(7 downto 0) := (others => '0');
signal output    : integer;


und verwende:


output_d1 <= conv_std_logic_vector(output,8);


er erkennt die conversion function nicht!


erst, wenn ich alle 4 nehme:

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
use IEEE.NUMERIC_STD.ALL;

läuft es durch.

???

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


Lesenswert?

Hast du den Link im Beitrag "Re: conv_std_logic_vector" 
nicht gesehen? Oder hast du das, was da geschrieben ist, nicht 
verstanden?

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.