Я пытаюсь отобразить анимированное изображение на экране, благодаря порту VGA на плате FPGA.
Итак, у меня есть объект с именем sonic_digit, который позволяет отправлять мое изображение:
sonic_digit0 : sonic_digit port map(
val => val2,
posX=> posXX,
posY =>conv_std_logic_vector(300,10),
rgbOut => rgb,
beamX=>beamX,
beamY=>beamY,
beamValid=>beamValid);
val используется для изменения изображения (спрайта для отображения).
Во-первых, я хочу отобразить в цикле 3 первых спрайта и остановить его, когда он достигнет 550-го пикселя в xи шоу 4-й спрайт.Так что я должен иметь для val: 00, 01, 10, 00, 01, 10, 00 ........ и затем 11, когда 550 достигнет posXX.
Итак, я усталиспользуйте мой процесс, который также управляет временем между двумя изображениями:
process (clk50) begin
if rising_edge(clk50) then
count <= count+1;
if count = conv_std_logic_vector(0,23) then
posXX <= posXX+1;
val2 <= val2+1;
if val2 = "11" then
val2 <= "00";
end if;
end if;
end if;
end process;
Мое изображение корректно перемещается по оси x, но оно продолжает увеличиваться до 11, как если строка val2 = "11" не работает ..У меня есть 00, 01, 10, 11, 00, 01, 10, 11, ...
У кого-нибудь есть идея?Спасибо за вашу помощь