Schleife: Vergleich von Integer und std_logic_vector

OP #2140946
Lesenswert?
• ▲
▼
Hallo zusammen,

ich möchte gerne eine Schleife erstellen.
1
if counter_value < register_value then
2
  counter_value <= counter_value + 1;
3
else
4
...
5
end if;

Nun ist der counter_value vom Typ Integer und der register_value vom Typ 
std_logic_vector.
1
signal register_value : STD_LOGIC_VECTOR(23 downto 0) := x"027100";
2
signal counter_value_strobe : integer range 0 to 16777215 := 0;

Nun habe ich mir diese beiden Links angeschaut und probiere Folgendes:
http://www.mikrocontroller.net/articles/Rechnen_in_VHDL
http://www.lothar-miller.de/s9y/categories/16-Numeric_Std
1
if counter_value < to_integer(signed(register_value)) then
2
  counter_value <= counter_value + 1;
3
else
4
...
5
end if;

Auch wenn ich die CAST und KONVERTIERUNG trenne und über Zwischensignale 
gehe, meckert mir ISE an, dass to_integer ein Undefined symbol ist.

Wie kann ich in der Schleife beide Werte miteinander vergleich, so dass 
es sauber übersetzt wird und auch sauber implementiert werden kann?

Vielen Dank!
Andi
OP #2141913
Lesenswert?
• ▲
▼
Hallo,
1
library IEEE;
2
use IEEE.STD_LOGIC_1164.ALL;
3
use IEEE.STD_LOGIC_ARITH.ALL;
4
use IEEE.STD_LOGIC_UNSIGNED.ALL;

Lass mich raten, ich muss die
1
use IEEE.NUMERIC_STD.ALL;
noch einbinden...

Nun vermeldet mir ISE "to_integer can not have such operands in this 
context"... muss ich den Vergleichswert doch einzeln umwandeln, geht das 
nicht auf einen Ritt in diesem Ausdruck?
1
if counter_value < to_integer(signed(register_value)) then
Sorry für den Begriff "if Schleife" - da hast du natürlich Recht :)

Vielen Dank!

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