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